niceeval 0.18.0 → 0.19.1-canary.101

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 (679) hide show
  1. package/INDEX.md +4 -2
  2. package/dist/adapter-usage.cjs.map +1 -1
  3. package/dist/adapter-usage.d.cts +1 -1
  4. package/dist/adapter-usage.d.mts +1 -1
  5. package/dist/adapter-usage.d.ts +1 -1
  6. package/dist/adapter.cjs +8 -7
  7. package/dist/adapter.cjs.map +1 -1
  8. package/dist/adapter.d.cts +21 -21
  9. package/dist/adapter.d.mts +21 -21
  10. package/dist/adapter.d.ts +21 -21
  11. package/dist/agents/{effect-runtime.cjs → agent-effects.cjs} +12 -18
  12. package/dist/agents/agent-effects.cjs.map +1 -0
  13. package/dist/agents/agent-effects.d.cts +23 -0
  14. package/dist/agents/agent-effects.d.mts +23 -0
  15. package/dist/agents/agent-effects.d.ts +23 -0
  16. package/dist/agents/agent-effects.js +16 -0
  17. package/dist/agents/agent-effects.js.map +1 -0
  18. package/dist/agents/ai-sdk.cjs +1 -1
  19. package/dist/agents/ai-sdk.cjs.map +1 -1
  20. package/dist/agents/bub.cjs +31 -18
  21. package/dist/agents/bub.cjs.map +1 -1
  22. package/dist/agents/bub.d.cts +9 -12
  23. package/dist/agents/bub.d.mts +9 -12
  24. package/dist/agents/bub.d.ts +9 -12
  25. package/dist/agents/claude-code-native.cjs +2 -2
  26. package/dist/agents/claude-code-native.cjs.map +1 -1
  27. package/dist/agents/claude-code.cjs +17 -11
  28. package/dist/agents/claude-code.cjs.map +1 -1
  29. package/dist/agents/claude-code.d.cts +11 -11
  30. package/dist/agents/claude-code.d.mts +11 -11
  31. package/dist/agents/claude-code.d.ts +11 -11
  32. package/dist/agents/codex-app-server.cjs +2 -2
  33. package/dist/agents/codex-app-server.cjs.map +1 -1
  34. package/dist/agents/codex.cjs +18 -12
  35. package/dist/agents/codex.cjs.map +1 -1
  36. package/dist/agents/codex.d.cts +12 -12
  37. package/dist/agents/codex.d.mts +12 -12
  38. package/dist/agents/codex.d.ts +12 -12
  39. package/dist/agents/deepseek-harness.cjs +2 -2
  40. package/dist/agents/deepseek-harness.cjs.map +1 -1
  41. package/dist/agents/hermes.cjs +3 -3
  42. package/dist/agents/hermes.cjs.map +1 -1
  43. package/dist/agents/index.cjs +3 -3
  44. package/dist/agents/index.cjs.map +1 -1
  45. package/dist/agents/index.d.cts +3 -3
  46. package/dist/agents/index.d.mts +3 -3
  47. package/dist/agents/index.d.ts +3 -3
  48. package/dist/agents/index.js +2 -2
  49. package/dist/agents/index.mjs +2 -2
  50. package/dist/agents/mcp.cjs.map +1 -1
  51. package/dist/agents/mcp.d.cts +2 -2
  52. package/dist/agents/mcp.d.mts +2 -2
  53. package/dist/agents/mcp.d.ts +2 -2
  54. package/dist/agents/omp.cjs +2 -2
  55. package/dist/agents/omp.cjs.map +1 -1
  56. package/dist/agents/openai-compat.cjs +2 -2
  57. package/dist/agents/openai-compat.cjs.map +1 -1
  58. package/dist/agents/openclaw.cjs +3 -3
  59. package/dist/agents/openclaw.cjs.map +1 -1
  60. package/dist/agents/opencode.cjs +16 -4
  61. package/dist/agents/opencode.cjs.map +1 -1
  62. package/dist/agents/plugin-extensions.cjs +71 -0
  63. package/dist/agents/plugin-extensions.cjs.map +1 -0
  64. package/dist/agents/plugin-extensions.d.cts +26 -0
  65. package/dist/agents/plugin-extensions.d.mts +26 -0
  66. package/dist/agents/plugin-extensions.d.ts +26 -0
  67. package/dist/agents/plugin-extensions.js +8 -0
  68. package/dist/agents/plugin-extensions.js.map +1 -0
  69. package/dist/agents/post-setup.cjs +14 -3
  70. package/dist/agents/post-setup.cjs.map +1 -1
  71. package/dist/agents/post-setup.d.cts +4 -2
  72. package/dist/agents/post-setup.d.mts +4 -2
  73. package/dist/agents/post-setup.d.ts +4 -2
  74. package/dist/agents/post-setup.js +8 -6
  75. package/dist/agents/sdk-streams.cjs +3 -3
  76. package/dist/agents/sdk-streams.cjs.map +1 -1
  77. package/dist/agents/{session-slot.cjs → session-key.cjs} +4 -4
  78. package/dist/agents/session-key.cjs.map +1 -0
  79. package/dist/agents/session-key.d.cts +12 -0
  80. package/dist/agents/session-key.d.mts +12 -0
  81. package/dist/agents/session-key.d.ts +12 -0
  82. package/dist/agents/session-key.js +6 -0
  83. package/dist/agents/session-key.js.map +1 -0
  84. package/dist/agents/shared.cjs +2 -2
  85. package/dist/agents/shared.cjs.map +1 -1
  86. package/dist/agents/shared.d.cts +4 -4
  87. package/dist/agents/shared.d.mts +4 -4
  88. package/dist/agents/shared.d.ts +4 -4
  89. package/dist/agents/skills.cjs.map +1 -1
  90. package/dist/agents/skills.d.cts +3 -3
  91. package/dist/agents/skills.d.mts +3 -3
  92. package/dist/agents/skills.d.ts +3 -3
  93. package/dist/agents/types.cjs.map +1 -1
  94. package/dist/agents/types.d.cts +55 -54
  95. package/dist/agents/types.d.mts +55 -54
  96. package/dist/agents/types.d.ts +55 -54
  97. package/dist/agents/ui-message-stream.cjs +4 -4
  98. package/dist/agents/ui-message-stream.cjs.map +1 -1
  99. package/dist/agents/unrecognized-events.cjs +32 -0
  100. package/dist/agents/unrecognized-events.cjs.map +1 -0
  101. package/dist/agents/unrecognized-events.d.cts +8 -0
  102. package/dist/agents/unrecognized-events.d.mts +8 -0
  103. package/dist/agents/unrecognized-events.d.ts +8 -0
  104. package/dist/agents/unrecognized-events.js +6 -0
  105. package/dist/agents/unrecognized-events.js.map +1 -0
  106. package/dist/assertions/api.cjs.map +1 -1
  107. package/dist/assertions/api.d.cts +3 -0
  108. package/dist/assertions/api.d.mts +3 -0
  109. package/dist/assertions/api.d.ts +3 -0
  110. package/dist/assertions/collection.cjs +1 -1
  111. package/dist/assertions/collection.cjs.map +1 -1
  112. package/dist/assertions/judge.cjs +1 -1
  113. package/dist/assertions/judge.cjs.map +1 -1
  114. package/dist/assertions/match.cjs +52 -21
  115. package/dist/assertions/match.cjs.map +1 -1
  116. package/dist/assertions/match.d.cts +16 -5
  117. package/dist/assertions/match.d.mts +16 -5
  118. package/dist/assertions/match.d.ts +16 -5
  119. package/dist/assertions/match.js +96 -94
  120. package/dist/assertions/measurements.cjs +22 -6
  121. package/dist/assertions/measurements.cjs.map +1 -1
  122. package/dist/assertions/measurements.d.cts +8 -1
  123. package/dist/assertions/measurements.d.mts +8 -1
  124. package/dist/assertions/measurements.d.ts +8 -1
  125. package/dist/assertions/numeric.cjs +2 -0
  126. package/dist/assertions/numeric.cjs.map +1 -1
  127. package/dist/assertions/numeric.d.cts +1 -1
  128. package/dist/assertions/numeric.d.mts +1 -1
  129. package/dist/assertions/numeric.d.ts +1 -1
  130. package/dist/assertions/quantity.cjs +42 -0
  131. package/dist/assertions/quantity.cjs.map +1 -0
  132. package/dist/assertions/quantity.d.cts +18 -0
  133. package/dist/assertions/quantity.d.mts +18 -0
  134. package/dist/assertions/quantity.d.ts +18 -0
  135. package/dist/assertions/quantity.js +22 -0
  136. package/dist/assertions/quantity.js.map +1 -0
  137. package/dist/assertions/record/attachment.cjs +2 -0
  138. package/dist/assertions/record/attachment.cjs.map +1 -1
  139. package/dist/assertions/record/codec.cjs +5 -1
  140. package/dist/assertions/record/codec.cjs.map +1 -1
  141. package/dist/assertions/record/model.cjs.map +1 -1
  142. package/dist/assertions/record/model.d.cts +3 -1
  143. package/dist/assertions/record/model.d.mts +3 -1
  144. package/dist/assertions/record/model.d.ts +3 -1
  145. package/dist/assertions/runtime.cjs +11 -6
  146. package/dist/assertions/runtime.cjs.map +1 -1
  147. package/dist/cli/program.cjs +3 -0
  148. package/dist/cli/program.cjs.map +1 -1
  149. package/dist/context/assert-first.cjs +6 -4
  150. package/dist/context/assert-first.cjs.map +1 -1
  151. package/dist/context/assert-first.d.cts +9 -3
  152. package/dist/context/assert-first.d.mts +9 -3
  153. package/dist/context/assert-first.d.ts +9 -3
  154. package/dist/context/notes.cjs +47 -0
  155. package/dist/context/notes.cjs.map +1 -0
  156. package/dist/context/notes.d.cts +10 -0
  157. package/dist/context/notes.d.mts +10 -0
  158. package/dist/context/notes.d.ts +10 -0
  159. package/dist/context/notes.js +6 -0
  160. package/dist/context/notes.js.map +1 -0
  161. package/dist/context/send-failures.cjs +1 -7
  162. package/dist/context/send-failures.cjs.map +1 -1
  163. package/dist/context/send-failures.d.cts +2 -3
  164. package/dist/context/send-failures.d.mts +2 -3
  165. package/dist/context/send-failures.d.ts +2 -3
  166. package/dist/context/send-retry.cjs +0 -1
  167. package/dist/context/send-retry.cjs.map +1 -1
  168. package/dist/context/send-retry.d.cts +1 -2
  169. package/dist/context/send-retry.d.mts +1 -2
  170. package/dist/context/send-retry.d.ts +1 -2
  171. package/dist/context/session.cjs +10 -17
  172. package/dist/context/session.cjs.map +1 -1
  173. package/dist/context/session.d.cts +4 -10
  174. package/dist/context/session.d.mts +4 -10
  175. package/dist/context/session.d.ts +4 -10
  176. package/dist/define.cjs +88 -65
  177. package/dist/define.cjs.map +1 -1
  178. package/dist/define.d.cts +3 -3
  179. package/dist/define.d.mts +3 -3
  180. package/dist/define.d.ts +3 -3
  181. package/dist/eval/cli/contribution.cjs +1 -1
  182. package/dist/eval/cli/contribution.cjs.map +1 -1
  183. package/dist/eval/host/index.cjs +1 -1
  184. package/dist/eval/host/index.cjs.map +1 -1
  185. package/dist/eval/record/evaluation.cjs +1 -1
  186. package/dist/eval/record/evaluation.cjs.map +1 -1
  187. package/dist/eval/record/membership-provenance.d.cts +3 -3
  188. package/dist/eval/record/membership-provenance.d.mts +3 -3
  189. package/dist/eval/record/membership-provenance.d.ts +3 -3
  190. package/dist/eval/record/score.cjs +2 -2
  191. package/dist/eval/record/score.cjs.map +1 -1
  192. package/dist/eval/record/sealed-assertion.cjs +1 -1
  193. package/dist/eval/record/sealed-assertion.cjs.map +1 -1
  194. package/dist/eval/record/verdict.cjs +2 -2
  195. package/dist/eval/record/verdict.cjs.map +1 -1
  196. package/dist/expect/index.cjs +10 -1
  197. package/dist/expect/index.cjs.map +1 -1
  198. package/dist/expect/index.d.cts +3 -1
  199. package/dist/expect/index.d.mts +3 -1
  200. package/dist/expect/index.d.ts +3 -1
  201. package/dist/expect/index.js +92 -76
  202. package/dist/expect/index.mjs +92 -76
  203. package/dist/experiment/host/cli/contribution.cjs +52 -39
  204. package/dist/experiment/host/cli/contribution.cjs.map +1 -1
  205. package/dist/experiment/host/cli/contribution.d.cts +18 -4
  206. package/dist/experiment/host/cli/contribution.d.mts +18 -4
  207. package/dist/experiment/host/cli/contribution.d.ts +18 -4
  208. package/dist/experiment/host/cli/contribution.js +2 -2
  209. package/dist/experiment/host/cli/debug-protocol.cjs +2 -2
  210. package/dist/experiment/host/cli/debug-protocol.cjs.map +1 -1
  211. package/dist/experiment/host/cli/debug-protocol.d.cts +2 -2
  212. package/dist/experiment/host/cli/debug-protocol.d.mts +2 -2
  213. package/dist/experiment/host/cli/debug-protocol.d.ts +2 -2
  214. package/dist/experiment/host/cli/output-protocol.cjs +1 -1
  215. package/dist/experiment/host/cli/output-protocol.cjs.map +1 -1
  216. package/dist/experiment/host/cli/output-protocol.d.cts +2 -2
  217. package/dist/experiment/host/cli/output-protocol.d.mts +2 -2
  218. package/dist/experiment/host/cli/output-protocol.d.ts +2 -2
  219. package/dist/experiment/host/current.cjs +2 -2
  220. package/dist/experiment/host/current.cjs.map +1 -1
  221. package/dist/experiment/host/index.cjs +1 -1
  222. package/dist/experiment/host/index.cjs.map +1 -1
  223. package/dist/experiment/host/operations.cjs +21 -22
  224. package/dist/experiment/host/operations.cjs.map +1 -1
  225. package/dist/experiment/host/runtime.cjs +8 -9
  226. package/dist/experiment/host/runtime.cjs.map +1 -1
  227. package/dist/experiment/host/runtime.d.cts +3 -3
  228. package/dist/experiment/host/runtime.d.mts +3 -3
  229. package/dist/experiment/host/runtime.d.ts +3 -3
  230. package/dist/experiment/host/teardown.cjs +3 -3
  231. package/dist/experiment/host/teardown.cjs.map +1 -1
  232. package/dist/experiment/host/teardown.d.cts +3 -3
  233. package/dist/experiment/host/teardown.d.mts +3 -3
  234. package/dist/experiment/host/teardown.d.ts +3 -3
  235. package/dist/experiment/host/types.cjs.map +1 -1
  236. package/dist/experiment/host/types.d.cts +19 -19
  237. package/dist/experiment/host/types.d.mts +19 -19
  238. package/dist/experiment/host/types.d.ts +19 -19
  239. package/dist/index.cjs +3 -3
  240. package/dist/index.cjs.map +1 -1
  241. package/dist/index.d.cts +3 -3
  242. package/dist/index.d.mts +3 -3
  243. package/dist/index.d.ts +3 -3
  244. package/dist/index.js +2 -2
  245. package/dist/index.mjs +2 -2
  246. package/dist/inspection/assertions.cjs +1 -1
  247. package/dist/inspection/assertions.cjs.map +1 -1
  248. package/dist/inspection/cli/contribution.cjs +8 -7
  249. package/dist/inspection/cli/contribution.cjs.map +1 -1
  250. package/dist/inspection/facts.cjs +4 -4
  251. package/dist/inspection/facts.cjs.map +1 -1
  252. package/dist/inspection/index.cjs +1 -5
  253. package/dist/inspection/index.cjs.map +1 -1
  254. package/dist/inspection/index.d.cts +1 -2
  255. package/dist/inspection/index.d.mts +1 -2
  256. package/dist/inspection/index.d.ts +1 -2
  257. package/dist/inspection/index.js +20 -26
  258. package/dist/inspection/lifecycle.cjs +7 -0
  259. package/dist/inspection/lifecycle.cjs.map +1 -0
  260. package/dist/inspection/lifecycle.d.cts +4 -0
  261. package/dist/inspection/lifecycle.d.mts +4 -0
  262. package/dist/inspection/lifecycle.d.ts +4 -0
  263. package/dist/inspection/lifecycle.js +6 -0
  264. package/dist/inspection/lifecycle.js.map +1 -0
  265. package/dist/inspection/notes.cjs +40 -0
  266. package/dist/inspection/notes.cjs.map +1 -0
  267. package/dist/inspection/notes.d.cts +12 -0
  268. package/dist/inspection/notes.d.mts +12 -0
  269. package/dist/inspection/notes.d.ts +12 -0
  270. package/dist/inspection/notes.js +8 -0
  271. package/dist/inspection/notes.js.map +1 -0
  272. package/dist/inspection/overview.cjs +12 -15
  273. package/dist/inspection/overview.cjs.map +1 -1
  274. package/dist/inspection/overview.d.cts +8 -6
  275. package/dist/inspection/overview.d.mts +8 -6
  276. package/dist/inspection/overview.d.ts +8 -6
  277. package/dist/inspection/planned-attempt.cjs +45 -0
  278. package/dist/inspection/planned-attempt.cjs.map +1 -0
  279. package/dist/inspection/planned-attempt.d.cts +109 -0
  280. package/dist/inspection/planned-attempt.d.mts +109 -0
  281. package/dist/inspection/planned-attempt.d.ts +109 -0
  282. package/dist/inspection/planned-attempt.js +24 -0
  283. package/dist/inspection/planned-attempt.js.map +1 -0
  284. package/dist/inspection/project-result.cjs +5 -5
  285. package/dist/inspection/project-result.cjs.map +1 -1
  286. package/dist/inspection/project-result.d.cts +58 -57
  287. package/dist/inspection/project-result.d.mts +58 -57
  288. package/dist/inspection/project-result.d.ts +58 -57
  289. package/dist/inspection/project-result.js +4 -4
  290. package/dist/inspection/project.cjs +3 -3
  291. package/dist/inspection/project.cjs.map +1 -1
  292. package/dist/inspection/protocol-values.cjs +1 -1
  293. package/dist/inspection/protocol-values.cjs.map +1 -1
  294. package/dist/inspection/protocol-values.d.cts +1 -1
  295. package/dist/inspection/protocol-values.d.mts +1 -1
  296. package/dist/inspection/protocol-values.d.ts +1 -1
  297. package/dist/inspection/protocol.cjs +8 -8
  298. package/dist/inspection/protocol.cjs.map +1 -1
  299. package/dist/inspection/protocol.d.cts +237 -219
  300. package/dist/inspection/protocol.d.mts +237 -219
  301. package/dist/inspection/protocol.d.ts +237 -219
  302. package/dist/inspection/public.cjs +1 -5
  303. package/dist/inspection/public.cjs.map +1 -1
  304. package/dist/inspection/public.d.cts +1 -2
  305. package/dist/inspection/public.d.mts +1 -2
  306. package/dist/inspection/public.d.ts +1 -2
  307. package/dist/inspection/public.js +14 -20
  308. package/dist/inspection/public.mjs +166 -129
  309. package/dist/inspection/query.cjs +1 -1
  310. package/dist/inspection/query.cjs.map +1 -1
  311. package/dist/inspection/results.cjs +61 -52
  312. package/dist/inspection/results.cjs.map +1 -1
  313. package/dist/inspection/results.d.cts +157 -140
  314. package/dist/inspection/results.d.mts +157 -140
  315. package/dist/inspection/results.d.ts +157 -140
  316. package/dist/inspection/select.cjs +33 -28
  317. package/dist/inspection/select.cjs.map +1 -1
  318. package/dist/inspection/source.cjs +1 -1
  319. package/dist/inspection/source.cjs.map +1 -1
  320. package/dist/inspection/sources.cjs +2 -2
  321. package/dist/inspection/sources.cjs.map +1 -1
  322. package/dist/inspection/trace.cjs +9 -8
  323. package/dist/inspection/trace.cjs.map +1 -1
  324. package/dist/inspection/trace.d.cts +4 -4
  325. package/dist/inspection/trace.d.mts +4 -4
  326. package/dist/inspection/trace.d.ts +4 -4
  327. package/dist/loaders/index.cjs +7 -279
  328. package/dist/loaders/index.cjs.map +1 -1
  329. package/dist/loaders/index.d.cts +2 -95
  330. package/dist/loaders/index.d.mts +2 -95
  331. package/dist/loaders/index.d.ts +2 -95
  332. package/dist/loaders/index.js +10 -12
  333. package/dist/loaders/index.mjs +10 -12
  334. package/dist/loaders/runtime.cjs +283 -0
  335. package/dist/loaders/runtime.cjs.map +1 -0
  336. package/dist/loaders/runtime.d.cts +95 -0
  337. package/dist/loaders/runtime.d.mts +95 -0
  338. package/dist/loaders/runtime.d.ts +95 -0
  339. package/dist/loaders/runtime.js +16 -0
  340. package/dist/loaders/runtime.js.map +1 -0
  341. package/dist/migrations/judge-provider.md +6 -6
  342. package/dist/{model-slots.cjs → model-roles.cjs} +12 -12
  343. package/dist/{model-slots.cjs.map → model-roles.cjs.map} +1 -1
  344. package/dist/{model-slots.d.cts → model-roles.d.cts} +10 -10
  345. package/dist/{model-slots.d.mts → model-roles.d.mts} +10 -10
  346. package/dist/{model-slots.d.ts → model-roles.d.ts} +10 -10
  347. package/dist/model-roles.js +14 -0
  348. package/dist/model-roles.js.map +1 -0
  349. package/dist/o11y/adapter-usage-projection.cjs +9 -8
  350. package/dist/o11y/adapter-usage-projection.cjs.map +1 -1
  351. package/dist/o11y/adapter-usage-projection.d.cts +23 -15
  352. package/dist/o11y/adapter-usage-projection.d.mts +23 -15
  353. package/dist/o11y/adapter-usage-projection.d.ts +23 -15
  354. package/dist/o11y/cache-read.cjs +14 -14
  355. package/dist/o11y/cache-read.cjs.map +1 -1
  356. package/dist/o11y/cache-read.d.cts +5 -5
  357. package/dist/o11y/cache-read.d.mts +5 -5
  358. package/dist/o11y/cache-read.d.ts +5 -5
  359. package/dist/o11y/derive.cjs.map +1 -1
  360. package/dist/o11y/derive.d.cts +2 -2
  361. package/dist/o11y/derive.d.mts +2 -2
  362. package/dist/o11y/derive.d.ts +2 -2
  363. package/dist/o11y/eval-usage.cjs +9 -9
  364. package/dist/o11y/eval-usage.cjs.map +1 -1
  365. package/dist/o11y/eval-usage.d.cts +7 -7
  366. package/dist/o11y/eval-usage.d.mts +7 -7
  367. package/dist/o11y/eval-usage.d.ts +7 -7
  368. package/dist/o11y/parsers/bub.cjs +57 -81
  369. package/dist/o11y/parsers/bub.cjs.map +1 -1
  370. package/dist/o11y/parsers/index.cjs.map +1 -1
  371. package/dist/o11y/parsers/index.d.cts +2 -0
  372. package/dist/o11y/parsers/index.d.mts +2 -0
  373. package/dist/o11y/parsers/index.d.ts +2 -0
  374. package/dist/o11y/parsers/opencode.cjs +129 -217
  375. package/dist/o11y/parsers/opencode.cjs.map +1 -1
  376. package/dist/o11y/parsers/opencode.d.cts +2 -5
  377. package/dist/o11y/parsers/opencode.d.mts +2 -5
  378. package/dist/o11y/parsers/opencode.d.ts +2 -5
  379. package/dist/o11y/types.cjs.map +1 -1
  380. package/dist/o11y/types.d.cts +1 -1
  381. package/dist/o11y/types.d.mts +1 -1
  382. package/dist/o11y/types.d.ts +1 -1
  383. package/dist/plugin/contracts.cjs +170 -120
  384. package/dist/plugin/contracts.cjs.map +1 -1
  385. package/dist/plugin/contracts.d.cts +102 -90
  386. package/dist/plugin/contracts.d.mts +102 -90
  387. package/dist/plugin/contracts.d.ts +102 -90
  388. package/dist/plugin/contracts.js +16 -12
  389. package/dist/plugin/index.cjs.map +1 -1
  390. package/dist/plugin/index.d.cts +1 -1
  391. package/dist/plugin/index.d.mts +1 -1
  392. package/dist/plugin/index.d.ts +1 -1
  393. package/dist/plugin/link.cjs +69 -64
  394. package/dist/plugin/link.cjs.map +1 -1
  395. package/dist/plugin/link.d.cts +5 -3
  396. package/dist/plugin/link.d.mts +5 -3
  397. package/dist/plugin/link.d.ts +5 -3
  398. package/dist/plugin/link.js +12 -8
  399. package/dist/record/codec/seal-manifest.d.cts +3 -3
  400. package/dist/record/codec/seal-manifest.d.mts +3 -3
  401. package/dist/record/codec/seal-manifest.d.ts +3 -3
  402. package/dist/record/family/attempt-note/definition.cjs +12 -0
  403. package/dist/record/family/attempt-note/definition.cjs.map +1 -0
  404. package/dist/record/family/attempt-note/definition.d.cts +6 -0
  405. package/dist/record/family/attempt-note/definition.d.mts +6 -0
  406. package/dist/record/family/attempt-note/definition.d.ts +6 -0
  407. package/dist/record/family/attempt-note/definition.js +6 -0
  408. package/dist/record/family/attempt-note/definition.js.map +1 -0
  409. package/dist/record/family/attempt-note/persistence.cjs +10 -0
  410. package/dist/record/family/attempt-note/persistence.cjs.map +1 -0
  411. package/dist/record/family/attempt-note/persistence.d.cts +6 -0
  412. package/dist/record/family/attempt-note/persistence.d.mts +6 -0
  413. package/dist/record/family/attempt-note/persistence.d.ts +6 -0
  414. package/dist/record/family/attempt-note/persistence.js +6 -0
  415. package/dist/record/family/attempt-note/persistence.js.map +1 -0
  416. package/dist/record/family/attempt-note/schema.cjs +20 -0
  417. package/dist/record/family/attempt-note/schema.cjs.map +1 -0
  418. package/dist/record/family/attempt-note/schema.d.cts +21 -0
  419. package/dist/record/family/attempt-note/schema.d.mts +21 -0
  420. package/dist/record/family/attempt-note/schema.d.ts +21 -0
  421. package/dist/record/family/attempt-note/schema.js +10 -0
  422. package/dist/record/family/attempt-note/schema.js.map +1 -0
  423. package/dist/record/family/catalog.cjs +32 -29
  424. package/dist/record/family/catalog.cjs.map +1 -1
  425. package/dist/record/family/catalog.d.cts +7 -2
  426. package/dist/record/family/catalog.d.mts +7 -2
  427. package/dist/record/family/catalog.d.ts +7 -2
  428. package/dist/record/family/current.cjs +48 -45
  429. package/dist/record/family/current.cjs.map +1 -1
  430. package/dist/record/family/current.d.cts +15 -0
  431. package/dist/record/family/current.d.mts +15 -0
  432. package/dist/record/family/current.d.ts +15 -0
  433. package/dist/record/model/index.js +66 -64
  434. package/dist/record/model/run-context.cjs +9 -3
  435. package/dist/record/model/run-context.cjs.map +1 -1
  436. package/dist/record/model/run-context.d.cts +9 -2
  437. package/dist/record/model/run-context.d.mts +9 -2
  438. package/dist/record/model/run-context.d.ts +9 -2
  439. package/dist/record/model/run-context.js +8 -6
  440. package/dist/record/model/seal-manifest.d.cts +1 -1
  441. package/dist/record/model/seal-manifest.d.mts +1 -1
  442. package/dist/record/model/seal-manifest.d.ts +1 -1
  443. package/dist/run/cli/contribution.cjs +6 -32
  444. package/dist/run/cli/contribution.cjs.map +1 -1
  445. package/dist/run/host/runtime.cjs +1 -1
  446. package/dist/run/host/runtime.cjs.map +1 -1
  447. package/dist/run/storage/sqlite.cjs +7 -7
  448. package/dist/run/storage/sqlite.cjs.map +1 -1
  449. package/dist/runner/adapter-usage.cjs +5 -3
  450. package/dist/runner/adapter-usage.cjs.map +1 -1
  451. package/dist/runner/adapter-usage.d.cts +2 -2
  452. package/dist/runner/adapter-usage.d.mts +2 -2
  453. package/dist/runner/adapter-usage.d.ts +2 -2
  454. package/dist/runner/adoption.cjs +9 -12
  455. package/dist/runner/adoption.cjs.map +1 -1
  456. package/dist/runner/attempt-notes.cjs +8 -0
  457. package/dist/runner/attempt-notes.cjs.map +1 -0
  458. package/dist/runner/attempt-notes.d.cts +4 -0
  459. package/dist/runner/attempt-notes.d.mts +4 -0
  460. package/dist/runner/attempt-notes.d.ts +4 -0
  461. package/dist/runner/attempt-notes.js +8 -0
  462. package/dist/runner/attempt-notes.js.map +1 -0
  463. package/dist/runner/attempt.cjs +61 -73
  464. package/dist/runner/attempt.cjs.map +1 -1
  465. package/dist/runner/attempt.d.cts +3 -3
  466. package/dist/runner/attempt.d.mts +3 -3
  467. package/dist/runner/attempt.d.ts +3 -3
  468. package/dist/runner/command-plan.cjs +21 -26
  469. package/dist/runner/command-plan.cjs.map +1 -1
  470. package/dist/runner/command-plan.d.cts +4 -4
  471. package/dist/runner/command-plan.d.mts +4 -4
  472. package/dist/runner/command-plan.d.ts +4 -4
  473. package/dist/runner/command-plan.js +4 -4
  474. package/dist/runner/config-identity.cjs.map +1 -1
  475. package/dist/runner/config-identity.d.cts +2 -2
  476. package/dist/runner/config-identity.d.mts +2 -2
  477. package/dist/runner/config-identity.d.ts +2 -2
  478. package/dist/runner/discover.cjs +6 -6
  479. package/dist/runner/discover.cjs.map +1 -1
  480. package/dist/runner/eval-selection.cjs +2 -2
  481. package/dist/runner/eval-selection.cjs.map +1 -1
  482. package/dist/runner/eval-selection.d.cts +2 -2
  483. package/dist/runner/eval-selection.d.mts +2 -2
  484. package/dist/runner/eval-selection.d.ts +2 -2
  485. package/dist/runner/feedback/human.cjs +1 -1
  486. package/dist/runner/feedback/human.cjs.map +1 -1
  487. package/dist/runner/feedback/json.cjs +4 -2
  488. package/dist/runner/feedback/json.cjs.map +1 -1
  489. package/dist/runner/feedback/json.d.cts +1 -1
  490. package/dist/runner/feedback/json.d.mts +1 -1
  491. package/dist/runner/feedback/json.d.ts +1 -1
  492. package/dist/runner/feedback/sink.cjs +1 -1
  493. package/dist/runner/feedback/sink.cjs.map +1 -1
  494. package/dist/runner/feedback/sink.d.cts +1 -1
  495. package/dist/runner/feedback/sink.d.mts +1 -1
  496. package/dist/runner/feedback/sink.d.ts +1 -1
  497. package/dist/runner/fingerprint.cjs +1 -1
  498. package/dist/runner/fingerprint.cjs.map +1 -1
  499. package/dist/runner/project-target.cjs.map +1 -1
  500. package/dist/runner/project-target.d.cts +2 -2
  501. package/dist/runner/project-target.d.mts +2 -2
  502. package/dist/runner/project-target.d.ts +2 -2
  503. package/dist/runner/record/attachments.cjs +2 -2
  504. package/dist/runner/record/attachments.cjs.map +1 -1
  505. package/dist/runner/record/planning.cjs +8 -2
  506. package/dist/runner/record/planning.cjs.map +1 -1
  507. package/dist/runner/record.cjs +2 -0
  508. package/dist/runner/record.cjs.map +1 -1
  509. package/dist/runner/report.cjs +3 -3
  510. package/dist/runner/report.cjs.map +1 -1
  511. package/dist/runner/report.d.cts +1 -1
  512. package/dist/runner/report.d.mts +1 -1
  513. package/dist/runner/report.d.ts +1 -1
  514. package/dist/runner/reuse-plan.cjs +2 -2
  515. package/dist/runner/reuse-plan.cjs.map +1 -1
  516. package/dist/runner/run.cjs +10 -45
  517. package/dist/runner/run.cjs.map +1 -1
  518. package/dist/runner/sandbox-pool.cjs +1 -2
  519. package/dist/runner/sandbox-pool.cjs.map +1 -1
  520. package/dist/runner/setup-prefix-preparation.cjs +1 -1
  521. package/dist/runner/setup-prefix-preparation.cjs.map +1 -1
  522. package/dist/runner/teardown-registry.cjs +2 -2
  523. package/dist/runner/teardown-registry.cjs.map +1 -1
  524. package/dist/runner/teardown-registry.d.cts +1 -1
  525. package/dist/runner/teardown-registry.d.mts +1 -1
  526. package/dist/runner/teardown-registry.d.ts +1 -1
  527. package/dist/runner/types.cjs +4 -4
  528. package/dist/runner/types.cjs.map +1 -1
  529. package/dist/runner/types.d.cts +64 -93
  530. package/dist/runner/types.d.mts +64 -93
  531. package/dist/runner/types.d.ts +64 -93
  532. package/dist/runner/types.js +2 -2
  533. package/dist/sandbox/action.cjs +1 -1
  534. package/dist/sandbox/action.cjs.map +1 -1
  535. package/dist/sandbox/cli/contribution.cjs +17 -14
  536. package/dist/sandbox/cli/contribution.cjs.map +1 -1
  537. package/dist/sandbox/cli/contribution.d.cts +1 -1
  538. package/dist/sandbox/cli/contribution.d.mts +1 -1
  539. package/dist/sandbox/cli/contribution.d.ts +1 -1
  540. package/dist/sandbox/commands.cjs +1 -1
  541. package/dist/sandbox/commands.cjs.map +1 -1
  542. package/dist/sandbox/commands.d.cts +1 -1
  543. package/dist/sandbox/commands.d.mts +1 -1
  544. package/dist/sandbox/commands.d.ts +1 -1
  545. package/dist/sandbox/compose.cjs +2 -2
  546. package/dist/sandbox/compose.cjs.map +1 -1
  547. package/dist/sandbox/docker-profile/registry.cjs +5 -9
  548. package/dist/sandbox/docker-profile/registry.cjs.map +1 -1
  549. package/dist/sandbox/docker-profile/registry.d.cts +0 -3
  550. package/dist/sandbox/docker-profile/registry.d.mts +0 -3
  551. package/dist/sandbox/docker-profile/registry.d.ts +0 -3
  552. package/dist/sandbox/docker-profile/registry.js +6 -12
  553. package/dist/sandbox/docker-profile/runtime.cjs +1 -1
  554. package/dist/sandbox/docker-profile/runtime.cjs.map +1 -1
  555. package/dist/sandbox/docker-profile/schema.cjs +12 -16
  556. package/dist/sandbox/docker-profile/schema.cjs.map +1 -1
  557. package/dist/sandbox/docker-profile/schema.d.cts +2 -6
  558. package/dist/sandbox/docker-profile/schema.d.mts +2 -6
  559. package/dist/sandbox/docker-profile/schema.d.ts +2 -6
  560. package/dist/sandbox/docker-profile/schema.js +24 -32
  561. package/dist/sandbox/incus.cjs +2 -2
  562. package/dist/sandbox/incus.cjs.map +1 -1
  563. package/dist/sandbox/index.cjs +4 -35
  564. package/dist/sandbox/index.cjs.map +1 -1
  565. package/dist/sandbox/index.d.cts +4 -8
  566. package/dist/sandbox/index.d.mts +4 -8
  567. package/dist/sandbox/index.d.ts +4 -8
  568. package/dist/sandbox/index.js +116 -172
  569. package/dist/sandbox/index.mjs +116 -172
  570. package/dist/sandbox/layer.cjs +3 -3
  571. package/dist/sandbox/layer.cjs.map +1 -1
  572. package/dist/sandbox/link.cjs +5 -0
  573. package/dist/sandbox/link.cjs.map +1 -1
  574. package/dist/sandbox/link.d.cts +3 -0
  575. package/dist/sandbox/link.d.mts +3 -0
  576. package/dist/sandbox/link.d.ts +3 -0
  577. package/dist/sandbox/runtime.cjs +9 -4
  578. package/dist/sandbox/runtime.cjs.map +1 -1
  579. package/dist/shared/failure-class.cjs +5 -5
  580. package/dist/shared/failure-class.cjs.map +1 -1
  581. package/dist/shared/failure-class.d.cts +4 -10
  582. package/dist/shared/failure-class.d.mts +4 -10
  583. package/dist/shared/failure-class.d.ts +4 -10
  584. package/dist/shared/types.cjs.map +1 -1
  585. package/dist/shared/types.d.cts +1 -1
  586. package/dist/shared/types.d.mts +1 -1
  587. package/dist/shared/types.d.ts +1 -1
  588. package/dist/show/contribution.cjs +17 -2
  589. package/dist/show/contribution.cjs.map +1 -1
  590. package/dist/show/contribution.d.cts +14 -0
  591. package/dist/show/contribution.d.mts +14 -0
  592. package/dist/show/contribution.d.ts +14 -0
  593. package/dist/show/model.cjs +8 -5
  594. package/dist/show/model.cjs.map +1 -1
  595. package/dist/show/model.d.cts +11 -8
  596. package/dist/show/model.d.mts +11 -8
  597. package/dist/show/model.d.ts +11 -8
  598. package/dist/show/render.cjs +34 -22
  599. package/dist/show/render.cjs.map +1 -1
  600. package/dist/sources/projector.cjs +1 -1
  601. package/dist/sources/projector.cjs.map +1 -1
  602. package/dist/types.cjs +1 -1
  603. package/dist/types.cjs.map +1 -1
  604. package/dist/types.d.cts +1 -1
  605. package/dist/types.d.mts +1 -1
  606. package/dist/types.d.ts +1 -1
  607. package/dist/types.js +2 -2
  608. package/dist/view/app-dist/.vite/manifest.json +2 -2
  609. package/dist/view/app-dist/assets/{index-B3ijZRph.js → index-CxrOUvHC.js} +17 -17
  610. package/dist/view/app-dist/assets/{quality-cost-scatter-B--DfJ9s.js → quality-cost-scatter-B6Aiss7x.js} +1 -1
  611. package/dist/view/app-dist/index.html +1 -1
  612. package/dist/view/cli/contribution.cjs +1 -1
  613. package/dist/view/cli/contribution.cjs.map +1 -1
  614. package/dist/view/function-runtime.mjs +318 -121
  615. package/dist/view/http-protocol.d.cts +1 -1
  616. package/dist/view/http-protocol.d.mts +1 -1
  617. package/dist/view/http-protocol.d.ts +1 -1
  618. package/dist/view/inspection-host.cjs +2 -2
  619. package/dist/view/inspection-host.cjs.map +1 -1
  620. package/dist/view/inspection-host.d.cts +349 -331
  621. package/dist/view/inspection-host.d.mts +349 -331
  622. package/dist/view/inspection-host.d.ts +349 -331
  623. package/docs-site/zh/examples/integrations/ai-sdk-v7.mdx +6 -6
  624. package/docs-site/zh/examples/integrations/claude-sdk.mdx +5 -5
  625. package/docs-site/zh/examples/integrations/codex-sdk.mdx +4 -4
  626. package/docs-site/zh/examples/integrations/langgraph.mdx +4 -4
  627. package/docs-site/zh/examples/integrations/pi-sdk.mdx +5 -5
  628. package/docs-site/zh/explanation/adapter.mdx +6 -6
  629. package/docs-site/zh/explanation/assert.mdx +7 -7
  630. package/docs-site/zh/explanation/drive.mdx +4 -4
  631. package/docs-site/zh/explanation/hitl.mdx +2 -2
  632. package/docs-site/zh/explanation/judge.mdx +2 -2
  633. package/docs-site/zh/introduction.mdx +2 -2
  634. package/docs-site/zh/reference/builtin-agents.mdx +46 -49
  635. package/docs-site/zh/reference/cli.mdx +16 -14
  636. package/docs-site/zh/reference/define-agent.mdx +19 -19
  637. package/docs-site/zh/reference/define-config.mdx +7 -15
  638. package/docs-site/zh/reference/define-eval.mdx +20 -14
  639. package/docs-site/zh/reference/define-experiment.mdx +18 -39
  640. package/docs-site/zh/reference/events.mdx +1 -1
  641. package/docs-site/zh/reference/expect.mdx +21 -0
  642. package/docs-site/zh/reference/official-adapters.mdx +12 -5
  643. package/docs-site/zh/troubleshooting/debugging.mdx +2 -2
  644. package/docs-site/zh/troubleshooting/recover-after-kill.mdx +1 -1
  645. package/docs-site/zh/tutorials/agent-onboarding.mdx +2 -2
  646. package/docs-site/zh/tutorials/authoring.mdx +2 -2
  647. package/docs-site/zh/tutorials/compare-runs.mdx +1 -1
  648. package/docs-site/zh/tutorials/concurrency.mdx +8 -8
  649. package/docs-site/zh/tutorials/configuration.mdx +5 -5
  650. package/docs-site/zh/tutorials/control-run-cost.mdx +19 -19
  651. package/docs-site/zh/tutorials/eval-groups.mdx +1 -1
  652. package/docs-site/zh/tutorials/evaluation-kinds.mdx +5 -5
  653. package/docs-site/zh/tutorials/experiment-services.mdx +32 -32
  654. package/docs-site/zh/tutorials/handle-execution-failures.mdx +2 -28
  655. package/docs-site/zh/tutorials/plugins.mdx +49 -143
  656. package/docs-site/zh/tutorials/sandbox-agent.mdx +1 -1
  657. package/docs-site/zh/tutorials/sandbox-reuse.mdx +7 -7
  658. package/docs-site/zh/tutorials/upgrade-0-18.mdx +1 -1
  659. package/docs-site/zh/tutorials/upgrade-0-19.mdx +121 -0
  660. package/docs-site/zh/tutorials/upgrade-0-20.mdx +12 -0
  661. package/docs-site/zh/tutorials/verify-judge.mdx +2 -2
  662. package/docs-site/zh/tutorials/viewing-results.mdx +2 -2
  663. package/docs-site/zh/tutorials/write-experiment.mdx +1 -1
  664. package/docs-site/zh/tutorials/write-send.mdx +13 -13
  665. package/package.json +1 -1
  666. package/dist/agents/effect-runtime.cjs.map +0 -1
  667. package/dist/agents/effect-runtime.d.cts +0 -29
  668. package/dist/agents/effect-runtime.d.mts +0 -29
  669. package/dist/agents/effect-runtime.d.ts +0 -29
  670. package/dist/agents/effect-runtime.js +0 -16
  671. package/dist/agents/effect-runtime.js.map +0 -1
  672. package/dist/agents/session-slot.cjs.map +0 -1
  673. package/dist/agents/session-slot.d.cts +0 -12
  674. package/dist/agents/session-slot.d.mts +0 -12
  675. package/dist/agents/session-slot.d.ts +0 -12
  676. package/dist/agents/session-slot.js +0 -6
  677. package/dist/agents/session-slot.js.map +0 -1
  678. package/dist/model-slots.js +0 -14
  679. package/dist/model-slots.js.map +0 -1
@@ -238,6 +238,7 @@ function beforeFromDeclaration(owner, ordinal, declaration) {
238
238
  return Object.freeze({
239
239
  kind: "action",
240
240
  owner,
241
+ ...((0, contracts_ts_1.pluginSourceOf)(declaration) === undefined ? {} : { pluginSource: (0, contracts_ts_1.pluginSourceOf)(declaration) }),
241
242
  ordinal,
242
243
  id: data.metadata.id,
243
244
  metadata: data.metadata,
@@ -250,6 +251,7 @@ function beforeFromDeclaration(owner, ordinal, declaration) {
250
251
  return Object.freeze({
251
252
  kind: "hook",
252
253
  owner,
254
+ ...((0, contracts_ts_1.pluginSourceOf)(declaration) === undefined ? {} : { pluginSource: (0, contracts_ts_1.pluginSourceOf)(declaration) }),
253
255
  ordinal,
254
256
  id,
255
257
  metadata: (0, action_ts_1.normalizeSandboxBeforeMetadata)({ id }),
@@ -266,6 +268,7 @@ function beforeFromDeclaration(owner, ordinal, declaration) {
266
268
  return Object.freeze({
267
269
  kind: "command",
268
270
  owner,
271
+ ...((0, contracts_ts_1.pluginSourceOf)(declaration) === undefined ? {} : { pluginSource: (0, contracts_ts_1.pluginSourceOf)(declaration) }),
269
272
  ordinal,
270
273
  id,
271
274
  metadata,
@@ -561,6 +564,7 @@ function linkedAfter(contributions) {
561
564
  kind: "action",
562
565
  owner: contribution.owner,
563
566
  ordinal,
567
+ ...((0, contracts_ts_1.pluginSourceOf)(declaration) === undefined ? {} : { pluginSource: (0, contracts_ts_1.pluginSourceOf)(declaration) }),
564
568
  data: (0, action_ts_1.sandboxAfterActionDataOf)(declaration.action),
565
569
  fingerprint: afterDeclarationFingerprint(contribution.owner, ordinal, declaration),
566
570
  })
@@ -568,6 +572,7 @@ function linkedAfter(contributions) {
568
572
  kind: "command",
569
573
  owner: contribution.owner,
570
574
  ordinal,
575
+ ...((0, contracts_ts_1.pluginSourceOf)(declaration) === undefined ? {} : { pluginSource: (0, contracts_ts_1.pluginSourceOf)(declaration) }),
571
576
  declaration,
572
577
  fingerprint: afterDeclarationFingerprint(contribution.owner, ordinal, declaration),
573
578
  }))));
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","sourceRoot":"","sources":["link.ts"],"names":[],"mappings":"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","sourcesContent":["// discovery + selector 之后的纯 SandboxLayer linker。\n// 本模块只读 factory 产物,不读文件、不访问网络、不调用 Provider,也不创建 Sandbox。\nimport { sandboxCommandDeclarationOf, sandboxCommandIdentityJson, type SandboxCommand, type SandboxCommandDeclaration, } from \"./commands.ts\";\nimport { normalizeSandboxBeforeMetadata, sandboxActionDataOf, sandboxAfterActionDataOf, type NormalizedSandboxBeforeMetadata, type SandboxActionData, type SandboxChangeFrequency, } from \"./action.ts\";\nimport { sandboxLayer, sandboxLayerStateOf, sandboxTemplateIdentity, type SandboxLayer, type SandboxLayerKind, type SandboxLayerState, type SandboxRequirement, type SandboxBeforeDeclaration, type SandboxAfterDeclaration, type SandboxTemplateDeclaration, } from \"./layer.ts\";\nimport type { JsonValue } from \"../shared/types.ts\";\nimport type { SandboxHook } from \"./types.ts\";\nimport { Data, Effect } from \"effect\";\nimport { pluginLifecycleIdentity, pluginLifecycleProjection, type LinkedPluginLifecycle, } from \"../plugin/contracts.ts\";\nexport interface SandboxLayerDeclarationSite {\n readonly file: string;\n readonly line?: number;\n readonly column?: number;\n readonly expression?: string;\n}\nexport interface LinkedSandboxLayerDeclarationSite {\n readonly file: string;\n readonly line: SandboxDeclaredValue<number>;\n readonly column: SandboxDeclaredValue<number>;\n readonly expression: SandboxDeclaredValue<string>;\n}\nexport type SandboxDeclaredValue<Value> = {\n readonly _tag: \"Omitted\";\n} | {\n readonly _tag: \"Declared\";\n readonly value: Value;\n};\nexport interface SandboxLayerContributionInput {\n readonly id: string;\n /** undefined 表示作者省略字段;显式 sandboxLayer() 与 undefined 不等价于 Direct Agent。 */\n readonly layer?: SandboxLayer;\n readonly declaredAt?: SandboxLayerDeclarationSite;\n}\nexport interface SandboxLayerPairInput {\n readonly eval: SandboxLayerContributionInput;\n readonly group?: SandboxLayerContributionInput;\n readonly experiment: SandboxLayerContributionInput;\n readonly agent: {\n readonly kind: \"direct\" | \"sandbox\" | \"custom\";\n readonly name: string;\n readonly sandbox?: SandboxLayer<\"command-only\">;\n };\n}\nexport interface SandboxLayerOwnerRef {\n readonly kind: \"eval\" | \"eval-group\" | \"experiment\";\n readonly id: string;\n}\nexport interface SandboxAgentOwnerRef {\n readonly kind: \"agent\";\n readonly id: string;\n}\nexport type SandboxScheduleOwnerRef = SandboxLayerOwnerRef | SandboxAgentOwnerRef;\nexport interface SandboxDeclarationOrder {\n readonly owner: SandboxScheduleOwnerRef;\n readonly ordinal: number;\n}\nexport interface SandboxBeforeDependencyProjection {\n readonly id: string;\n readonly source: \"explicit\" | \"capability\";\n readonly capability?: string;\n}\nexport type SandboxCommandFingerprint = {\n readonly kind: \"stable\";\n readonly owner: SandboxScheduleOwnerRef;\n readonly index: number;\n readonly id: string;\n readonly revision: string;\n readonly inputs: JsonValue;\n} | {\n readonly kind: \"opaque\";\n readonly owner: SandboxScheduleOwnerRef;\n readonly index: number;\n};\n/** 生命周期函数本身不可序列化;这个 marker 只固定其 owner、phase 与追加位置。 */\nexport interface SandboxLifecycleFingerprint {\n readonly kind: \"opaque\";\n readonly owner: SandboxScheduleOwnerRef;\n readonly phase: \"setup\" | \"teardown\";\n readonly index: number;\n}\nexport interface SandboxLayerDeclarationView {\n readonly owner: SandboxLayerOwnerRef;\n readonly explicit: boolean;\n readonly kind: SandboxLayerKind;\n readonly template: SandboxDeclaredValue<SandboxTemplateDeclaration>;\n readonly commands: readonly SandboxCommandFingerprint[];\n readonly declaredAt: SandboxDeclaredValue<LinkedSandboxLayerDeclarationSite>;\n}\nexport type SandboxLinkIssueCode = \"sandbox.template-missing\" | \"sandbox.template-conflict\" | \"sandbox.unexpected-for-direct-agent\" | \"eval-group-direct-agent\";\nexport interface SandboxLinkIssue {\n readonly code: SandboxLinkIssueCode;\n readonly pair: {\n readonly evalId: string;\n readonly experimentId: string;\n readonly agentKind: \"direct\" | \"sandbox\" | \"custom\";\n readonly agentName: string;\n };\n readonly eval: SandboxLayerDeclarationView;\n readonly group?: SandboxLayerDeclarationView;\n readonly experiment: SandboxLayerDeclarationView;\n readonly summary: string;\n readonly actions: readonly string[];\n}\nexport class SandboxLayerLinkError extends Data.TaggedError(\"SandboxLayerLinkError\")<{\n readonly code: \"sandbox.link-failed\";\n readonly issues: readonly SandboxLinkIssue[];\n readonly message: string;\n}> {\n}\nexport type SandboxBeforePlanningFailureReason = \"duplicate-action-id\" | \"duplicate-capability-provider\" | \"missing-dependency\" | \"missing-capability\" | \"dependency-cycle\";\n/** Author-declared DAG failures are planning failures, never Effect defects. */\nexport class SandboxBeforePlanningError extends Data.TaggedError(\"SandboxBeforePlanningError\")<{\n readonly code: \"sandbox.before-planning-failed\";\n readonly reason: SandboxBeforePlanningFailureReason;\n readonly occurrencePath: readonly string[];\n /** Every action id directly involved in the failure, in stable declaration order. */\n readonly actionIds: readonly string[];\n readonly actionId?: string;\n readonly dependencyId?: string;\n readonly capability?: string;\n readonly providerActionIds?: readonly string[];\n readonly blockedActionIds?: readonly string[];\n readonly message: string;\n}> {\n}\nfunction beforePlanningError(input: Omit<ConstructorParameters<typeof SandboxBeforePlanningError>[0], \"code\" | \"occurrencePath\"> & {\n readonly occurrencePath: readonly string[];\n}): SandboxBeforePlanningError {\n return new SandboxBeforePlanningError({\n code: \"sandbox.before-planning-failed\",\n ...input,\n occurrencePath: Object.freeze([...input.occurrencePath]),\n actionIds: Object.freeze([...input.actionIds]),\n ...(input.providerActionIds === undefined\n ? {}\n : { providerActionIds: Object.freeze([...input.providerActionIds]) }),\n ...(input.blockedActionIds === undefined\n ? {}\n : { blockedActionIds: Object.freeze([...input.blockedActionIds]) }),\n });\n}\nfunction sandboxLayerLinkError(issues: readonly SandboxLinkIssue[]): SandboxLayerLinkError {\n const frozen = Object.freeze([...issues]);\n const counts = new Map<SandboxLinkIssueCode, number>();\n for (const issue of frozen)\n counts.set(issue.code, (counts.get(issue.code) ?? 0) + 1);\n const breakdown = [...counts].map(([code, count]) => `${code}=${count}`).join(\", \");\n return new SandboxLayerLinkError({\n code: \"sandbox.link-failed\",\n issues: frozen,\n message: `Sandbox layer linking failed for ${frozen.length} pairs` +\n `${breakdown === \"\" ? \"\" : ` (${breakdown})`}. No Sandbox was created.`,\n });\n}\nfunction declarationSummary(view: SandboxLayerDeclarationView): string {\n const expression = view.declaredAt._tag === \"Declared\" && view.declaredAt.value.expression._tag === \"Declared\"\n ? view.declaredAt.value.expression.value\n : view.template._tag === \"Declared\"\n ? `${view.template.value.provider}:${view.template.value.kind}`\n : view.explicit ? \"sandboxLayer()\" : \"<omitted>\";\n const location = view.declaredAt._tag === \"Omitted\"\n ? \"<unknown source>\"\n : `${view.declaredAt.value.file}${view.declaredAt.value.line._tag === \"Omitted\" ? \"\" : `:${view.declaredAt.value.line.value}`}`;\n return `${expression} at ${location}`;\n}\n/** CLI 面向作者的聚合错误;不泄漏框架 stack,逐 pair 给出两处声明与可执行修法。 */\nexport function formatSandboxLayerLinkError(error: SandboxLayerLinkError): string {\n const lines: string[] = [];\n for (const issue of error.issues) {\n lines.push(`${issue.code}: ${issue.summary}`);\n lines.push(` eval: ${declarationSummary(issue.eval)}`);\n if (issue.group !== undefined) {\n lines.push(` eval group: ${declarationSummary(issue.group)}`);\n }\n lines.push(` experiment: ${declarationSummary(issue.experiment)}`);\n for (const action of issue.actions)\n lines.push(` fix: ${action}`);\n lines.push(\"\");\n }\n lines.push(`${error.issues.length} invalid pairs found. No Sandbox was created.`);\n return lines.join(\"\\n\");\n}\nexport interface LinkedSandboxCommand {\n readonly owner: SandboxScheduleOwnerRef;\n /** 同一 owner layer 内从零开始的追加序号。 */\n readonly index: number;\n readonly command: SandboxCommand;\n readonly fingerprint: SandboxCommandFingerprint;\n}\ninterface LinkedSandboxBeforeBase {\n readonly owner: SandboxScheduleOwnerRef;\n readonly ordinal: number;\n readonly id: string;\n readonly metadata: NormalizedSandboxBeforeMetadata;\n readonly fingerprint: SandboxCommandFingerprint;\n}\nexport type LinkedSandboxBefore = (LinkedSandboxBeforeBase & {\n readonly kind: \"action\";\n readonly data: SandboxActionData;\n}) | (LinkedSandboxBeforeBase & {\n readonly kind: \"command\";\n readonly declaration: SandboxCommandDeclaration;\n}) | (LinkedSandboxBeforeBase & {\n readonly kind: \"hook\";\n readonly hook: SandboxHook;\n});\nexport type LinkedSandboxAfter = {\n readonly kind: \"action\";\n readonly owner: SandboxScheduleOwnerRef;\n readonly ordinal: number;\n readonly data: SandboxActionData;\n readonly fingerprint: SandboxCommandFingerprint;\n} | {\n readonly kind: \"command\";\n readonly owner: SandboxScheduleOwnerRef;\n readonly ordinal: number;\n readonly declaration: Extract<SandboxAfterDeclaration, {\n readonly kind: \"command\";\n }>;\n readonly fingerprint: SandboxCommandFingerprint;\n};\nexport type ScheduledSandboxBefore = LinkedSandboxBefore & {\n readonly dependencies: readonly SandboxBeforeDependencyProjection[];\n readonly executionOrder: {\n readonly topologicalOrdinal: number;\n readonly occurrencePath: readonly string[];\n };\n readonly schedulingReason: string;\n};\nexport interface SandboxLayerFingerprintProjection {\n readonly version: 1;\n readonly templateOwner: SandboxLayerOwnerRef;\n readonly template: JsonValue;\n readonly commands: readonly SandboxCommandFingerprint[];\n readonly requirements?: readonly LinkedSandboxRequirement[];\n /** Ordered cleanup shape; opaque callbacks retain owner + ordinal without serializing closures. */\n readonly after?: readonly SandboxCommandFingerprint[];\n /** 有 hook 时才出现,避免把回调实现或闭包写入 record。 */\n readonly lifecycle?: readonly SandboxLifecycleFingerprint[];\n readonly plugins?: JsonValue;\n}\nexport interface LinkedSandboxRequirement {\n readonly owner: SandboxScheduleOwnerRef;\n readonly requirement: SandboxRequirement;\n}\nexport interface LinkedSandboxPluginLifecycle {\n readonly owner: SandboxLayerOwnerRef;\n readonly lifecycle: LinkedPluginLifecycle;\n}\nexport interface LinkedSandboxPair {\n readonly kind: \"sandbox\";\n readonly evalId: string;\n readonly experimentId: string;\n readonly agentName: string;\n readonly templateOwner: SandboxLayerOwnerRef;\n readonly template: SandboxTemplateDeclaration;\n /** template owner 的 commands 在前,另一作者的 commands 在后。 */\n readonly commands: readonly LinkedSandboxCommand[];\n /** Provider-neutral physical requirements declared by Sandbox layers. */\n readonly requirements: readonly LinkedSandboxRequirement[];\n /** 所有作者声明的 action / stable command / opaque callback 经同一 DAG 排序。 */\n readonly before: readonly ScheduledSandboxBefore[];\n /** after 只登记,执行方按此数组逆序解释,不参与 before DAG。 */\n readonly after: readonly LinkedSandboxAfter[];\n /** 物理实例生命周期:template owner 在前,另一 layer 在后。回调不进 record,但保留 marker。 */\n readonly setupHooks: readonly SandboxHook[];\n readonly teardownHooks: readonly SandboxHook[];\n /** Physical lifecycle plugins, in flattened SandboxLayer order. */\n readonly pluginLifecycles: readonly LinkedSandboxPluginLifecycle[];\n /** Eval 自己声明 author hook 或 Sandbox Plugin lifecycle 时实例不得跨 Eval 共用。 */\n readonly hasEvalPhysicalLifecycle: boolean;\n readonly evalGroupId?: string;\n readonly fingerprint: SandboxLayerFingerprintProjection;\n}\nexport interface LinkedDirectPair {\n readonly kind: \"direct\";\n readonly evalId: string;\n readonly experimentId: string;\n readonly agentName: string;\n}\nexport type LinkedSandboxLayerPair = LinkedSandboxPair | LinkedDirectPair;\nfunction commandFingerprintIdentity(entry: SandboxCommandFingerprint): JsonValue {\n return entry.kind === \"stable\"\n ? {\n kind: entry.kind,\n owner: { kind: entry.owner.kind, id: entry.owner.id },\n index: entry.index,\n id: entry.id,\n revision: entry.revision,\n inputs: entry.inputs,\n }\n : {\n kind: entry.kind,\n owner: { kind: entry.owner.kind, id: entry.owner.id },\n index: entry.index,\n };\n}\n/** Single owner-aware identity for every physical Sandbox lifecycle cohort. */\nexport function sandboxPhysicalLifecycleIdentity(pair: LinkedSandboxLayerPair): JsonValue {\n if (pair.kind === \"direct\")\n return Object.freeze({ kind: \"direct\" });\n const author: JsonValue[] = (pair.fingerprint.lifecycle ?? []).map((entry) => ({\n kind: entry.kind,\n owner: { kind: entry.owner.kind, id: entry.owner.id },\n phase: entry.phase,\n index: entry.index,\n }));\n return Object.freeze({\n author,\n ...((pair.fingerprint.after?.length ?? 0) === 0\n ? {}\n : { after: pair.fingerprint.after!.map(commandFingerprintIdentity) }),\n plugins: pair.fingerprint.plugins ?? [],\n });\n}\n/**\n * 把 linked pair 按作者重新投影成缓存身份。owner id 不进身份;所在文件的 id/源码分别由\n * experiment key 与 eval source closure 拥有。Experiment 投影进 configHash,Eval 投影进\n * 每条 fingerprint,templateOwner 由两者共同可重建。\n */\nexport function sandboxLayerIdentityFor(linked: LinkedSandboxLayerPair, ownerKind: SandboxScheduleOwnerRef[\"kind\"]): JsonValue {\n if (linked.kind === \"direct\")\n return { kind: \"direct\" };\n const ownsTemplate = linked.templateOwner.kind === ownerKind;\n const commands: JsonValue[] = linked.commands\n .filter((entry) => entry.owner.kind === ownerKind)\n .map((entry): JsonValue => entry.fingerprint.kind === \"stable\"\n ? {\n kind: \"stable\" as const,\n index: entry.index,\n id: entry.fingerprint.id,\n revision: entry.fingerprint.revision,\n inputs: entry.fingerprint.inputs,\n }\n : { kind: \"opaque\" as const, index: entry.index });\n const lifecycle = linked.fingerprint.lifecycle\n ?.filter((entry) => entry.owner.kind === ownerKind)\n .map((entry): JsonValue => ({ kind: entry.kind, phase: entry.phase, index: entry.index }));\n const after = (linked.fingerprint.after ?? [])\n .filter((entry) => entry.owner.kind === ownerKind)\n .map((entry): JsonValue => entry.kind === \"stable\"\n ? {\n kind: entry.kind,\n index: entry.index,\n id: entry.id,\n revision: entry.revision,\n inputs: entry.inputs,\n }\n : { kind: entry.kind, index: entry.index });\n const requirements = (linked.fingerprint.requirements ?? [])\n .filter((entry) => entry.owner.kind === ownerKind)\n .map((entry): JsonValue => ({\n _tag: entry.requirement._tag,\n docker: {\n api: entry.requirement.docker.api,\n compose: entry.requirement.docker.compose,\n isolation: entry.requirement.docker.isolation,\n minimumDataBytes: entry.requirement.docker.minimumDataBytes,\n },\n }));\n return {\n layer: ownsTemplate\n ? { _tag: \"Template\", value: sandboxTemplateIdentity(linked.template) }\n : { _tag: \"CommandOnly\" },\n commands,\n ...(requirements.length === 0 ? {} : { requirements }),\n ...(after.length === 0 ? {} : { after }),\n ...(lifecycle === undefined || lifecycle.length === 0 ? {} : { lifecycle }),\n ...(linked.pluginLifecycles.filter((entry) => entry.owner.kind === ownerKind).length === 0\n ? {}\n : { plugins: pluginLifecycleProjection(linked.pluginLifecycles.filter((entry) => entry.owner.kind === ownerKind).map((entry) => entry.lifecycle)) }),\n };\n}\ninterface NormalizedContribution {\n readonly owner: SandboxLayerOwnerRef;\n readonly explicit: boolean;\n readonly state: SandboxLayerState;\n readonly view: SandboxLayerDeclarationView;\n}\ninterface NormalizedScheduleContribution {\n readonly owner: SandboxScheduleOwnerRef;\n readonly explicit: boolean;\n readonly state: SandboxLayerState;\n}\ninterface TemplateContribution extends NormalizedContribution {\n readonly state: SandboxLayerState<\"template-bearing\">;\n}\nconst OMITTED_LAYER = sandboxLayer();\nfunction freezeOwner(kind: SandboxLayerOwnerRef[\"kind\"], id: string): SandboxLayerOwnerRef {\n return Object.freeze({ kind, id });\n}\nfunction declaredValue<Value>(value: Value | undefined): SandboxDeclaredValue<Value> {\n return value === undefined\n ? Object.freeze({ _tag: \"Omitted\" })\n : Object.freeze({ _tag: \"Declared\", value });\n}\nfunction freezeSite(site: SandboxLayerDeclarationSite | undefined): SandboxDeclaredValue<LinkedSandboxLayerDeclarationSite> {\n if (site === undefined)\n return Object.freeze({ _tag: \"Omitted\" });\n return Object.freeze({ _tag: \"Declared\", value: Object.freeze({\n file: site.file,\n line: declaredValue(site.line),\n column: declaredValue(site.column),\n expression: declaredValue(site.expression),\n }) });\n}\nfunction fingerprintCommand(owner: SandboxScheduleOwnerRef, index: number, declaration: SandboxCommandDeclaration): SandboxCommandFingerprint {\n if (declaration.kind === \"opaque\")\n return Object.freeze({ kind: \"opaque\", owner, index });\n return Object.freeze({\n kind: \"stable\",\n owner,\n index,\n id: declaration.identity.id,\n revision: declaration.identity.revision,\n inputs: sandboxCommandIdentityJson(declaration.identity.inputs),\n });\n}\nfunction actionFingerprint(owner: SandboxScheduleOwnerRef, index: number, data: SandboxActionData): SandboxCommandFingerprint {\n return Object.freeze({\n kind: \"stable\" as const,\n owner,\n index,\n id: data.metadata.id,\n revision: \"sandbox-action/v1\",\n inputs: {\n family: data.plan.family,\n state: data.plan.state,\n input: data.plan.input,\n steps: data.plan.steps,\n fingerprint: data.plan.fingerprint,\n scheduling: {\n changeFrequency: data.metadata.changeFrequency.value,\n dependsOn: data.metadata.dependsOn.map((reference) => reference.id),\n requires: [...data.metadata.requires],\n provides: [...data.metadata.provides],\n },\n } as unknown as JsonValue,\n });\n}\nfunction afterDeclarationFingerprint(owner: SandboxScheduleOwnerRef, ordinal: number, declaration: SandboxAfterDeclaration): SandboxCommandFingerprint {\n if (declaration.kind === \"action\") {\n return actionFingerprint(owner, ordinal, sandboxAfterActionDataOf(declaration.action));\n }\n return Object.freeze({ kind: \"opaque\" as const, owner, index: ordinal });\n}\nfunction generatedBeforeId(owner: SandboxScheduleOwnerRef, ordinal: number): string {\n return `${owner.kind}:${owner.id}:before:${ordinal}`;\n}\nfunction beforeFromDeclaration(owner: SandboxScheduleOwnerRef, ordinal: number, declaration: SandboxBeforeDeclaration): LinkedSandboxBefore {\n if (declaration.kind === \"action\") {\n const data = sandboxActionDataOf(declaration.action);\n return Object.freeze({\n kind: \"action\" as const,\n owner,\n ordinal,\n id: data.metadata.id,\n metadata: data.metadata,\n data,\n fingerprint: actionFingerprint(owner, ordinal, data),\n });\n }\n if (declaration.kind === \"hook\") {\n const id = generatedBeforeId(owner, ordinal);\n return Object.freeze({\n kind: \"hook\" as const,\n owner,\n ordinal,\n id,\n metadata: normalizeSandboxBeforeMetadata({ id }),\n hook: declaration.hook,\n fingerprint: Object.freeze({ kind: \"opaque\" as const, owner, index: ordinal }),\n });\n }\n const command = declaration.declaration;\n const explicit = command.kind === \"stable\" && command.metadata.explicitId;\n const id = explicit ? command.identity.id : generatedBeforeId(owner, ordinal);\n const metadata = command.kind === \"stable\"\n ? Object.freeze({ ...command.metadata.scheduling, id })\n : normalizeSandboxBeforeMetadata({ id });\n return Object.freeze({\n kind: \"command\" as const,\n owner,\n ordinal,\n id,\n metadata,\n declaration: command,\n fingerprint: fingerprintCommand(owner, ordinal, command),\n });\n}\n/** @internal Agent ensure uses the same command declaration/link path as author-owned before entries. */\nexport function linkSandboxCommandBefore(owner: SandboxScheduleOwnerRef, ordinal: number, command: SandboxCommand): LinkedSandboxBefore {\n return beforeFromDeclaration(owner, ordinal, Object.freeze({\n kind: \"command\" as const,\n declaration: sandboxCommandDeclarationOf(command),\n }));\n}\nfunction fingerprintLifecycle(owner: SandboxScheduleOwnerRef, phase: SandboxLifecycleFingerprint[\"phase\"], hooks: readonly SandboxHook[]): readonly SandboxLifecycleFingerprint[] {\n return Object.freeze(hooks.map((_, index) => Object.freeze({\n kind: \"opaque\" as const,\n owner,\n phase,\n index,\n })));\n}\nfunction normalizeAgentContribution(input: SandboxLayerPairInput[\"agent\"]): NormalizedScheduleContribution {\n const owner = Object.freeze({ kind: \"agent\" as const, id: input.name });\n const state = sandboxLayerStateOf(input.sandbox ?? OMITTED_LAYER);\n if (state.kind !== \"command-only\") {\n throw new TypeError(\"Sandbox Agent layers must be command-only and cannot provide a template\");\n }\n return Object.freeze({ owner, explicit: input.sandbox !== undefined, state });\n}\nfunction normalizeContribution(kind: SandboxLayerOwnerRef[\"kind\"], input: SandboxLayerContributionInput): NormalizedContribution {\n const owner = freezeOwner(kind, input.id);\n const explicit = input.layer !== undefined;\n const state = sandboxLayerStateOf(input.layer ?? OMITTED_LAYER);\n const commands = Object.freeze(state.before.map((declaration, index) => beforeFromDeclaration(owner, index, declaration).fingerprint));\n const template: SandboxDeclaredValue<SandboxTemplateDeclaration> = state.kind === \"template-bearing\"\n ? declaredValue(state.template)\n : Object.freeze({ _tag: \"Omitted\" });\n const view = Object.freeze({\n owner,\n explicit,\n kind: state.kind,\n template,\n commands,\n declaredAt: freezeSite(input.declaredAt),\n });\n return Object.freeze({ owner, explicit, state, view });\n}\n/** Stable identity of one author-owned layer, before it is linked with the other owners. */\nexport function sandboxLayerDefinitionIdentity(layer: SandboxLayer | undefined): JsonValue {\n const contribution = normalizeContribution(\"eval-group\", { id: \"<definition>\", layer });\n const commands: JsonValue[] = contribution.view.commands.map((command): JsonValue => command.kind === \"stable\"\n ? {\n kind: \"stable\",\n index: command.index,\n id: command.id,\n revision: command.revision,\n inputs: command.inputs,\n }\n : { kind: \"opaque\", index: command.index });\n const lifecycle: JsonValue[] = [\n ...fingerprintLifecycle(contribution.owner, \"setup\", contribution.state.setupHooks),\n ...fingerprintLifecycle(contribution.owner, \"teardown\", contribution.state.teardownHooks),\n ].map((entry) => ({ kind: entry.kind, phase: entry.phase, index: entry.index }));\n const after: JsonValue[] = contribution.state.after.map((declaration, ordinal): JsonValue => {\n const entry = afterDeclarationFingerprint(contribution.owner, ordinal, declaration);\n return entry.kind === \"stable\"\n ? { kind: entry.kind, index: entry.index, id: entry.id, revision: entry.revision, inputs: entry.inputs }\n : { kind: entry.kind, index: entry.index };\n });\n return {\n layer: contribution.state.kind === \"template-bearing\"\n ? { _tag: \"Template\", value: sandboxTemplateIdentity(contribution.state.template) }\n : { _tag: \"CommandOnly\" },\n commands,\n ...(after.length === 0 ? {} : { after }),\n ...(lifecycle.length === 0 ? {} : { lifecycle }),\n };\n}\nfunction pairRef(input: SandboxLayerPairInput): SandboxLinkIssue[\"pair\"] {\n return Object.freeze({\n evalId: input.eval.id,\n experimentId: input.experiment.id,\n agentKind: input.agent.kind,\n agentName: input.agent.name,\n });\n}\nfunction isTemplateContribution(contribution: NormalizedContribution): contribution is TemplateContribution {\n return contribution.state.kind === \"template-bearing\";\n}\nfunction issue(code: SandboxLinkIssueCode, pair: SandboxLinkIssue[\"pair\"], evalContribution: NormalizedContribution, experimentContribution: NormalizedContribution, groupContribution?: NormalizedContribution): SandboxLinkIssue {\n const group = groupContribution === undefined ? {} : { group: groupContribution.view };\n if (code === \"sandbox.template-missing\") {\n return Object.freeze({\n code,\n pair,\n eval: evalContribution.view,\n ...group,\n experiment: experimentContribution.view,\n summary: groupContribution === undefined\n ? `Eval \"${pair.evalId}\" and Experiment \"${pair.experimentId}\" do not declare a Sandbox template.`\n : `Eval Group \"${groupContribution.owner.id}\", Eval \"${pair.evalId}\", and Experiment \"${pair.experimentId}\" do not declare a Sandbox template.`,\n actions: Object.freeze([\n groupContribution === undefined\n ? \"Declare one template-bearing SandboxLayer on the Eval or Experiment.\"\n : \"Declare one template-bearing SandboxLayer on the Eval Group or Experiment; grouped Eval members may only contribute prepare commands.\",\n \"If this pairing is unintended, change the Experiment selector so the pair is not linked.\",\n ]),\n });\n }\n if (code === \"sandbox.template-conflict\") {\n return Object.freeze({\n code,\n pair,\n eval: evalContribution.view,\n ...group,\n experiment: experimentContribution.view,\n summary: groupContribution === undefined\n ? `Eval \"${pair.evalId}\" and Experiment \"${pair.experimentId}\" both declare a Sandbox template.`\n : `Eval Group \"${groupContribution.owner.id}\", Eval \"${pair.evalId}\", and Experiment \"${pair.experimentId}\" declare more than one Sandbox template.`,\n actions: Object.freeze([\n \"Keep exactly one template-bearing layer; NiceEval starts one Sandbox Case and does not merge or prioritize templates.\",\n \"If only some combinations are compatible, split the Experiment selector.\",\n ]),\n });\n }\n if (code === \"eval-group-direct-agent\") {\n return Object.freeze({\n code,\n pair,\n eval: evalContribution.view,\n ...group,\n experiment: experimentContribution.view,\n summary: `Eval Group \"${groupContribution!.owner.id}\" cannot run with Direct Agent \"${pair.agentName}\".`,\n actions: Object.freeze([\n \"Use a Sandbox Agent for every Experiment that selects this Eval Group.\",\n \"If the Experiment must stay direct, change its selector so it does not select grouped Evals.\",\n ]),\n });\n }\n return Object.freeze({\n code,\n pair,\n eval: evalContribution.view,\n ...group,\n experiment: experimentContribution.view,\n summary: `Direct Agent \"${pair.agentName}\" cannot use an explicit SandboxLayer.`,\n actions: Object.freeze([\n \"Remove every explicit Eval/Experiment sandbox declaration for this pairing.\",\n \"If the task needs Sandbox operations, use a Sandbox Agent instead.\",\n ]),\n });\n}\nconst OWNER_ORDER: Readonly<Record<SandboxScheduleOwnerRef[\"kind\"], number>> = Object.freeze({\n experiment: 0,\n \"eval-group\": 1,\n eval: 2,\n agent: 3,\n});\nfunction compareText(left: string, right: string): number {\n return left < right ? -1 : left > right ? 1 : 0;\n}\nfunction compareReady(left: LinkedSandboxBefore, right: LinkedSandboxBefore): number {\n return left.metadata.changeFrequency.value - right.metadata.changeFrequency.value ||\n OWNER_ORDER[left.owner.kind] - OWNER_ORDER[right.owner.kind] ||\n compareText(left.owner.id, right.owner.id) ||\n left.ordinal - right.ordinal;\n}\n/** @internal Pure Kahn scheduler shared by link and debug planning; it never invokes declarations. */\nexport function scheduleSandboxBefore(entries: readonly LinkedSandboxBefore[], occurrencePath: readonly string[]): Effect.Effect<readonly ScheduledSandboxBefore[], SandboxBeforePlanningError> {\n return Effect.suspend(() => {\n const byId = new Map<string, LinkedSandboxBefore>();\n for (const entry of entries) {\n if (byId.has(entry.id)) {\n return Effect.fail(beforePlanningError({\n reason: \"duplicate-action-id\",\n occurrencePath,\n actionIds: [entry.id],\n actionId: entry.id,\n message: `sandbox.before-planning-failed (duplicate-action-id): action ${JSON.stringify(entry.id)} is declared more than once`,\n }));\n }\n byId.set(entry.id, entry);\n }\n const capabilityProviders = new Map<string, LinkedSandboxBefore>();\n for (const entry of entries) {\n for (const capability of entry.metadata.provides) {\n const previous = capabilityProviders.get(capability);\n if (previous !== undefined) {\n const providerActionIds = [previous.id, entry.id];\n return Effect.fail(beforePlanningError({\n reason: \"duplicate-capability-provider\",\n occurrencePath,\n actionIds: providerActionIds,\n capability,\n providerActionIds,\n message: `sandbox.before-planning-failed (duplicate-capability-provider): capability ${JSON.stringify(capability)} is provided by ${providerActionIds.map((id) => JSON.stringify(id)).join(\" and \")}`,\n }));\n }\n capabilityProviders.set(capability, entry);\n }\n }\n const dependencies = new Map<string, SandboxBeforeDependencyProjection[]>();\n const outgoing = new Map<string, Set<string>>();\n const indegree = new Map(entries.map((entry) => [entry.id, 0]));\n const addEdge = (dependency: LinkedSandboxBefore, dependent: LinkedSandboxBefore, projection: SandboxBeforeDependencyProjection): void => {\n const targets = outgoing.get(dependency.id) ?? new Set<string>();\n if (!targets.has(dependent.id)) {\n targets.add(dependent.id);\n outgoing.set(dependency.id, targets);\n indegree.set(dependent.id, (indegree.get(dependent.id) ?? 0) + 1);\n }\n const projections = dependencies.get(dependent.id) ?? [];\n projections.push(Object.freeze(projection));\n dependencies.set(dependent.id, projections);\n };\n for (const entry of entries) {\n for (const reference of entry.metadata.dependsOn) {\n const dependency = byId.get(reference.id);\n if (dependency === undefined) {\n return Effect.fail(beforePlanningError({\n reason: \"missing-dependency\",\n occurrencePath,\n actionIds: [entry.id, reference.id],\n actionId: entry.id,\n dependencyId: reference.id,\n message: `sandbox.before-planning-failed (missing-dependency): action ${JSON.stringify(entry.id)} depends on missing action ${JSON.stringify(reference.id)}`,\n }));\n }\n addEdge(dependency, entry, { id: dependency.id, source: \"explicit\" });\n }\n for (const capability of entry.metadata.requires) {\n const dependency = capabilityProviders.get(capability);\n if (dependency === undefined) {\n return Effect.fail(beforePlanningError({\n reason: \"missing-capability\",\n occurrencePath,\n actionIds: [entry.id],\n actionId: entry.id,\n capability,\n message: `sandbox.before-planning-failed (missing-capability): action ${JSON.stringify(entry.id)} requires missing capability ${JSON.stringify(capability)}`,\n }));\n }\n addEdge(dependency, entry, { id: dependency.id, source: \"capability\", capability });\n }\n }\n const ready = entries.filter((entry) => indegree.get(entry.id) === 0).sort(compareReady);\n const ordered: ScheduledSandboxBefore[] = [];\n while (ready.length > 0) {\n const entry = ready.shift()!;\n const entryDependencies = Object.freeze([...(dependencies.get(entry.id) ?? [])]);\n const frequency: SandboxChangeFrequency = entry.metadata.changeFrequency;\n ordered.push(Object.freeze({\n ...entry,\n dependencies: entryDependencies,\n executionOrder: Object.freeze({\n topologicalOrdinal: ordered.length,\n occurrencePath: Object.freeze([...occurrencePath]),\n }),\n schedulingReason: entryDependencies.length === 0\n ? `ready-set frequency=${frequency.value}; owner=${entry.owner.kind}:${entry.owner.id}; ordinal=${entry.ordinal}`\n : `dependencies satisfied (${entryDependencies.map((dependency) => dependency.id).join(\", \")}); ` +\n `ready-set frequency=${frequency.value}; owner=${entry.owner.kind}:${entry.owner.id}; ordinal=${entry.ordinal}`,\n }));\n for (const dependentId of outgoing.get(entry.id) ?? []) {\n const remaining = (indegree.get(dependentId) ?? 0) - 1;\n indegree.set(dependentId, remaining);\n if (remaining === 0)\n ready.push(byId.get(dependentId)!);\n }\n ready.sort(compareReady);\n }\n if (ordered.length !== entries.length) {\n const blocked = entries.filter((entry) => (indegree.get(entry.id) ?? 0) > 0).map((entry) => entry.id);\n return Effect.fail(beforePlanningError({\n reason: \"dependency-cycle\",\n occurrencePath,\n actionIds: blocked,\n blockedActionIds: blocked,\n message: `sandbox.before-planning-failed (dependency-cycle): blocked actions ${blocked.map((id) => JSON.stringify(id)).join(\", \")}`,\n }));\n }\n return Effect.succeed(Object.freeze(ordered));\n });\n}\nfunction linkedBefore(contributions: readonly NormalizedScheduleContribution[], occurrencePath: readonly string[]): Effect.Effect<readonly ScheduledSandboxBefore[], SandboxBeforePlanningError> {\n const entries = contributions.flatMap((contribution) => contribution.state.before.map((declaration, ordinal) => beforeFromDeclaration(contribution.owner, ordinal, declaration)));\n return scheduleSandboxBefore(entries, occurrencePath);\n}\nfunction linkedAfter(contributions: readonly NormalizedScheduleContribution[]): readonly LinkedSandboxAfter[] {\n return Object.freeze(contributions.flatMap((contribution) => contribution.state.after.map((declaration, ordinal): LinkedSandboxAfter => declaration.kind === \"action\"\n ? Object.freeze({\n kind: \"action\" as const,\n owner: contribution.owner,\n ordinal,\n data: sandboxAfterActionDataOf(declaration.action),\n fingerprint: afterDeclarationFingerprint(contribution.owner, ordinal, declaration),\n })\n : Object.freeze({\n kind: \"command\" as const,\n owner: contribution.owner,\n ordinal,\n declaration,\n fingerprint: afterDeclarationFingerprint(contribution.owner, ordinal, declaration),\n }))));\n}\nfunction linkedCommands(first: NormalizedScheduleContribution, ...rest: readonly NormalizedScheduleContribution[]): {\n readonly commands: readonly LinkedSandboxCommand[];\n} {\n const commands: LinkedSandboxCommand[] = [];\n for (const contribution of [first, ...rest]) {\n contribution.state.commands.forEach((declaration, index) => {\n const fingerprint = fingerprintCommand(contribution.owner, index, declaration);\n commands.push(Object.freeze({ owner: contribution.owner, index, command: declaration.command, fingerprint }));\n });\n }\n return Object.freeze({ commands: Object.freeze(commands) });\n}\nfunction linkSandboxPair(pair: SandboxLinkIssue[\"pair\"], templateOwner: TemplateContribution, otherOwners: readonly NormalizedContribution[], agentOwner: NormalizedScheduleContribution): Effect.Effect<LinkedSandboxPair, SandboxBeforePlanningError> {\n const template = templateOwner.state.template;\n const linked = linkedCommands(templateOwner, ...otherOwners, agentOwner);\n const scheduleContributions: NormalizedScheduleContribution[] = [templateOwner, ...otherOwners, agentOwner];\n const declarationContributions = [...scheduleContributions].sort((left, right) => OWNER_ORDER[left.owner.kind] - OWNER_ORDER[right.owner.kind] ||\n compareText(left.owner.id, right.owner.id));\n const after = linkedAfter(declarationContributions);\n const lifecycle = Object.freeze([\n ...fingerprintLifecycle(templateOwner.owner, \"setup\", templateOwner.state.setupHooks),\n ...otherOwners.flatMap((owner) => fingerprintLifecycle(owner.owner, \"setup\", owner.state.setupHooks)),\n ...fingerprintLifecycle(agentOwner.owner, \"setup\", agentOwner.state.setupHooks),\n ...fingerprintLifecycle(templateOwner.owner, \"teardown\", templateOwner.state.teardownHooks),\n ...otherOwners.flatMap((owner) => fingerprintLifecycle(owner.owner, \"teardown\", owner.state.teardownHooks)),\n ...fingerprintLifecycle(agentOwner.owner, \"teardown\", agentOwner.state.teardownHooks),\n ]);\n const requirements = Object.freeze(declarationContributions.flatMap((contribution) => contribution.state.requirements.map((requirement) => Object.freeze({\n owner: contribution.owner,\n requirement,\n }))));\n return Effect.map(linkedBefore(declarationContributions, [pair.experimentId, pair.evalId, \"attempt\"]), (before): LinkedSandboxPair => {\n const fingerprints = Object.freeze(before.map((entry) => entry.fingerprint));\n const afterFingerprints = Object.freeze(after.map((entry) => entry.fingerprint));\n const fingerprint = Object.freeze({\n version: 1 as const,\n templateOwner: templateOwner.owner,\n template: sandboxTemplateIdentity(template),\n commands: fingerprints,\n ...(requirements.length === 0 ? {} : { requirements }),\n ...(afterFingerprints.length === 0 ? {} : { after: afterFingerprints }),\n ...(lifecycle.length === 0 ? {} : { lifecycle }),\n });\n return Object.freeze({\n kind: \"sandbox\",\n evalId: pair.evalId,\n experimentId: pair.experimentId,\n agentName: pair.agentName,\n templateOwner: templateOwner.owner,\n template,\n commands: linked.commands,\n requirements,\n before,\n after,\n setupHooks: Object.freeze([\n ...templateOwner.state.setupHooks,\n ...otherOwners.flatMap((owner) => owner.state.setupHooks),\n ...agentOwner.state.setupHooks,\n ]),\n teardownHooks: Object.freeze([\n ...templateOwner.state.teardownHooks,\n ...otherOwners.flatMap((owner) => owner.state.teardownHooks),\n ...agentOwner.state.teardownHooks,\n ]),\n pluginLifecycles: Object.freeze([]),\n hasEvalPhysicalLifecycle: [templateOwner, ...otherOwners].some((owner) => owner.owner.kind === \"eval\" && owner.state.setupHooks.length + owner.state.teardownHooks.length > 0),\n ...([templateOwner, ...otherOwners].find((owner) => owner.owner.kind === \"eval-group\") === undefined\n ? {}\n : { evalGroupId: [templateOwner, ...otherOwners].find((owner) => owner.owner.kind === \"eval-group\")!.owner.id }),\n fingerprint,\n });\n });\n}\n/** @internal Attach automatically projected Plugin sandbox fragments after author layer linking. */\nexport function attachSandboxPluginLifecycles(pair: LinkedSandboxLayerPair, byOwner: Readonly<Partial<Record<SandboxLayerOwnerRef[\"kind\"], readonly LinkedPluginLifecycle[]>>>): LinkedSandboxLayerPair {\n if (pair.kind === \"direct\")\n return pair;\n const ownerOrder: readonly SandboxLayerOwnerRef[\"kind\"][] = pair.templateOwner.kind === \"eval\"\n ? [\"eval\", \"experiment\"]\n : pair.templateOwner.kind === \"eval-group\"\n ? [\"eval-group\", \"experiment\", \"eval\"]\n : [\"experiment\", \"eval-group\", \"eval\"];\n const entries = Object.freeze(ownerOrder.flatMap((kind) => (byOwner[kind] ?? []).map((lifecycle) => Object.freeze({\n owner: kind === \"eval\"\n ? Object.freeze({ kind, id: pair.evalId })\n : kind === \"eval-group\"\n ? Object.freeze({ kind, id: pair.evalGroupId! })\n : Object.freeze({ kind, id: pair.experimentId }),\n lifecycle,\n }))));\n if (entries.length === 0)\n return pair;\n const plugins: JsonValue[] = entries.map((entry) => ({\n owner: { kind: entry.owner.kind, id: entry.owner.id },\n lifecycle: pluginLifecycleIdentity(entry.lifecycle),\n }));\n return Object.freeze({\n ...pair,\n pluginLifecycles: entries,\n hasEvalPhysicalLifecycle: pair.hasEvalPhysicalLifecycle || entries.some((entry) => entry.owner.kind === \"eval\"),\n fingerprint: Object.freeze({\n ...pair.fingerprint,\n plugins,\n }),\n });\n}\n/**\n * 对 discovery/selector 产出的实际 pair 全矩阵做一次纯 link。发现任何问题时遍历完全部输入后\n * 通过 Effect error channel 返回聚合错误;调用方因此可以在任何 Provider I/O 前一次展示全部修法。\n */\nexport function linkSandboxLayers(pairs: readonly SandboxLayerPairInput[]): Effect.Effect<readonly LinkedSandboxLayerPair[], SandboxLayerLinkError | SandboxBeforePlanningError> {\n return Effect.suspend((): Effect.Effect<readonly LinkedSandboxLayerPair[], SandboxLayerLinkError | SandboxBeforePlanningError> => {\n const linked: Array<Effect.Effect<LinkedSandboxLayerPair, SandboxBeforePlanningError>> = [];\n const issues: SandboxLinkIssue[] = [];\n for (const input of pairs) {\n const pair = pairRef(input);\n const evalContribution = normalizeContribution(\"eval\", input.eval);\n const experimentContribution = normalizeContribution(\"experiment\", input.experiment);\n const groupContribution = input.group === undefined ? undefined : normalizeContribution(\"eval-group\", input.group);\n if (pair.agentKind === \"direct\" || pair.agentKind === \"custom\") {\n if (groupContribution !== undefined) {\n issues.push(issue(\"eval-group-direct-agent\", pair, evalContribution, experimentContribution, groupContribution));\n }\n else if (evalContribution.explicit || experimentContribution.explicit) {\n issues.push(issue(\"sandbox.unexpected-for-direct-agent\", pair, evalContribution, experimentContribution));\n }\n else {\n linked.push(Effect.succeed(Object.freeze({\n kind: \"direct\",\n evalId: pair.evalId,\n experimentId: pair.experimentId,\n agentName: pair.agentName,\n })));\n }\n continue;\n }\n const agentContribution = normalizeAgentContribution(input.agent);\n const contributions = [experimentContribution, ...(groupContribution === undefined ? [] : [groupContribution]), evalContribution];\n const templates = contributions.filter(isTemplateContribution);\n if (templates.length === 0) {\n issues.push(issue(\"sandbox.template-missing\", pair, evalContribution, experimentContribution, groupContribution));\n }\n else if (templates.length > 1) {\n issues.push(issue(\"sandbox.template-conflict\", pair, evalContribution, experimentContribution, groupContribution));\n }\n else {\n const template = templates[0]!;\n const ordered = template.owner.kind === \"eval-group\"\n ? [template, experimentContribution, evalContribution]\n : template.owner.kind === \"experiment\"\n ? [template, ...(groupContribution === undefined ? [] : [groupContribution]), evalContribution]\n : [template, experimentContribution];\n linked.push(linkSandboxPair(pair, template, ordered.filter((owner) => owner !== template), agentContribution));\n }\n }\n return issues.length > 0\n ? Effect.fail(sandboxLayerLinkError(issues))\n : Effect.map(Effect.all(linked), (values) => Object.freeze(values));\n });\n}\n"]}
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["link.ts"],"names":[],"mappings":";;;AAsKA,kEAeC;AAwHD,4EAgBC;AAMD,0DAoDC;AA0HD,4DAKC;AAoCD,wEA6BC;AA2FD,sDAmHC;AAkGD,sEA+BC;AAKD,8CAiDC;AA57BD,iDAAiD;AACjD,yDAAyD;AACzD,+CAA8I;AAC9I,2CAAwM;AACxM,yCAAkR;AAGlR,mCAAsC;AACtC,yDAAyI;AA+FzI,MAAa,qBAAsB,SAAQ,aAAI,CAAC,WAAW,CAAC,uBAAuB,CAIjF;CACD;AALD,sDAKC;AAED,gFAAgF;AAChF,MAAa,0BAA2B,SAAQ,aAAI,CAAC,WAAW,CAAC,4BAA4B,CAY3F;CACD;AAbD,gEAaC;AACD,SAAS,mBAAmB,CAAC,KAE5B;IACG,OAAO,IAAI,0BAA0B,CAAC;QAClC,IAAI,EAAE,gCAAgC;QACtC,GAAG,KAAK;QACR,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;QACxD,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9C,GAAG,CAAC,KAAK,CAAC,iBAAiB,KAAK,SAAS;YACrC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC;QACzE,GAAG,CAAC,KAAK,CAAC,gBAAgB,KAAK,SAAS;YACpC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAC,CAAC;AACP,CAAC;AACD,SAAS,qBAAqB,CAAC,MAAmC;IAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAgC,CAAC;IACvD,KAAK,MAAM,KAAK,IAAI,MAAM;QACtB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpF,OAAO,IAAI,qBAAqB,CAAC;QAC7B,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,oCAAoC,MAAM,CAAC,MAAM,QAAQ;YAC9D,GAAG,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,2BAA2B;KAC9E,CAAC,CAAC;AACP,CAAC;AACD,SAAS,kBAAkB,CAAC,IAAiC;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,UAAU;QAC1G,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK;QACxC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU;YAC/B,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE;YAC/D,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC;IACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS;QAC/C,CAAC,CAAC,kBAAkB;QACpB,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;IACpI,OAAO,GAAG,UAAU,OAAO,QAAQ,EAAE,CAAC;AAC1C,CAAC;AACD,qDAAqD;AACrD,SAAgB,2BAA2B,CAAC,KAA4B;IACpE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,iBAAiB,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9D,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,iBAAiB,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,iBAAiB,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACpE,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO;YAC9B,KAAK,CAAC,IAAI,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,+CAA+C,CAAC,CAAC;IAClF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAuGD,SAAS,0BAA0B,CAAC,KAAgC;IAChE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC1B,CAAC,CAAC;YACE,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE;YACrD,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM;SACvB;QACD,CAAC,CAAC;YACE,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE;YACrD,KAAK,EAAE,KAAK,CAAC,KAAK;SACrB,CAAC;AACV,CAAC;AACD,+EAA+E;AAC/E,SAAgB,gCAAgC,CAAC,IAA4B;IACzE,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QACtB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC3E,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE;QACrD,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;KACrB,CAAC,CAAC,CAAC;IACJ,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,MAAM;QACN,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC;YAC3C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,EAAE,CAAC;QACzE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,EAAE;KAC1C,CAAC,CAAC;AACP,CAAC;AACD;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,MAA8B,EAAE,SAA0C;IAC9G,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;QACxB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC9B,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,SAAS,CAAC;IAC7D,MAAM,QAAQ,GAAgB,MAAM,CAAC,QAAQ;SACxC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;SACjD,GAAG,CAAC,CAAC,KAAK,EAAa,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ;QAC9D,CAAC,CAAC;YACE,IAAI,EAAE,QAAiB;YACvB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE;YACxB,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ;YACpC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM;SACnC;QACD,CAAC,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS;QAC1C,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;SAClD,GAAG,CAAC,CAAC,KAAK,EAAa,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC/F,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC;SACzC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;SACjD,GAAG,CAAC,CAAC,KAAK,EAAa,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ;QAClD,CAAC,CAAC;YACE,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM;SACvB;QACD,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC;SACvD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;SACjD,GAAG,CAAC,CAAC,KAAK,EAAa,EAAE,CAAC,CAAC;QAC5B,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI;QAC5B,MAAM,EAAE;YACJ,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG;YACjC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO;YACzC,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS;YAC7C,gBAAgB,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,gBAAgB;SAC9D;KACJ,CAAC,CAAC,CAAC;IACJ,OAAO;QACH,KAAK,EAAE,YAAY;YACf,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAA,kCAAuB,EAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;YACvE,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE;QAC7B,QAAQ;QACR,GAAG,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;QACtD,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QACxC,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;QAC3E,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC;YACtF,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,OAAO,EAAE,IAAA,wCAAyB,EAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;KAC3J,CAAC;AACN,CAAC;AAeD,MAAM,aAAa,GAAG,IAAA,uBAAY,GAAE,CAAC;AACrC,SAAS,WAAW,CAAC,IAAkC,EAAE,EAAU;IAC/D,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;AACvC,CAAC;AACD,SAAS,aAAa,CAAQ,KAAwB;IAClD,OAAO,KAAK,KAAK,SAAS;QACtB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACpC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;AACrD,CAAC;AACD,SAAS,UAAU,CAAC,IAA6C;IAC7D,IAAI,IAAI,KAAK,SAAS;QAClB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;YACtD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9B,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;YAClC,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;SAC7C,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AACD,SAAS,kBAAkB,CAAC,KAA8B,EAAE,KAAa,EAAE,WAAsC;IAC7G,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ;QAC7B,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,QAAQ;QACd,KAAK;QACL,KAAK;QACL,EAAE,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE;QAC3B,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,QAAQ;QACvC,MAAM,EAAE,IAAA,wCAA0B,EAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;KAClE,CAAC,CAAC;AACP,CAAC;AACD,SAAS,iBAAiB,CAAC,KAA8B,EAAE,KAAa,EAAE,IAAuB;IAC7F,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,QAAiB;QACvB,KAAK;QACL,KAAK;QACL,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;QACpB,QAAQ,EAAE,mBAAmB;QAC7B,MAAM,EAAE;YACJ,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YACxB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;YACtB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;YACtB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;YACtB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;YAClC,UAAU,EAAE;gBACR,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK;gBACpD,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACrC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;aACxC;SACoB;KAC5B,CAAC,CAAC;AACP,CAAC;AACD,SAAS,2BAA2B,CAAC,KAA8B,EAAE,OAAe,EAAE,WAAoC;IACtH,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAA,oCAAwB,EAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;AAC7E,CAAC;AACD,SAAS,iBAAiB,CAAC,KAA8B,EAAE,OAAe;IACtE,OAAO,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,WAAW,OAAO,EAAE,CAAC;AACzD,CAAC;AACD,SAAS,qBAAqB,CAAC,KAA8B,EAAE,OAAe,EAAE,WAAqC;IACjH,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAA,+BAAmB,EAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,QAAiB;YACvB,KAAK;YACL,GAAG,CAAC,IAAA,6BAAc,EAAC,WAAW,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAA,6BAAc,EAAC,WAAW,CAAC,EAAE,CAAC;YACnG,OAAO;YACP,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;YACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI;YACJ,WAAW,EAAE,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;SACvD,CAAC,CAAC;IACP,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7C,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,MAAe;YACrB,KAAK;YACL,GAAG,CAAC,IAAA,6BAAc,EAAC,WAAW,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAA,6BAAc,EAAC,WAAW,CAAC,EAAE,CAAC;YACnG,OAAO;YACP,EAAE;YACF,QAAQ,EAAE,IAAA,0CAA8B,EAAC,EAAE,EAAE,EAAE,CAAC;YAChD,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;SACjF,CAAC,CAAC;IACP,CAAC;IACD,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC1E,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,KAAK,QAAQ;QACtC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC;QACvD,CAAC,CAAC,IAAA,0CAA8B,EAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,SAAkB;QACxB,KAAK;QACL,GAAG,CAAC,IAAA,6BAAc,EAAC,WAAW,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAA,6BAAc,EAAC,WAAW,CAAC,EAAE,CAAC;QACnG,OAAO;QACP,EAAE;QACF,QAAQ;QACR,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;KAC3D,CAAC,CAAC;AACP,CAAC;AACD,yGAAyG;AACzG,SAAgB,wBAAwB,CAAC,KAA8B,EAAE,OAAe,EAAE,OAAuB;IAC7G,OAAO,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACvD,IAAI,EAAE,SAAkB;QACxB,WAAW,EAAE,IAAA,yCAA2B,EAAC,OAAO,CAAC;KACpD,CAAC,CAAC,CAAC;AACR,CAAC;AACD,SAAS,oBAAoB,CAAC,KAA8B,EAAE,KAA2C,EAAE,KAA6B;IACpI,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACvD,IAAI,EAAE,QAAiB;QACvB,KAAK;QACL,KAAK;QACL,KAAK;KACR,CAAC,CAAC,CAAC,CAAC;AACT,CAAC;AACD,SAAS,0BAA0B,CAAC,KAAqC;IACrE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAgB,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG,IAAA,8BAAmB,EAAC,KAAK,CAAC,OAAO,IAAI,aAAa,CAAC,CAAC;IAClE,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;IACnG,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAClF,CAAC;AACD,SAAS,qBAAqB,CAAC,IAAkC,EAAE,KAAoC;IACnG,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAA,8BAAmB,EAAC,KAAK,CAAC,KAAK,IAAI,aAAa,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;IACvI,MAAM,QAAQ,GAAqD,KAAK,CAAC,IAAI,KAAK,kBAAkB;QAChG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC/B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACvB,KAAK;QACL,QAAQ;QACR,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,QAAQ;QACR,QAAQ;QACR,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;KAC3C,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3D,CAAC;AACD,4FAA4F;AAC5F,SAAgB,8BAA8B,CAAC,KAA+B;IAC1E,MAAM,YAAY,GAAG,qBAAqB,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;IACxF,MAAM,QAAQ,GAAgB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAa,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ;QAC1G,CAAC,CAAC;YACE,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;SACzB;QACD,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAChD,MAAM,SAAS,GAAgB;QAC3B,GAAG,oBAAoB,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC;QACnF,GAAG,oBAAoB,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC;KAC5F,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACjF,MAAM,KAAK,GAAgB,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,OAAO,EAAa,EAAE;QACxF,MAAM,KAAK,GAAG,2BAA2B,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACpF,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAC1B,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE;YACxG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,OAAO;QACH,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,kBAAkB;YACjD,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAA,kCAAuB,EAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;YACnF,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE;QAC7B,QAAQ;QACR,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QACxC,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;KACnD,CAAC;AACN,CAAC;AACD,SAAS,OAAO,CAAC,KAA4B;IACzC,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;QACrB,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE;QACjC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;QAC3B,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;KAC9B,CAAC,CAAC;AACP,CAAC;AACD,SAAS,sBAAsB,CAAC,YAAoC;IAChE,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,kBAAkB,CAAC;AAC1D,CAAC;AACD,SAAS,KAAK,CAAC,IAA0B,EAAE,IAA8B,EAAE,gBAAwC,EAAE,sBAA8C,EAAE,iBAA0C;IAC3M,MAAM,KAAK,GAAG,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,EAAE,CAAC;IACvF,IAAI,IAAI,KAAK,0BAA0B,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI;YACJ,IAAI;YACJ,IAAI,EAAE,gBAAgB,CAAC,IAAI;YAC3B,GAAG,KAAK;YACR,UAAU,EAAE,sBAAsB,CAAC,IAAI;YACvC,OAAO,EAAE,iBAAiB,KAAK,SAAS;gBACpC,CAAC,CAAC,SAAS,IAAI,CAAC,MAAM,qBAAqB,IAAI,CAAC,YAAY,sCAAsC;gBAClG,CAAC,CAAC,eAAe,iBAAiB,CAAC,KAAK,CAAC,EAAE,YAAY,IAAI,CAAC,MAAM,sBAAsB,IAAI,CAAC,YAAY,sCAAsC;YACnJ,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;gBACnB,iBAAiB,KAAK,SAAS;oBAC3B,CAAC,CAAC,sEAAsE;oBACxE,CAAC,CAAC,uIAAuI;gBAC7I,0FAA0F;aAC7F,CAAC;SACL,CAAC,CAAC;IACP,CAAC;IACD,IAAI,IAAI,KAAK,2BAA2B,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI;YACJ,IAAI;YACJ,IAAI,EAAE,gBAAgB,CAAC,IAAI;YAC3B,GAAG,KAAK;YACR,UAAU,EAAE,sBAAsB,CAAC,IAAI;YACvC,OAAO,EAAE,iBAAiB,KAAK,SAAS;gBACpC,CAAC,CAAC,SAAS,IAAI,CAAC,MAAM,qBAAqB,IAAI,CAAC,YAAY,oCAAoC;gBAChG,CAAC,CAAC,eAAe,iBAAiB,CAAC,KAAK,CAAC,EAAE,YAAY,IAAI,CAAC,MAAM,sBAAsB,IAAI,CAAC,YAAY,2CAA2C;YACxJ,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;gBACnB,uHAAuH;gBACvH,0EAA0E;aAC7E,CAAC;SACL,CAAC,CAAC;IACP,CAAC;IACD,IAAI,IAAI,KAAK,yBAAyB,EAAE,CAAC;QACrC,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI;YACJ,IAAI;YACJ,IAAI,EAAE,gBAAgB,CAAC,IAAI;YAC3B,GAAG,KAAK;YACR,UAAU,EAAE,sBAAsB,CAAC,IAAI;YACvC,OAAO,EAAE,eAAe,iBAAkB,CAAC,KAAK,CAAC,EAAE,mCAAmC,IAAI,CAAC,SAAS,IAAI;YACxG,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;gBACnB,wEAAwE;gBACxE,8FAA8F;aACjG,CAAC;SACL,CAAC,CAAC;IACP,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI;QACJ,IAAI;QACJ,IAAI,EAAE,gBAAgB,CAAC,IAAI;QAC3B,GAAG,KAAK;QACR,UAAU,EAAE,sBAAsB,CAAC,IAAI;QACvC,OAAO,EAAE,iBAAiB,IAAI,CAAC,SAAS,wCAAwC;QAChF,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;YACnB,6EAA6E;YAC7E,oEAAoE;SACvE,CAAC;KACL,CAAC,CAAC;AACP,CAAC;AACD,MAAM,WAAW,GAA8D,MAAM,CAAC,MAAM,CAAC;IACzF,UAAU,EAAE,CAAC;IACb,YAAY,EAAE,CAAC;IACf,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACX,CAAC,CAAC;AACH,SAAS,WAAW,CAAC,IAAY,EAAE,KAAa;IAC5C,OAAO,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AACD,SAAS,YAAY,CAAC,IAAyB,EAAE,KAA0B;IACvE,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK;QAC7E,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;QAC5D,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AACrC,CAAC;AACD,sGAAsG;AACtG,SAAgB,qBAAqB,CAAC,OAAuC,EAAE,cAAiC;IAC5G,OAAO,eAAM,CAAC,OAAO,CAAC,GAAG,EAAE;QACvB,MAAM,IAAI,GAAG,IAAI,GAAG,EAA+B,CAAC;QACpD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBACrB,OAAO,eAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;oBACnC,MAAM,EAAE,qBAAqB;oBAC7B,cAAc;oBACd,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;oBACrB,QAAQ,EAAE,KAAK,CAAC,EAAE;oBAClB,OAAO,EAAE,gEAAgE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,6BAA6B;iBACjI,CAAC,CAAC,CAAC;YACR,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;QACD,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAA+B,CAAC;QACnE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAC/C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACrD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACzB,MAAM,iBAAiB,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;oBAClD,OAAO,eAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;wBACnC,MAAM,EAAE,+BAA+B;wBACvC,cAAc;wBACd,SAAS,EAAE,iBAAiB;wBAC5B,UAAU;wBACV,iBAAiB;wBACjB,OAAO,EAAE,8EAA8E,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,mBAAmB,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;qBACxM,CAAC,CAAC,CAAC;gBACR,CAAC;gBACD,mBAAmB,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC/C,CAAC;QACL,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,GAAG,EAA+C,CAAC;QAC5E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,CAAC,UAA+B,EAAE,SAA8B,EAAE,UAA6C,EAAQ,EAAE;YACrI,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;YACjE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC1B,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBACrC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACtE,CAAC;YACD,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACzD,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YAC5C,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAChD,CAAC,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;gBAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC1C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC3B,OAAO,eAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;wBACnC,MAAM,EAAE,oBAAoB;wBAC5B,cAAc;wBACd,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC;wBACnC,QAAQ,EAAE,KAAK,CAAC,EAAE;wBAClB,YAAY,EAAE,SAAS,CAAC,EAAE;wBAC1B,OAAO,EAAE,+DAA+D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;qBAC/J,CAAC,CAAC,CAAC;gBACR,CAAC;gBACD,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAC/C,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACvD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC3B,OAAO,eAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;wBACnC,MAAM,EAAE,oBAAoB;wBAC5B,cAAc;wBACd,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;wBACrB,QAAQ,EAAE,KAAK,CAAC,EAAE;wBAClB,UAAU;wBACV,OAAO,EAAE,+DAA+D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,gCAAgC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;qBAC/J,CAAC,CAAC,CAAC;gBACR,CAAC;gBACD,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;YACxF,CAAC;QACL,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzF,MAAM,OAAO,GAA6B,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;YAC7B,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACjF,MAAM,SAAS,GAA2B,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC;YACzE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBACvB,GAAG,KAAK;gBACR,YAAY,EAAE,iBAAiB;gBAC/B,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC;oBAC1B,kBAAkB,EAAE,OAAO,CAAC,MAAM;oBAClC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC;iBACrD,CAAC;gBACF,gBAAgB,EAAE,iBAAiB,CAAC,MAAM,KAAK,CAAC;oBAC5C,CAAC,CAAC,uBAAuB,SAAS,CAAC,KAAK,WAAW,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,aAAa,KAAK,CAAC,OAAO,EAAE;oBACjH,CAAC,CAAC,2BAA2B,iBAAiB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;wBAC7F,uBAAuB,SAAS,CAAC,KAAK,WAAW,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,aAAa,KAAK,CAAC,OAAO,EAAE;aAC1H,CAAC,CAAC,CAAC;YACJ,KAAK,MAAM,WAAW,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;gBACrD,MAAM,SAAS,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACvD,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBACrC,IAAI,SAAS,KAAK,CAAC;oBACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC,CAAC;YAC3C,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtG,OAAO,eAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;gBACnC,MAAM,EAAE,kBAAkB;gBAC1B,cAAc;gBACd,SAAS,EAAE,OAAO;gBAClB,gBAAgB,EAAE,OAAO;gBACzB,OAAO,EAAE,sEAAsE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aACtI,CAAC,CAAC,CAAC;QACR,CAAC;QACD,OAAO,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,YAAY,CAAC,aAAwD,EAAE,cAAiC;IAC7G,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC,qBAAqB,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAClL,OAAO,qBAAqB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AAC1D,CAAC;AACD,SAAS,WAAW,CAAC,aAAwD;IACzE,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,OAAO,EAAsB,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ;QACjK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YACZ,IAAI,EAAE,QAAiB;YACvB,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,OAAO;YACP,GAAG,CAAC,IAAA,6BAAc,EAAC,WAAW,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAA,6BAAc,EAAC,WAAW,CAAC,EAAE,CAAC;YACnG,IAAI,EAAE,IAAA,oCAAwB,EAAC,WAAW,CAAC,MAAM,CAAC;YAClD,WAAW,EAAE,2BAA2B,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC;SACrF,CAAC;QACF,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YACZ,IAAI,EAAE,SAAkB;YACxB,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,OAAO;YACP,GAAG,CAAC,IAAA,6BAAc,EAAC,WAAW,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAA,6BAAc,EAAC,WAAW,CAAC,EAAE,CAAC;YACnG,WAAW;YACX,WAAW,EAAE,2BAA2B,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC;SACrF,CAAC,CAAC,CAAC,CAAC,CAAC;AACd,CAAC;AACD,SAAS,cAAc,CAAC,KAAqC,EAAE,GAAG,IAA+C;IAG7G,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,KAAK,MAAM,YAAY,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAC1C,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE;YACvD,MAAM,WAAW,GAAG,kBAAkB,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;YAC/E,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QAClH,CAAC,CAAC,CAAC;IACP,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAChE,CAAC;AACD,SAAS,eAAe,CAAC,IAA8B,EAAE,aAAmC,EAAE,WAA8C,EAAE,UAA0C;IACpL,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC9C,MAAM,MAAM,GAAG,cAAc,CAAC,aAAa,EAAE,GAAG,WAAW,EAAE,UAAU,CAAC,CAAC;IACzE,MAAM,qBAAqB,GAAqC,CAAC,aAAa,EAAE,GAAG,WAAW,EAAE,UAAU,CAAC,CAAC;IAC5G,MAAM,wBAAwB,GAAG,CAAC,GAAG,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;QAC1I,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,WAAW,CAAC,wBAAwB,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,GAAG,oBAAoB,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;QACrF,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACrG,GAAG,oBAAoB,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;QAC/E,GAAG,oBAAoB,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC;QAC3F,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC3G,GAAG,oBAAoB,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC;KACxF,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACrJ,KAAK,EAAE,YAAY,CAAC,KAAK;QACzB,WAAW;KACd,CAAC,CAAC,CAAC,CAAC,CAAC;IACN,OAAO,eAAM,CAAC,GAAG,CAAC,YAAY,CAAC,wBAAwB,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,EAAqB,EAAE;QACjI,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QAC7E,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QACjF,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;YAC9B,OAAO,EAAE,CAAU;YACnB,aAAa,EAAE,aAAa,CAAC,KAAK;YAClC,QAAQ,EAAE,IAAA,kCAAuB,EAAC,QAAQ,CAAC;YAC3C,QAAQ,EAAE,YAAY;YACtB,GAAG,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;YACtD,GAAG,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;YACvE,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;SACnD,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,aAAa,EAAE,aAAa,CAAC,KAAK;YAClC,QAAQ;YACR,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,YAAY;YACZ,MAAM;YACN,KAAK;YACL,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC;gBACtB,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU;gBACjC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;gBACzD,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU;aACjC,CAAC;YACF,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC;gBACzB,GAAG,aAAa,CAAC,KAAK,CAAC,aAAa;gBACpC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC;gBAC5D,GAAG,UAAU,CAAC,KAAK,CAAC,aAAa;aACpC,CAAC;YACF,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,wBAAwB,EAAE,CAAC,aAAa,EAAE,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9K,GAAG,CAAC,CAAC,aAAa,EAAE,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,KAAK,SAAS;gBAChG,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,aAAa,EAAE,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACpH,WAAW;SACd,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AACD,oGAAoG;AACpG,SAAgB,6BAA6B,CAAC,IAA4B,EAAE,OAAkG;IAC1K,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QACtB,OAAO,IAAI,CAAC;IAChB,MAAM,UAAU,GAA4C,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,MAAM;QAC1F,CAAC,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC;QACxB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,YAAY;YACtC,CAAC,CAAC,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC;YACtC,CAAC,CAAC,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QAC9G,KAAK,EAAE,IAAI,KAAK,MAAM;YAClB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1C,CAAC,CAAC,IAAI,KAAK,YAAY;gBACnB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,WAAY,EAAE,CAAC;gBAChD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QACxD,SAAS;KACZ,CAAC,CAAC,CAAC,CAAC,CAAC;IACN,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QACpB,OAAO,IAAI,CAAC;IAChB,MAAM,OAAO,GAAgB,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjD,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE;QACrD,SAAS,EAAE,IAAA,sCAAuB,EAAC,KAAK,CAAC,SAAS,CAAC;KACtD,CAAC,CAAC,CAAC;IACJ,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,GAAG,IAAI;QACP,gBAAgB,EAAE,OAAO;QACzB,wBAAwB,EAAE,IAAI,CAAC,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;QAC/G,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC;YACvB,GAAG,IAAI,CAAC,WAAW;YACnB,OAAO;SACV,CAAC;KACL,CAAC,CAAC;AACP,CAAC;AACD;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,KAAuC;IACrE,OAAO,eAAM,CAAC,OAAO,CAAC,GAAyG,EAAE;QAC7H,MAAM,MAAM,GAA6E,EAAE,CAAC;QAC5F,MAAM,MAAM,GAAuB,EAAE,CAAC;QACtC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACnE,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YACrF,MAAM,iBAAiB,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACnH,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC7D,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;oBAClC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,IAAI,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,iBAAiB,CAAC,CAAC,CAAC;gBACrH,CAAC;qBACI,IAAI,gBAAgB,CAAC,QAAQ,IAAI,sBAAsB,CAAC,QAAQ,EAAE,CAAC;oBACpE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,qCAAqC,EAAE,IAAI,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,CAAC,CAAC;gBAC9G,CAAC;qBACI,CAAC;oBACF,MAAM,CAAC,IAAI,CAAC,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;wBACrC,IAAI,EAAE,QAAQ;wBACd,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,YAAY,EAAE,IAAI,CAAC,YAAY;wBAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;qBAC5B,CAAC,CAAC,CAAC,CAAC;gBACT,CAAC;gBACD,SAAS;YACb,CAAC;YACD,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAClE,MAAM,aAAa,GAAG,CAAC,sBAAsB,EAAE,GAAG,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;YAClI,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC/D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,EAAE,IAAI,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,iBAAiB,CAAC,CAAC,CAAC;YACtH,CAAC;iBACI,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA2B,EAAE,IAAI,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,iBAAiB,CAAC,CAAC,CAAC;YACvH,CAAC;iBACI,CAAC;gBACF,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY;oBAChD,CAAC,CAAC,CAAC,QAAQ,EAAE,sBAAsB,EAAE,gBAAgB,CAAC;oBACtD,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY;wBAClC,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,gBAAgB,CAAC;wBAC/F,CAAC,CAAC,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC;YACnH,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC;YACpB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAC5C,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC,eAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACP,CAAC","sourcesContent":["// discovery + selector 之后的纯 SandboxLayer linker。\n// 本模块只读 factory 产物,不读文件、不访问网络、不调用 Provider,也不创建 Sandbox。\nimport { sandboxCommandDeclarationOf, sandboxCommandIdentityJson, type SandboxCommand, type SandboxCommandDeclaration, } from \"./commands.ts\";\nimport { normalizeSandboxBeforeMetadata, sandboxActionDataOf, sandboxAfterActionDataOf, type NormalizedSandboxBeforeMetadata, type SandboxActionData, type SandboxChangeFrequency, } from \"./action.ts\";\nimport { sandboxLayer, sandboxLayerStateOf, sandboxTemplateIdentity, type SandboxLayer, type SandboxLayerKind, type SandboxLayerState, type SandboxRequirement, type SandboxBeforeDeclaration, type SandboxAfterDeclaration, type SandboxTemplateDeclaration, } from \"./layer.ts\";\nimport type { JsonValue } from \"../shared/types.ts\";\nimport type { SandboxHook } from \"./types.ts\";\nimport { Data, Effect } from \"effect\";\nimport { pluginSourceOf, pluginLifecycleIdentity, pluginLifecycleProjection, type LinkedPluginLifecycle, } from \"../plugin/contracts.ts\";\nexport interface SandboxLayerDeclarationSite {\n readonly file: string;\n readonly line?: number;\n readonly column?: number;\n readonly expression?: string;\n}\nexport interface LinkedSandboxLayerDeclarationSite {\n readonly file: string;\n readonly line: SandboxDeclaredValue<number>;\n readonly column: SandboxDeclaredValue<number>;\n readonly expression: SandboxDeclaredValue<string>;\n}\nexport type SandboxDeclaredValue<Value> = {\n readonly _tag: \"Omitted\";\n} | {\n readonly _tag: \"Declared\";\n readonly value: Value;\n};\nexport interface SandboxLayerContributionInput {\n readonly id: string;\n /** undefined 表示作者省略字段;显式 sandboxLayer() 与 undefined 不等价于 Direct Agent。 */\n readonly layer?: SandboxLayer;\n readonly declaredAt?: SandboxLayerDeclarationSite;\n}\nexport interface SandboxLayerPairInput {\n readonly eval: SandboxLayerContributionInput;\n readonly group?: SandboxLayerContributionInput;\n readonly experiment: SandboxLayerContributionInput;\n readonly agent: {\n readonly kind: \"direct\" | \"sandbox\" | \"custom\";\n readonly name: string;\n readonly sandbox?: SandboxLayer<\"command-only\">;\n };\n}\nexport interface SandboxLayerOwnerRef {\n readonly kind: \"eval\" | \"eval-group\" | \"experiment\";\n readonly id: string;\n}\nexport interface SandboxAgentOwnerRef {\n readonly kind: \"agent\";\n readonly id: string;\n}\nexport type SandboxScheduleOwnerRef = SandboxLayerOwnerRef | SandboxAgentOwnerRef;\nexport interface SandboxDeclarationOrder {\n readonly owner: SandboxScheduleOwnerRef;\n readonly ordinal: number;\n}\nexport interface SandboxBeforeDependencyProjection {\n readonly id: string;\n readonly source: \"explicit\" | \"capability\";\n readonly capability?: string;\n}\nexport type SandboxCommandFingerprint = {\n readonly kind: \"stable\";\n readonly owner: SandboxScheduleOwnerRef;\n readonly index: number;\n readonly id: string;\n readonly revision: string;\n readonly inputs: JsonValue;\n} | {\n readonly kind: \"opaque\";\n readonly owner: SandboxScheduleOwnerRef;\n readonly index: number;\n};\n/** 生命周期函数本身不可序列化;这个 marker 只固定其 owner、phase 与追加位置。 */\nexport interface SandboxLifecycleFingerprint {\n readonly kind: \"opaque\";\n readonly owner: SandboxScheduleOwnerRef;\n readonly phase: \"setup\" | \"teardown\";\n readonly index: number;\n}\nexport interface SandboxLayerDeclarationView {\n readonly owner: SandboxLayerOwnerRef;\n readonly explicit: boolean;\n readonly kind: SandboxLayerKind;\n readonly template: SandboxDeclaredValue<SandboxTemplateDeclaration>;\n readonly commands: readonly SandboxCommandFingerprint[];\n readonly declaredAt: SandboxDeclaredValue<LinkedSandboxLayerDeclarationSite>;\n}\nexport type SandboxLinkIssueCode = \"sandbox.template-missing\" | \"sandbox.template-conflict\" | \"sandbox.unexpected-for-direct-agent\" | \"eval-group-direct-agent\";\nexport interface SandboxLinkIssue {\n readonly code: SandboxLinkIssueCode;\n readonly pair: {\n readonly evalId: string;\n readonly experimentId: string;\n readonly agentKind: \"direct\" | \"sandbox\" | \"custom\";\n readonly agentName: string;\n };\n readonly eval: SandboxLayerDeclarationView;\n readonly group?: SandboxLayerDeclarationView;\n readonly experiment: SandboxLayerDeclarationView;\n readonly summary: string;\n readonly actions: readonly string[];\n}\nexport class SandboxLayerLinkError extends Data.TaggedError(\"SandboxLayerLinkError\")<{\n readonly code: \"sandbox.link-failed\";\n readonly issues: readonly SandboxLinkIssue[];\n readonly message: string;\n}> {\n}\nexport type SandboxBeforePlanningFailureReason = \"duplicate-action-id\" | \"duplicate-capability-provider\" | \"missing-dependency\" | \"missing-capability\" | \"dependency-cycle\";\n/** Author-declared DAG failures are planning failures, never Effect defects. */\nexport class SandboxBeforePlanningError extends Data.TaggedError(\"SandboxBeforePlanningError\")<{\n readonly code: \"sandbox.before-planning-failed\";\n readonly reason: SandboxBeforePlanningFailureReason;\n readonly occurrencePath: readonly string[];\n /** Every action id directly involved in the failure, in stable declaration order. */\n readonly actionIds: readonly string[];\n readonly actionId?: string;\n readonly dependencyId?: string;\n readonly capability?: string;\n readonly providerActionIds?: readonly string[];\n readonly blockedActionIds?: readonly string[];\n readonly message: string;\n}> {\n}\nfunction beforePlanningError(input: Omit<ConstructorParameters<typeof SandboxBeforePlanningError>[0], \"code\" | \"occurrencePath\"> & {\n readonly occurrencePath: readonly string[];\n}): SandboxBeforePlanningError {\n return new SandboxBeforePlanningError({\n code: \"sandbox.before-planning-failed\",\n ...input,\n occurrencePath: Object.freeze([...input.occurrencePath]),\n actionIds: Object.freeze([...input.actionIds]),\n ...(input.providerActionIds === undefined\n ? {}\n : { providerActionIds: Object.freeze([...input.providerActionIds]) }),\n ...(input.blockedActionIds === undefined\n ? {}\n : { blockedActionIds: Object.freeze([...input.blockedActionIds]) }),\n });\n}\nfunction sandboxLayerLinkError(issues: readonly SandboxLinkIssue[]): SandboxLayerLinkError {\n const frozen = Object.freeze([...issues]);\n const counts = new Map<SandboxLinkIssueCode, number>();\n for (const issue of frozen)\n counts.set(issue.code, (counts.get(issue.code) ?? 0) + 1);\n const breakdown = [...counts].map(([code, count]) => `${code}=${count}`).join(\", \");\n return new SandboxLayerLinkError({\n code: \"sandbox.link-failed\",\n issues: frozen,\n message: `Sandbox layer linking failed for ${frozen.length} pairs` +\n `${breakdown === \"\" ? \"\" : ` (${breakdown})`}. No Sandbox was created.`,\n });\n}\nfunction declarationSummary(view: SandboxLayerDeclarationView): string {\n const expression = view.declaredAt._tag === \"Declared\" && view.declaredAt.value.expression._tag === \"Declared\"\n ? view.declaredAt.value.expression.value\n : view.template._tag === \"Declared\"\n ? `${view.template.value.provider}:${view.template.value.kind}`\n : view.explicit ? \"sandboxLayer()\" : \"<omitted>\";\n const location = view.declaredAt._tag === \"Omitted\"\n ? \"<unknown source>\"\n : `${view.declaredAt.value.file}${view.declaredAt.value.line._tag === \"Omitted\" ? \"\" : `:${view.declaredAt.value.line.value}`}`;\n return `${expression} at ${location}`;\n}\n/** CLI 面向作者的聚合错误;不泄漏框架 stack,逐 pair 给出两处声明与可执行修法。 */\nexport function formatSandboxLayerLinkError(error: SandboxLayerLinkError): string {\n const lines: string[] = [];\n for (const issue of error.issues) {\n lines.push(`${issue.code}: ${issue.summary}`);\n lines.push(` eval: ${declarationSummary(issue.eval)}`);\n if (issue.group !== undefined) {\n lines.push(` eval group: ${declarationSummary(issue.group)}`);\n }\n lines.push(` experiment: ${declarationSummary(issue.experiment)}`);\n for (const action of issue.actions)\n lines.push(` fix: ${action}`);\n lines.push(\"\");\n }\n lines.push(`${error.issues.length} invalid pairs found. No Sandbox was created.`);\n return lines.join(\"\\n\");\n}\nexport interface LinkedSandboxCommand {\n readonly owner: SandboxScheduleOwnerRef;\n /** 同一 owner layer 内从零开始的追加序号。 */\n readonly index: number;\n readonly command: SandboxCommand;\n readonly fingerprint: SandboxCommandFingerprint;\n}\ninterface LinkedSandboxBeforeBase {\n readonly pluginSource?: string;\n readonly owner: SandboxScheduleOwnerRef;\n readonly ordinal: number;\n readonly id: string;\n readonly metadata: NormalizedSandboxBeforeMetadata;\n readonly fingerprint: SandboxCommandFingerprint;\n}\nexport type LinkedSandboxBefore = (LinkedSandboxBeforeBase & {\n readonly kind: \"action\";\n readonly data: SandboxActionData;\n}) | (LinkedSandboxBeforeBase & {\n readonly kind: \"command\";\n readonly declaration: SandboxCommandDeclaration;\n}) | (LinkedSandboxBeforeBase & {\n readonly kind: \"hook\";\n readonly hook: SandboxHook;\n});\nexport type LinkedSandboxAfter = {\n readonly pluginSource?: string;\n readonly kind: \"action\";\n readonly owner: SandboxScheduleOwnerRef;\n readonly ordinal: number;\n readonly data: SandboxActionData;\n readonly fingerprint: SandboxCommandFingerprint;\n} | {\n readonly pluginSource?: string;\n readonly kind: \"command\";\n readonly owner: SandboxScheduleOwnerRef;\n readonly ordinal: number;\n readonly declaration: Extract<SandboxAfterDeclaration, {\n readonly kind: \"command\";\n }>;\n readonly fingerprint: SandboxCommandFingerprint;\n};\nexport type ScheduledSandboxBefore = LinkedSandboxBefore & {\n readonly dependencies: readonly SandboxBeforeDependencyProjection[];\n readonly executionOrder: {\n readonly topologicalOrdinal: number;\n readonly occurrencePath: readonly string[];\n };\n readonly schedulingReason: string;\n};\nexport interface SandboxLayerFingerprintProjection {\n readonly version: 1;\n readonly templateOwner: SandboxLayerOwnerRef;\n readonly template: JsonValue;\n readonly commands: readonly SandboxCommandFingerprint[];\n readonly requirements?: readonly LinkedSandboxRequirement[];\n /** Ordered cleanup shape; opaque callbacks retain owner + ordinal without serializing closures. */\n readonly after?: readonly SandboxCommandFingerprint[];\n /** 有 hook 时才出现,避免把回调实现或闭包写入 record。 */\n readonly lifecycle?: readonly SandboxLifecycleFingerprint[];\n readonly plugins?: JsonValue;\n}\nexport interface LinkedSandboxRequirement {\n readonly owner: SandboxScheduleOwnerRef;\n readonly requirement: SandboxRequirement;\n}\nexport interface LinkedSandboxPluginLifecycle {\n readonly owner: SandboxLayerOwnerRef;\n readonly lifecycle: LinkedPluginLifecycle;\n}\nexport interface LinkedSandboxPair {\n readonly kind: \"sandbox\";\n readonly evalId: string;\n readonly experimentId: string;\n readonly agentName: string;\n readonly templateOwner: SandboxLayerOwnerRef;\n readonly template: SandboxTemplateDeclaration;\n /** template owner 的 commands 在前,另一作者的 commands 在后。 */\n readonly commands: readonly LinkedSandboxCommand[];\n /** Provider-neutral physical requirements declared by Sandbox layers. */\n readonly requirements: readonly LinkedSandboxRequirement[];\n /** 所有作者声明的 action / stable command / opaque callback 经同一 DAG 排序。 */\n readonly before: readonly ScheduledSandboxBefore[];\n /** after 只登记,执行方按此数组逆序解释,不参与 before DAG。 */\n readonly after: readonly LinkedSandboxAfter[];\n /** 物理实例生命周期:template owner 在前,另一 layer 在后。回调不进 record,但保留 marker。 */\n readonly setupHooks: readonly SandboxHook[];\n readonly teardownHooks: readonly SandboxHook[];\n /** Physical lifecycle plugins, in flattened SandboxLayer order. */\n readonly pluginLifecycles: readonly LinkedSandboxPluginLifecycle[];\n /** Eval 自己声明 author hook 或 Sandbox Plugin lifecycle 时实例不得跨 Eval 共用。 */\n readonly hasEvalPhysicalLifecycle: boolean;\n readonly evalGroupId?: string;\n readonly fingerprint: SandboxLayerFingerprintProjection;\n}\nexport interface LinkedDirectPair {\n readonly kind: \"direct\";\n readonly evalId: string;\n readonly experimentId: string;\n readonly agentName: string;\n}\nexport type LinkedSandboxLayerPair = LinkedSandboxPair | LinkedDirectPair;\nfunction commandFingerprintIdentity(entry: SandboxCommandFingerprint): JsonValue {\n return entry.kind === \"stable\"\n ? {\n kind: entry.kind,\n owner: { kind: entry.owner.kind, id: entry.owner.id },\n index: entry.index,\n id: entry.id,\n revision: entry.revision,\n inputs: entry.inputs,\n }\n : {\n kind: entry.kind,\n owner: { kind: entry.owner.kind, id: entry.owner.id },\n index: entry.index,\n };\n}\n/** Single owner-aware identity for every physical Sandbox lifecycle cohort. */\nexport function sandboxPhysicalLifecycleIdentity(pair: LinkedSandboxLayerPair): JsonValue {\n if (pair.kind === \"direct\")\n return Object.freeze({ kind: \"direct\" });\n const author: JsonValue[] = (pair.fingerprint.lifecycle ?? []).map((entry) => ({\n kind: entry.kind,\n owner: { kind: entry.owner.kind, id: entry.owner.id },\n phase: entry.phase,\n index: entry.index,\n }));\n return Object.freeze({\n author,\n ...((pair.fingerprint.after?.length ?? 0) === 0\n ? {}\n : { after: pair.fingerprint.after!.map(commandFingerprintIdentity) }),\n plugins: pair.fingerprint.plugins ?? [],\n });\n}\n/**\n * 把 linked pair 按作者重新投影成缓存身份。owner id 不进身份;所在文件的 id/源码分别由\n * experiment key 与 eval source closure 拥有。Experiment 投影进 configHash,Eval 投影进\n * 每条 fingerprint,templateOwner 由两者共同可重建。\n */\nexport function sandboxLayerIdentityFor(linked: LinkedSandboxLayerPair, ownerKind: SandboxScheduleOwnerRef[\"kind\"]): JsonValue {\n if (linked.kind === \"direct\")\n return { kind: \"direct\" };\n const ownsTemplate = linked.templateOwner.kind === ownerKind;\n const commands: JsonValue[] = linked.commands\n .filter((entry) => entry.owner.kind === ownerKind)\n .map((entry): JsonValue => entry.fingerprint.kind === \"stable\"\n ? {\n kind: \"stable\" as const,\n index: entry.index,\n id: entry.fingerprint.id,\n revision: entry.fingerprint.revision,\n inputs: entry.fingerprint.inputs,\n }\n : { kind: \"opaque\" as const, index: entry.index });\n const lifecycle = linked.fingerprint.lifecycle\n ?.filter((entry) => entry.owner.kind === ownerKind)\n .map((entry): JsonValue => ({ kind: entry.kind, phase: entry.phase, index: entry.index }));\n const after = (linked.fingerprint.after ?? [])\n .filter((entry) => entry.owner.kind === ownerKind)\n .map((entry): JsonValue => entry.kind === \"stable\"\n ? {\n kind: entry.kind,\n index: entry.index,\n id: entry.id,\n revision: entry.revision,\n inputs: entry.inputs,\n }\n : { kind: entry.kind, index: entry.index });\n const requirements = (linked.fingerprint.requirements ?? [])\n .filter((entry) => entry.owner.kind === ownerKind)\n .map((entry): JsonValue => ({\n _tag: entry.requirement._tag,\n docker: {\n api: entry.requirement.docker.api,\n compose: entry.requirement.docker.compose,\n isolation: entry.requirement.docker.isolation,\n minimumDataBytes: entry.requirement.docker.minimumDataBytes,\n },\n }));\n return {\n layer: ownsTemplate\n ? { _tag: \"Template\", value: sandboxTemplateIdentity(linked.template) }\n : { _tag: \"CommandOnly\" },\n commands,\n ...(requirements.length === 0 ? {} : { requirements }),\n ...(after.length === 0 ? {} : { after }),\n ...(lifecycle === undefined || lifecycle.length === 0 ? {} : { lifecycle }),\n ...(linked.pluginLifecycles.filter((entry) => entry.owner.kind === ownerKind).length === 0\n ? {}\n : { plugins: pluginLifecycleProjection(linked.pluginLifecycles.filter((entry) => entry.owner.kind === ownerKind).map((entry) => entry.lifecycle)) }),\n };\n}\ninterface NormalizedContribution {\n readonly owner: SandboxLayerOwnerRef;\n readonly explicit: boolean;\n readonly state: SandboxLayerState;\n readonly view: SandboxLayerDeclarationView;\n}\ninterface NormalizedScheduleContribution {\n readonly owner: SandboxScheduleOwnerRef;\n readonly explicit: boolean;\n readonly state: SandboxLayerState;\n}\ninterface TemplateContribution extends NormalizedContribution {\n readonly state: SandboxLayerState<\"template-bearing\">;\n}\nconst OMITTED_LAYER = sandboxLayer();\nfunction freezeOwner(kind: SandboxLayerOwnerRef[\"kind\"], id: string): SandboxLayerOwnerRef {\n return Object.freeze({ kind, id });\n}\nfunction declaredValue<Value>(value: Value | undefined): SandboxDeclaredValue<Value> {\n return value === undefined\n ? Object.freeze({ _tag: \"Omitted\" })\n : Object.freeze({ _tag: \"Declared\", value });\n}\nfunction freezeSite(site: SandboxLayerDeclarationSite | undefined): SandboxDeclaredValue<LinkedSandboxLayerDeclarationSite> {\n if (site === undefined)\n return Object.freeze({ _tag: \"Omitted\" });\n return Object.freeze({ _tag: \"Declared\", value: Object.freeze({\n file: site.file,\n line: declaredValue(site.line),\n column: declaredValue(site.column),\n expression: declaredValue(site.expression),\n }) });\n}\nfunction fingerprintCommand(owner: SandboxScheduleOwnerRef, index: number, declaration: SandboxCommandDeclaration): SandboxCommandFingerprint {\n if (declaration.kind === \"opaque\")\n return Object.freeze({ kind: \"opaque\", owner, index });\n return Object.freeze({\n kind: \"stable\",\n owner,\n index,\n id: declaration.identity.id,\n revision: declaration.identity.revision,\n inputs: sandboxCommandIdentityJson(declaration.identity.inputs),\n });\n}\nfunction actionFingerprint(owner: SandboxScheduleOwnerRef, index: number, data: SandboxActionData): SandboxCommandFingerprint {\n return Object.freeze({\n kind: \"stable\" as const,\n owner,\n index,\n id: data.metadata.id,\n revision: \"sandbox-action/v1\",\n inputs: {\n family: data.plan.family,\n state: data.plan.state,\n input: data.plan.input,\n steps: data.plan.steps,\n fingerprint: data.plan.fingerprint,\n scheduling: {\n changeFrequency: data.metadata.changeFrequency.value,\n dependsOn: data.metadata.dependsOn.map((reference) => reference.id),\n requires: [...data.metadata.requires],\n provides: [...data.metadata.provides],\n },\n } as unknown as JsonValue,\n });\n}\nfunction afterDeclarationFingerprint(owner: SandboxScheduleOwnerRef, ordinal: number, declaration: SandboxAfterDeclaration): SandboxCommandFingerprint {\n if (declaration.kind === \"action\") {\n return actionFingerprint(owner, ordinal, sandboxAfterActionDataOf(declaration.action));\n }\n return Object.freeze({ kind: \"opaque\" as const, owner, index: ordinal });\n}\nfunction generatedBeforeId(owner: SandboxScheduleOwnerRef, ordinal: number): string {\n return `${owner.kind}:${owner.id}:before:${ordinal}`;\n}\nfunction beforeFromDeclaration(owner: SandboxScheduleOwnerRef, ordinal: number, declaration: SandboxBeforeDeclaration): LinkedSandboxBefore {\n if (declaration.kind === \"action\") {\n const data = sandboxActionDataOf(declaration.action);\n return Object.freeze({\n kind: \"action\" as const,\n owner,\n ...(pluginSourceOf(declaration) === undefined ? {} : { pluginSource: pluginSourceOf(declaration) }),\n ordinal,\n id: data.metadata.id,\n metadata: data.metadata,\n data,\n fingerprint: actionFingerprint(owner, ordinal, data),\n });\n }\n if (declaration.kind === \"hook\") {\n const id = generatedBeforeId(owner, ordinal);\n return Object.freeze({\n kind: \"hook\" as const,\n owner,\n ...(pluginSourceOf(declaration) === undefined ? {} : { pluginSource: pluginSourceOf(declaration) }),\n ordinal,\n id,\n metadata: normalizeSandboxBeforeMetadata({ id }),\n hook: declaration.hook,\n fingerprint: Object.freeze({ kind: \"opaque\" as const, owner, index: ordinal }),\n });\n }\n const command = declaration.declaration;\n const explicit = command.kind === \"stable\" && command.metadata.explicitId;\n const id = explicit ? command.identity.id : generatedBeforeId(owner, ordinal);\n const metadata = command.kind === \"stable\"\n ? Object.freeze({ ...command.metadata.scheduling, id })\n : normalizeSandboxBeforeMetadata({ id });\n return Object.freeze({\n kind: \"command\" as const,\n owner,\n ...(pluginSourceOf(declaration) === undefined ? {} : { pluginSource: pluginSourceOf(declaration) }),\n ordinal,\n id,\n metadata,\n declaration: command,\n fingerprint: fingerprintCommand(owner, ordinal, command),\n });\n}\n/** @internal Agent ensure uses the same command declaration/link path as author-owned before entries. */\nexport function linkSandboxCommandBefore(owner: SandboxScheduleOwnerRef, ordinal: number, command: SandboxCommand): LinkedSandboxBefore {\n return beforeFromDeclaration(owner, ordinal, Object.freeze({\n kind: \"command\" as const,\n declaration: sandboxCommandDeclarationOf(command),\n }));\n}\nfunction fingerprintLifecycle(owner: SandboxScheduleOwnerRef, phase: SandboxLifecycleFingerprint[\"phase\"], hooks: readonly SandboxHook[]): readonly SandboxLifecycleFingerprint[] {\n return Object.freeze(hooks.map((_, index) => Object.freeze({\n kind: \"opaque\" as const,\n owner,\n phase,\n index,\n })));\n}\nfunction normalizeAgentContribution(input: SandboxLayerPairInput[\"agent\"]): NormalizedScheduleContribution {\n const owner = Object.freeze({ kind: \"agent\" as const, id: input.name });\n const state = sandboxLayerStateOf(input.sandbox ?? OMITTED_LAYER);\n if (state.kind !== \"command-only\") {\n throw new TypeError(\"Sandbox Agent layers must be command-only and cannot provide a template\");\n }\n return Object.freeze({ owner, explicit: input.sandbox !== undefined, state });\n}\nfunction normalizeContribution(kind: SandboxLayerOwnerRef[\"kind\"], input: SandboxLayerContributionInput): NormalizedContribution {\n const owner = freezeOwner(kind, input.id);\n const explicit = input.layer !== undefined;\n const state = sandboxLayerStateOf(input.layer ?? OMITTED_LAYER);\n const commands = Object.freeze(state.before.map((declaration, index) => beforeFromDeclaration(owner, index, declaration).fingerprint));\n const template: SandboxDeclaredValue<SandboxTemplateDeclaration> = state.kind === \"template-bearing\"\n ? declaredValue(state.template)\n : Object.freeze({ _tag: \"Omitted\" });\n const view = Object.freeze({\n owner,\n explicit,\n kind: state.kind,\n template,\n commands,\n declaredAt: freezeSite(input.declaredAt),\n });\n return Object.freeze({ owner, explicit, state, view });\n}\n/** Stable identity of one author-owned layer, before it is linked with the other owners. */\nexport function sandboxLayerDefinitionIdentity(layer: SandboxLayer | undefined): JsonValue {\n const contribution = normalizeContribution(\"eval-group\", { id: \"<definition>\", layer });\n const commands: JsonValue[] = contribution.view.commands.map((command): JsonValue => command.kind === \"stable\"\n ? {\n kind: \"stable\",\n index: command.index,\n id: command.id,\n revision: command.revision,\n inputs: command.inputs,\n }\n : { kind: \"opaque\", index: command.index });\n const lifecycle: JsonValue[] = [\n ...fingerprintLifecycle(contribution.owner, \"setup\", contribution.state.setupHooks),\n ...fingerprintLifecycle(contribution.owner, \"teardown\", contribution.state.teardownHooks),\n ].map((entry) => ({ kind: entry.kind, phase: entry.phase, index: entry.index }));\n const after: JsonValue[] = contribution.state.after.map((declaration, ordinal): JsonValue => {\n const entry = afterDeclarationFingerprint(contribution.owner, ordinal, declaration);\n return entry.kind === \"stable\"\n ? { kind: entry.kind, index: entry.index, id: entry.id, revision: entry.revision, inputs: entry.inputs }\n : { kind: entry.kind, index: entry.index };\n });\n return {\n layer: contribution.state.kind === \"template-bearing\"\n ? { _tag: \"Template\", value: sandboxTemplateIdentity(contribution.state.template) }\n : { _tag: \"CommandOnly\" },\n commands,\n ...(after.length === 0 ? {} : { after }),\n ...(lifecycle.length === 0 ? {} : { lifecycle }),\n };\n}\nfunction pairRef(input: SandboxLayerPairInput): SandboxLinkIssue[\"pair\"] {\n return Object.freeze({\n evalId: input.eval.id,\n experimentId: input.experiment.id,\n agentKind: input.agent.kind,\n agentName: input.agent.name,\n });\n}\nfunction isTemplateContribution(contribution: NormalizedContribution): contribution is TemplateContribution {\n return contribution.state.kind === \"template-bearing\";\n}\nfunction issue(code: SandboxLinkIssueCode, pair: SandboxLinkIssue[\"pair\"], evalContribution: NormalizedContribution, experimentContribution: NormalizedContribution, groupContribution?: NormalizedContribution): SandboxLinkIssue {\n const group = groupContribution === undefined ? {} : { group: groupContribution.view };\n if (code === \"sandbox.template-missing\") {\n return Object.freeze({\n code,\n pair,\n eval: evalContribution.view,\n ...group,\n experiment: experimentContribution.view,\n summary: groupContribution === undefined\n ? `Eval \"${pair.evalId}\" and Experiment \"${pair.experimentId}\" do not declare a Sandbox template.`\n : `Eval Group \"${groupContribution.owner.id}\", Eval \"${pair.evalId}\", and Experiment \"${pair.experimentId}\" do not declare a Sandbox template.`,\n actions: Object.freeze([\n groupContribution === undefined\n ? \"Declare one template-bearing SandboxLayer on the Eval or Experiment.\"\n : \"Declare one template-bearing SandboxLayer on the Eval Group or Experiment; grouped Eval members may only contribute prepare commands.\",\n \"If this pairing is unintended, change the Experiment selector so the pair is not linked.\",\n ]),\n });\n }\n if (code === \"sandbox.template-conflict\") {\n return Object.freeze({\n code,\n pair,\n eval: evalContribution.view,\n ...group,\n experiment: experimentContribution.view,\n summary: groupContribution === undefined\n ? `Eval \"${pair.evalId}\" and Experiment \"${pair.experimentId}\" both declare a Sandbox template.`\n : `Eval Group \"${groupContribution.owner.id}\", Eval \"${pair.evalId}\", and Experiment \"${pair.experimentId}\" declare more than one Sandbox template.`,\n actions: Object.freeze([\n \"Keep exactly one template-bearing layer; NiceEval starts one Sandbox Case and does not merge or prioritize templates.\",\n \"If only some combinations are compatible, split the Experiment selector.\",\n ]),\n });\n }\n if (code === \"eval-group-direct-agent\") {\n return Object.freeze({\n code,\n pair,\n eval: evalContribution.view,\n ...group,\n experiment: experimentContribution.view,\n summary: `Eval Group \"${groupContribution!.owner.id}\" cannot run with Direct Agent \"${pair.agentName}\".`,\n actions: Object.freeze([\n \"Use a Sandbox Agent for every Experiment that selects this Eval Group.\",\n \"If the Experiment must stay direct, change its selector so it does not select grouped Evals.\",\n ]),\n });\n }\n return Object.freeze({\n code,\n pair,\n eval: evalContribution.view,\n ...group,\n experiment: experimentContribution.view,\n summary: `Direct Agent \"${pair.agentName}\" cannot use an explicit SandboxLayer.`,\n actions: Object.freeze([\n \"Remove every explicit Eval/Experiment sandbox declaration for this pairing.\",\n \"If the task needs Sandbox operations, use a Sandbox Agent instead.\",\n ]),\n });\n}\nconst OWNER_ORDER: Readonly<Record<SandboxScheduleOwnerRef[\"kind\"], number>> = Object.freeze({\n experiment: 0,\n \"eval-group\": 1,\n eval: 2,\n agent: 3,\n});\nfunction compareText(left: string, right: string): number {\n return left < right ? -1 : left > right ? 1 : 0;\n}\nfunction compareReady(left: LinkedSandboxBefore, right: LinkedSandboxBefore): number {\n return left.metadata.changeFrequency.value - right.metadata.changeFrequency.value ||\n OWNER_ORDER[left.owner.kind] - OWNER_ORDER[right.owner.kind] ||\n compareText(left.owner.id, right.owner.id) ||\n left.ordinal - right.ordinal;\n}\n/** @internal Pure Kahn scheduler shared by link and debug planning; it never invokes declarations. */\nexport function scheduleSandboxBefore(entries: readonly LinkedSandboxBefore[], occurrencePath: readonly string[]): Effect.Effect<readonly ScheduledSandboxBefore[], SandboxBeforePlanningError> {\n return Effect.suspend(() => {\n const byId = new Map<string, LinkedSandboxBefore>();\n for (const entry of entries) {\n if (byId.has(entry.id)) {\n return Effect.fail(beforePlanningError({\n reason: \"duplicate-action-id\",\n occurrencePath,\n actionIds: [entry.id],\n actionId: entry.id,\n message: `sandbox.before-planning-failed (duplicate-action-id): action ${JSON.stringify(entry.id)} is declared more than once`,\n }));\n }\n byId.set(entry.id, entry);\n }\n const capabilityProviders = new Map<string, LinkedSandboxBefore>();\n for (const entry of entries) {\n for (const capability of entry.metadata.provides) {\n const previous = capabilityProviders.get(capability);\n if (previous !== undefined) {\n const providerActionIds = [previous.id, entry.id];\n return Effect.fail(beforePlanningError({\n reason: \"duplicate-capability-provider\",\n occurrencePath,\n actionIds: providerActionIds,\n capability,\n providerActionIds,\n message: `sandbox.before-planning-failed (duplicate-capability-provider): capability ${JSON.stringify(capability)} is provided by ${providerActionIds.map((id) => JSON.stringify(id)).join(\" and \")}`,\n }));\n }\n capabilityProviders.set(capability, entry);\n }\n }\n const dependencies = new Map<string, SandboxBeforeDependencyProjection[]>();\n const outgoing = new Map<string, Set<string>>();\n const indegree = new Map(entries.map((entry) => [entry.id, 0]));\n const addEdge = (dependency: LinkedSandboxBefore, dependent: LinkedSandboxBefore, projection: SandboxBeforeDependencyProjection): void => {\n const targets = outgoing.get(dependency.id) ?? new Set<string>();\n if (!targets.has(dependent.id)) {\n targets.add(dependent.id);\n outgoing.set(dependency.id, targets);\n indegree.set(dependent.id, (indegree.get(dependent.id) ?? 0) + 1);\n }\n const projections = dependencies.get(dependent.id) ?? [];\n projections.push(Object.freeze(projection));\n dependencies.set(dependent.id, projections);\n };\n for (const entry of entries) {\n for (const reference of entry.metadata.dependsOn) {\n const dependency = byId.get(reference.id);\n if (dependency === undefined) {\n return Effect.fail(beforePlanningError({\n reason: \"missing-dependency\",\n occurrencePath,\n actionIds: [entry.id, reference.id],\n actionId: entry.id,\n dependencyId: reference.id,\n message: `sandbox.before-planning-failed (missing-dependency): action ${JSON.stringify(entry.id)} depends on missing action ${JSON.stringify(reference.id)}`,\n }));\n }\n addEdge(dependency, entry, { id: dependency.id, source: \"explicit\" });\n }\n for (const capability of entry.metadata.requires) {\n const dependency = capabilityProviders.get(capability);\n if (dependency === undefined) {\n return Effect.fail(beforePlanningError({\n reason: \"missing-capability\",\n occurrencePath,\n actionIds: [entry.id],\n actionId: entry.id,\n capability,\n message: `sandbox.before-planning-failed (missing-capability): action ${JSON.stringify(entry.id)} requires missing capability ${JSON.stringify(capability)}`,\n }));\n }\n addEdge(dependency, entry, { id: dependency.id, source: \"capability\", capability });\n }\n }\n const ready = entries.filter((entry) => indegree.get(entry.id) === 0).sort(compareReady);\n const ordered: ScheduledSandboxBefore[] = [];\n while (ready.length > 0) {\n const entry = ready.shift()!;\n const entryDependencies = Object.freeze([...(dependencies.get(entry.id) ?? [])]);\n const frequency: SandboxChangeFrequency = entry.metadata.changeFrequency;\n ordered.push(Object.freeze({\n ...entry,\n dependencies: entryDependencies,\n executionOrder: Object.freeze({\n topologicalOrdinal: ordered.length,\n occurrencePath: Object.freeze([...occurrencePath]),\n }),\n schedulingReason: entryDependencies.length === 0\n ? `ready-set frequency=${frequency.value}; owner=${entry.owner.kind}:${entry.owner.id}; ordinal=${entry.ordinal}`\n : `dependencies satisfied (${entryDependencies.map((dependency) => dependency.id).join(\", \")}); ` +\n `ready-set frequency=${frequency.value}; owner=${entry.owner.kind}:${entry.owner.id}; ordinal=${entry.ordinal}`,\n }));\n for (const dependentId of outgoing.get(entry.id) ?? []) {\n const remaining = (indegree.get(dependentId) ?? 0) - 1;\n indegree.set(dependentId, remaining);\n if (remaining === 0)\n ready.push(byId.get(dependentId)!);\n }\n ready.sort(compareReady);\n }\n if (ordered.length !== entries.length) {\n const blocked = entries.filter((entry) => (indegree.get(entry.id) ?? 0) > 0).map((entry) => entry.id);\n return Effect.fail(beforePlanningError({\n reason: \"dependency-cycle\",\n occurrencePath,\n actionIds: blocked,\n blockedActionIds: blocked,\n message: `sandbox.before-planning-failed (dependency-cycle): blocked actions ${blocked.map((id) => JSON.stringify(id)).join(\", \")}`,\n }));\n }\n return Effect.succeed(Object.freeze(ordered));\n });\n}\nfunction linkedBefore(contributions: readonly NormalizedScheduleContribution[], occurrencePath: readonly string[]): Effect.Effect<readonly ScheduledSandboxBefore[], SandboxBeforePlanningError> {\n const entries = contributions.flatMap((contribution) => contribution.state.before.map((declaration, ordinal) => beforeFromDeclaration(contribution.owner, ordinal, declaration)));\n return scheduleSandboxBefore(entries, occurrencePath);\n}\nfunction linkedAfter(contributions: readonly NormalizedScheduleContribution[]): readonly LinkedSandboxAfter[] {\n return Object.freeze(contributions.flatMap((contribution) => contribution.state.after.map((declaration, ordinal): LinkedSandboxAfter => declaration.kind === \"action\"\n ? Object.freeze({\n kind: \"action\" as const,\n owner: contribution.owner,\n ordinal,\n ...(pluginSourceOf(declaration) === undefined ? {} : { pluginSource: pluginSourceOf(declaration) }),\n data: sandboxAfterActionDataOf(declaration.action),\n fingerprint: afterDeclarationFingerprint(contribution.owner, ordinal, declaration),\n })\n : Object.freeze({\n kind: \"command\" as const,\n owner: contribution.owner,\n ordinal,\n ...(pluginSourceOf(declaration) === undefined ? {} : { pluginSource: pluginSourceOf(declaration) }),\n declaration,\n fingerprint: afterDeclarationFingerprint(contribution.owner, ordinal, declaration),\n }))));\n}\nfunction linkedCommands(first: NormalizedScheduleContribution, ...rest: readonly NormalizedScheduleContribution[]): {\n readonly commands: readonly LinkedSandboxCommand[];\n} {\n const commands: LinkedSandboxCommand[] = [];\n for (const contribution of [first, ...rest]) {\n contribution.state.commands.forEach((declaration, index) => {\n const fingerprint = fingerprintCommand(contribution.owner, index, declaration);\n commands.push(Object.freeze({ owner: contribution.owner, index, command: declaration.command, fingerprint }));\n });\n }\n return Object.freeze({ commands: Object.freeze(commands) });\n}\nfunction linkSandboxPair(pair: SandboxLinkIssue[\"pair\"], templateOwner: TemplateContribution, otherOwners: readonly NormalizedContribution[], agentOwner: NormalizedScheduleContribution): Effect.Effect<LinkedSandboxPair, SandboxBeforePlanningError> {\n const template = templateOwner.state.template;\n const linked = linkedCommands(templateOwner, ...otherOwners, agentOwner);\n const scheduleContributions: NormalizedScheduleContribution[] = [templateOwner, ...otherOwners, agentOwner];\n const declarationContributions = [...scheduleContributions].sort((left, right) => OWNER_ORDER[left.owner.kind] - OWNER_ORDER[right.owner.kind] ||\n compareText(left.owner.id, right.owner.id));\n const after = linkedAfter(declarationContributions);\n const lifecycle = Object.freeze([\n ...fingerprintLifecycle(templateOwner.owner, \"setup\", templateOwner.state.setupHooks),\n ...otherOwners.flatMap((owner) => fingerprintLifecycle(owner.owner, \"setup\", owner.state.setupHooks)),\n ...fingerprintLifecycle(agentOwner.owner, \"setup\", agentOwner.state.setupHooks),\n ...fingerprintLifecycle(templateOwner.owner, \"teardown\", templateOwner.state.teardownHooks),\n ...otherOwners.flatMap((owner) => fingerprintLifecycle(owner.owner, \"teardown\", owner.state.teardownHooks)),\n ...fingerprintLifecycle(agentOwner.owner, \"teardown\", agentOwner.state.teardownHooks),\n ]);\n const requirements = Object.freeze(declarationContributions.flatMap((contribution) => contribution.state.requirements.map((requirement) => Object.freeze({\n owner: contribution.owner,\n requirement,\n }))));\n return Effect.map(linkedBefore(declarationContributions, [pair.experimentId, pair.evalId, \"attempt\"]), (before): LinkedSandboxPair => {\n const fingerprints = Object.freeze(before.map((entry) => entry.fingerprint));\n const afterFingerprints = Object.freeze(after.map((entry) => entry.fingerprint));\n const fingerprint = Object.freeze({\n version: 1 as const,\n templateOwner: templateOwner.owner,\n template: sandboxTemplateIdentity(template),\n commands: fingerprints,\n ...(requirements.length === 0 ? {} : { requirements }),\n ...(afterFingerprints.length === 0 ? {} : { after: afterFingerprints }),\n ...(lifecycle.length === 0 ? {} : { lifecycle }),\n });\n return Object.freeze({\n kind: \"sandbox\",\n evalId: pair.evalId,\n experimentId: pair.experimentId,\n agentName: pair.agentName,\n templateOwner: templateOwner.owner,\n template,\n commands: linked.commands,\n requirements,\n before,\n after,\n setupHooks: Object.freeze([\n ...templateOwner.state.setupHooks,\n ...otherOwners.flatMap((owner) => owner.state.setupHooks),\n ...agentOwner.state.setupHooks,\n ]),\n teardownHooks: Object.freeze([\n ...templateOwner.state.teardownHooks,\n ...otherOwners.flatMap((owner) => owner.state.teardownHooks),\n ...agentOwner.state.teardownHooks,\n ]),\n pluginLifecycles: Object.freeze([]),\n hasEvalPhysicalLifecycle: [templateOwner, ...otherOwners].some((owner) => owner.owner.kind === \"eval\" && owner.state.setupHooks.length + owner.state.teardownHooks.length > 0),\n ...([templateOwner, ...otherOwners].find((owner) => owner.owner.kind === \"eval-group\") === undefined\n ? {}\n : { evalGroupId: [templateOwner, ...otherOwners].find((owner) => owner.owner.kind === \"eval-group\")!.owner.id }),\n fingerprint,\n });\n });\n}\n/** @internal Attach automatically projected Plugin sandbox fragments after author layer linking. */\nexport function attachSandboxPluginLifecycles(pair: LinkedSandboxLayerPair, byOwner: Readonly<Partial<Record<SandboxLayerOwnerRef[\"kind\"], readonly LinkedPluginLifecycle[]>>>): LinkedSandboxLayerPair {\n if (pair.kind === \"direct\")\n return pair;\n const ownerOrder: readonly SandboxLayerOwnerRef[\"kind\"][] = pair.templateOwner.kind === \"eval\"\n ? [\"eval\", \"experiment\"]\n : pair.templateOwner.kind === \"eval-group\"\n ? [\"eval-group\", \"experiment\", \"eval\"]\n : [\"experiment\", \"eval-group\", \"eval\"];\n const entries = Object.freeze(ownerOrder.flatMap((kind) => (byOwner[kind] ?? []).map((lifecycle) => Object.freeze({\n owner: kind === \"eval\"\n ? Object.freeze({ kind, id: pair.evalId })\n : kind === \"eval-group\"\n ? Object.freeze({ kind, id: pair.evalGroupId! })\n : Object.freeze({ kind, id: pair.experimentId }),\n lifecycle,\n }))));\n if (entries.length === 0)\n return pair;\n const plugins: JsonValue[] = entries.map((entry) => ({\n owner: { kind: entry.owner.kind, id: entry.owner.id },\n lifecycle: pluginLifecycleIdentity(entry.lifecycle),\n }));\n return Object.freeze({\n ...pair,\n pluginLifecycles: entries,\n hasEvalPhysicalLifecycle: pair.hasEvalPhysicalLifecycle || entries.some((entry) => entry.owner.kind === \"eval\"),\n fingerprint: Object.freeze({\n ...pair.fingerprint,\n plugins,\n }),\n });\n}\n/**\n * 对 discovery/selector 产出的实际 pair 全矩阵做一次纯 link。发现任何问题时遍历完全部输入后\n * 通过 Effect error channel 返回聚合错误;调用方因此可以在任何 Provider I/O 前一次展示全部修法。\n */\nexport function linkSandboxLayers(pairs: readonly SandboxLayerPairInput[]): Effect.Effect<readonly LinkedSandboxLayerPair[], SandboxLayerLinkError | SandboxBeforePlanningError> {\n return Effect.suspend((): Effect.Effect<readonly LinkedSandboxLayerPair[], SandboxLayerLinkError | SandboxBeforePlanningError> => {\n const linked: Array<Effect.Effect<LinkedSandboxLayerPair, SandboxBeforePlanningError>> = [];\n const issues: SandboxLinkIssue[] = [];\n for (const input of pairs) {\n const pair = pairRef(input);\n const evalContribution = normalizeContribution(\"eval\", input.eval);\n const experimentContribution = normalizeContribution(\"experiment\", input.experiment);\n const groupContribution = input.group === undefined ? undefined : normalizeContribution(\"eval-group\", input.group);\n if (pair.agentKind === \"direct\" || pair.agentKind === \"custom\") {\n if (groupContribution !== undefined) {\n issues.push(issue(\"eval-group-direct-agent\", pair, evalContribution, experimentContribution, groupContribution));\n }\n else if (evalContribution.explicit || experimentContribution.explicit) {\n issues.push(issue(\"sandbox.unexpected-for-direct-agent\", pair, evalContribution, experimentContribution));\n }\n else {\n linked.push(Effect.succeed(Object.freeze({\n kind: \"direct\",\n evalId: pair.evalId,\n experimentId: pair.experimentId,\n agentName: pair.agentName,\n })));\n }\n continue;\n }\n const agentContribution = normalizeAgentContribution(input.agent);\n const contributions = [experimentContribution, ...(groupContribution === undefined ? [] : [groupContribution]), evalContribution];\n const templates = contributions.filter(isTemplateContribution);\n if (templates.length === 0) {\n issues.push(issue(\"sandbox.template-missing\", pair, evalContribution, experimentContribution, groupContribution));\n }\n else if (templates.length > 1) {\n issues.push(issue(\"sandbox.template-conflict\", pair, evalContribution, experimentContribution, groupContribution));\n }\n else {\n const template = templates[0]!;\n const ordered = template.owner.kind === \"eval-group\"\n ? [template, experimentContribution, evalContribution]\n : template.owner.kind === \"experiment\"\n ? [template, ...(groupContribution === undefined ? [] : [groupContribution]), evalContribution]\n : [template, experimentContribution];\n linked.push(linkSandboxPair(pair, template, ordered.filter((owner) => owner !== template), agentContribution));\n }\n }\n return issues.length > 0\n ? Effect.fail(sandboxLayerLinkError(issues))\n : Effect.map(Effect.all(linked), (values) => Object.freeze(values));\n });\n}\n"]}
@@ -137,6 +137,7 @@ export interface LinkedSandboxCommand {
137
137
  readonly fingerprint: SandboxCommandFingerprint;
138
138
  }
139
139
  interface LinkedSandboxBeforeBase {
140
+ readonly pluginSource?: string;
140
141
  readonly owner: SandboxScheduleOwnerRef;
141
142
  readonly ordinal: number;
142
143
  readonly id: string;
@@ -154,12 +155,14 @@ export type LinkedSandboxBefore = (LinkedSandboxBeforeBase & {
154
155
  readonly hook: SandboxHook;
155
156
  });
156
157
  export type LinkedSandboxAfter = {
158
+ readonly pluginSource?: string;
157
159
  readonly kind: "action";
158
160
  readonly owner: SandboxScheduleOwnerRef;
159
161
  readonly ordinal: number;
160
162
  readonly data: SandboxActionData;
161
163
  readonly fingerprint: SandboxCommandFingerprint;
162
164
  } | {
165
+ readonly pluginSource?: string;
163
166
  readonly kind: "command";
164
167
  readonly owner: SandboxScheduleOwnerRef;
165
168
  readonly ordinal: number;
@@ -137,6 +137,7 @@ export interface LinkedSandboxCommand {
137
137
  readonly fingerprint: SandboxCommandFingerprint;
138
138
  }
139
139
  interface LinkedSandboxBeforeBase {
140
+ readonly pluginSource?: string;
140
141
  readonly owner: SandboxScheduleOwnerRef;
141
142
  readonly ordinal: number;
142
143
  readonly id: string;
@@ -154,12 +155,14 @@ export type LinkedSandboxBefore = (LinkedSandboxBeforeBase & {
154
155
  readonly hook: SandboxHook;
155
156
  });
156
157
  export type LinkedSandboxAfter = {
158
+ readonly pluginSource?: string;
157
159
  readonly kind: "action";
158
160
  readonly owner: SandboxScheduleOwnerRef;
159
161
  readonly ordinal: number;
160
162
  readonly data: SandboxActionData;
161
163
  readonly fingerprint: SandboxCommandFingerprint;
162
164
  } | {
165
+ readonly pluginSource?: string;
163
166
  readonly kind: "command";
164
167
  readonly owner: SandboxScheduleOwnerRef;
165
168
  readonly ordinal: number;
@@ -137,6 +137,7 @@ export interface LinkedSandboxCommand {
137
137
  readonly fingerprint: SandboxCommandFingerprint;
138
138
  }
139
139
  interface LinkedSandboxBeforeBase {
140
+ readonly pluginSource?: string;
140
141
  readonly owner: SandboxScheduleOwnerRef;
141
142
  readonly ordinal: number;
142
143
  readonly id: string;
@@ -154,12 +155,14 @@ export type LinkedSandboxBefore = (LinkedSandboxBeforeBase & {
154
155
  readonly hook: SandboxHook;
155
156
  });
156
157
  export type LinkedSandboxAfter = {
158
+ readonly pluginSource?: string;
157
159
  readonly kind: "action";
158
160
  readonly owner: SandboxScheduleOwnerRef;
159
161
  readonly ordinal: number;
160
162
  readonly data: SandboxActionData;
161
163
  readonly fingerprint: SandboxCommandFingerprint;
162
164
  } | {
165
+ readonly pluginSource?: string;
163
166
  readonly kind: "command";
164
167
  readonly owner: SandboxScheduleOwnerRef;
165
168
  readonly ordinal: number;
@@ -29,6 +29,7 @@ const dockerfile_build_ts_1 = require("./dockerfile-build.cjs");
29
29
  const dockerfile_agent_cache_ts_1 = require("./dockerfile-agent-cache.cjs");
30
30
  const backend_ts_1 = require("./backend.cjs");
31
31
  const paths_ts_1 = require("./paths.cjs");
32
+ const deadline_ts_1 = require("./deadline.cjs");
32
33
  const registry_ts_1 = require("./registry.cjs");
33
34
  const run_identity_ts_1 = require("./run-identity.cjs");
34
35
  const layer_ts_1 = require("./layer.cjs");
@@ -756,8 +757,10 @@ function runSetupHooks(hooks, sandbox, context) {
756
757
  /** Teardown remains LIFO and diagnostic-only, but a teardown defect cannot skip the case finalizer. */
757
758
  function runTeardownHooks(hooks, sandbox, context) {
758
759
  return effect_1.Effect.forEach([...hooks].reverse(), (hook) => {
759
- const cleanupContext = { ...context, signal: AbortSignal.timeout(cleanup_timeout_ts_1.CLEANUP_TIMEOUT_MS) };
760
- return (0, cleanup_timeout_ts_1.cleanupCallback)(() => hook(sandbox, cleanupContext)).pipe(effect_1.Effect.catch((cause) => effect_1.Effect.sync(() => {
760
+ return (0, cleanup_timeout_ts_1.cleanupCallback)((signal) => {
761
+ (0, deadline_ts_1.applyCommandDeadline)(sandbox, Date.now() + cleanup_timeout_ts_1.CLEANUP_TIMEOUT_MS);
762
+ return hook(sandbox, { ...context, signal });
763
+ }).pipe(effect_1.Effect.catch((cause) => effect_1.Effect.sync(() => {
761
764
  context.diagnostic({
762
765
  code: "sandbox-teardown-failed",
763
766
  level: "warning",
@@ -785,8 +788,10 @@ function runSandboxPluginTeardowns(input, owned) {
785
788
  const teardown = entry.lifecycle.teardown;
786
789
  if (teardown === undefined)
787
790
  return effect_1.Effect.void;
788
- const cleanupContext = { ...input.hookContext, signal: AbortSignal.timeout(cleanup_timeout_ts_1.CLEANUP_TIMEOUT_MS) };
789
- return (0, cleanup_timeout_ts_1.cleanupCallback)(() => teardown(owned.sandbox, cleanupContext)).pipe(effect_1.Effect.catch((cause) => effect_1.Effect.sync(() => input.feedback.diagnostic({
791
+ return (0, cleanup_timeout_ts_1.cleanupCallback)((signal) => {
792
+ (0, deadline_ts_1.applyCommandDeadline)(owned.sandbox, Date.now() + cleanup_timeout_ts_1.CLEANUP_TIMEOUT_MS);
793
+ return teardown(owned.sandbox, { ...input.hookContext, signal });
794
+ }).pipe(effect_1.Effect.catch((cause) => effect_1.Effect.sync(() => input.feedback.diagnostic({
790
795
  code: "plugin-lifecycle-teardown-failed",
791
796
  level: "warning",
792
797
  message: cause instanceof Error ? cause.message : String(cause),