@caupulican/pi-adaptative 0.93.12 → 0.93.13

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 (139) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/core/agent-paths.d.ts +6 -0
  3. package/dist/core/agent-paths.d.ts.map +1 -1
  4. package/dist/core/agent-paths.js +15 -0
  5. package/dist/core/agent-paths.js.map +1 -1
  6. package/dist/core/agent-session.d.ts.map +1 -1
  7. package/dist/core/agent-session.js +2 -0
  8. package/dist/core/agent-session.js.map +1 -1
  9. package/dist/core/background-lane-controller.d.ts +2 -0
  10. package/dist/core/background-lane-controller.d.ts.map +1 -1
  11. package/dist/core/background-lane-controller.js +3 -0
  12. package/dist/core/background-lane-controller.js.map +1 -1
  13. package/dist/core/background-tool-task-controller.d.ts +4 -0
  14. package/dist/core/background-tool-task-controller.d.ts.map +1 -1
  15. package/dist/core/background-tool-task-controller.js +22 -19
  16. package/dist/core/background-tool-task-controller.js.map +1 -1
  17. package/dist/core/delegation/worker-agent-control-coordinator.d.ts +3 -1
  18. package/dist/core/delegation/worker-agent-control-coordinator.d.ts.map +1 -1
  19. package/dist/core/delegation/worker-agent-control-coordinator.js +8 -0
  20. package/dist/core/delegation/worker-agent-control-coordinator.js.map +1 -1
  21. package/dist/core/delegation/worker-attempt-executor.d.ts +2 -1
  22. package/dist/core/delegation/worker-attempt-executor.d.ts.map +1 -1
  23. package/dist/core/delegation/worker-attempt-executor.js +14 -1
  24. package/dist/core/delegation/worker-attempt-executor.js.map +1 -1
  25. package/dist/core/delegation/worker-claim.d.ts +4 -1
  26. package/dist/core/delegation/worker-claim.d.ts.map +1 -1
  27. package/dist/core/delegation/worker-claim.js +20 -2
  28. package/dist/core/delegation/worker-claim.js.map +1 -1
  29. package/dist/core/delegation/worker-delegation-controller.d.ts.map +1 -1
  30. package/dist/core/delegation/worker-delegation-controller.js +2 -0
  31. package/dist/core/delegation/worker-delegation-controller.js.map +1 -1
  32. package/dist/core/delegation/worker-lifecycle.d.ts +1 -0
  33. package/dist/core/delegation/worker-lifecycle.d.ts.map +1 -1
  34. package/dist/core/delegation/worker-lifecycle.js +3 -0
  35. package/dist/core/delegation/worker-lifecycle.js.map +1 -1
  36. package/dist/core/delegation/worker-runner.d.ts.map +1 -1
  37. package/dist/core/delegation/worker-runner.js +15 -9
  38. package/dist/core/delegation/worker-runner.js.map +1 -1
  39. package/dist/core/delegation/worker-terminal-output-artifact.d.ts +14 -0
  40. package/dist/core/delegation/worker-terminal-output-artifact.d.ts.map +1 -0
  41. package/dist/core/delegation/worker-terminal-output-artifact.js +49 -0
  42. package/dist/core/delegation/worker-terminal-output-artifact.js.map +1 -0
  43. package/dist/core/foreground-terminal-handoff-controller.d.ts +3 -0
  44. package/dist/core/foreground-terminal-handoff-controller.d.ts.map +1 -1
  45. package/dist/core/foreground-terminal-handoff-controller.js +6 -0
  46. package/dist/core/foreground-terminal-handoff-controller.js.map +1 -1
  47. package/dist/core/goals/goal-session-controller.d.ts +2 -2
  48. package/dist/core/goals/goal-session-controller.d.ts.map +1 -1
  49. package/dist/core/goals/goal-session-controller.js +2 -11
  50. package/dist/core/goals/goal-session-controller.js.map +1 -1
  51. package/dist/core/orchestration/contracts.d.ts +2 -0
  52. package/dist/core/orchestration/contracts.d.ts.map +1 -1
  53. package/dist/core/orchestration/contracts.js +3 -0
  54. package/dist/core/orchestration/contracts.js.map +1 -1
  55. package/dist/core/orchestration/task-runtime-codecs.d.ts.map +1 -1
  56. package/dist/core/orchestration/task-runtime-codecs.js +11 -2
  57. package/dist/core/orchestration/task-runtime-codecs.js.map +1 -1
  58. package/dist/core/orchestration/worker-result-adapter.d.ts +2 -1
  59. package/dist/core/orchestration/worker-result-adapter.d.ts.map +1 -1
  60. package/dist/core/orchestration/worker-result-adapter.js +41 -7
  61. package/dist/core/orchestration/worker-result-adapter.js.map +1 -1
  62. package/dist/core/runtime-builder.d.ts +5 -2
  63. package/dist/core/runtime-builder.d.ts.map +1 -1
  64. package/dist/core/runtime-builder.js +26 -8
  65. package/dist/core/runtime-builder.js.map +1 -1
  66. package/dist/core/secrets/bitwarden-credential-storage-router.d.ts +22 -0
  67. package/dist/core/secrets/bitwarden-credential-storage-router.d.ts.map +1 -0
  68. package/dist/core/secrets/bitwarden-credential-storage-router.js +59 -0
  69. package/dist/core/secrets/bitwarden-credential-storage-router.js.map +1 -0
  70. package/dist/core/secrets/bitwarden-credential-storage.d.ts +2 -8
  71. package/dist/core/secrets/bitwarden-credential-storage.d.ts.map +1 -1
  72. package/dist/core/secrets/bitwarden-credential-storage.js +23 -134
  73. package/dist/core/secrets/bitwarden-credential-storage.js.map +1 -1
  74. package/dist/core/secrets/bitwarden-secrets-manager-storage.d.ts +46 -0
  75. package/dist/core/secrets/bitwarden-secrets-manager-storage.d.ts.map +1 -0
  76. package/dist/core/secrets/bitwarden-secrets-manager-storage.js +379 -0
  77. package/dist/core/secrets/bitwarden-secrets-manager-storage.js.map +1 -0
  78. package/dist/core/secrets/credential-cli-command.d.ts +22 -0
  79. package/dist/core/secrets/credential-cli-command.d.ts.map +1 -0
  80. package/dist/core/secrets/credential-cli-command.js +82 -0
  81. package/dist/core/secrets/credential-cli-command.js.map +1 -0
  82. package/dist/core/secrets/credential-exposure-guard.d.ts +1 -1
  83. package/dist/core/secrets/credential-exposure-guard.d.ts.map +1 -1
  84. package/dist/core/secrets/credential-exposure-guard.js +5 -1
  85. package/dist/core/secrets/credential-exposure-guard.js.map +1 -1
  86. package/dist/core/secrets/credential-machine-session.d.ts +13 -0
  87. package/dist/core/secrets/credential-machine-session.d.ts.map +1 -0
  88. package/dist/core/secrets/credential-machine-session.js +139 -0
  89. package/dist/core/secrets/credential-machine-session.js.map +1 -0
  90. package/dist/core/secrets/credential-manager.d.ts +11 -1
  91. package/dist/core/secrets/credential-manager.d.ts.map +1 -1
  92. package/dist/core/secrets/credential-manager.js +44 -9
  93. package/dist/core/secrets/credential-manager.js.map +1 -1
  94. package/dist/core/secrets/credential-profile-envelope.d.ts +10 -0
  95. package/dist/core/secrets/credential-profile-envelope.d.ts.map +1 -0
  96. package/dist/core/secrets/credential-profile-envelope.js +78 -0
  97. package/dist/core/secrets/credential-profile-envelope.js.map +1 -0
  98. package/dist/core/secrets/credential-session-connection.d.ts.map +1 -1
  99. package/dist/core/secrets/credential-session-connection.js +2 -1
  100. package/dist/core/secrets/credential-session-connection.js.map +1 -1
  101. package/dist/core/secrets/credential-source-discovery.d.ts +7 -3
  102. package/dist/core/secrets/credential-source-discovery.d.ts.map +1 -1
  103. package/dist/core/secrets/credential-source-discovery.js +48 -9
  104. package/dist/core/secrets/credential-source-discovery.js.map +1 -1
  105. package/dist/core/tools/delegate-status.d.ts +4 -0
  106. package/dist/core/tools/delegate-status.d.ts.map +1 -1
  107. package/dist/core/tools/delegate-status.js +20 -4
  108. package/dist/core/tools/delegate-status.js.map +1 -1
  109. package/dist/core/tools/goal.d.ts +2 -2
  110. package/dist/core/tools/goal.d.ts.map +1 -1
  111. package/dist/core/tools/goal.js +30 -11
  112. package/dist/core/tools/goal.js.map +1 -1
  113. package/dist/core/tools/secret-store.d.ts.map +1 -1
  114. package/dist/core/tools/secret-store.js +6 -15
  115. package/dist/core/tools/secret-store.js.map +1 -1
  116. package/dist/core/tools/tool-task.d.ts.map +1 -1
  117. package/dist/core/tools/tool-task.js +6 -3
  118. package/dist/core/tools/tool-task.js.map +1 -1
  119. package/dist/core/util/bounded-value.d.ts +2 -0
  120. package/dist/core/util/bounded-value.d.ts.map +1 -1
  121. package/dist/core/util/bounded-value.js +13 -0
  122. package/dist/core/util/bounded-value.js.map +1 -1
  123. package/dist/index.d.ts +3 -1
  124. package/dist/index.d.ts.map +1 -1
  125. package/dist/index.js +2 -0
  126. package/dist/index.js.map +1 -1
  127. package/dist/utils/tools-manager.d.ts +2 -1
  128. package/dist/utils/tools-manager.d.ts.map +1 -1
  129. package/dist/utils/tools-manager.js +29 -0
  130. package/dist/utils/tools-manager.js.map +1 -1
  131. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  132. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  133. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  134. package/examples/extensions/sandbox/package-lock.json +2 -2
  135. package/examples/extensions/sandbox/package.json +1 -1
  136. package/examples/extensions/with-deps/package-lock.json +2 -2
  137. package/examples/extensions/with-deps/package.json +1 -1
  138. package/npm-shrinkwrap.json +12 -12
  139. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"task-runtime-codecs.js","sourceRoot":"","sources":["../../../src/core/orchestration/task-runtime-codecs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAMN,gBAAgB,EAOhB,mBAAmB,EACnB,qBAAqB,EACrB,gCAAgC,EAChC,2BAA2B,EAC3B,0BAA0B,EAC1B,2CAA2C,EAC3C,6BAA6B,EAC7B,mCAAmC,EACnC,oCAAoC,EACpC,8CAA8C,EAC9C,mCAAmC,EACnC,uCAAuC,EACvC,+BAA+B,EAC/B,oCAAoC,EACpC,4BAA4B,EAC5B,uBAAuB,EACvB,+BAA+B,EAC/B,4BAA4B,EAC5B,kBAAkB,EAGlB,4BAA4B,EAK5B,aAAa,EAEb,YAAY,EACZ,sBAAsB,EACtB,YAAY,GAGZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EACN,uBAAuB,EACvB,yCAAyC,EACzC,WAAW,EACX,wBAAwB,EAExB,yBAAyB,EACzB,MAAM,EACN,uBAAuB,GACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAGN,uBAAuB,EACvB,sBAAsB,EAKtB,qBAAqB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mCAAmC,EAAE,MAAM,oCAAoC,CAAC;AACzF,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AAEvD,MAAM,UAAU,sBAAsB,CAAC,UAAsB,EAAE,cAAsB;IACpF,MAAM,KAAK,GAAG,mCAAmC,CAAC;IAClD,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,aAAa,EAAE,GAAG,wBAAwB,CAAC,CAAC,CAAC;IAC/F,IACC,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC;QAC5C,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC;QACjC,SAAS,CAAC,WAAW,KAAK,cAAc,EACvC,CAAC;QACF,MAAM,IAAI,uBAAuB,CAAC,wEAAwE,CAAC,CAAC;IAC7G,CAAC;IACD,MAAM,eAAe,GAAG,EAA4D,CAAC;IACrF,KAAK,MAAM,KAAK,IAAI,wBAAwB,EAAE,CAAC;QAC9C,eAAe,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,uBAAuB,CAAC,eAAe,CAAC,MAAM,EAAE,gCAAgC,EAAE,eAAe,CAAC,CAAC;IACnG,uBAAuB,CAAC,eAAe,CAAC,UAAU,EAAE,4BAA4B,EAAE,WAAW,CAAC,CAAC;IAC/F,uBAAuB,CAAC,eAAe,CAAC,KAAK,EAAE,uBAAuB,EAAE,MAAM,CAAC,CAAC;IAChF,uBAAuB,CAAC,eAAe,CAAC,QAAQ,EAAE,0BAA0B,EAAE,SAAS,CAAC,CAAC;IACzF,uBAAuB,CAAC,eAAe,CAAC,WAAW,EAAE,6BAA6B,EAAE,YAAY,CAAC,CAAC;IAClG,uBAAuB,CAAC,eAAe,CAAC,SAAS,EAAE,2BAA2B,EAAE,UAAU,CAAC,CAAC;IAC5F,uBAAuB,CAAC,eAAe,CAAC,aAAa,EAAE,+BAA+B,EAAE,cAAc,CAAC,CAAC;IACxG,yCAAyC,CACxC,eAAe,CAAC,UAAU,EAC1B,eAAe,CAAC,KAAK,EACrB,eAAe,CAAC,QAAQ,EACxB,eAAe,CAAC,WAAW,EAC3B,KAAK,CACL,CAAC;IACF,yBAAyB,CAAC,SAA6C,CAAC,CAAC;IACzE,MAAM,UAAU,GAA0B;QACzC,WAAW,EAAE,cAAc;QAC3B,MAAM,EAAE,MAAM,CAAC,WAAW,CACzB,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YAChE,OAAO;YACP,qBAAqB,CAAC,KAAK,EAAE,GAAG,KAAK,WAAW,OAAO,EAAE,CAAC;SAC1D,CAAC,CACF;QACD,UAAU,EAAE,MAAM,CAAC,WAAW,CAC7B,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YACxE,WAAW;YACX,8BAA8B,CAAC,KAAK,EAAE,GAAG,KAAK,eAAe,WAAW,EAAE,CAAC;SAC3E,CAAC,CACF;QACD,KAAK,EAAE,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YAC9D,MAAM;YACN,yBAAyB,CAAC,KAAK,EAAE,GAAG,KAAK,UAAU,MAAM,EAAE,CAAC;SAC5D,CAAC,CACF;QACD,QAAQ,EAAE,MAAM,CAAC,WAAW,CAC3B,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YACpE,SAAS;YACT,4BAA4B,CAAC,KAAK,EAAE,GAAG,KAAK,aAAa,SAAS,EAAE,CAAC;SACrE,CAAC,CACF;QACD,WAAW,EAAE,MAAM,CAAC,WAAW,CAC9B,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YAC1E,YAAY;YACZ,mBAAmB,CAAC,KAAK,EAAE,GAAG,KAAK,gBAAgB,YAAY,EAAE,CAAC;SAClE,CAAC,CACF;QACD,SAAS,EAAE,MAAM,CAAC,WAAW,CAC5B,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YACtE,UAAU;YACV,6BAA6B,CAAC,KAAK,EAAE,GAAG,KAAK,cAAc,UAAU,EAAE,CAAC;SACxE,CAAC,CACF;QACD,aAAa,EAAE,MAAM,CAAC,WAAW,CAChC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YAC9E,cAAc;YACd,iCAAiC,CAAC,KAAK,EAAE,GAAG,KAAK,kBAAkB,cAAc,EAAE,CAAC;SACpF,CAAC,CACF;KACD,CAAC;IACF,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACtC,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACtC,OAAO,UAAU,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAc,EAAE,KAAa;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,eAAe,CAAC,CAAC;IAChH,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAc,EAAE,KAAa;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,cAAc,CAAC,CAAC;IACpH,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,OAAO,CAAC,KAAc,EAAE,KAAa;IAC7C,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,cAAc,CAAC,CAAC;IAC1F,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAA8B,EAAE,KAAa;IAC7E,IAAI,CAAC;QACJ,kBAAkB,CAAC,MAAM,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,uBAAuB,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3F,CAAC;AACF,CAAC;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,KAAa;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,EAAE,CAAC;QACjF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,0BAA0B,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc,EAAE,KAAa;IAC/D,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxC,IAAI,UAAU,CAAC,MAAM,GAAG,mCAAmC,EAAE,CAAC;QAC7D,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,kCAAkC,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,UAAU,CAAC;AACnB,CAAC;AAED,SAAS,OAAO,CAAC,KAAc,EAAE,KAAa;IAC7C,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,iBAAiB,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC;QACpH,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,cAAc,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,0BAA0B,CAClC,KAAc,EACd,KAAa,EACb,SAAS,GAAG,mCAAmC;IAE/C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxC,IAAI,UAAU,CAAC,MAAM,GAAG,SAAS;QAAE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,kCAAkC,CAAC,CAAC;IACjH,OAAO,UAAU,CAAC;AACnB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc,EAAE,KAAa;IAC1D,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1C,IAAI,YAAY,CAAC,MAAM,GAAG,8CAA8C,EAAE,CAAC;QAC1E,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,kCAAkC,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,YAAY,CAAC;AACrB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc,EAAE,KAAa;IACzD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,eAAe,CAAC,CAAC;IAC7E,IAAI,WAAW,CAAC,MAAM,GAAG,oCAAoC,EAAE,CAAC;QAC/D,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,kCAAkC,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,WAAW,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc,EAAE,KAAa;IAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,eAAe,CAAC,CAAC;IACzE,IAAI,OAAO,CAAC,MAAM,GAAG,2CAA2C,EAAE,CAAC;QAClE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,kCAAkC,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAc,EAAE,KAAa;IACpE,IACC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,KAAK,CAAC,MAAM,GAAG,mCAAmC;QAClD,CAAC,KAAK,CAAC,KAAK,CACX,CAAC,KAAK,EAAE,EAAE,CACT,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,mCAAmC,CACrG,EACA,CAAC;QACF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,sCAAsC,CAAC,CAAC;IACnF,CAAC;IACD,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAC1C,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,uBAAuB,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACnB,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,yBAAyB,CACxC,KAAqC,EACrC,WAAmB,EACnB,KAAoC;IAEpC,MAAM,aAAa,GAAG,uBAAuB,CAAC,KAAK,IAAI,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAC7E,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;YAChE,MAAM,IAAI,uBAAuB,CAAC,oBAAoB,YAAY,0BAA0B,WAAW,IAAI,CAAC,CAAC;QAC9G,CAAC;IACF,CAAC;IACD,OAAO,aAAa,CAAC;AACtB,CAAC;AAED,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC/B,QAAQ;IACR,WAAW;IACX,cAAc;IACd,oBAAoB;IACpB,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,kBAAkB;IAClB,kBAAkB;IAClB,UAAU;IACV,iBAAiB;IACjB,iBAAiB;IACjB,2BAA2B;IAC3B,mBAAmB;CACnB,CAAC,CAAC;AAEH,MAAM,UAAU,iBAAiB,CAAC,KAAc,EAAE,KAAa;IAC9D,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtC,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5F,IAAI,gBAAgB;QAAE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,IAAI,gBAAgB,kBAAkB,CAAC,CAAC;IACxG,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;IAC7C,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,YAAY,IAAI,aAAa,KAAK,iBAAiB,EAAE,CAAC;QAC1G,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,4BAA4B,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,aAAa,GAAG,0BAA0B,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,KAAK,gBAAgB,CAAC,CAAC;IACnG,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,KAAK,mBAAmB,CAAC,CAAC;IAC5G,MAAM,aAAa,GAAG,0BAA0B,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,KAAK,gBAAgB,CAAC,CAAC;IACnG,MAAM,QAAQ,GAAG,0BAA0B,CAC1C,QAAQ,CAAC,QAAQ,EACjB,GAAG,KAAK,WAAW,EACnB,uCAAuC,CACvC,CAAC;IACF,MAAM,eAAe,GAAG,0BAA0B,CAAC,QAAQ,CAAC,eAAe,EAAE,GAAG,KAAK,kBAAkB,CAAC,CAAC;IACzG,MAAM,eAAe,GAAG,0BAA0B,CAAC,QAAQ,CAAC,eAAe,EAAE,GAAG,KAAK,kBAAkB,CAAC,CAAC;IACzG,IACC,QAAQ,CAAC,gBAAgB,KAAK,SAAS;QACvC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAC1F,CAAC;QACF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,+BAA+B,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,iBAAsD,CAAC;IAC3D,IAAI,yBAAoF,CAAC;IACzF,IAAI,CAAC;QACJ,iBAAiB;YAChB,QAAQ,CAAC,iBAAiB,KAAK,SAAS;gBACvC,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,4BAA4B,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC7D,yBAAyB;YACxB,QAAQ,CAAC,yBAAyB,KAAK,SAAS;gBAC/C,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,mCAAmC,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;IAC7E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,uBAAuB,CAChC,GAAG,KAAK,gBAAgB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAChF,CAAC;IACH,CAAC;IACD,IAAI,iBAAiB,IAAI,aAAa,KAAK,iBAAiB,EAAE,CAAC;QAC9D,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,qEAAqE,CAAC,CAAC;IAClH,CAAC;IACD,OAAO;QACN,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC;QAC9D,SAAS,EAAE,kBAAkB,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC;QACvE,YAAY,EAAE,oBAAoB,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,KAAK,eAAe,CAAC;QAClF,kBAAkB,EAAE,uBAAuB,CAAC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,KAAK,qBAAqB,CAAC;QACvG,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,cAAc,EACb,QAAQ,CAAC,cAAc,KAAK,SAAS;YACpC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,uBAAuB,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,KAAK,iBAAiB,CAAC;QAC/E,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,OAAO,QAAQ,CAAC,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzG,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAmB;IACvD,OAAO,kBAAkB,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAmB;IACtD,OAAO,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc,EAAE,KAAa;IACxD,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE;QAC3C,eAAe;QACf,aAAa;QACb,OAAO;QACP,aAAa;QACb,QAAQ;QACR,aAAa;QACb,oBAAoB;QACpB,YAAY;QACZ,WAAW;QACX,WAAW;KACX,CAAC,CAAC;IACH,IAAI,SAAS,CAAC,aAAa,KAAK,4BAA4B,EAAE,CAAC;QAC9D,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,4BAA4B,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC;IAC3D,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,MAAM,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,qBAAqB,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,CAAC,CAAC;IAC/E,IACC,WAAW,CAAC,MAAM,GAAG,mCAAmC;QACxD,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,MAAM,GAAG,oCAAoC,CAAC,EAC/G,CAAC;QACF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,mDAAmD,CAAC,CAAC;IAChG,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,uCAAuC,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,SAAS,CAAC,kBAAkB,CAAC,MAAM,GAAG,mCAAmC,EAAE,CAAC;QAC/E,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,mDAAmD,CAAC,CAAC;IAChG,CAAC;IACD,MAAM,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAuB,EAAE;QACjG,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,EAAE,GAAG,KAAK,uBAAuB,KAAK,GAAG,EAAE;YAC7E,IAAI;YACJ,aAAa;YACb,UAAU;YACV,WAAW;SACX,CAAC,CAAC;QACH,OAAO;YACN,EAAE,EAAE,kBAAkB,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,KAAK,uBAAuB,KAAK,MAAM,CAAC;YAChF,WAAW,EAAE,mBAAmB,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,KAAK,uBAAuB,KAAK,eAAe,CAAC;YAC5G,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,KAAK,uBAAuB,KAAK,YAAY,CAAC;YACvF,GAAG,CAAC,SAAS,CAAC,SAAS,KAAK,SAAS;gBACpC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACA,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,KAAK,uBAAuB,KAAK,aAAa,CAAC;iBACrG,CAAC;SACJ,CAAC;IACH,CAAC,CAAC,CAAC;IACH,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,KAAK,aAAa,CAAC,CAAe,CAAC;IACtG,gBAAgB,CAAC,UAAU,EAAE,GAAG,KAAK,aAAa,CAAC,CAAC;IACpD,OAAO;QACN,aAAa,EAAE,4BAA4B;QAC3C,WAAW,EAAE,kBAAkB,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,CAAC;QAC9E,KAAK,EAAE,mBAAmB,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,KAAK,QAAQ,CAAC;QAC7D,WAAW,EAAE,mBAAmB,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,CAAC;QAC/E,MAAM,EAAE,MAAyB;QACjC,WAAW;QACX,kBAAkB;QAClB,UAAU;QACV,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC;QAC7D,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC;KAC7D,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc,EAAE,KAAa;IACvD,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE;QAC1C,YAAY;QACZ,aAAa;QACb,MAAM;QACN,SAAS;QACT,aAAa;QACb,SAAS;QACT,WAAW;QACX,UAAU;KACV,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,mBAAmB,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,QAAQ,GACb,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC;IAC/G,OAAO;QACN,UAAU,EAAE,kBAAkB,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,KAAK,aAAa,CAAC;QAC1E,GAAG,CAAC,QAAQ,CAAC,WAAW,KAAK,SAAS;YACrC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,WAAW,EAAE,kBAAkB,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,CAAC,EAAE,CAAC;QACrF,IAAI,EAAE,IAAgC;QACtC,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC;QAClE,WAAW,EAAE,uBAAuB,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,CAAC;QAClF,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC;QACtD,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC;QAC5D,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAsB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzD,CAAC;AACH,CAAC;AAED,SAAS,8BAA8B,CAAC,KAAc,EAAE,KAAa;IACpE,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC,CAAC;IAC5E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,oCAAoC,EAAE,CAAC;QACpG,MAAM,IAAI,uBAAuB,CAChC,GAAG,KAAK,oDAAoD,oCAAoC,IAAI,CACpG,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,KAAK,aAAa,KAAK,GAAG,CAAC,CAAC,CAAC;IAC7G,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,oCAAoC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;QACpG,CAAC;QACD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9G,MAAM,IAAI,uBAAuB,CAChC,GAAG,KAAK,sDAAsD,IAAI,CAAC,WAAW,IAAI,CAClF,CAAC;QACH,CAAC;IACF,CAAC;IACD,OAAO;QACN,SAAS;QACT,OAAO,EAAE,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,uBAAuB,EAAE,GAAG,KAAK,UAAU,CAAC;QAC5F,QAAQ;KACR,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,QAAwC;IAChF,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC/D,IACC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,MAAM;QAClD,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAC1D,CAAC;QACF,MAAM,IAAI,uBAAuB,CAAC,oEAAoE,CAAC,CAAC;IACzG,CAAC;AACF,CAAC;AAED,MAAM,UAAU,0CAA0C,CACzD,KAAqC,EACrC,OAA8B,EAC9B,kBAAkD;IAElD,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1F,MAAM,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAC/D,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC,MAAM,CACxD,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,CACvD,CACD,CAAC;IACF,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,uBAAuB,CAChC,0DAA0D,CAAC,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC1G,CAAC;IACH,CAAC;AACF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc,EAAE,KAAa;IAC1D,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE;QACtC,eAAe;QACf,QAAQ;QACR,aAAa;QACb,OAAO;QACP,aAAa;QACb,MAAM;QACN,QAAQ;QACR,WAAW;QACX,sBAAsB;QACtB,wBAAwB;QACxB,sBAAsB;QACtB,YAAY;QACZ,WAAW;QACX,WAAW;KACX,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,aAAa,KAAK,4BAA4B,EAAE,CAAC;QACzD,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,4BAA4B,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC;IAChD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,mBAAmB,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC;IACtD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,MAAM,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,qBAAqB,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,oBAAoB,GAAG,WAAW,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,KAAK,uBAAuB,CAAC,CAAC;IACrG,IACC,oBAAoB,CAAC,MAAM,GAAG,mCAAmC;QACjE,IAAI,GAAG,CAAC,oBAAoB,CAAC,CAAC,IAAI,KAAK,oBAAoB,CAAC,MAAM;QAClE,CAAC,oBAAoB,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAC/C,CAAC;QACF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,2DAA2D,CAAC,CAAC;IACxG,CAAC;IACD,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,KAAK,aAAa,CAAC,CAAe,CAAC;IACjG,gBAAgB,CAAC,UAAU,EAAE,GAAG,KAAK,aAAa,CAAC,CAAC;IACpD,OAAO;QACN,aAAa,EAAE,4BAA4B;QAC3C,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC;QAC1D,WAAW,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,CAAC;QACzE,KAAK,EAAE,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,KAAK,QAAQ,CAAC;QACxD,WAAW,EAAE,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,CAAC;QAC1E,IAAI,EAAE,IAA4B;QAClC,MAAM,EAAE,MAAiC;QACzC,SAAS,EAAE,uBAAuB,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC;QACxE,oBAAoB,EAAE,oBAA4D;QAClF,sBAAsB,EAAE,uBAAuB,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,KAAK,yBAAyB,CAAC;QAC/G,GAAG,CAAC,IAAI,CAAC,oBAAoB,KAAK,SAAS;YAC1C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACA,oBAAoB,EAAE,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,KAAK,uBAAuB,CAAC;aACpG,CAAC;QACJ,UAAU;QACV,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC;QACxD,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC;KACxD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAmB;IAClD,OAAO,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAc,EAAE,KAAa;IAC/D,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;IAChF,IAAI,YAA8C,CAAC;IACnD,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,KAAK,eAAe,EAAE;YACvE,gBAAgB;YAChB,mBAAmB;YACnB,SAAS;YACT,YAAY;YACZ,aAAa;SACb,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,KAAK,uBAAuB,CAAC,CAAC;QACxE,IAAI,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;YACpF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,mCAAmC,CAAC,CAAC;QAChF,CAAC;QACD,YAAY,GAAG;YACd,cAAc,EAAE,kBAAkB,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,KAAK,8BAA8B,CAAC;YACjG,iBAAiB,EAAE,kBAAkB,CAAC,MAAM,CAAC,iBAAiB,EAAE,GAAG,KAAK,iCAAiC,CAAC;YAC1G,OAAO;YACP,UAAU,EAAE,kBAAkB,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,KAAK,0BAA0B,CAAC;YACrF,WAAW,EAAE,kBAAkB,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,KAAK,2BAA2B,CAAC;SACxF,CAAC;IACH,CAAC;IACD,OAAO;QACN,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC;QAChD,UAAU,EAAE,uBAAuB,CAAC,KAAK,CAAC,UAAU,EAAE,0BAA0B,EAAE,GAAG,KAAK,aAAa,CAAC;QACxG,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzC,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc,EAAE,KAAa;IAC9D,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IACnG,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC;IACnD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,mBAAmB,CAAC,CAAC;IACjG,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,CAAC;IAChD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,GAAG,+BAA+B,EAAE,CAAC;QACjE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,sCAAsC,CAAC,CAAC;IACnF,CAAC;IACD,MAAM,QAAQ,GACb,OAAO,CAAC,QAAQ,KAAK,SAAS;QAC7B,CAAC,CAAC,SAAS;QACX,CAAC,CAAE,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,KAAK,WAAW,CAAC,CAAgB,CAAC;IACnF,OAAO;QACN,EAAE,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,KAAK,KAAK,CAAC;QACjD,IAAI;QACJ,GAAG;QACH,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,KAAK,WAAW,CAAC;QACxD,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC,EAAE,CAAC;QAC1G,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjC,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAc,EAAE,KAAa;IAC/D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,4BAA4B,EAAE,CAAC;QAC1E,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,yCAAyC,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,wBAAwB,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IACxG,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC7E,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,0BAA0B,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAc,EAAE,KAAa;IACpE,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE;QACvC,eAAe;QACf,SAAS;QACT,aAAa;QACb,QAAQ;QACR,WAAW;QACX,WAAW;QACX,MAAM;QACN,cAAc;QACd,cAAc;QACd,WAAW;QACX,WAAW;QACX,YAAY;QACZ,aAAa;QACb,QAAQ;QACR,eAAe;QACf,eAAe;QACf,UAAU;QACV,WAAW;KACX,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,aAAa,KAAK,4BAA4B,EAAE,CAAC;QAC1D,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,4BAA4B,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC;IACjD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,mBAAmB,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,KAAK,eAAe,CAAC,CAAC;IAC9E,IACC,YAAY,CAAC,MAAM,GAAG,mCAAmC;QACzD,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,MAAM;QAClD,CAAC,YAAY,CAAC,KAAK,CAAC,mBAAmB,CAAC,EACvC,CAAC;QACF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,2BAA2B,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,cAAc,GAAG,CAAC,KAAkE,EAAY,EAAE;QACvG,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;QAC9D,IACC,MAAM,CAAC,MAAM,GAAG,mCAAmC;YACnD,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM;YACtC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,oCAAoC,CAAC,EACjF,CAAC;YACF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,IAAI,KAAK,cAAc,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC,CAAC;IACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,mCAAmC,EAAE,CAAC;QAC7G,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,4BAA4B,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,SAAS,GAAG,yBAAyB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC,CAAC;IACnF,MAAM,aAAa,GAAoC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC/F,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,GAAG,KAAK,kBAAkB,KAAK,GAAG,EAAE;YACvE,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,QAAQ;SACR,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,KAAK,kBAAkB,KAAK,cAAc,CAAC,CAAC;QAC9F,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,kBAAkB,KAAK,0BAA0B,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,KAAK,kBAAkB,KAAK,WAAW,CAAC,CAAC;QACrF,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YAC/C,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,kBAAkB,KAAK,uBAAuB,CAAC,CAAC;QAC3F,CAAC;QACD,OAAO;YACN,UAAU;YACV,OAAO;YACP,UAAU,EAAE,kBAAkB,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,KAAK,kBAAkB,KAAK,cAAc,CAAC;YAClG,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,KAAK,kBAAkB,KAAK,UAAU,CAAC;SACvF,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC,CAAe,CAAC;IACtF,gBAAgB,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,KAAK,WAAW,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC,CAAC;IAC7G,IAAI,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,oCAAoC,CAAC,CAAC;IACjF,CAAC;IACD,OAAO;QACN,aAAa,EAAE,4BAA4B;QAC3C,OAAO,EAAE,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC;QAC9D,WAAW,EAAE,kBAAkB,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,CAAC;QAC1E,MAAM,EAAE,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC;QAC3D,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC;QACpE,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC;QACpE,IAAI,EAAE,IAA8B;QACpC,YAAY,EAAE,YAA8C;QAC5D,YAAY,EAAE,cAAc,CAAC,cAAc,CAAC;QAC5C,SAAS;QACT,SAAS,EAAE,cAAc,CAAC,WAAW,CAAC;QACtC,UAAU,EAAE,cAAc,CAAC,YAAY,CAAC;QACxC,WAAW,EAAE,cAAc,CAAC,aAAa,CAAC;QAC1C,MAAM;QACN,aAAa,EAAE,kBAAkB,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,KAAK,gBAAgB,CAAC;QAChF,aAAa;QACb,QAAQ;QACR,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnC,CAAC;AACH,CAAC;AAED,SAAS,4BAA4B,CAAC,KAAc,EAAE,KAAa;IAClE,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE;QACzC,WAAW;QACX,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,YAAY;QACZ,SAAS;QACT,OAAO;QACP,SAAS;QACT,OAAO;QACP,OAAO;QACP,eAAe;QACf,QAAQ;QACR,WAAW;QACX,WAAW;KACX,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC;IACzD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,MAAM,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,qBAAqB,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC;IACjH,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC,CAAC;IACnE,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,iCAAiC,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO;QACN,SAAS,EAAE,kBAAkB,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC;QACtE,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC;QAC7D,QAAQ,EAAE,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,KAAK,WAAW,CAAC;QAClE,MAAM,EAAE,MAAuB;QAC/B,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS;YACnC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,KAAK,aAAa,CAAC,EAAE,CAAC;QACjF,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC,EAAE,CAAC;QAC9G,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC,EAAE,CAAC;QAC9G,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;QAC3G,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,KAAK,QAAQ,CAAC,EAAE,CAAC;QACvG,aAAa,EAAE,uBAAuB,CACrC,OAAO,CAAC,aAAa,EACrB,6BAA6B,EAC7B,GAAG,KAAK,gBAAgB,CACxB;QACD,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC,EAAE,CAAC;QACvG,SAAS;QACT,SAAS;KACT,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAmB;IACnD,OAAO,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,KAAa;IACpD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE;QACvC,SAAS;QACT,WAAW;QACX,SAAS;QACT,cAAc;QACd,UAAU;QACV,WAAW;KACX,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,KAAK,eAAe,CAAC,CAAC;IACzE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,gDAAgD,CAAC,CAAC;IAC7F,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,KAAK,WAAW,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC,CAAC;IACjE,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,oCAAoC,CAAC,CAAC;IACjF,CAAC;IACD,OAAO;QACN,OAAO,EAAE,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC;QAC9D,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC;QACpE,OAAO,EAAE,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC;QAC9D,YAAY;QACZ,QAAQ;QACR,SAAS;KACT,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAc,EAAE,KAAa;IAChE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnC,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,aAAa,IAAI,KAAK,KAAK,WAAW,CAAC,CAAC;IAC9G,IAAI,gBAAgB;QAAE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,IAAI,gBAAgB,kBAAkB,CAAC,CAAC;IACxG,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,CAAC,CAAC;IACtE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,+CAA+C,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1C,IACC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,iBAAiB;QACzC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,KAAK,SAAS,EAChD,CAAC;QACF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,wBAAwB,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAmB;IACxD,OAAO,mBAAmB,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc,EAAE,KAAa;IACzD,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE;QAC5C,cAAc;QACd,WAAW;QACX,cAAc;QACd,SAAS;QACT,aAAa;QACb,aAAa;QACb,OAAO;QACP,WAAW;KACX,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC;IAChH,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,GAAG,KAAK,eAAe,CAAC,CAAC;IAC9E,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,gDAAgD,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO;QACN,YAAY,EAAE,kBAAkB,CAAC,UAAU,CAAC,YAAY,EAAE,GAAG,KAAK,eAAe,CAAC;QAClF,SAAS,EAAE,kBAAkB,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC;QACzE,YAAY;QACZ,OAAO,EAAE,iBAAiB,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC;QAClE,WAAW,EAAE,uBAAuB,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,CAAC;QACpF,WAAW,EAAE,uBAAuB,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,CAAC;QACpF,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC;KAC9D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAc,EAAE,KAAa;IAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnC,MAAM,cAAc,GAAG;QACtB,WAAW;QACX,aAAa;QACb,cAAc;QACd,iBAAiB;QACjB,kBAAkB;QAClB,aAAa;QACb,SAAS;QACT,mBAAmB;KACnB,CAAC;IACF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACvF,IAAI,UAAU;QAAE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,IAAI,UAAU,kBAAkB,CAAC,CAAC;IAC5F,IAAI,CAAC;QACJ,OAAO,4BAA4B,CAClC;YACC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC;YACxD,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,CAAC;YAC9D,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,KAAK,eAAe,CAAC;YACjE,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,KAAK,kBAAkB,CAAC;YAC1E,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,KAAK,mBAAmB,CAAC;YAC7E,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,CAAC;YAC9D,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC;YAClD,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,KAAK,oBAAoB,CAAC;SAChF,EACD,KAAK,CACL,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,uBAAuB,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3F,CAAC;AACF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAmB;IACpD,OAAO,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,eAAe,CAAC,KAAc,EAAE,KAAa;IACrD,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE;QACxC,eAAe;QACf,UAAU;QACV,aAAa;QACb,QAAQ;QACR,WAAW;QACX,SAAS;QACT,cAAc;QACd,QAAQ;QACR,YAAY;QACZ,SAAS;QACT,WAAW;QACX,UAAU;QACV,QAAQ;QACR,YAAY;QACZ,OAAO;QACP,WAAW;KACX,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,aAAa,KAAK,4BAA4B,EAAE,CAAC;QAC3D,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,4BAA4B,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC;IACxD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,MAAM,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,qBAAqB,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1G,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,2BAA2B,CAAC,CAAC;IACxE,CAAC;IACD,IACC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,mCAAmC;QAC7D,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,mCAAmC;QAC5D,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,mCAAmC,EACzD,CAAC;QACF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,gCAAgC,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACvD,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,GAAG,KAAK,cAAc,KAAK,GAAG,EAAE;YACnE,YAAY;YACZ,MAAM;YACN,KAAK;YACL,QAAQ;YACR,WAAW;YACX,WAAW;YACX,UAAU;SACV,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,KAAK,cAAc,KAAK,QAAQ,CAAC,CAAC;QACxE,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACzF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,cAAc,KAAK,oBAAoB,CAAC,CAAC;QACpF,CAAC;QACD,IACC,QAAQ,CAAC,SAAS,KAAK,SAAS;YAChC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAC5E,CAAC;YACF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,cAAc,KAAK,yBAAyB,CAAC,CAAC;QACzF,CAAC;QACD,OAAO;YACN,UAAU,EAAE,kBAAkB,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,KAAK,cAAc,KAAK,cAAc,CAAC;YAC9F,IAAI;YACJ,GAAG,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,KAAK,cAAc,KAAK,OAAO,CAAC;YAC1E,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS;gBAChC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,KAAK,cAAc,KAAK,UAAU,CAAC,EAAE,CAAC;YAC1F,GAAG,CAAC,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpF,SAAS,EAAE,kBAAkB,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,KAAK,cAAc,KAAK,aAAa,CAAC;YAC3F,GAAG,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS;gBAClC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,KAAK,cAAc,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC;SACrG,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACjD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,GAAG,KAAK,WAAW,KAAK,GAAG,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;QAC3G,OAAO;YACN,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,WAAW,KAAK,QAAQ,CAAC;YACtE,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,WAAW,KAAK,WAAW,CAAC;YAChF,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,WAAW,KAAK,aAAa,CAAC;YAC1E,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS;gBAC9B,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,WAAW,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC;SAC5F,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,KAAK,QAAQ,EAAE;QACzD,aAAa;QACb,cAAc;QACd,aAAa;QACb,SAAS;QACT,aAAa;QACb,WAAW;KACX,CAAC,CAAC;IACH,KAAK,MAAM,KAAK,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,aAAa,CAAU,EAAE,CAAC;QAC7E,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACrG,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,UAAU,KAAK,cAAc,CAAC,CAAC;QAC1E,CAAC;IACF,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,8BAA8B,CAAC,CAAC;IAC3E,CAAC;IACD,IACC,KAAK,CAAC,OAAO,KAAK,SAAS;QAC3B,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,EAC1F,CAAC;QACF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,4BAA4B,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;QAC3G,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,gCAAgC,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,KAAK,eAAe,CAAC,CAAC;IAC1E,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,2BAA2B,CAAC,CAAC;IACxE,CAAC;IACD,OAAO;QACN,aAAa,EAAE,4BAA4B;QAC3C,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,KAAK,WAAW,CAAC;QAClE,WAAW,EAAE,kBAAkB,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,CAAC;QAC3E,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC;QAC5D,SAAS,EAAE,kBAAkB,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC;QACrE,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC;QAC/D,YAAY;QACZ,MAAM,EAAE,MAAwC;QAChD,UAAU,EAAE,kBAAkB,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,KAAK,aAAa,CAAC;QACxE,OAAO,EAAE,mBAAmB,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC;QAChE,SAAS,EAAE,SAA8C;QACzD,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,KAAK,aAAa,KAAK,GAAG,CAAC,CAAC;QACtG,MAAM,EAAE,MAAwC;QAChD,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS;YAClC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,UAAU,EAAE,mBAAmB,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,KAAK,aAAa,CAAC,EAAE,CAAC;QACjF,KAAK,EAAE;YACN,GAAG,CAAC,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpF,GAAG,CAAC,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvF,GAAG,CAAC,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpF,GAAG,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,WAAW,EAAE,KAAK,CAAC,WAAqB;YACxC,SAAS,EAAE,KAAK,CAAC,SAAmB;SACpC;QACD,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC;KAC1D,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc,EAAE,KAAa;IAC3D,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE;QACvC,eAAe;QACf,SAAS;QACT,eAAe;QACf,eAAe;QACf,aAAa;QACb,OAAO;QACP,MAAM;QACN,QAAQ;QACR,iBAAiB;QACjB,WAAW;QACX,WAAW;KACX,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,aAAa,KAAK,4BAA4B,EAAE,CAAC;QAC1D,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,4BAA4B,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,0BAA0B,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,KAAK,gBAAgB,CAAC,CAAC;IAChG,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,CAAC,CAAC;IAClF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,sBAAsB,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,aAAa,IAAI,KAAK,KAAK,CAAC;QAAE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,kCAAkC,CAAC,CAAC;IAChH,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC;IACjD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,mBAAmB,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC;IACvD,IAAI,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACpF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,qBAAqB,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,KAAK,gBAAgB,EAAE;QAC1E,UAAU;QACV,WAAW;QACX,YAAY;QACZ,aAAa;QACb,KAAK;QACL,iBAAiB;QACjB,wBAAwB;QACxB,sBAAsB;QACtB,UAAU;QACV,iBAAiB;QACjB,oBAAoB;KACpB,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,KAAK,yBAAyB,CAAC,CAAC;IAC7E,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAClD,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,qCAAqC,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,YAAY,GAAG,CAAC,KAAmC,EAAsB,EAAE;QAChF,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,EAAE,GAAG,KAAK,kBAAkB,KAAK,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,+BAA+B,EAAE,CAAC;YACnE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,kBAAkB,KAAK,kCAAkC,CAAC,CAAC;QACtG,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,KAAK,oBAAoB,CAAC,CAAC;IAC9D,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,GAAG,+BAA+B,EAAE,CAAC;QACjE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,oDAAoD,CAAC,CAAC;IACjG,CAAC;IACD,MAAM,UAAU,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAChD,MAAM,aAAa,GAAuB;QACzC,QAAQ;QACR,SAAS,EAAE,kBAAkB,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,KAAK,0BAA0B,CAAC;QACpF,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG;QACH,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS;YACxC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACA,eAAe,EAAE,kBAAkB,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,KAAK,gCAAgC,CAAC;aACtG,CAAC;QACJ,GAAG,CAAC,OAAO,CAAC,sBAAsB,KAAK,SAAS;YAC/C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACA,sBAAsB,EAAE,kBAAkB,CACzC,OAAO,CAAC,sBAAsB,EAC9B,GAAG,KAAK,uCAAuC,CAC/C;aACD,CAAC;QACJ,oBAAoB,EAAE,uBAAuB,CAC5C,OAAO,CAAC,oBAAoB,EAC5B,GAAG,KAAK,qCAAqC,CAC7C;QACD,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;YACjC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,QAAQ,EAAE,kBAAkB,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,KAAK,yBAAyB,CAAC,EAAE,CAAC;QACzF,eAAe,EAAE,yBAAyB,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,KAAK,gCAAgC,CAAC;QAC7G,GAAG,CAAC,OAAO,CAAC,kBAAkB,KAAK,SAAS;YAC3C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACA,kBAAkB,EAAE,kBAAkB,CACrC,OAAO,CAAC,kBAAkB,EAC1B,GAAG,KAAK,mCAAmC,CAC3C;aACD,CAAC;KACJ,CAAC;IACF,IAAI,CAAC;QACJ,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,uBAAuB,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3F,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC,CAAC;IACjE,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,iCAAiC,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO;QACN,aAAa,EAAE,4BAA4B;QAC3C,OAAO;QACP,aAAa;QACb,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,WAAW;QACX,KAAK;QACL,IAAI,EAAE,IAAoC;QAC1C,MAAM,EAAE,MAAwC;QAChD,GAAG,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS;YACtC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,eAAe,EAAE,kBAAkB,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,KAAK,kBAAkB,CAAC,EAAE,CAAC;QAC9F,SAAS;QACT,SAAS;KACT,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAmB;IACnD,OAAO,qBAAqB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAmB;IACtD,OAAO,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc,EAAE,KAAa;IACvD,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE;QAC1C,eAAe;QACf,YAAY;QACZ,aAAa;QACb,QAAQ;QACR,WAAW;QACX,YAAY;QACZ,SAAS;QACT,uBAAuB;QACvB,iBAAiB;QACjB,YAAY;QACZ,WAAW;KACX,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,KAAK,wBAAwB,CAAC,CAAC;IACnG,IACC,YAAY,CAAC,MAAM,GAAG,mCAAmC;QACzD,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,MAAM;QAClD,CAAC,YAAY,CAAC,KAAK,CAAC,mBAAmB,CAAC,EACvC,CAAC;QACF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,iCAAiC,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,eAAe,GACpB,QAAQ,CAAC,eAAe,KAAK,SAAS;QACrC,CAAC,CAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,GAAG,KAAK,kBAAkB,CAAC,CAAgB;QAC/F,CAAC,CAAC,SAAS,CAAC;IACd,gBAAgB,CAAC,eAAe,EAAE,GAAG,KAAK,kBAAkB,CAAC,CAAC;IAC9D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QACnD,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,uCAAuC,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,QAAQ,CAAC,aAAa,KAAK,4BAA4B,EAAE,CAAC;QAC7D,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,4BAA4B,CAAC,CAAC;IACzE,CAAC;IACD,OAAO;QACN,aAAa,EAAE,4BAA4B;QAC3C,UAAU,EAAE,kBAAkB,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,KAAK,aAAa,CAAC;QAC1E,WAAW,EAAE,kBAAkB,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,CAAC;QAC7E,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5G,GAAG,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS;YACnC,CAAC,CAAC,EAAE,SAAS,EAAE,kBAAkB,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC,EAAE;YAC7E,CAAC,CAAC,EAAE,CAAC;QACN,UAAU,EAAE,kBAAkB,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,KAAK,aAAa,CAAC;QAC1E,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC;QAClE,qBAAqB,EAAE,YAAY;QACnC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,KAAK,aAAa,CAAC;QAC/D,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC;KAC5D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,OAAmB;IAChE,OAAO,2BAA2B,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAc,EAAE,KAAa;IACjE,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;IACrH,IAAI,UAAU,CAAC,aAAa,KAAK,4BAA4B,EAAE,CAAC;QAC/D,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,4BAA4B,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC,CAAC;IAC/D,IAAI,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QACtD,MAAM,IAAI,uBAAuB,CAAC,6BAA6B,OAAO,IAAI,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO;QACN,aAAa,EAAE,4BAA4B;QAC3C,UAAU,EAAE,kBAAkB,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,KAAK,aAAa,CAAC;QAC5E,OAAO;QACP,UAAU,EAAE,kBAAkB,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,KAAK,aAAa,CAAC;QAC5E,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,KAAK,aAAa,CAAC;KACjE,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CAAC,KAAc,EAAE,KAAa;IACnE,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC;IACvD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QAC5E,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,qBAAqB,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,UAAU,GACf,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,KAAK,aAAa,CAAC,CAAC;IACnH,IAAI,MAAM,KAAK,SAAS,IAAI,UAAU,EAAE,CAAC;QACxC,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,6CAA6C,CAAC,CAAC;IAC1F,CAAC;IACD,IACC,MAAM,KAAK,SAAS;QACpB,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,KAAK,MAAM,CAAC,EAC7F,CAAC;QACF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,gDAAgD,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,mCAAmC,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,SAAS,iCAAiC,CAAC,KAAc,EAAE,KAAa;IACvE,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE;QAC9C,gBAAgB;QAChB,aAAa;QACb,WAAW;QACX,QAAQ;QACR,SAAS;QACT,WAAW;QACX,aAAa;KACb,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC;IAC9D,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QACpD,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,qBAAqB,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC,CAAC;IACxE,MAAM,WAAW,GAChB,YAAY,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,CAAC,CAAC;IAChH,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,KAAK,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,mCAAmC,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,kCAAkC,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO;QACN,cAAc,EAAE,kBAAkB,CAAC,YAAY,CAAC,cAAc,EAAE,GAAG,KAAK,iBAAiB,CAAC;QAC1F,WAAW,EAAE,kBAAkB,CAAC,YAAY,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,CAAC;QACjF,GAAG,CAAC,YAAY,CAAC,SAAS,KAAK,SAAS;YACvC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,SAAS,EAAE,kBAAkB,CAAC,YAAY,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC,EAAE,CAAC;QACnF,MAAM;QACN,OAAO,EAAE,mBAAmB,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC;QACtE,SAAS;QACT,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvC,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC7B,KAAqC,EACrC,WAAmB,EACnB,YAAoB,EACpB,OAAO,GAAG,IAAI,GAAG,EAAU;IAE3B,IAAI,WAAW,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CACvE,qBAAqB,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,CACjE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAA4B,EAAE,IAAkB,EAAE,KAAa;IAC3G,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IAChE,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,mCAAmC,CAAC,CAAC;IAC/F,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,kDAAkD,CAAC,CAAC;IAC/F,CAAC;IACD,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAC3C,IAAI,YAAY,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,2BAA2B,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;YACrE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,gBAAgB,YAAY,4BAA4B,CAAC,CAAC;QACrG,CAAC;QACD,IAAI,qBAAqB,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,iCAAiC,CAAC,CAAC;QAC9E,CAAC;IACF,CAAC;IACD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5F,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5G,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,uBAAuB,CAChC,GAAG,KAAK,4CAA4C,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACjF,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/D,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,gDAAgD,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAClE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,4CAA4C,CAAC,CAAC;QACzF,CAAC;IACF,CAAC;AACF,CAAC;AAED,SAAS,yBAAyB,CAAC,KAA4B;IAC9D,MAAM,KAAK,GAAG,mCAAmC,CAAC;IAClD,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtD,KAAK,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9E,IAAI,cAAc,CAAC,SAAS,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;YAC1D,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,eAAe,WAAW,wBAAwB,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;YACrG,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,eAAe,WAAW,gCAAgC,CAAC,CAAC;QACvG,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;YAC7C,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACtD,IAAI,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,UAAU,MAAM,qCAAqC,CAAC,CAAC;YAClG,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;gBACpD,MAAM,IAAI,uBAAuB,CAChC,GAAG,KAAK,eAAe,WAAW,+CAA+C,MAAM,IAAI,CAC3F,CAAC;YACH,CAAC;YACD,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC9C,CAAC;IACF,CAAC;IAED,KAAK,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/D,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACtC,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,UAAU,MAAM,wBAAwB,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpE,IAAI,CAAC,cAAc,EAAE,CAAC;YACrB,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,UAAU,MAAM,qBAAqB,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,UAAU,MAAM,4CAA4C,CAAC,CAAC;QACzG,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACjF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,UAAU,MAAM,gCAAgC,CAAC,CAAC;QAC7F,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3G,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CACnE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAC/C,CAAC;QACF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,uBAAuB,CAChC,GAAG,KAAK,UAAU,MAAM,6CAA6C,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAClG,CAAC;QACH,CAAC;QACD,KAAK,MAAM,YAAY,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACrD,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;gBAC7B,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,oCAAoC,CAAC,CAAC;YACjF,CAAC;YACD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC7C,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC/E,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,UAAU,MAAM,uCAAuC,CAAC,CAAC;YACpG,CAAC;YACD,IAAI,qBAAqB,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC;gBAC9D,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,+BAA+B,CAAC,CAAC;YAC5E,CAAC;QACF,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACjE,IACC,CAAC,OAAO;gBACR,OAAO,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,IAAI,CAAC,WAAW;gBACvD,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU;gBAClC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,EAC/B,CAAC;gBACF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,UAAU,MAAM,6CAA6C,CAAC,CAAC;YAC1G,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACpD,KAAK,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/D,KAAK,MAAM,SAAS,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;YAC9C,MAAM,aAAa,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvD,IAAI,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,uBAAuB,CAChC,8CAA8C,SAAS,gCAAgC,CACvF,CAAC;YACH,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACjF,MAAM,IAAI,uBAAuB,CAChC,GAAG,KAAK,UAAU,MAAM,6CAA6C,SAAS,IAAI,CAClF,CAAC;YACH,CAAC;YACD,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;IACF,CAAC;IACD,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnE,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,aAAa,SAAS,wBAAwB,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;YAChD,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,aAAa,SAAS,yCAAyC,CAAC,CAAC;QAC5G,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,IAAI,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;YAClE,MAAM,IAAI,uBAAuB,CAChC,GAAG,KAAK,aAAa,SAAS,iDAAiD,CAC/E,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3E,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACpD,IACC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAChE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,EAC9C,CAAC;gBACF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,aAAa,SAAS,uCAAuC,CAAC,CAAC;YAC1G,CAAC;QACF,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,EAAE,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACrF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,aAAa,SAAS,8BAA8B,CAAC,CAAC;QACjG,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,IACC,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO;gBACzC,OAAO,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS;gBACrC,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;gBACvC,OAAO,CAAC,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW;gBACnD,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,EACpC,CAAC;gBACF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,aAAa,SAAS,8BAA8B,CAAC,CAAC;YACjG,CAAC;QACF,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzG,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,kBAAkB,SAAS,2BAA2B,CAAC,CAAC;QACnG,CAAC;QACD,IACC,OAAO,CAAC,MAAM,KAAK,QAAQ;YAC3B,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,EACnF,CAAC;YACF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,oBAAoB,SAAS,kCAAkC,CAAC,CAAC;QAC5G,CAAC;QACD,IACC,OAAO,CAAC,KAAK;YACb,CAAC,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EACnG,CAAC;YACF,MAAM,IAAI,uBAAuB,CAChC,GAAG,KAAK,aAAa,SAAS,8DAA8D,CAC5F,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,aAAa,SAAS,gCAAgC,CAAC,CAAC;QACnG,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC9B,IACC,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;gBAChC,MAAM,CAAC,SAAS,KAAK,SAAS;gBAC9B,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;gBAChC,MAAM,CAAC,WAAW,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW;gBAC5C,CAAC,OAAO,CAAC,KAAK;gBACd,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO;gBACxC,MAAM,CAAC,YAAY,KAAK,OAAO,CAAC,KAAK,CAAC,YAAY,EACjD,CAAC;gBACF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,aAAa,SAAS,+BAA+B,CAAC,CAAC;YAClG,CAAC;YACD,IACC,MAAM,CAAC,MAAM,KAAK,WAAW;gBAC7B,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,MAAM,GAAG,CAAC,EAC1E,CAAC;gBACF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,uBAAuB,SAAS,2BAA2B,CAAC,CAAC;YACxG,CAAC;QACF,CAAC;aAAM,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACxE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,sBAAsB,SAAS,qBAAqB,CAAC,CAAC;QACjG,CAAC;IACF,CAAC;IAED,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU;aAClC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAE,CAAC;aAC9C,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9D,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,UAAU,MAAM,gCAAgC,CAAC,CAAC;QAC7F,CAAC;QACD,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,WAAW,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;YACpF,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACpC,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,UAAU,MAAM,sCAAsC,CAAC,CAAC;YACnG,CAAC;QACF,CAAC;aAAM,IAAI,WAAW,EAAE,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACjG,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,iBAAiB,MAAM,0BAA0B,CAAC,CAAC;QAC9F,CAAC;aAAM,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC3D,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,kBAAkB,MAAM,wBAAwB,CAAC,CAAC;QAC7F,CAAC;IACF,CAAC;IAED,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1D,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnE,KAAK,MAAM,YAAY,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAClD,IAAI,uBAAuB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,gBAAgB,YAAY,mCAAmC,CAAC,CAAC;YAC5G,CAAC;YACD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YACnD,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACvD,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,aAAa,SAAS,qCAAqC,CAAC,CAAC;YACxG,CAAC;YACD,uBAAuB,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACtD,CAAC;IACF,CAAC;IACD,KAAK,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5E,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACrD,IACC,UAAU,CAAC,YAAY,KAAK,YAAY;YACxC,CAAC,OAAO;YACR,uBAAuB,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,UAAU,CAAC,SAAS;YAClE,CAAC,OAAO,CAAC,KAAK;YACd,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY;YACpD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAC/D,CAAC;YACF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,gBAAgB,YAAY,0BAA0B,CAAC,CAAC;QACnG,CAAC;IACF,CAAC;IAED,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7D,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO;YAC5B,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,WAAW,OAAO,wBAAwB,CAAC,CAAC;QACvF,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gBAC7F,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,WAAW,OAAO,wBAAwB,CAAC,CAAC;YACvF,CAAC;QACF,CAAC;aAAM,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,gBAAgB,OAAO,wBAAwB,CAAC,CAAC;QAC5F,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3C,IAAI,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC;QACrC,OAAO,UAAU,EAAE,CAAC;YACnB,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;gBAAE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,kCAAkC,CAAC,CAAC;YAC3G,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACxB,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;QACtD,CAAC;QACD,MAAM,aAAa,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChG,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjE,IAAI,KAAK,CAAC,eAAe;gBACxB,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,gBAAgB,OAAO,oBAAoB,CAAC,CAAC;QACzF,CAAC;aAAM,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAChE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,kBAAkB,OAAO,sBAAsB,CAAC,CAAC;QAC5F,CAAC;aAAM,IACN,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACpF,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,WAAW,CAAC,EACtG,CAAC;YACF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,WAAW,OAAO,sCAAsC,CAAC,CAAC;QACrG,CAAC;QACD,IAAI,KAAK,CAAC,aAAa,CAAC,kBAAkB,EAAE,CAAC;YAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;YAC7E,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9E,IAAI,CAAC,UAAU,IAAI,OAAO,EAAE,OAAO,KAAK,OAAO,EAAE,CAAC;gBACjD,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,WAAW,OAAO,uCAAuC,CAAC,CAAC;YACtG,CAAC;QACF,CAAC;IACF,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,SAAS;QACxE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,IACC,CAAC,KAAK;YACN,KAAK,CAAC,eAAe,KAAK,OAAO,CAAC,SAAS;YAC3C,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC;YAC7E,CAAC,OAAO,CAAC,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,EAC9F,CAAC;YACF,MAAM,IAAI,uBAAuB,CAChC,GAAG,KAAK,aAAa,OAAO,CAAC,SAAS,sCAAsC,CAC5E,CAAC;QACH,CAAC;IACF,CAAC;IAED,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACtE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QACjC,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YACjF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,cAAc,UAAU,0BAA0B,CAAC,CAAC;QAC/F,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtE,IACC,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC;YAClE,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EACrC,CAAC;YACF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,cAAc,UAAU,+BAA+B,CAAC,CAAC;QACpG,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClF,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;YAC7D,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,cAAc,UAAU,6BAA6B,CAAC,CAAC;QAClG,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAClG,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,sBAAsB,UAAU,4BAA4B,CAAC,CAAC;QACzG,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;QAC7E,IACC,CAAC,YAAY;YACb,YAAY,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW;YAChD,YAAY,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS;YAC5C,YAAY,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,EACvC,CAAC;YACF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,cAAc,UAAU,2BAA2B,CAAC,CAAC;QAChG,CAAC;IACF,CAAC;IAED,KAAK,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QAClF,IAAI,YAAY,CAAC,cAAc,KAAK,cAAc,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;YACnG,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,kBAAkB,cAAc,0BAA0B,CAAC,CAAC;QACvG,CAAC;QACD,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,IAAI,CAAC,WAAW,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC;gBACrE,MAAM,IAAI,uBAAuB,CAChC,GAAG,KAAK,kBAAkB,cAAc,kCAAkC,CAC1E,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC;IAED,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7D,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAC1C,IAAI,CAAC,YAAY;YAAE,SAAS;QAC5B,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QAC9D,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QACvE,IACC,CAAC,YAAY;YACb,YAAY,CAAC,IAAI,CAAC,oBAAoB,KAAK,MAAM;YACjD,CAAC,eAAe;YAChB,eAAe,CAAC,MAAM,KAAK,YAAY,CAAC,cAAc;YACtD,CAAC,qBAAqB,CAAC,eAAe,CAAC,MAAM,CAAC,EAC7C,CAAC;YACF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,UAAU,MAAM,uCAAuC,CAAC,CAAC;QACpG,CAAC;QACD,IAAI,YAAY,CAAC,OAAO,KAAK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAChF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,+BAA+B,MAAM,qBAAqB,CAAC,CAAC;QACvG,CAAC;QACD,IACC,YAAY,CAAC,OAAO,KAAK,cAAc;YACvC,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CACrC,CAAC,QAAQ,EAAE,EAAE,CACZ,QAAQ,CAAC,OAAO;gBAChB,QAAQ,CAAC,IAAI,KAAK,QAAQ;gBAC1B,QAAQ,CAAC,QAAQ,EAAE,aAAa,KAAK,MAAM;gBAC3C,QAAQ,CAAC,QAAQ,CAAC,OAAO,KAAK,YAAY,CAAC,OAAO,CACnD,EACA,CAAC;YACF,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,UAAU,MAAM,yCAAyC,CAAC,CAAC;QACtG,CAAC;IACF,CAAC;AACF,CAAC","sourcesContent":["import type { JsonObject } from \"../autonomy/contracts.ts\";\nimport { createAgentIdentity } from \"./agent-resume.ts\";\nimport { validateAttemptUsageSnapshot } from \"./attempt-usage.ts\";\nimport {\n\ttype AcceptanceCriterion,\n\ttype AgentBindingContract,\n\ttype AgentResumeContext,\n\ttype ApprovalRequestContract,\n\ttype ApprovalResolutionContract,\n\tATTEMPT_STATUSES,\n\ttype AttemptCheckpoint,\n\ttype AttemptLease,\n\ttype AttemptRetryState,\n\ttype AttemptStatus,\n\ttype EvidenceContract,\n\ttype ExecutionGrant,\n\tisHarnessCapability,\n\tisResourcePointerKind,\n\tMAX_ORCHESTRATION_AGENT_BINDINGS,\n\tMAX_ORCHESTRATION_APPROVALS,\n\tMAX_ORCHESTRATION_ATTEMPTS,\n\tMAX_ORCHESTRATION_CHECKPOINT_SUMMARY_LENGTH,\n\tMAX_ORCHESTRATION_CHECKPOINTS,\n\tMAX_ORCHESTRATION_COLLECTION_LENGTH,\n\tMAX_ORCHESTRATION_DESCRIPTION_LENGTH,\n\tMAX_ORCHESTRATION_DISPATCH_INSTRUCTIONS_LENGTH,\n\tMAX_ORCHESTRATION_IDENTIFIER_LENGTH,\n\tMAX_ORCHESTRATION_MODEL_PROVIDER_LENGTH,\n\tMAX_ORCHESTRATION_NOTIFICATIONS,\n\tMAX_ORCHESTRATION_OBJECTIVE_EVIDENCE,\n\tMAX_ORCHESTRATION_OBJECTIVES,\n\tMAX_ORCHESTRATION_TASKS,\n\tMAX_WORKER_RESOURCE_PATH_LENGTH,\n\tMAX_WORKER_RESOURCE_POINTERS,\n\tOBJECTIVE_STATUSES,\n\ttype ObjectiveContract,\n\ttype ObjectiveStatus,\n\tORCHESTRATION_SCHEMA_VERSION,\n\ttype OrchestrationDispatchRequest,\n\ttype OrchestrationTaskStatus,\n\ttype ResourcePointer,\n\ttype RiskBudget,\n\tTASK_STATUSES,\n\ttype TaskContract,\n\ttoJsonObject,\n\tWORKER_RESULT_STATUSES,\n\tWORKER_ROLES,\n\ttype WorkerExecutionContract,\n\ttype WorkerResultContract,\n} from \"./contracts.ts\";\nimport { validateRiskBudget } from \"./risk-budget.ts\";\nimport {\n\tassertRecordWithinLimit,\n\tassertRetainedProjectionNestedCollections,\n\texactRecord,\n\tPROJECTION_RECORD_FIELDS,\n\ttype ProjectionRecordField,\n\tprojectionSerializedBytes,\n\trecord,\n\tretainedIdentifierArray,\n} from \"./task-runtime-projection.ts\";\nimport {\n\ttype ApprovalRuntimeState,\n\ttype AttemptRuntimeState,\n\tDurableTaskRuntimeError,\n\tmissingTrustedCriteria,\n\ttype NotificationRuntimeState,\n\ttype ObjectiveRuntimeState,\n\ttype TaskRuntimeProjection,\n\ttype TaskRuntimeState,\n\tterminalAttemptStatus,\n} from \"./task-runtime-state.ts\";\nimport { normalizeWorkerContextForkReference } from \"./worker-context-fork-reference.ts\";\nimport { parseWorkerExecutionContract } from \"./worker-execution-contract.ts\";\n\nexport const MAX_DATE_EPOCH_MS = 8_640_000_000_000_000;\n\nexport function projectionFromSnapshot(projection: JsonObject, throughOrdinal: number): TaskRuntimeProjection {\n\tconst label = \"orchestration projection snapshot\";\n\tconst candidate = exactRecord(projection, label, [\"lastOrdinal\", ...PROJECTION_RECORD_FIELDS]);\n\tif (\n\t\t!Number.isSafeInteger(candidate.lastOrdinal) ||\n\t\tNumber(candidate.lastOrdinal) < 0 ||\n\t\tcandidate.lastOrdinal !== throughOrdinal\n\t) {\n\t\tthrow new DurableTaskRuntimeError(\"Orchestration projection snapshot ordinal does not match its baseline.\");\n\t}\n\tconst snapshotRecords = {} as Record<ProjectionRecordField, Record<string, unknown>>;\n\tfor (const field of PROJECTION_RECORD_FIELDS) {\n\t\tsnapshotRecords[field] = record(candidate[field], `${label}.${field}`);\n\t}\n\tassertRecordWithinLimit(snapshotRecords.agents, MAX_ORCHESTRATION_AGENT_BINDINGS, \"agent binding\");\n\tassertRecordWithinLimit(snapshotRecords.objectives, MAX_ORCHESTRATION_OBJECTIVES, \"objective\");\n\tassertRecordWithinLimit(snapshotRecords.tasks, MAX_ORCHESTRATION_TASKS, \"task\");\n\tassertRecordWithinLimit(snapshotRecords.attempts, MAX_ORCHESTRATION_ATTEMPTS, \"attempt\");\n\tassertRecordWithinLimit(snapshotRecords.checkpoints, MAX_ORCHESTRATION_CHECKPOINTS, \"checkpoint\");\n\tassertRecordWithinLimit(snapshotRecords.approvals, MAX_ORCHESTRATION_APPROVALS, \"approval\");\n\tassertRecordWithinLimit(snapshotRecords.notifications, MAX_ORCHESTRATION_NOTIFICATIONS, \"notification\");\n\tassertRetainedProjectionNestedCollections(\n\t\tsnapshotRecords.objectives,\n\t\tsnapshotRecords.tasks,\n\t\tsnapshotRecords.attempts,\n\t\tsnapshotRecords.checkpoints,\n\t\tlabel,\n\t);\n\tprojectionSerializedBytes(candidate as unknown as TaskRuntimeProjection);\n\tconst normalized: TaskRuntimeProjection = {\n\t\tlastOrdinal: throughOrdinal,\n\t\tagents: Object.fromEntries(\n\t\t\tObject.entries(snapshotRecords.agents).map(([agentId, value]) => [\n\t\t\t\tagentId,\n\t\t\t\tnormalizeAgentBinding(value, `${label}.agents.${agentId}`),\n\t\t\t]),\n\t\t),\n\t\tobjectives: Object.fromEntries(\n\t\t\tObject.entries(snapshotRecords.objectives).map(([objectiveId, value]) => [\n\t\t\t\tobjectiveId,\n\t\t\t\tobjectiveRuntimeStateFromValue(value, `${label}.objectives.${objectiveId}`),\n\t\t\t]),\n\t\t),\n\t\ttasks: Object.fromEntries(\n\t\t\tObject.entries(snapshotRecords.tasks).map(([taskId, value]) => [\n\t\t\t\ttaskId,\n\t\t\t\ttaskRuntimeStateFromValue(value, `${label}.tasks.${taskId}`),\n\t\t\t]),\n\t\t),\n\t\tattempts: Object.fromEntries(\n\t\t\tObject.entries(snapshotRecords.attempts).map(([attemptId, value]) => [\n\t\t\t\tattemptId,\n\t\t\t\tattemptRuntimeStateFromValue(value, `${label}.attempts.${attemptId}`),\n\t\t\t]),\n\t\t),\n\t\tcheckpoints: Object.fromEntries(\n\t\t\tObject.entries(snapshotRecords.checkpoints).map(([checkpointId, value]) => [\n\t\t\t\tcheckpointId,\n\t\t\t\tcheckpointFromValue(value, `${label}.checkpoints.${checkpointId}`),\n\t\t\t]),\n\t\t),\n\t\tapprovals: Object.fromEntries(\n\t\t\tObject.entries(snapshotRecords.approvals).map(([approvalId, value]) => [\n\t\t\t\tapprovalId,\n\t\t\t\tapprovalRuntimeStateFromValue(value, `${label}.approvals.${approvalId}`),\n\t\t\t]),\n\t\t),\n\t\tnotifications: Object.fromEntries(\n\t\t\tObject.entries(snapshotRecords.notifications).map(([notificationId, value]) => [\n\t\t\t\tnotificationId,\n\t\t\t\tnotificationRuntimeStateFromValue(value, `${label}.notifications.${notificationId}`),\n\t\t\t]),\n\t\t),\n\t};\n\tvalidateSnapshotTaskGraph(normalized);\n\tprojectionSerializedBytes(normalized);\n\treturn normalized;\n}\n\nexport function string(value: unknown, label: string): string {\n\tif (typeof value !== \"string\" || value.length === 0) throw new DurableTaskRuntimeError(`${label} is required.`);\n\treturn value;\n}\n\nexport function number(value: unknown, label: string): number {\n\tif (typeof value !== \"number\" || !Number.isFinite(value)) throw new DurableTaskRuntimeError(`${label} is invalid.`);\n\treturn value;\n}\n\nfunction boolean(value: unknown, label: string): boolean {\n\tif (typeof value !== \"boolean\") throw new DurableTaskRuntimeError(`${label} is invalid.`);\n\treturn value;\n}\n\nexport function assertRiskBudget(budget: RiskBudget | undefined, label: string): void {\n\ttry {\n\t\tvalidateRiskBudget(budget ?? {}, label);\n\t} catch (error) {\n\t\tthrow new DurableTaskRuntimeError(error instanceof Error ? error.message : String(error));\n\t}\n}\n\nfunction stringArray(value: unknown, label: string): string[] {\n\tif (!Array.isArray(value) || !value.every((entry) => typeof entry === \"string\")) {\n\t\tthrow new DurableTaskRuntimeError(`${label} must be a string array.`);\n\t}\n\treturn [...value];\n}\n\nexport function dispatchIdentifier(value: unknown, label: string): string {\n\tconst identifier = string(value, label);\n\tif (identifier.length > MAX_ORCHESTRATION_IDENTIFIER_LENGTH) {\n\t\tthrow new DurableTaskRuntimeError(`${label} exceeds its durable size bound.`);\n\t}\n\treturn identifier;\n}\n\nfunction isoDate(value: unknown, label: string): string {\n\tconst date = dispatchIdentifier(value, label);\n\tconst epochMs = Date.parse(date);\n\tif (!Number.isFinite(epochMs) || Math.abs(epochMs) > MAX_DATE_EPOCH_MS || new Date(epochMs).toISOString() !== date) {\n\t\tthrow new DurableTaskRuntimeError(`${label} is invalid.`);\n\t}\n\treturn date;\n}\n\nfunction optionalDispatchIdentifier(\n\tvalue: unknown,\n\tlabel: string,\n\tmaxLength = MAX_ORCHESTRATION_IDENTIFIER_LENGTH,\n): string | undefined {\n\tif (value === undefined) return undefined;\n\tconst identifier = string(value, label);\n\tif (identifier.length > maxLength) throw new DurableTaskRuntimeError(`${label} exceeds its durable size bound.`);\n\treturn identifier;\n}\n\nfunction dispatchInstructions(value: unknown, label: string): string {\n\tconst instructions = string(value, label);\n\tif (instructions.length > MAX_ORCHESTRATION_DISPATCH_INSTRUCTIONS_LENGTH) {\n\t\tthrow new DurableTaskRuntimeError(`${label} exceeds its durable size bound.`);\n\t}\n\treturn instructions;\n}\n\nfunction retainedDescription(value: unknown, label: string): string {\n\tconst description = string(value, label).trim();\n\tif (!description) throw new DurableTaskRuntimeError(`${label} is required.`);\n\tif (description.length > MAX_ORCHESTRATION_DESCRIPTION_LENGTH) {\n\t\tthrow new DurableTaskRuntimeError(`${label} exceeds its durable size bound.`);\n\t}\n\treturn description;\n}\n\nexport function checkpointSummary(value: unknown, label: string): string {\n\tconst summary = string(value, label).trim();\n\tif (!summary) throw new DurableTaskRuntimeError(`${label} is required.`);\n\tif (summary.length > MAX_ORCHESTRATION_CHECKPOINT_SUMMARY_LENGTH) {\n\t\tthrow new DurableTaskRuntimeError(`${label} exceeds its durable size bound.`);\n\t}\n\treturn summary;\n}\n\nexport function dispatchIdentifierArray(value: unknown, label: string): string[] {\n\tif (\n\t\t!Array.isArray(value) ||\n\t\tvalue.length > MAX_ORCHESTRATION_COLLECTION_LENGTH ||\n\t\t!value.every(\n\t\t\t(entry) =>\n\t\t\t\ttypeof entry === \"string\" && entry.length > 0 && entry.length <= MAX_ORCHESTRATION_IDENTIFIER_LENGTH,\n\t\t)\n\t) {\n\t\tthrow new DurableTaskRuntimeError(`${label} must be a bounded identifier array.`);\n\t}\n\tif (new Set(value).size !== value.length) {\n\t\tthrow new DurableTaskRuntimeError(`${label} contains duplicates.`);\n\t}\n\treturn [...value];\n}\n\n/** Validate dependency identity and ownership before any durable task event is appended. */\nexport function validateTaskDependencyIds(\n\ttasks: TaskRuntimeProjection[\"tasks\"],\n\tobjectiveId: string,\n\tvalue: readonly string[] | undefined,\n): string[] {\n\tconst dependencyIds = dispatchIdentifierArray(value ?? [], \"task.dependsOn\");\n\tfor (const dependencyId of dependencyIds) {\n\t\tconst dependency = tasks[dependencyId];\n\t\tif (!dependency || dependency.task.objectiveId !== objectiveId) {\n\t\t\tthrow new DurableTaskRuntimeError(`Task dependency '${dependencyId}' is not in objective '${objectiveId}'.`);\n\t\t}\n\t}\n\treturn dependencyIds;\n}\n\nconst DISPATCH_FIELDS = new Set([\n\t\"taskId\",\n\t\"profileId\",\n\t\"instructions\",\n\t\"resourcePointerIds\",\n\t\"parentAgentId\",\n\t\"requirementIds\",\n\t\"executionKind\",\n\t\"logicalLaneId\",\n\t\"dispatchSequence\",\n\t\"controlMessageId\",\n\t\"provider\",\n\t\"authorizationId\",\n\t\"worktreeLaneKey\",\n\t\"birthContextForkReference\",\n\t\"executionContract\",\n]);\n\nexport function dispatchFromValue(value: unknown, label: string): OrchestrationDispatchRequest {\n\tconst dispatch = record(value, label);\n\tconst unsupportedField = Object.keys(dispatch).find((field) => !DISPATCH_FIELDS.has(field));\n\tif (unsupportedField) throw new DurableTaskRuntimeError(`${label}.${unsupportedField} is unsupported.`);\n\tconst executionKind = dispatch.executionKind;\n\tif (executionKind !== undefined && executionKind !== \"in-process\" && executionKind !== \"managed-process\") {\n\t\tthrow new DurableTaskRuntimeError(`${label}.executionKind is invalid.`);\n\t}\n\tconst logicalLaneId = optionalDispatchIdentifier(dispatch.logicalLaneId, `${label}.logicalLaneId`);\n\tconst controlMessageId = optionalDispatchIdentifier(dispatch.controlMessageId, `${label}.controlMessageId`);\n\tconst parentAgentId = optionalDispatchIdentifier(dispatch.parentAgentId, `${label}.parentAgentId`);\n\tconst provider = optionalDispatchIdentifier(\n\t\tdispatch.provider,\n\t\t`${label}.provider`,\n\t\tMAX_ORCHESTRATION_MODEL_PROVIDER_LENGTH,\n\t);\n\tconst authorizationId = optionalDispatchIdentifier(dispatch.authorizationId, `${label}.authorizationId`);\n\tconst worktreeLaneKey = optionalDispatchIdentifier(dispatch.worktreeLaneKey, `${label}.worktreeLaneKey`);\n\tif (\n\t\tdispatch.dispatchSequence !== undefined &&\n\t\t(!Number.isSafeInteger(dispatch.dispatchSequence) || Number(dispatch.dispatchSequence) < 1)\n\t) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.dispatchSequence is invalid.`);\n\t}\n\tlet executionContract: WorkerExecutionContract | undefined;\n\tlet birthContextForkReference: OrchestrationDispatchRequest[\"birthContextForkReference\"];\n\ttry {\n\t\texecutionContract =\n\t\t\tdispatch.executionContract === undefined\n\t\t\t\t? undefined\n\t\t\t\t: parseWorkerExecutionContract(dispatch.executionContract);\n\t\tbirthContextForkReference =\n\t\t\tdispatch.birthContextForkReference === undefined\n\t\t\t\t? undefined\n\t\t\t\t: normalizeWorkerContextForkReference(dispatch.birthContextForkReference);\n\t} catch (error) {\n\t\tthrow new DurableTaskRuntimeError(\n\t\t\t`${label} is invalid: ${error instanceof Error ? error.message : String(error)}`,\n\t\t);\n\t}\n\tif (executionContract && executionKind === \"managed-process\") {\n\t\tthrow new DurableTaskRuntimeError(`${label} cannot combine a worker execution contract with managed execution.`);\n\t}\n\treturn {\n\t\ttaskId: dispatchIdentifier(dispatch.taskId, `${label}.taskId`),\n\t\tprofileId: dispatchIdentifier(dispatch.profileId, `${label}.profileId`),\n\t\tinstructions: dispatchInstructions(dispatch.instructions, `${label}.instructions`),\n\t\tresourcePointerIds: dispatchIdentifierArray(dispatch.resourcePointerIds, `${label}.resourcePointerIds`),\n\t\t...(parentAgentId ? { parentAgentId } : {}),\n\t\trequirementIds:\n\t\t\tdispatch.requirementIds === undefined\n\t\t\t\t? []\n\t\t\t\t: dispatchIdentifierArray(dispatch.requirementIds, `${label}.requirementIds`),\n\t\t...(executionKind ? { executionKind } : {}),\n\t\t...(logicalLaneId ? { logicalLaneId } : {}),\n\t\t...(typeof dispatch.dispatchSequence === \"number\" ? { dispatchSequence: dispatch.dispatchSequence } : {}),\n\t\t...(controlMessageId ? { controlMessageId } : {}),\n\t\t...(provider ? { provider } : {}),\n\t\t...(authorizationId ? { authorizationId } : {}),\n\t\t...(worktreeLaneKey ? { worktreeLaneKey } : {}),\n\t\t...(birthContextForkReference ? { birthContextForkReference } : {}),\n\t\t...(executionContract ? { executionContract } : {}),\n\t};\n}\n\nexport function objectiveFromPayload(payload: JsonObject): ObjectiveContract {\n\treturn objectiveFromValue(payload.objective, \"objective\");\n}\n\nexport function evidenceFromPayload(payload: JsonObject): EvidenceContract {\n\treturn evidenceFromValue(payload.evidence, \"evidence\");\n}\n\nfunction objectiveFromValue(value: unknown, label: string): ObjectiveContract {\n\tconst objective = exactRecord(value, label, [\n\t\t\"schemaVersion\",\n\t\t\"objectiveId\",\n\t\t\"title\",\n\t\t\"description\",\n\t\t\"status\",\n\t\t\"constraints\",\n\t\t\"acceptanceCriteria\",\n\t\t\"riskBudget\",\n\t\t\"createdAt\",\n\t\t\"updatedAt\",\n\t]);\n\tif (objective.schemaVersion !== ORCHESTRATION_SCHEMA_VERSION) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.schemaVersion is invalid.`);\n\t}\n\tconst status = string(objective.status, `${label}.status`);\n\tif (!OBJECTIVE_STATUSES.some((candidate) => candidate === status)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.status is invalid.`);\n\t}\n\tconst constraints = stringArray(objective.constraints, `${label}.constraints`);\n\tif (\n\t\tconstraints.length > MAX_ORCHESTRATION_COLLECTION_LENGTH ||\n\t\tconstraints.some((constraint) => !constraint.trim() || constraint.length > MAX_ORCHESTRATION_DESCRIPTION_LENGTH)\n\t) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.constraints must be a bounded description array.`);\n\t}\n\tif (!Array.isArray(objective.acceptanceCriteria)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.acceptanceCriteria must be an array.`);\n\t}\n\tif (objective.acceptanceCriteria.length > MAX_ORCHESTRATION_COLLECTION_LENGTH) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.acceptanceCriteria exceeds its collection limit.`);\n\t}\n\tconst acceptanceCriteria = objective.acceptanceCriteria.map((value, index): AcceptanceCriterion => {\n\t\tconst criterion = exactRecord(value, `${label}.acceptanceCriteria[${index}]`, [\n\t\t\t\"id\",\n\t\t\t\"description\",\n\t\t\t\"required\",\n\t\t\t\"evaluator\",\n\t\t]);\n\t\treturn {\n\t\t\tid: dispatchIdentifier(criterion.id, `${label}.acceptanceCriteria[${index}].id`),\n\t\t\tdescription: retainedDescription(criterion.description, `${label}.acceptanceCriteria[${index}].description`),\n\t\t\trequired: boolean(criterion.required, `${label}.acceptanceCriteria[${index}].required`),\n\t\t\t...(criterion.evaluator === undefined\n\t\t\t\t? {}\n\t\t\t\t: {\n\t\t\t\t\t\tevaluator: dispatchIdentifier(criterion.evaluator, `${label}.acceptanceCriteria[${index}].evaluator`),\n\t\t\t\t\t}),\n\t\t};\n\t});\n\tassertAcceptanceCriteria(acceptanceCriteria);\n\tconst riskBudget = structuredClone(record(objective.riskBudget, `${label}.riskBudget`)) as RiskBudget;\n\tassertRiskBudget(riskBudget, `${label}.riskBudget`);\n\treturn {\n\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\tobjectiveId: dispatchIdentifier(objective.objectiveId, `${label}.objectiveId`),\n\t\ttitle: retainedDescription(objective.title, `${label}.title`),\n\t\tdescription: retainedDescription(objective.description, `${label}.description`),\n\t\tstatus: status as ObjectiveStatus,\n\t\tconstraints,\n\t\tacceptanceCriteria,\n\t\triskBudget,\n\t\tcreatedAt: isoDate(objective.createdAt, `${label}.createdAt`),\n\t\tupdatedAt: isoDate(objective.updatedAt, `${label}.updatedAt`),\n\t};\n}\n\nfunction evidenceFromValue(value: unknown, label: string): EvidenceContract {\n\tconst evidence = exactRecord(value, label, [\n\t\t\"evidenceId\",\n\t\t\"criterionId\",\n\t\t\"kind\",\n\t\t\"summary\",\n\t\t\"artifactIds\",\n\t\t\"trusted\",\n\t\t\"createdAt\",\n\t\t\"metadata\",\n\t]);\n\tconst kind = string(evidence.kind, `${label}.kind`);\n\tif (![\"observation\", \"command\", \"test\", \"review\", \"external\"].includes(kind)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.kind is invalid.`);\n\t}\n\tconst metadata =\n\t\tevidence.metadata === undefined ? undefined : structuredClone(record(evidence.metadata, `${label}.metadata`));\n\treturn {\n\t\tevidenceId: dispatchIdentifier(evidence.evidenceId, `${label}.evidenceId`),\n\t\t...(evidence.criterionId === undefined\n\t\t\t? {}\n\t\t\t: { criterionId: dispatchIdentifier(evidence.criterionId, `${label}.criterionId`) }),\n\t\tkind: kind as EvidenceContract[\"kind\"],\n\t\tsummary: retainedDescription(evidence.summary, `${label}.summary`),\n\t\tartifactIds: dispatchIdentifierArray(evidence.artifactIds, `${label}.artifactIds`),\n\t\ttrusted: boolean(evidence.trusted, `${label}.trusted`),\n\t\tcreatedAt: isoDate(evidence.createdAt, `${label}.createdAt`),\n\t\t...(metadata ? { metadata: metadata as JsonObject } : {}),\n\t};\n}\n\nfunction objectiveRuntimeStateFromValue(value: unknown, label: string): ObjectiveRuntimeState {\n\tconst state = exactRecord(value, label, [\"objective\", \"taskIds\", \"evidence\"]);\n\tconst objective = objectiveFromValue(state.objective, `${label}.objective`);\n\tif (!Array.isArray(state.evidence) || state.evidence.length > MAX_ORCHESTRATION_OBJECTIVE_EVIDENCE) {\n\t\tthrow new DurableTaskRuntimeError(\n\t\t\t`${label}.evidence exceeds its retained collection limit (${MAX_ORCHESTRATION_OBJECTIVE_EVIDENCE}).`,\n\t\t);\n\t}\n\tconst evidence = state.evidence.map((item, index) => evidenceFromValue(item, `${label}.evidence[${index}]`));\n\tconst evidenceIds = new Set<string>();\n\tfor (const item of evidence) {\n\t\tif (evidenceIds.has(item.evidenceId)) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label}.evidence contains duplicate id '${item.evidenceId}'.`);\n\t\t}\n\t\tevidenceIds.add(item.evidenceId);\n\t\tif (item.criterionId && !objective.acceptanceCriteria.some((criterion) => criterion.id === item.criterionId)) {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`${label}.evidence references unknown acceptance criterion '${item.criterionId}'.`,\n\t\t\t);\n\t\t}\n\t}\n\treturn {\n\t\tobjective,\n\t\ttaskIds: retainedIdentifierArray(state.taskIds, MAX_ORCHESTRATION_TASKS, `${label}.taskIds`),\n\t\tevidence,\n\t};\n}\n\nexport function assertAcceptanceCriteria(criteria: readonly AcceptanceCriterion[]): void {\n\tconst criterionIds = criteria.map((criterion) => criterion.id);\n\tif (\n\t\tcriterionIds.some((id) => !id.trim()) ||\n\t\tnew Set(criterionIds).size !== criterionIds.length ||\n\t\tcriteria.some((criterion) => !criterion.description.trim())\n\t) {\n\t\tthrow new DurableTaskRuntimeError(\"Objective acceptance criteria require unique ids and descriptions.\");\n\t}\n}\n\nexport function assertReferencedAcceptanceCriteriaRetained(\n\ttasks: TaskRuntimeProjection[\"tasks\"],\n\tcurrent: ObjectiveRuntimeState,\n\tacceptanceCriteria: readonly AcceptanceCriterion[],\n): void {\n\tconst retainedCriterionIds = new Set(acceptanceCriteria.map((criterion) => criterion.id));\n\tconst referencedRemovedIds = current.taskIds.flatMap((taskId) =>\n\t\t(tasks[taskId]?.task.acceptanceCriterionIds ?? []).filter(\n\t\t\t(criterionId) => !retainedCriterionIds.has(criterionId),\n\t\t),\n\t);\n\tif (referencedRemovedIds.length > 0) {\n\t\tthrow new DurableTaskRuntimeError(\n\t\t\t`Cannot remove acceptance criteria referenced by tasks: ${[...new Set(referencedRemovedIds)].join(\", \")}.`,\n\t\t);\n\t}\n}\n\nexport function taskFromValue(value: unknown, label: string): TaskContract {\n\tconst task = exactRecord(value, label, [\n\t\t\"schemaVersion\",\n\t\t\"taskId\",\n\t\t\"objectiveId\",\n\t\t\"title\",\n\t\t\"description\",\n\t\t\"role\",\n\t\t\"status\",\n\t\t\"dependsOn\",\n\t\t\"requiredCapabilities\",\n\t\t\"acceptanceCriterionIds\",\n\t\t\"verificationOfTaskId\",\n\t\t\"riskBudget\",\n\t\t\"createdAt\",\n\t\t\"updatedAt\",\n\t]);\n\tif (task.schemaVersion !== ORCHESTRATION_SCHEMA_VERSION) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.schemaVersion is invalid.`);\n\t}\n\tconst role = string(task.role, `${label}.role`);\n\tif (!WORKER_ROLES.some((candidate) => candidate === role)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.role is invalid.`);\n\t}\n\tconst status = string(task.status, `${label}.status`);\n\tif (!TASK_STATUSES.some((candidate) => candidate === status)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.status is invalid.`);\n\t}\n\tconst requiredCapabilities = stringArray(task.requiredCapabilities, `${label}.requiredCapabilities`);\n\tif (\n\t\trequiredCapabilities.length > MAX_ORCHESTRATION_COLLECTION_LENGTH ||\n\t\tnew Set(requiredCapabilities).size !== requiredCapabilities.length ||\n\t\t!requiredCapabilities.every(isHarnessCapability)\n\t) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.requiredCapabilities must be a bounded capability array.`);\n\t}\n\tconst riskBudget = structuredClone(record(task.riskBudget, `${label}.riskBudget`)) as RiskBudget;\n\tassertRiskBudget(riskBudget, `${label}.riskBudget`);\n\treturn {\n\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\ttaskId: dispatchIdentifier(task.taskId, `${label}.taskId`),\n\t\tobjectiveId: dispatchIdentifier(task.objectiveId, `${label}.objectiveId`),\n\t\ttitle: retainedDescription(task.title, `${label}.title`),\n\t\tdescription: retainedDescription(task.description, `${label}.description`),\n\t\trole: role as TaskContract[\"role\"],\n\t\tstatus: status as OrchestrationTaskStatus,\n\t\tdependsOn: dispatchIdentifierArray(task.dependsOn, `${label}.dependsOn`),\n\t\trequiredCapabilities: requiredCapabilities as TaskContract[\"requiredCapabilities\"],\n\t\tacceptanceCriterionIds: dispatchIdentifierArray(task.acceptanceCriterionIds, `${label}.acceptanceCriterionIds`),\n\t\t...(task.verificationOfTaskId === undefined\n\t\t\t? {}\n\t\t\t: {\n\t\t\t\t\tverificationOfTaskId: dispatchIdentifier(task.verificationOfTaskId, `${label}.verificationOfTaskId`),\n\t\t\t\t}),\n\t\triskBudget,\n\t\tcreatedAt: isoDate(task.createdAt, `${label}.createdAt`),\n\t\tupdatedAt: isoDate(task.updatedAt, `${label}.updatedAt`),\n\t};\n}\n\nexport function taskFromPayload(payload: JsonObject): TaskContract {\n\treturn taskFromValue(payload.task, \"task\");\n}\n\nfunction taskRuntimeStateFromValue(value: unknown, label: string): TaskRuntimeState {\n\tconst state = exactRecord(value, label, [\"task\", \"attemptIds\", \"verification\"]);\n\tlet verification: TaskRuntimeState[\"verification\"];\n\tif (state.verification !== undefined) {\n\t\tconst record = exactRecord(state.verification, `${label}.verification`, [\n\t\t\t\"verifierTaskId\",\n\t\t\t\"verifierAttemptId\",\n\t\t\t\"verdict\",\n\t\t\t\"reasonCode\",\n\t\t\t\"completedAt\",\n\t\t]);\n\t\tconst verdict = string(record.verdict, `${label}.verification.verdict`);\n\t\tif (verdict !== \"accepted\" && verdict !== \"rejected\" && verdict !== \"inconclusive\") {\n\t\t\tthrow new DurableTaskRuntimeError(`${label}.verification.verdict is invalid.`);\n\t\t}\n\t\tverification = {\n\t\t\tverifierTaskId: dispatchIdentifier(record.verifierTaskId, `${label}.verification.verifierTaskId`),\n\t\t\tverifierAttemptId: dispatchIdentifier(record.verifierAttemptId, `${label}.verification.verifierAttemptId`),\n\t\t\tverdict,\n\t\t\treasonCode: dispatchIdentifier(record.reasonCode, `${label}.verification.reasonCode`),\n\t\t\tcompletedAt: dispatchIdentifier(record.completedAt, `${label}.verification.completedAt`),\n\t\t};\n\t}\n\treturn {\n\t\ttask: taskFromValue(state.task, `${label}.task`),\n\t\tattemptIds: retainedIdentifierArray(state.attemptIds, MAX_ORCHESTRATION_ATTEMPTS, `${label}.attemptIds`),\n\t\t...(verification ? { verification } : {}),\n\t};\n}\n\nfunction resourcePointerFromValue(value: unknown, label: string): ResourcePointer {\n\tconst pointer = exactRecord(value, label, [\"id\", \"kind\", \"uri\", \"readOnly\", \"digest\", \"metadata\"]);\n\tconst kind = string(pointer.kind, `${label}.kind`);\n\tif (!isResourcePointerKind(kind)) throw new DurableTaskRuntimeError(`${label}.kind is invalid.`);\n\tconst uri = string(pointer.uri, `${label}.uri`);\n\tif (!uri.trim() || uri.length > MAX_WORKER_RESOURCE_PATH_LENGTH) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.uri exceeds its durable size bound.`);\n\t}\n\tconst metadata =\n\t\tpointer.metadata === undefined\n\t\t\t? undefined\n\t\t\t: (structuredClone(record(pointer.metadata, `${label}.metadata`)) as JsonObject);\n\treturn {\n\t\tid: dispatchIdentifier(pointer.id, `${label}.id`),\n\t\tkind,\n\t\turi,\n\t\treadOnly: boolean(pointer.readOnly, `${label}.readOnly`),\n\t\t...(pointer.digest === undefined ? {} : { digest: dispatchIdentifier(pointer.digest, `${label}.digest`) }),\n\t\t...(metadata ? { metadata } : {}),\n\t};\n}\n\nfunction resourcePointersFromValue(value: unknown, label: string): ResourcePointer[] {\n\tif (!Array.isArray(value) || value.length > MAX_WORKER_RESOURCE_POINTERS) {\n\t\tthrow new DurableTaskRuntimeError(`${label} exceeds its retained collection limit.`);\n\t}\n\tconst pointers = value.map((pointer, index) => resourcePointerFromValue(pointer, `${label}[${index}]`));\n\tif (new Set(pointers.map((pointer) => pointer.id)).size !== pointers.length) {\n\t\tthrow new DurableTaskRuntimeError(`${label} contains duplicate ids.`);\n\t}\n\treturn pointers;\n}\n\nexport function executionGrantFromValue(value: unknown, label: string): ExecutionGrant {\n\tconst grant = exactRecord(value, label, [\n\t\t\"schemaVersion\",\n\t\t\"grantId\",\n\t\t\"objectiveId\",\n\t\t\"taskId\",\n\t\t\"attemptId\",\n\t\t\"subjectId\",\n\t\t\"role\",\n\t\t\"capabilities\",\n\t\t\"allowedTools\",\n\t\t\"resources\",\n\t\t\"readPaths\",\n\t\t\"writePaths\",\n\t\t\"deniedPaths\",\n\t\t\"budget\",\n\t\t\"policyVersion\",\n\t\t\"decisionTrace\",\n\t\t\"issuedAt\",\n\t\t\"expiresAt\",\n\t]);\n\tif (grant.schemaVersion !== ORCHESTRATION_SCHEMA_VERSION) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.schemaVersion is invalid.`);\n\t}\n\tconst role = string(grant.role, `${label}.role`);\n\tif (!WORKER_ROLES.some((candidate) => candidate === role)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.role is invalid.`);\n\t}\n\tconst capabilities = stringArray(grant.capabilities, `${label}.capabilities`);\n\tif (\n\t\tcapabilities.length > MAX_ORCHESTRATION_COLLECTION_LENGTH ||\n\t\tnew Set(capabilities).size !== capabilities.length ||\n\t\t!capabilities.every(isHarnessCapability)\n\t) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.capabilities is invalid.`);\n\t}\n\tconst boundedStrings = (field: \"allowedTools\" | \"readPaths\" | \"writePaths\" | \"deniedPaths\"): string[] => {\n\t\tconst values = stringArray(grant[field], `${label}.${field}`);\n\t\tif (\n\t\t\tvalues.length > MAX_ORCHESTRATION_COLLECTION_LENGTH ||\n\t\t\tnew Set(values).size !== values.length ||\n\t\t\tvalues.some((item) => !item || item.length > MAX_ORCHESTRATION_DESCRIPTION_LENGTH)\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label}.${field} is invalid.`);\n\t\t}\n\t\treturn values;\n\t};\n\tif (!Array.isArray(grant.decisionTrace) || grant.decisionTrace.length > MAX_ORCHESTRATION_COLLECTION_LENGTH) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.decisionTrace is invalid.`);\n\t}\n\tconst resources = resourcePointersFromValue(grant.resources, `${label}.resources`);\n\tconst decisionTrace: ExecutionGrant[\"decisionTrace\"] = grant.decisionTrace.map((value, index) => {\n\t\tconst decision = exactRecord(value, `${label}.decisionTrace[${index}]`, [\n\t\t\t\"capability\",\n\t\t\t\"outcome\",\n\t\t\t\"reasonCode\",\n\t\t\t\"source\",\n\t\t]);\n\t\tconst capability = string(decision.capability, `${label}.decisionTrace[${index}].capability`);\n\t\tif (!isHarnessCapability(capability)) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label}.decisionTrace[${index}].capability is invalid.`);\n\t\t}\n\t\tconst outcome = string(decision.outcome, `${label}.decisionTrace[${index}].outcome`);\n\t\tif (outcome !== \"allow\" && outcome !== \"deny\") {\n\t\t\tthrow new DurableTaskRuntimeError(`${label}.decisionTrace[${index}].outcome is invalid.`);\n\t\t}\n\t\treturn {\n\t\t\tcapability,\n\t\t\toutcome,\n\t\t\treasonCode: dispatchIdentifier(decision.reasonCode, `${label}.decisionTrace[${index}].reasonCode`),\n\t\t\tsource: retainedDescription(decision.source, `${label}.decisionTrace[${index}].source`),\n\t\t};\n\t});\n\tconst budget = structuredClone(record(grant.budget, `${label}.budget`)) as RiskBudget;\n\tassertRiskBudget(budget, `${label}.budget`);\n\tconst issuedAt = isoDate(grant.issuedAt, `${label}.issuedAt`);\n\tconst expiresAt = grant.expiresAt === undefined ? undefined : isoDate(grant.expiresAt, `${label}.expiresAt`);\n\tif (expiresAt && Date.parse(expiresAt) <= Date.parse(issuedAt)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.expiresAt must be after issuedAt.`);\n\t}\n\treturn {\n\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\tgrantId: dispatchIdentifier(grant.grantId, `${label}.grantId`),\n\t\tobjectiveId: dispatchIdentifier(grant.objectiveId, `${label}.objectiveId`),\n\t\ttaskId: dispatchIdentifier(grant.taskId, `${label}.taskId`),\n\t\tattemptId: dispatchIdentifier(grant.attemptId, `${label}.attemptId`),\n\t\tsubjectId: dispatchIdentifier(grant.subjectId, `${label}.subjectId`),\n\t\trole: role as ExecutionGrant[\"role\"],\n\t\tcapabilities: capabilities as ExecutionGrant[\"capabilities\"],\n\t\tallowedTools: boundedStrings(\"allowedTools\"),\n\t\tresources,\n\t\treadPaths: boundedStrings(\"readPaths\"),\n\t\twritePaths: boundedStrings(\"writePaths\"),\n\t\tdeniedPaths: boundedStrings(\"deniedPaths\"),\n\t\tbudget,\n\t\tpolicyVersion: dispatchIdentifier(grant.policyVersion, `${label}.policyVersion`),\n\t\tdecisionTrace,\n\t\tissuedAt,\n\t\t...(expiresAt ? { expiresAt } : {}),\n\t};\n}\n\nfunction attemptRuntimeStateFromValue(value: unknown, label: string): AttemptRuntimeState {\n\tconst attempt = exactRecord(value, label, [\n\t\t\"attemptId\",\n\t\t\"taskId\",\n\t\t\"dispatch\",\n\t\t\"status\",\n\t\t\"reasonCode\",\n\t\t\"grantId\",\n\t\t\"grant\",\n\t\t\"agentId\",\n\t\t\"lease\",\n\t\t\"retry\",\n\t\t\"checkpointIds\",\n\t\t\"result\",\n\t\t\"createdAt\",\n\t\t\"updatedAt\",\n\t]);\n\tconst status = string(attempt.status, `${label}.status`);\n\tif (!ATTEMPT_STATUSES.some((candidate) => candidate === status)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.status is invalid.`);\n\t}\n\tconst grant = attempt.grant === undefined ? undefined : executionGrantFromValue(attempt.grant, `${label}.grant`);\n\tconst createdAt = isoDate(attempt.createdAt, `${label}.createdAt`);\n\tconst updatedAt = isoDate(attempt.updatedAt, `${label}.updatedAt`);\n\tif (Date.parse(updatedAt) < Date.parse(createdAt)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.updatedAt is before createdAt.`);\n\t}\n\treturn {\n\t\tattemptId: dispatchIdentifier(attempt.attemptId, `${label}.attemptId`),\n\t\ttaskId: dispatchIdentifier(attempt.taskId, `${label}.taskId`),\n\t\tdispatch: dispatchFromValue(attempt.dispatch, `${label}.dispatch`),\n\t\tstatus: status as AttemptStatus,\n\t\t...(attempt.reasonCode === undefined\n\t\t\t? {}\n\t\t\t: { reasonCode: dispatchIdentifier(attempt.reasonCode, `${label}.reasonCode`) }),\n\t\t...(attempt.grantId === undefined ? {} : { grantId: dispatchIdentifier(attempt.grantId, `${label}.grantId`) }),\n\t\t...(grant ? { grant } : {}),\n\t\t...(attempt.agentId === undefined ? {} : { agentId: dispatchIdentifier(attempt.agentId, `${label}.agentId`) }),\n\t\t...(attempt.lease === undefined ? {} : { lease: leaseFromPayload(toJsonObject({ lease: attempt.lease })) }),\n\t\t...(attempt.retry === undefined ? {} : { retry: retryStateFromValue(attempt.retry, `${label}.retry`) }),\n\t\tcheckpointIds: retainedIdentifierArray(\n\t\t\tattempt.checkpointIds,\n\t\t\tMAX_ORCHESTRATION_CHECKPOINTS,\n\t\t\t`${label}.checkpointIds`,\n\t\t),\n\t\t...(attempt.result === undefined ? {} : { result: resultFromValue(attempt.result, `${label}.result`) }),\n\t\tcreatedAt,\n\t\tupdatedAt,\n\t};\n}\n\nexport function leaseFromPayload(payload: JsonObject): AttemptLease {\n\treturn leaseFromValue(payload.lease, \"lease\");\n}\n\nfunction leaseFromValue(value: unknown, label: string): AttemptLease {\n\tconst lease = exactRecord(value, label, [\n\t\t\"leaseId\",\n\t\t\"attemptId\",\n\t\t\"ownerId\",\n\t\t\"fencingToken\",\n\t\t\"issuedAt\",\n\t\t\"expiresAt\",\n\t]);\n\tconst fencingToken = number(lease.fencingToken, `${label}.fencingToken`);\n\tif (!Number.isSafeInteger(fencingToken) || fencingToken < 1) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.fencingToken must be a positive safe integer.`);\n\t}\n\tconst issuedAt = isoDate(lease.issuedAt, `${label}.issuedAt`);\n\tconst expiresAt = isoDate(lease.expiresAt, `${label}.expiresAt`);\n\tif (Date.parse(expiresAt) <= Date.parse(issuedAt)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.expiresAt must be after issuedAt.`);\n\t}\n\treturn {\n\t\tleaseId: dispatchIdentifier(lease.leaseId, `${label}.leaseId`),\n\t\tattemptId: dispatchIdentifier(lease.attemptId, `${label}.attemptId`),\n\t\townerId: dispatchIdentifier(lease.ownerId, `${label}.ownerId`),\n\t\tfencingToken,\n\t\tissuedAt,\n\t\texpiresAt,\n\t};\n}\n\nexport function retryStateFromValue(value: unknown, label: string): AttemptRetryState {\n\tconst retry = record(value, label);\n\tconst unsupportedField = Object.keys(retry).find((field) => field !== \"retriesUsed\" && field !== \"notBefore\");\n\tif (unsupportedField) throw new DurableTaskRuntimeError(`${label}.${unsupportedField} is unsupported.`);\n\tconst retriesUsed = number(retry.retriesUsed, `${label}.retriesUsed`);\n\tif (!Number.isSafeInteger(retriesUsed) || retriesUsed < 1) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.retriesUsed must be a positive safe integer.`);\n\t}\n\tconst notBefore = string(retry.notBefore, `${label}.notBefore`);\n\tconst notBeforeMs = Date.parse(notBefore);\n\tif (\n\t\t!Number.isFinite(notBeforeMs) ||\n\t\tMath.abs(notBeforeMs) > MAX_DATE_EPOCH_MS ||\n\t\tnew Date(notBeforeMs).toISOString() !== notBefore\n\t) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.notBefore is invalid.`);\n\t}\n\treturn { retriesUsed, notBefore };\n}\n\nexport function checkpointFromPayload(payload: JsonObject): AttemptCheckpoint {\n\treturn checkpointFromValue(payload.checkpoint, \"checkpoint\");\n}\n\nfunction checkpointFromValue(value: unknown, label: string): AttemptCheckpoint {\n\tconst checkpoint = exactRecord(value, label, [\n\t\t\"checkpointId\",\n\t\t\"attemptId\",\n\t\t\"fencingToken\",\n\t\t\"summary\",\n\t\t\"artifactIds\",\n\t\t\"evidenceIds\",\n\t\t\"usage\",\n\t\t\"createdAt\",\n\t]);\n\tconst usage = checkpoint.usage === undefined ? undefined : usageFromPayload(checkpoint.usage, `${label}.usage`);\n\tconst fencingToken = number(checkpoint.fencingToken, `${label}.fencingToken`);\n\tif (!Number.isSafeInteger(fencingToken) || fencingToken < 1) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.fencingToken must be a positive safe integer.`);\n\t}\n\treturn {\n\t\tcheckpointId: dispatchIdentifier(checkpoint.checkpointId, `${label}.checkpointId`),\n\t\tattemptId: dispatchIdentifier(checkpoint.attemptId, `${label}.attemptId`),\n\t\tfencingToken,\n\t\tsummary: checkpointSummary(checkpoint.summary, `${label}.summary`),\n\t\tartifactIds: dispatchIdentifierArray(checkpoint.artifactIds, `${label}.artifactIds`),\n\t\tevidenceIds: dispatchIdentifierArray(checkpoint.evidenceIds, `${label}.evidenceIds`),\n\t\t...(usage ? { usage } : {}),\n\t\tcreatedAt: isoDate(checkpoint.createdAt, `${label}.createdAt`),\n\t};\n}\n\nexport function usageFromPayload(value: unknown, label: string): AttemptCheckpoint[\"usage\"] {\n\tconst usage = record(value, label);\n\tconst expectedFields = [\n\t\t\"toolCalls\",\n\t\t\"inputTokens\",\n\t\t\"outputTokens\",\n\t\t\"cacheReadTokens\",\n\t\t\"cacheWriteTokens\",\n\t\t\"totalTokens\",\n\t\t\"costUsd\",\n\t\t\"activeWallClockMs\",\n\t];\n\tconst unexpected = Object.keys(usage).find((field) => !expectedFields.includes(field));\n\tif (unexpected) throw new DurableTaskRuntimeError(`${label}.${unexpected} is unsupported.`);\n\ttry {\n\t\treturn validateAttemptUsageSnapshot(\n\t\t\t{\n\t\t\t\ttoolCalls: number(usage.toolCalls, `${label}.toolCalls`),\n\t\t\t\tinputTokens: number(usage.inputTokens, `${label}.inputTokens`),\n\t\t\t\toutputTokens: number(usage.outputTokens, `${label}.outputTokens`),\n\t\t\t\tcacheReadTokens: number(usage.cacheReadTokens, `${label}.cacheReadTokens`),\n\t\t\t\tcacheWriteTokens: number(usage.cacheWriteTokens, `${label}.cacheWriteTokens`),\n\t\t\t\ttotalTokens: number(usage.totalTokens, `${label}.totalTokens`),\n\t\t\t\tcostUsd: number(usage.costUsd, `${label}.costUsd`),\n\t\t\t\tactiveWallClockMs: number(usage.activeWallClockMs, `${label}.activeWallClockMs`),\n\t\t\t},\n\t\t\tlabel,\n\t\t);\n\t} catch (error) {\n\t\tthrow new DurableTaskRuntimeError(error instanceof Error ? error.message : String(error));\n\t}\n}\n\nexport function resultFromPayload(payload: JsonObject): WorkerResultContract {\n\treturn resultFromValue(payload.result, \"result\");\n}\n\nfunction resultFromValue(value: unknown, label: string): WorkerResultContract {\n\tconst result = exactRecord(value, label, [\n\t\t\"schemaVersion\",\n\t\t\"resultId\",\n\t\t\"objectiveId\",\n\t\t\"taskId\",\n\t\t\"attemptId\",\n\t\t\"leaseId\",\n\t\t\"fencingToken\",\n\t\t\"status\",\n\t\t\"reasonCode\",\n\t\t\"summary\",\n\t\t\"artifacts\",\n\t\t\"evidence\",\n\t\t\"errors\",\n\t\t\"nextAction\",\n\t\t\"usage\",\n\t\t\"createdAt\",\n\t]);\n\tif (result.schemaVersion !== ORCHESTRATION_SCHEMA_VERSION) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.schemaVersion is invalid.`);\n\t}\n\tconst status = string(result.status, `${label}.status`);\n\tif (!WORKER_RESULT_STATUSES.some((candidate) => candidate === status)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.status is invalid.`);\n\t}\n\tif (!Array.isArray(result.artifacts) || !Array.isArray(result.evidence) || !Array.isArray(result.errors)) {\n\t\tthrow new DurableTaskRuntimeError(`${label} collections are invalid.`);\n\t}\n\tif (\n\t\tresult.artifacts.length > MAX_ORCHESTRATION_COLLECTION_LENGTH ||\n\t\tresult.evidence.length > MAX_ORCHESTRATION_COLLECTION_LENGTH ||\n\t\tresult.errors.length > MAX_ORCHESTRATION_COLLECTION_LENGTH\n\t) {\n\t\tthrow new DurableTaskRuntimeError(`${label} exceeds its collection limit.`);\n\t}\n\tconst artifacts = result.artifacts.map((value, index) => {\n\t\tconst artifact = exactRecord(value, `${label}.artifacts[${index}]`, [\n\t\t\t\"artifactId\",\n\t\t\t\"kind\",\n\t\t\t\"uri\",\n\t\t\t\"digest\",\n\t\t\t\"sizeBytes\",\n\t\t\t\"createdAt\",\n\t\t\t\"metadata\",\n\t\t]);\n\t\tconst kind = string(artifact.kind, `${label}.artifacts[${index}].kind`);\n\t\tif (![\"diff\", \"file\", \"report\", \"test-result\", \"log\", \"structured-data\"].includes(kind)) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label}.artifacts[${index}].kind is invalid.`);\n\t\t}\n\t\tif (\n\t\t\tartifact.sizeBytes !== undefined &&\n\t\t\t(!Number.isSafeInteger(artifact.sizeBytes) || Number(artifact.sizeBytes) < 0)\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label}.artifacts[${index}].sizeBytes is invalid.`);\n\t\t}\n\t\treturn {\n\t\t\tartifactId: dispatchIdentifier(artifact.artifactId, `${label}.artifacts[${index}].artifactId`),\n\t\t\tkind,\n\t\t\turi: retainedDescription(artifact.uri, `${label}.artifacts[${index}].uri`),\n\t\t\t...(artifact.digest === undefined\n\t\t\t\t? {}\n\t\t\t\t: { digest: dispatchIdentifier(artifact.digest, `${label}.artifacts[${index}].digest`) }),\n\t\t\t...(typeof artifact.sizeBytes === \"number\" ? { sizeBytes: artifact.sizeBytes } : {}),\n\t\t\tcreatedAt: dispatchIdentifier(artifact.createdAt, `${label}.artifacts[${index}].createdAt`),\n\t\t\t...(artifact.metadata === undefined\n\t\t\t\t? {}\n\t\t\t\t: { metadata: structuredClone(record(artifact.metadata, `${label}.artifacts[${index}].metadata`)) }),\n\t\t};\n\t});\n\tconst errors = result.errors.map((value, index) => {\n\t\tconst error = exactRecord(value, `${label}.errors[${index}]`, [\"code\", \"message\", \"retryable\", \"details\"]);\n\t\treturn {\n\t\t\tcode: dispatchIdentifier(error.code, `${label}.errors[${index}].code`),\n\t\t\tmessage: retainedDescription(error.message, `${label}.errors[${index}].message`),\n\t\t\tretryable: boolean(error.retryable, `${label}.errors[${index}].retryable`),\n\t\t\t...(error.details === undefined\n\t\t\t\t? {}\n\t\t\t\t: { details: structuredClone(record(error.details, `${label}.errors[${index}].details`)) }),\n\t\t};\n\t});\n\tconst usage = exactRecord(result.usage, `${label}.usage`, [\n\t\t\"inputTokens\",\n\t\t\"outputTokens\",\n\t\t\"totalTokens\",\n\t\t\"costUsd\",\n\t\t\"wallClockMs\",\n\t\t\"toolCalls\",\n\t]);\n\tfor (const field of [\"inputTokens\", \"outputTokens\", \"totalTokens\"] as const) {\n\t\tif (usage[field] !== undefined && (!Number.isSafeInteger(usage[field]) || Number(usage[field]) < 0)) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label}.usage.${field} is invalid.`);\n\t\t}\n\t}\n\tif (!Number.isSafeInteger(usage.toolCalls) || Number(usage.toolCalls) < 0) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.usage.toolCalls is invalid.`);\n\t}\n\tif (\n\t\tusage.costUsd !== undefined &&\n\t\t(typeof usage.costUsd !== \"number\" || !Number.isFinite(usage.costUsd) || usage.costUsd < 0)\n\t) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.usage.costUsd is invalid.`);\n\t}\n\tif (typeof usage.wallClockMs !== \"number\" || !Number.isFinite(usage.wallClockMs) || usage.wallClockMs < 0) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.usage.wallClockMs is invalid.`);\n\t}\n\tconst fencingToken = number(result.fencingToken, `${label}.fencingToken`);\n\tif (!Number.isSafeInteger(fencingToken) || fencingToken < 1) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.fencingToken is invalid.`);\n\t}\n\treturn {\n\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\tresultId: dispatchIdentifier(result.resultId, `${label}.resultId`),\n\t\tobjectiveId: dispatchIdentifier(result.objectiveId, `${label}.objectiveId`),\n\t\ttaskId: dispatchIdentifier(result.taskId, `${label}.taskId`),\n\t\tattemptId: dispatchIdentifier(result.attemptId, `${label}.attemptId`),\n\t\tleaseId: dispatchIdentifier(result.leaseId, `${label}.leaseId`),\n\t\tfencingToken,\n\t\tstatus: status as WorkerResultContract[\"status\"],\n\t\treasonCode: dispatchIdentifier(result.reasonCode, `${label}.reasonCode`),\n\t\tsummary: retainedDescription(result.summary, `${label}.summary`),\n\t\tartifacts: artifacts as WorkerResultContract[\"artifacts\"],\n\t\tevidence: result.evidence.map((item, index) => evidenceFromValue(item, `${label}.evidence[${index}]`)),\n\t\terrors: errors as WorkerResultContract[\"errors\"],\n\t\t...(result.nextAction === undefined\n\t\t\t? {}\n\t\t\t: { nextAction: retainedDescription(result.nextAction, `${label}.nextAction`) }),\n\t\tusage: {\n\t\t\t...(typeof usage.inputTokens === \"number\" ? { inputTokens: usage.inputTokens } : {}),\n\t\t\t...(typeof usage.outputTokens === \"number\" ? { outputTokens: usage.outputTokens } : {}),\n\t\t\t...(typeof usage.totalTokens === \"number\" ? { totalTokens: usage.totalTokens } : {}),\n\t\t\t...(typeof usage.costUsd === \"number\" ? { costUsd: usage.costUsd } : {}),\n\t\t\twallClockMs: usage.wallClockMs as number,\n\t\t\ttoolCalls: usage.toolCalls as number,\n\t\t},\n\t\tcreatedAt: isoDate(result.createdAt, `${label}.createdAt`),\n\t};\n}\n\nfunction normalizeAgentBinding(value: unknown, label: string): AgentBindingContract {\n\tconst agent = exactRecord(value, label, [\n\t\t\"schemaVersion\",\n\t\t\"agentId\",\n\t\t\"resumeContext\",\n\t\t\"parentAgentId\",\n\t\t\"rootAgentId\",\n\t\t\"depth\",\n\t\t\"role\",\n\t\t\"status\",\n\t\t\"activeAttemptId\",\n\t\t\"createdAt\",\n\t\t\"updatedAt\",\n\t]);\n\tif (agent.schemaVersion !== ORCHESTRATION_SCHEMA_VERSION) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.schemaVersion is invalid.`);\n\t}\n\tconst agentId = dispatchIdentifier(agent.agentId, `${label}.agentId`);\n\tconst parentAgentId = optionalDispatchIdentifier(agent.parentAgentId, `${label}.parentAgentId`);\n\tconst rootAgentId = dispatchIdentifier(agent.rootAgentId, `${label}.rootAgentId`);\n\tconst depth = number(agent.depth, `${label}.depth`);\n\tif (!Number.isSafeInteger(depth) || depth < 0) {\n\t\tthrow new DurableTaskRuntimeError(`${label} lineage is invalid.`);\n\t}\n\tif (parentAgentId && depth === 0) throw new DurableTaskRuntimeError(`${label} child lineage depth is invalid.`);\n\tconst role = string(agent.role, `${label}.role`);\n\tif (!WORKER_ROLES.some((candidate) => candidate === role)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.role is invalid.`);\n\t}\n\tconst status = string(agent.status, `${label}.status`);\n\tif (![\"registered\", \"active\", \"suspended\", \"resuming\", \"retired\"].includes(status)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.status is invalid.`);\n\t}\n\tconst context = exactRecord(agent.resumeContext, `${label}.resumeContext`, [\n\t\t\"provider\",\n\t\t\"sessionId\",\n\t\t\"sessionDir\",\n\t\t\"sessionFile\",\n\t\t\"cwd\",\n\t\t\"worktreeLaneKey\",\n\t\t\"orchestrationProfileId\",\n\t\t\"resourceProfileNames\",\n\t\t\"modelRef\",\n\t\t\"contextPointers\",\n\t\t\"latestCheckpointId\",\n\t]);\n\tconst provider = string(context.provider, `${label}.resumeContext.provider`);\n\tif (provider !== \"pi\" && provider !== \"external\") {\n\t\tthrow new DurableTaskRuntimeError(`${label}.resumeContext.provider is invalid.`);\n\t}\n\tconst optionalPath = (field: \"sessionDir\" | \"sessionFile\"): string | undefined => {\n\t\tconst candidate = context[field];\n\t\tif (candidate === undefined) return undefined;\n\t\tconst path = string(candidate, `${label}.resumeContext.${field}`);\n\t\tif (!path.trim() || path.length > MAX_WORKER_RESOURCE_PATH_LENGTH) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label}.resumeContext.${field} exceeds its durable size bound.`);\n\t\t}\n\t\treturn path;\n\t};\n\tconst cwd = string(context.cwd, `${label}.resumeContext.cwd`);\n\tif (!cwd.trim() || cwd.length > MAX_WORKER_RESOURCE_PATH_LENGTH) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.resumeContext.cwd exceeds its durable size bound.`);\n\t}\n\tconst sessionDir = optionalPath(\"sessionDir\");\n\tconst sessionFile = optionalPath(\"sessionFile\");\n\tconst resumeContext: AgentResumeContext = {\n\t\tprovider,\n\t\tsessionId: dispatchIdentifier(context.sessionId, `${label}.resumeContext.sessionId`),\n\t\t...(sessionDir ? { sessionDir } : {}),\n\t\t...(sessionFile ? { sessionFile } : {}),\n\t\tcwd,\n\t\t...(context.worktreeLaneKey === undefined\n\t\t\t? {}\n\t\t\t: {\n\t\t\t\t\tworktreeLaneKey: dispatchIdentifier(context.worktreeLaneKey, `${label}.resumeContext.worktreeLaneKey`),\n\t\t\t\t}),\n\t\t...(context.orchestrationProfileId === undefined\n\t\t\t? {}\n\t\t\t: {\n\t\t\t\t\torchestrationProfileId: dispatchIdentifier(\n\t\t\t\t\t\tcontext.orchestrationProfileId,\n\t\t\t\t\t\t`${label}.resumeContext.orchestrationProfileId`,\n\t\t\t\t\t),\n\t\t\t\t}),\n\t\tresourceProfileNames: dispatchIdentifierArray(\n\t\t\tcontext.resourceProfileNames,\n\t\t\t`${label}.resumeContext.resourceProfileNames`,\n\t\t),\n\t\t...(context.modelRef === undefined\n\t\t\t? {}\n\t\t\t: { modelRef: dispatchIdentifier(context.modelRef, `${label}.resumeContext.modelRef`) }),\n\t\tcontextPointers: resourcePointersFromValue(context.contextPointers, `${label}.resumeContext.contextPointers`),\n\t\t...(context.latestCheckpointId === undefined\n\t\t\t? {}\n\t\t\t: {\n\t\t\t\t\tlatestCheckpointId: dispatchIdentifier(\n\t\t\t\t\t\tcontext.latestCheckpointId,\n\t\t\t\t\t\t`${label}.resumeContext.latestCheckpointId`,\n\t\t\t\t\t),\n\t\t\t\t}),\n\t};\n\ttry {\n\t\tcreateAgentIdentity(agentId, resumeContext);\n\t} catch (error) {\n\t\tthrow new DurableTaskRuntimeError(error instanceof Error ? error.message : String(error));\n\t}\n\tconst createdAt = isoDate(agent.createdAt, `${label}.createdAt`);\n\tconst updatedAt = isoDate(agent.updatedAt, `${label}.updatedAt`);\n\tif (Date.parse(updatedAt) < Date.parse(createdAt)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.updatedAt is before createdAt.`);\n\t}\n\treturn {\n\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\tagentId,\n\t\tresumeContext,\n\t\t...(parentAgentId ? { parentAgentId } : {}),\n\t\trootAgentId,\n\t\tdepth,\n\t\trole: role as AgentBindingContract[\"role\"],\n\t\tstatus: status as AgentBindingContract[\"status\"],\n\t\t...(agent.activeAttemptId === undefined\n\t\t\t? {}\n\t\t\t: { activeAttemptId: dispatchIdentifier(agent.activeAttemptId, `${label}.activeAttemptId`) }),\n\t\tcreatedAt,\n\t\tupdatedAt,\n\t};\n}\n\nexport function agentFromPayload(payload: JsonObject): AgentBindingContract {\n\treturn normalizeAgentBinding(payload.agent, \"agent\");\n}\n\nexport function approvalFromPayload(payload: JsonObject): ApprovalRequestContract {\n\treturn approvalFromValue(payload.approval, \"approval\");\n}\n\nfunction approvalFromValue(value: unknown, label: string): ApprovalRequestContract {\n\tconst approval = exactRecord(value, label, [\n\t\t\"schemaVersion\",\n\t\t\"approvalId\",\n\t\t\"objectiveId\",\n\t\t\"taskId\",\n\t\t\"attemptId\",\n\t\t\"reasonCode\",\n\t\t\"summary\",\n\t\t\"requestedCapabilities\",\n\t\t\"requestedBudget\",\n\t\t\"reversible\",\n\t\t\"createdAt\",\n\t]);\n\tconst capabilities = stringArray(approval.requestedCapabilities, `${label}.requestedCapabilities`);\n\tif (\n\t\tcapabilities.length > MAX_ORCHESTRATION_COLLECTION_LENGTH ||\n\t\tnew Set(capabilities).size !== capabilities.length ||\n\t\t!capabilities.every(isHarnessCapability)\n\t) {\n\t\tthrow new DurableTaskRuntimeError(`${label} contains invalid capabilities.`);\n\t}\n\tconst requestedBudget =\n\t\tapproval.requestedBudget !== undefined\n\t\t\t? (structuredClone(record(approval.requestedBudget, `${label}.requestedBudget`)) as RiskBudget)\n\t\t\t: undefined;\n\tassertRiskBudget(requestedBudget, `${label}.requestedBudget`);\n\tif (capabilities.length === 0 && !requestedBudget) {\n\t\tthrow new DurableTaskRuntimeError(`${label} must request capabilities or budget.`);\n\t}\n\tif (approval.schemaVersion !== ORCHESTRATION_SCHEMA_VERSION) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.schemaVersion is invalid.`);\n\t}\n\treturn {\n\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\tapprovalId: dispatchIdentifier(approval.approvalId, `${label}.approvalId`),\n\t\tobjectiveId: dispatchIdentifier(approval.objectiveId, `${label}.objectiveId`),\n\t\t...(approval.taskId !== undefined ? { taskId: dispatchIdentifier(approval.taskId, `${label}.taskId`) } : {}),\n\t\t...(approval.attemptId !== undefined\n\t\t\t? { attemptId: dispatchIdentifier(approval.attemptId, `${label}.attemptId`) }\n\t\t\t: {}),\n\t\treasonCode: dispatchIdentifier(approval.reasonCode, `${label}.reasonCode`),\n\t\tsummary: retainedDescription(approval.summary, `${label}.summary`),\n\t\trequestedCapabilities: capabilities,\n\t\t...(requestedBudget ? { requestedBudget } : {}),\n\t\treversible: boolean(approval.reversible, `${label}.reversible`),\n\t\tcreatedAt: isoDate(approval.createdAt, `${label}.createdAt`),\n\t};\n}\n\nexport function approvalResolutionFromPayload(payload: JsonObject): ApprovalResolutionContract {\n\treturn approvalResolutionFromValue(payload.resolution, \"resolution\");\n}\n\nfunction approvalResolutionFromValue(value: unknown, label: string): ApprovalResolutionContract {\n\tconst resolution = exactRecord(value, label, [\"schemaVersion\", \"approvalId\", \"outcome\", \"reasonCode\", \"resolvedAt\"]);\n\tif (resolution.schemaVersion !== ORCHESTRATION_SCHEMA_VERSION) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.schemaVersion is invalid.`);\n\t}\n\tconst outcome = string(resolution.outcome, `${label}.outcome`);\n\tif (outcome !== \"approved\" && outcome !== \"rejected\") {\n\t\tthrow new DurableTaskRuntimeError(`Unknown approval outcome '${outcome}'.`);\n\t}\n\treturn {\n\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\tapprovalId: dispatchIdentifier(resolution.approvalId, `${label}.approvalId`),\n\t\toutcome,\n\t\treasonCode: dispatchIdentifier(resolution.reasonCode, `${label}.reasonCode`),\n\t\tresolvedAt: isoDate(resolution.resolvedAt, `${label}.resolvedAt`),\n\t};\n}\n\nfunction approvalRuntimeStateFromValue(value: unknown, label: string): ApprovalRuntimeState {\n\tconst state = exactRecord(value, label, [\"request\", \"status\", \"resolution\"]);\n\tconst request = approvalFromValue(state.request, `${label}.request`);\n\tconst status = string(state.status, `${label}.status`);\n\tif (status !== \"pending\" && status !== \"approved\" && status !== \"rejected\") {\n\t\tthrow new DurableTaskRuntimeError(`${label}.status is invalid.`);\n\t}\n\tconst resolution =\n\t\tstate.resolution === undefined ? undefined : approvalResolutionFromValue(state.resolution, `${label}.resolution`);\n\tif (status === \"pending\" && resolution) {\n\t\tthrow new DurableTaskRuntimeError(`${label} pending approval cannot have a resolution.`);\n\t}\n\tif (\n\t\tstatus !== \"pending\" &&\n\t\t(!resolution || resolution.approvalId !== request.approvalId || resolution.outcome !== status)\n\t) {\n\t\tthrow new DurableTaskRuntimeError(`${label} resolution does not match its approval state.`);\n\t}\n\tif (resolution && Date.parse(resolution.resolvedAt) < Date.parse(request.createdAt)) {\n\t\tthrow new DurableTaskRuntimeError(`${label} resolution predates its request.`);\n\t}\n\treturn { request, status, ...(resolution ? { resolution } : {}) };\n}\n\nfunction notificationRuntimeStateFromValue(value: unknown, label: string): NotificationRuntimeState {\n\tconst notification = exactRecord(value, label, [\n\t\t\"notificationId\",\n\t\t\"objectiveId\",\n\t\t\"attemptId\",\n\t\t\"status\",\n\t\t\"message\",\n\t\t\"createdAt\",\n\t\t\"deliveredAt\",\n\t]);\n\tconst status = string(notification.status, `${label}.status`);\n\tif (status !== \"pending\" && status !== \"delivered\") {\n\t\tthrow new DurableTaskRuntimeError(`${label}.status is invalid.`);\n\t}\n\tconst createdAt = isoDate(notification.createdAt, `${label}.createdAt`);\n\tconst deliveredAt =\n\t\tnotification.deliveredAt === undefined ? undefined : isoDate(notification.deliveredAt, `${label}.deliveredAt`);\n\tif ((status === \"delivered\") !== Boolean(deliveredAt)) {\n\t\tthrow new DurableTaskRuntimeError(`${label} delivery status is inconsistent.`);\n\t}\n\tif (deliveredAt && Date.parse(deliveredAt) < Date.parse(createdAt)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.deliveredAt predates createdAt.`);\n\t}\n\treturn {\n\t\tnotificationId: dispatchIdentifier(notification.notificationId, `${label}.notificationId`),\n\t\tobjectiveId: dispatchIdentifier(notification.objectiveId, `${label}.objectiveId`),\n\t\t...(notification.attemptId === undefined\n\t\t\t? {}\n\t\t\t: { attemptId: dispatchIdentifier(notification.attemptId, `${label}.attemptId`) }),\n\t\tstatus,\n\t\tmessage: retainedDescription(notification.message, `${label}.message`),\n\t\tcreatedAt,\n\t\t...(deliveredAt ? { deliveredAt } : {}),\n\t};\n}\n\nfunction taskDependencyReaches(\n\ttasks: TaskRuntimeProjection[\"tasks\"],\n\tstartTaskId: string,\n\ttargetTaskId: string,\n\tvisited = new Set<string>(),\n): boolean {\n\tif (startTaskId === targetTaskId) return true;\n\tif (visited.has(startTaskId)) return false;\n\tvisited.add(startTaskId);\n\treturn (tasks[startTaskId]?.task.dependsOn ?? []).some((dependencyId) =>\n\t\ttaskDependencyReaches(tasks, dependencyId, targetTaskId, visited),\n\t);\n}\n\nexport function validateTaskContractForState(state: TaskRuntimeProjection, task: TaskContract, label: string): void {\n\tconst objective = state.objectives[task.objectiveId]?.objective;\n\tif (!objective) throw new DurableTaskRuntimeError(`${label} references an unknown objective.`);\n\tif (task.status !== (task.dependsOn.length === 0 ? \"ready\" : \"pending\")) {\n\t\tthrow new DurableTaskRuntimeError(`${label} initial status does not match its dependencies.`);\n\t}\n\tfor (const dependencyId of task.dependsOn) {\n\t\tif (dependencyId === task.taskId) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} cannot depend on itself.`);\n\t\t}\n\t\tconst dependency = state.tasks[dependencyId];\n\t\tif (!dependency || dependency.task.objectiveId !== task.objectiveId) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} dependency '${dependencyId}' is not in its objective.`);\n\t\t}\n\t\tif (taskDependencyReaches(state.tasks, dependencyId, task.taskId)) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} introduces a dependency cycle.`);\n\t\t}\n\t}\n\tconst criterionIds = new Set(objective.acceptanceCriteria.map((criterion) => criterion.id));\n\tconst unknownCriteria = task.acceptanceCriterionIds.filter((criterionId) => !criterionIds.has(criterionId));\n\tif (unknownCriteria.length > 0) {\n\t\tthrow new DurableTaskRuntimeError(\n\t\t\t`${label} references unknown acceptance criteria: ${unknownCriteria.join(\", \")}.`,\n\t\t);\n\t}\n\tif (task.verificationOfTaskId) {\n\t\tconst subject = state.tasks[task.verificationOfTaskId];\n\t\tif (!subject || subject.task.objectiveId !== task.objectiveId) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} verification subject is not in its objective.`);\n\t\t}\n\t\tif (task.role !== \"verifier\" || subject.task.role === \"verifier\") {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} has an invalid verification relationship.`);\n\t\t}\n\t}\n}\n\nfunction validateSnapshotTaskGraph(state: TaskRuntimeProjection): void {\n\tconst label = \"Orchestration projection snapshot\";\n\tconst taskObjectiveOwners = new Map<string, string>();\n\tfor (const [objectiveId, objectiveState] of Object.entries(state.objectives)) {\n\t\tif (objectiveState.objective.objectiveId !== objectiveId) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} objective '${objectiveId}' has a mismatched id.`);\n\t\t}\n\t\tif (Date.parse(objectiveState.objective.updatedAt) < Date.parse(objectiveState.objective.createdAt)) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} objective '${objectiveId}' has invalid lifecycle dates.`);\n\t\t}\n\t\tfor (const taskId of objectiveState.taskIds) {\n\t\t\tconst existingOwner = taskObjectiveOwners.get(taskId);\n\t\t\tif (existingOwner) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} task '${taskId}' is listed by multiple objectives.`);\n\t\t\t}\n\t\t\tconst task = state.tasks[taskId];\n\t\t\tif (!task || task.task.objectiveId !== objectiveId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t\t`${label} objective '${objectiveId}' lists an unknown or cross-objective task '${taskId}'.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\ttaskObjectiveOwners.set(taskId, objectiveId);\n\t\t}\n\t}\n\n\tfor (const [taskId, taskState] of Object.entries(state.tasks)) {\n\t\tif (taskState.task.taskId !== taskId) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} task '${taskId}' has a mismatched id.`);\n\t\t}\n\t\tconst objectiveState = state.objectives[taskState.task.objectiveId];\n\t\tif (!objectiveState) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} task '${taskId}' has no objective.`);\n\t\t}\n\t\tif (taskObjectiveOwners.get(taskId) !== taskState.task.objectiveId) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} task '${taskId}' is missing from its objective task list.`);\n\t\t}\n\t\tif (Date.parse(taskState.task.updatedAt) < Date.parse(taskState.task.createdAt)) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} task '${taskId}' has invalid lifecycle dates.`);\n\t\t}\n\t\tconst criterionIds = new Set(objectiveState.objective.acceptanceCriteria.map((criterion) => criterion.id));\n\t\tconst unknownCriteria = taskState.task.acceptanceCriterionIds.filter(\n\t\t\t(criterionId) => !criterionIds.has(criterionId),\n\t\t);\n\t\tif (unknownCriteria.length > 0) {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`${label} task '${taskId}' references unknown acceptance criteria: ${unknownCriteria.join(\", \")}.`,\n\t\t\t);\n\t\t}\n\t\tfor (const dependencyId of taskState.task.dependsOn) {\n\t\t\tif (dependencyId === taskId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} task graph contains a self-cycle.`);\n\t\t\t}\n\t\t\tconst dependency = state.tasks[dependencyId];\n\t\t\tif (!dependency || dependency.task.objectiveId !== taskState.task.objectiveId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} task '${taskId}' dependency is not in its objective.`);\n\t\t\t}\n\t\t\tif (taskDependencyReaches(state.tasks, dependencyId, taskId)) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} task graph contains a cycle.`);\n\t\t\t}\n\t\t}\n\t\tif (taskState.task.verificationOfTaskId) {\n\t\t\tconst subject = state.tasks[taskState.task.verificationOfTaskId];\n\t\t\tif (\n\t\t\t\t!subject ||\n\t\t\t\tsubject.task.objectiveId !== taskState.task.objectiveId ||\n\t\t\t\ttaskState.task.role !== \"verifier\" ||\n\t\t\t\tsubject.task.role === \"verifier\"\n\t\t\t) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} task '${taskId}' has an invalid verification relationship.`);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst attemptTaskOwners = new Map<string, string>();\n\tfor (const [taskId, taskState] of Object.entries(state.tasks)) {\n\t\tfor (const attemptId of taskState.attemptIds) {\n\t\t\tconst existingOwner = attemptTaskOwners.get(attemptId);\n\t\t\tif (existingOwner) {\n\t\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t\t`Orchestration projection snapshot attempt '${attemptId}' is listed by multiple tasks.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst attempt = state.attempts[attemptId];\n\t\t\tif (!attempt || attempt.taskId !== taskId || attempt.dispatch.taskId !== taskId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t\t`${label} task '${taskId}' lists an unknown or cross-task attempt '${attemptId}'.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tattemptTaskOwners.set(attemptId, taskId);\n\t\t}\n\t}\n\tfor (const [attemptId, attempt] of Object.entries(state.attempts)) {\n\t\tif (attempt.attemptId !== attemptId) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} attempt '${attemptId}' has a mismatched id.`);\n\t\t}\n\t\tif (attempt.dispatch.taskId !== attempt.taskId) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} attempt '${attemptId}' dispatch references a different task.`);\n\t\t}\n\t\tconst task = state.tasks[attempt.taskId];\n\t\tif (!task || attemptTaskOwners.get(attemptId) !== attempt.taskId) {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`${label} attempt '${attemptId}' is missing from its owning task attempt list.`,\n\t\t\t);\n\t\t}\n\t\tif (attempt.dispatch.executionContract?.worker.profile.role !== undefined) {\n\t\t\tconst contract = attempt.dispatch.executionContract;\n\t\t\tif (\n\t\t\t\tcontract.worker.profile.profileId !== attempt.dispatch.profileId ||\n\t\t\t\tcontract.worker.profile.role !== task.task.role\n\t\t\t) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} attempt '${attemptId}' execution contract is inconsistent.`);\n\t\t\t}\n\t\t}\n\t\tif (attempt.lease?.attemptId !== undefined && attempt.lease.attemptId !== attemptId) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} attempt '${attemptId}' has a cross-attempt lease.`);\n\t\t}\n\t\tif (attempt.grant) {\n\t\t\tif (\n\t\t\t\tattempt.grantId !== attempt.grant.grantId ||\n\t\t\t\tattempt.grant.attemptId !== attemptId ||\n\t\t\t\tattempt.grant.taskId !== attempt.taskId ||\n\t\t\t\tattempt.grant.objectiveId !== task.task.objectiveId ||\n\t\t\t\tattempt.grant.role !== task.task.role\n\t\t\t) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} attempt '${attemptId}' has an inconsistent grant.`);\n\t\t\t}\n\t\t}\n\t\tif ([\"leased\", \"running\", \"suspended\"].includes(attempt.status) && (!attempt.grantId || !attempt.lease)) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} live attempt '${attemptId}' lacks a grant or lease.`);\n\t\t}\n\t\tif (\n\t\t\tattempt.status === \"queued\" &&\n\t\t\t(attempt.lease || attempt.agentId || attempt.result || attempt.checkpointIds.length)\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} queued attempt '${attemptId}' contains live execution state.`);\n\t\t}\n\t\tif (\n\t\t\tattempt.retry &&\n\t\t\t(![\"suspended\", \"leased\", \"running\"].includes(attempt.status) || !attempt.agentId || !attempt.lease)\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`${label} attempt '${attemptId}' retains retry state outside the resumable agent lifecycle.`,\n\t\t\t);\n\t\t}\n\t\tif (attempt.agentId && !state.agents[attempt.agentId]) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} attempt '${attemptId}' references an unknown agent.`);\n\t\t}\n\t\tif (attempt.result) {\n\t\t\tconst result = attempt.result;\n\t\t\tif (\n\t\t\t\tattempt.status !== result.status ||\n\t\t\t\tresult.attemptId !== attemptId ||\n\t\t\t\tresult.taskId !== attempt.taskId ||\n\t\t\t\tresult.objectiveId !== task.task.objectiveId ||\n\t\t\t\t!attempt.lease ||\n\t\t\t\tresult.leaseId !== attempt.lease.leaseId ||\n\t\t\t\tresult.fencingToken !== attempt.lease.fencingToken\n\t\t\t) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} attempt '${attemptId}' has an inconsistent result.`);\n\t\t\t}\n\t\t\tif (\n\t\t\t\tresult.status === \"completed\" &&\n\t\t\t\tmissingTrustedCriteria(result, task.task.acceptanceCriterionIds).length > 0\n\t\t\t) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} completed attempt '${attemptId}' lacks trusted evidence.`);\n\t\t\t}\n\t\t} else if ([\"completed\", \"partial\", \"failed\"].includes(attempt.status)) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} terminal attempt '${attemptId}' lacks its result.`);\n\t\t}\n\t}\n\n\tfor (const [taskId, task] of Object.entries(state.tasks)) {\n\t\tconst liveAttempts = task.attemptIds\n\t\t\t.map((attemptId) => state.attempts[attemptId]!)\n\t\t\t.filter((attempt) => !terminalAttemptStatus(attempt.status));\n\t\tif (liveAttempts.length > 1) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} task '${taskId}' owns multiple live attempts.`);\n\t\t}\n\t\tconst liveAttempt = liveAttempts[0];\n\t\tif (liveAttempt && [\"leased\", \"running\", \"suspended\"].includes(liveAttempt.status)) {\n\t\t\tif (task.task.status !== \"running\") {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} task '${taskId}' does not reflect its live attempt.`);\n\t\t\t}\n\t\t} else if (liveAttempt?.status === \"queued\" && ![\"pending\", \"ready\"].includes(task.task.status)) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} queued task '${taskId}' has an invalid status.`);\n\t\t} else if (!liveAttempt && task.task.status === \"running\") {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} running task '${taskId}' has no live attempt.`);\n\t\t}\n\t}\n\n\tconst checkpointAttemptOwners = new Map<string, string>();\n\tfor (const [attemptId, attempt] of Object.entries(state.attempts)) {\n\t\tfor (const checkpointId of attempt.checkpointIds) {\n\t\t\tif (checkpointAttemptOwners.has(checkpointId)) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} checkpoint '${checkpointId}' is listed by multiple attempts.`);\n\t\t\t}\n\t\t\tconst checkpoint = state.checkpoints[checkpointId];\n\t\t\tif (!checkpoint || checkpoint.attemptId !== attemptId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} attempt '${attemptId}' lists a cross-attempt checkpoint.`);\n\t\t\t}\n\t\t\tcheckpointAttemptOwners.set(checkpointId, attemptId);\n\t\t}\n\t}\n\tfor (const [checkpointId, checkpoint] of Object.entries(state.checkpoints)) {\n\t\tconst attempt = state.attempts[checkpoint.attemptId];\n\t\tif (\n\t\t\tcheckpoint.checkpointId !== checkpointId ||\n\t\t\t!attempt ||\n\t\t\tcheckpointAttemptOwners.get(checkpointId) !== checkpoint.attemptId ||\n\t\t\t!attempt.lease ||\n\t\t\tcheckpoint.fencingToken > attempt.lease.fencingToken ||\n\t\t\tDate.parse(checkpoint.createdAt) < Date.parse(attempt.createdAt)\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} checkpoint '${checkpointId}' has invalid ownership.`);\n\t\t}\n\t}\n\n\tfor (const [agentId, agent] of Object.entries(state.agents)) {\n\t\tif (agent.agentId !== agentId)\n\t\t\tthrow new DurableTaskRuntimeError(`${label} agent '${agentId}' has a mismatched id.`);\n\t\tif (agent.parentAgentId) {\n\t\t\tconst parent = state.agents[agent.parentAgentId];\n\t\t\tif (!parent || parent.rootAgentId !== agent.rootAgentId || agent.depth !== parent.depth + 1) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} agent '${agentId}' has invalid lineage.`);\n\t\t\t}\n\t\t} else if (agent.rootAgentId !== agentId || agent.depth !== 0) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} root agent '${agentId}' has invalid lineage.`);\n\t\t}\n\t\tconst lineage = new Set<string>([agentId]);\n\t\tlet ancestorId = agent.parentAgentId;\n\t\twhile (ancestorId) {\n\t\t\tif (lineage.has(ancestorId)) throw new DurableTaskRuntimeError(`${label} agent lineage contains a cycle.`);\n\t\t\tlineage.add(ancestorId);\n\t\t\tancestorId = state.agents[ancestorId]?.parentAgentId;\n\t\t}\n\t\tconst activeAttempt = agent.activeAttemptId ? state.attempts[agent.activeAttemptId] : undefined;\n\t\tif (agent.status === \"registered\" || agent.status === \"retired\") {\n\t\t\tif (agent.activeAttemptId)\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} idle agent '${agentId}' owns an attempt.`);\n\t\t} else if (!activeAttempt || activeAttempt.agentId !== agentId) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} active agent '${agentId}' lacks its attempt.`);\n\t\t} else if (\n\t\t\t(agent.status === \"active\" && ![\"leased\", \"running\"].includes(activeAttempt.status)) ||\n\t\t\t((agent.status === \"suspended\" || agent.status === \"resuming\") && activeAttempt.status !== \"suspended\")\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} agent '${agentId}' status conflicts with its attempt.`);\n\t\t}\n\t\tif (agent.resumeContext.latestCheckpointId) {\n\t\t\tconst checkpoint = state.checkpoints[agent.resumeContext.latestCheckpointId];\n\t\t\tconst attempt = checkpoint ? state.attempts[checkpoint.attemptId] : undefined;\n\t\t\tif (!checkpoint || attempt?.agentId !== agentId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} agent '${agentId}' has an unrelated latest checkpoint.`);\n\t\t\t}\n\t\t}\n\t}\n\tfor (const attempt of Object.values(state.attempts)) {\n\t\tif (!attempt.agentId || terminalAttemptStatus(attempt.status)) continue;\n\t\tconst agent = state.agents[attempt.agentId];\n\t\tif (\n\t\t\t!agent ||\n\t\t\tagent.activeAttemptId !== attempt.attemptId ||\n\t\t\t([\"leased\", \"running\"].includes(attempt.status) && agent.status !== \"active\") ||\n\t\t\t(attempt.status === \"suspended\" && agent.status !== \"suspended\" && agent.status !== \"resuming\")\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`${label} attempt '${attempt.attemptId}' has an inconsistent agent binding.`,\n\t\t\t);\n\t\t}\n\t}\n\n\tfor (const [approvalId, approval] of Object.entries(state.approvals)) {\n\t\tconst request = approval.request;\n\t\tif (request.approvalId !== approvalId || !state.objectives[request.objectiveId]) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} approval '${approvalId}' has invalid ownership.`);\n\t\t}\n\t\tconst task = request.taskId ? state.tasks[request.taskId] : undefined;\n\t\tif (\n\t\t\t(request.taskId && task?.task.objectiveId !== request.objectiveId) ||\n\t\t\t(request.attemptId && !request.taskId)\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} approval '${approvalId}' has a cross-objective task.`);\n\t\t}\n\t\tconst attempt = request.attemptId ? state.attempts[request.attemptId] : undefined;\n\t\tif (request.attemptId && attempt?.taskId !== request.taskId) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} approval '${approvalId}' has a cross-task attempt.`);\n\t\t}\n\t\tif (approval.status === \"pending\" && attempt && (attempt.status !== \"queued\" || attempt.grantId)) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} pending approval '${approvalId}' no longer awaits policy.`);\n\t\t}\n\t\tconst notification = state.notifications[`approval-requested:${approvalId}`];\n\t\tif (\n\t\t\t!notification ||\n\t\t\tnotification.objectiveId !== request.objectiveId ||\n\t\t\tnotification.attemptId !== request.attemptId ||\n\t\t\tnotification.message !== request.summary\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} approval '${approvalId}' lacks its notification.`);\n\t\t}\n\t}\n\n\tfor (const [notificationId, notification] of Object.entries(state.notifications)) {\n\t\tif (notification.notificationId !== notificationId || !state.objectives[notification.objectiveId]) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} notification '${notificationId}' has invalid ownership.`);\n\t\t}\n\t\tif (notification.attemptId) {\n\t\t\tconst attempt = state.attempts[notification.attemptId];\n\t\t\tconst task = attempt ? state.tasks[attempt.taskId] : undefined;\n\t\t\tif (!attempt || task?.task.objectiveId !== notification.objectiveId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t\t`${label} notification '${notificationId}' has a cross-objective attempt.`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (const [taskId, subject] of Object.entries(state.tasks)) {\n\t\tconst verification = subject.verification;\n\t\tif (!verification) continue;\n\t\tconst verifierTask = state.tasks[verification.verifierTaskId];\n\t\tconst verifierAttempt = state.attempts[verification.verifierAttemptId];\n\t\tif (\n\t\t\t!verifierTask ||\n\t\t\tverifierTask.task.verificationOfTaskId !== taskId ||\n\t\t\t!verifierAttempt ||\n\t\t\tverifierAttempt.taskId !== verification.verifierTaskId ||\n\t\t\t!terminalAttemptStatus(verifierAttempt.status)\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} task '${taskId}' has an invalid verification record.`);\n\t\t}\n\t\tif (verification.verdict === \"accepted\" && subject.task.status !== \"completed\") {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} accepted verification for '${taskId}' is not completed.`);\n\t\t}\n\t\tif (\n\t\t\tverification.verdict !== \"inconclusive\" &&\n\t\t\t!verifierAttempt.result?.evidence.some(\n\t\t\t\t(evidence) =>\n\t\t\t\t\tevidence.trusted &&\n\t\t\t\t\tevidence.kind === \"review\" &&\n\t\t\t\t\tevidence.metadata?.subjectTaskId === taskId &&\n\t\t\t\t\tevidence.metadata.verdict === verification.verdict,\n\t\t\t)\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} task '${taskId}' verification lacks matching evidence.`);\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"task-runtime-codecs.js","sourceRoot":"","sources":["../../../src/core/orchestration/task-runtime-codecs.ts"],"names":[],"mappings":"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","sourcesContent":["import type { JsonObject } from \"../autonomy/contracts.ts\";\nimport { createAgentIdentity } from \"./agent-resume.ts\";\nimport { validateAttemptUsageSnapshot } from \"./attempt-usage.ts\";\nimport {\n\ttype AcceptanceCriterion,\n\ttype AgentBindingContract,\n\ttype AgentResumeContext,\n\ttype ApprovalRequestContract,\n\ttype ApprovalResolutionContract,\n\tATTEMPT_STATUSES,\n\ttype AttemptCheckpoint,\n\ttype AttemptLease,\n\ttype AttemptRetryState,\n\ttype AttemptStatus,\n\ttype EvidenceContract,\n\ttype ExecutionGrant,\n\tisHarnessCapability,\n\tisResourcePointerKind,\n\tMAX_ORCHESTRATION_AGENT_BINDINGS,\n\tMAX_ORCHESTRATION_APPROVALS,\n\tMAX_ORCHESTRATION_ATTEMPTS,\n\tMAX_ORCHESTRATION_CHECKPOINT_SUMMARY_LENGTH,\n\tMAX_ORCHESTRATION_CHECKPOINTS,\n\tMAX_ORCHESTRATION_COLLECTION_LENGTH,\n\tMAX_ORCHESTRATION_DESCRIPTION_LENGTH,\n\tMAX_ORCHESTRATION_DISPATCH_INSTRUCTIONS_LENGTH,\n\tMAX_ORCHESTRATION_IDENTIFIER_LENGTH,\n\tMAX_ORCHESTRATION_MODEL_PROVIDER_LENGTH,\n\tMAX_ORCHESTRATION_NOTIFICATIONS,\n\tMAX_ORCHESTRATION_OBJECTIVE_EVIDENCE,\n\tMAX_ORCHESTRATION_OBJECTIVES,\n\tMAX_ORCHESTRATION_TASKS,\n\tMAX_ORCHESTRATION_WORKER_RESULT_SUMMARY_BYTES,\n\tMAX_WORKER_RESOURCE_PATH_LENGTH,\n\tMAX_WORKER_RESOURCE_POINTERS,\n\tOBJECTIVE_STATUSES,\n\ttype ObjectiveContract,\n\ttype ObjectiveStatus,\n\tORCHESTRATION_SCHEMA_VERSION,\n\ttype OrchestrationDispatchRequest,\n\ttype OrchestrationTaskStatus,\n\ttype ResourcePointer,\n\ttype RiskBudget,\n\tTASK_STATUSES,\n\ttype TaskContract,\n\ttoJsonObject,\n\tWORKER_RESULT_STATUSES,\n\tWORKER_ROLES,\n\ttype WorkerExecutionContract,\n\ttype WorkerResultContract,\n} from \"./contracts.ts\";\nimport { validateRiskBudget } from \"./risk-budget.ts\";\nimport {\n\tassertRecordWithinLimit,\n\tassertRetainedProjectionNestedCollections,\n\texactRecord,\n\tPROJECTION_RECORD_FIELDS,\n\ttype ProjectionRecordField,\n\tprojectionSerializedBytes,\n\trecord,\n\tretainedIdentifierArray,\n} from \"./task-runtime-projection.ts\";\nimport {\n\ttype ApprovalRuntimeState,\n\ttype AttemptRuntimeState,\n\tDurableTaskRuntimeError,\n\tmissingTrustedCriteria,\n\ttype NotificationRuntimeState,\n\ttype ObjectiveRuntimeState,\n\ttype TaskRuntimeProjection,\n\ttype TaskRuntimeState,\n\tterminalAttemptStatus,\n} from \"./task-runtime-state.ts\";\nimport { normalizeWorkerContextForkReference } from \"./worker-context-fork-reference.ts\";\nimport { parseWorkerExecutionContract } from \"./worker-execution-contract.ts\";\n\nexport const MAX_DATE_EPOCH_MS = 8_640_000_000_000_000;\n\nexport function projectionFromSnapshot(projection: JsonObject, throughOrdinal: number): TaskRuntimeProjection {\n\tconst label = \"orchestration projection snapshot\";\n\tconst candidate = exactRecord(projection, label, [\"lastOrdinal\", ...PROJECTION_RECORD_FIELDS]);\n\tif (\n\t\t!Number.isSafeInteger(candidate.lastOrdinal) ||\n\t\tNumber(candidate.lastOrdinal) < 0 ||\n\t\tcandidate.lastOrdinal !== throughOrdinal\n\t) {\n\t\tthrow new DurableTaskRuntimeError(\"Orchestration projection snapshot ordinal does not match its baseline.\");\n\t}\n\tconst snapshotRecords = {} as Record<ProjectionRecordField, Record<string, unknown>>;\n\tfor (const field of PROJECTION_RECORD_FIELDS) {\n\t\tsnapshotRecords[field] = record(candidate[field], `${label}.${field}`);\n\t}\n\tassertRecordWithinLimit(snapshotRecords.agents, MAX_ORCHESTRATION_AGENT_BINDINGS, \"agent binding\");\n\tassertRecordWithinLimit(snapshotRecords.objectives, MAX_ORCHESTRATION_OBJECTIVES, \"objective\");\n\tassertRecordWithinLimit(snapshotRecords.tasks, MAX_ORCHESTRATION_TASKS, \"task\");\n\tassertRecordWithinLimit(snapshotRecords.attempts, MAX_ORCHESTRATION_ATTEMPTS, \"attempt\");\n\tassertRecordWithinLimit(snapshotRecords.checkpoints, MAX_ORCHESTRATION_CHECKPOINTS, \"checkpoint\");\n\tassertRecordWithinLimit(snapshotRecords.approvals, MAX_ORCHESTRATION_APPROVALS, \"approval\");\n\tassertRecordWithinLimit(snapshotRecords.notifications, MAX_ORCHESTRATION_NOTIFICATIONS, \"notification\");\n\tassertRetainedProjectionNestedCollections(\n\t\tsnapshotRecords.objectives,\n\t\tsnapshotRecords.tasks,\n\t\tsnapshotRecords.attempts,\n\t\tsnapshotRecords.checkpoints,\n\t\tlabel,\n\t);\n\tprojectionSerializedBytes(candidate as unknown as TaskRuntimeProjection);\n\tconst normalized: TaskRuntimeProjection = {\n\t\tlastOrdinal: throughOrdinal,\n\t\tagents: Object.fromEntries(\n\t\t\tObject.entries(snapshotRecords.agents).map(([agentId, value]) => [\n\t\t\t\tagentId,\n\t\t\t\tnormalizeAgentBinding(value, `${label}.agents.${agentId}`),\n\t\t\t]),\n\t\t),\n\t\tobjectives: Object.fromEntries(\n\t\t\tObject.entries(snapshotRecords.objectives).map(([objectiveId, value]) => [\n\t\t\t\tobjectiveId,\n\t\t\t\tobjectiveRuntimeStateFromValue(value, `${label}.objectives.${objectiveId}`),\n\t\t\t]),\n\t\t),\n\t\ttasks: Object.fromEntries(\n\t\t\tObject.entries(snapshotRecords.tasks).map(([taskId, value]) => [\n\t\t\t\ttaskId,\n\t\t\t\ttaskRuntimeStateFromValue(value, `${label}.tasks.${taskId}`),\n\t\t\t]),\n\t\t),\n\t\tattempts: Object.fromEntries(\n\t\t\tObject.entries(snapshotRecords.attempts).map(([attemptId, value]) => [\n\t\t\t\tattemptId,\n\t\t\t\tattemptRuntimeStateFromValue(value, `${label}.attempts.${attemptId}`),\n\t\t\t]),\n\t\t),\n\t\tcheckpoints: Object.fromEntries(\n\t\t\tObject.entries(snapshotRecords.checkpoints).map(([checkpointId, value]) => [\n\t\t\t\tcheckpointId,\n\t\t\t\tcheckpointFromValue(value, `${label}.checkpoints.${checkpointId}`),\n\t\t\t]),\n\t\t),\n\t\tapprovals: Object.fromEntries(\n\t\t\tObject.entries(snapshotRecords.approvals).map(([approvalId, value]) => [\n\t\t\t\tapprovalId,\n\t\t\t\tapprovalRuntimeStateFromValue(value, `${label}.approvals.${approvalId}`),\n\t\t\t]),\n\t\t),\n\t\tnotifications: Object.fromEntries(\n\t\t\tObject.entries(snapshotRecords.notifications).map(([notificationId, value]) => [\n\t\t\t\tnotificationId,\n\t\t\t\tnotificationRuntimeStateFromValue(value, `${label}.notifications.${notificationId}`),\n\t\t\t]),\n\t\t),\n\t};\n\tvalidateSnapshotTaskGraph(normalized);\n\tprojectionSerializedBytes(normalized);\n\treturn normalized;\n}\n\nexport function string(value: unknown, label: string): string {\n\tif (typeof value !== \"string\" || value.length === 0) throw new DurableTaskRuntimeError(`${label} is required.`);\n\treturn value;\n}\n\nexport function number(value: unknown, label: string): number {\n\tif (typeof value !== \"number\" || !Number.isFinite(value)) throw new DurableTaskRuntimeError(`${label} is invalid.`);\n\treturn value;\n}\n\nfunction boolean(value: unknown, label: string): boolean {\n\tif (typeof value !== \"boolean\") throw new DurableTaskRuntimeError(`${label} is invalid.`);\n\treturn value;\n}\n\nexport function assertRiskBudget(budget: RiskBudget | undefined, label: string): void {\n\ttry {\n\t\tvalidateRiskBudget(budget ?? {}, label);\n\t} catch (error) {\n\t\tthrow new DurableTaskRuntimeError(error instanceof Error ? error.message : String(error));\n\t}\n}\n\nfunction stringArray(value: unknown, label: string): string[] {\n\tif (!Array.isArray(value) || !value.every((entry) => typeof entry === \"string\")) {\n\t\tthrow new DurableTaskRuntimeError(`${label} must be a string array.`);\n\t}\n\treturn [...value];\n}\n\nexport function dispatchIdentifier(value: unknown, label: string): string {\n\tconst identifier = string(value, label);\n\tif (identifier.length > MAX_ORCHESTRATION_IDENTIFIER_LENGTH) {\n\t\tthrow new DurableTaskRuntimeError(`${label} exceeds its durable size bound.`);\n\t}\n\treturn identifier;\n}\n\nfunction isoDate(value: unknown, label: string): string {\n\tconst date = dispatchIdentifier(value, label);\n\tconst epochMs = Date.parse(date);\n\tif (!Number.isFinite(epochMs) || Math.abs(epochMs) > MAX_DATE_EPOCH_MS || new Date(epochMs).toISOString() !== date) {\n\t\tthrow new DurableTaskRuntimeError(`${label} is invalid.`);\n\t}\n\treturn date;\n}\n\nfunction optionalDispatchIdentifier(\n\tvalue: unknown,\n\tlabel: string,\n\tmaxLength = MAX_ORCHESTRATION_IDENTIFIER_LENGTH,\n): string | undefined {\n\tif (value === undefined) return undefined;\n\tconst identifier = string(value, label);\n\tif (identifier.length > maxLength) throw new DurableTaskRuntimeError(`${label} exceeds its durable size bound.`);\n\treturn identifier;\n}\n\nfunction dispatchInstructions(value: unknown, label: string): string {\n\tconst instructions = string(value, label);\n\tif (instructions.length > MAX_ORCHESTRATION_DISPATCH_INSTRUCTIONS_LENGTH) {\n\t\tthrow new DurableTaskRuntimeError(`${label} exceeds its durable size bound.`);\n\t}\n\treturn instructions;\n}\n\nfunction retainedDescription(value: unknown, label: string): string {\n\tconst description = string(value, label).trim();\n\tif (!description) throw new DurableTaskRuntimeError(`${label} is required.`);\n\tif (description.length > MAX_ORCHESTRATION_DESCRIPTION_LENGTH) {\n\t\tthrow new DurableTaskRuntimeError(`${label} exceeds its durable size bound.`);\n\t}\n\treturn description;\n}\n\nfunction retainedWorkerResultSummary(value: unknown, label: string): string {\n\tconst summary = string(value, label).trim();\n\tif (!summary) throw new DurableTaskRuntimeError(`${label} is required.`);\n\tif (Buffer.byteLength(summary, \"utf8\") > MAX_ORCHESTRATION_WORKER_RESULT_SUMMARY_BYTES) {\n\t\tthrow new DurableTaskRuntimeError(`${label} exceeds its durable size bound.`);\n\t}\n\treturn summary;\n}\n\nexport function checkpointSummary(value: unknown, label: string): string {\n\tconst summary = string(value, label).trim();\n\tif (!summary) throw new DurableTaskRuntimeError(`${label} is required.`);\n\tif (summary.length > MAX_ORCHESTRATION_CHECKPOINT_SUMMARY_LENGTH) {\n\t\tthrow new DurableTaskRuntimeError(`${label} exceeds its durable size bound.`);\n\t}\n\treturn summary;\n}\n\nexport function dispatchIdentifierArray(value: unknown, label: string): string[] {\n\tif (\n\t\t!Array.isArray(value) ||\n\t\tvalue.length > MAX_ORCHESTRATION_COLLECTION_LENGTH ||\n\t\t!value.every(\n\t\t\t(entry) =>\n\t\t\t\ttypeof entry === \"string\" && entry.length > 0 && entry.length <= MAX_ORCHESTRATION_IDENTIFIER_LENGTH,\n\t\t)\n\t) {\n\t\tthrow new DurableTaskRuntimeError(`${label} must be a bounded identifier array.`);\n\t}\n\tif (new Set(value).size !== value.length) {\n\t\tthrow new DurableTaskRuntimeError(`${label} contains duplicates.`);\n\t}\n\treturn [...value];\n}\n\n/** Validate dependency identity and ownership before any durable task event is appended. */\nexport function validateTaskDependencyIds(\n\ttasks: TaskRuntimeProjection[\"tasks\"],\n\tobjectiveId: string,\n\tvalue: readonly string[] | undefined,\n): string[] {\n\tconst dependencyIds = dispatchIdentifierArray(value ?? [], \"task.dependsOn\");\n\tfor (const dependencyId of dependencyIds) {\n\t\tconst dependency = tasks[dependencyId];\n\t\tif (!dependency || dependency.task.objectiveId !== objectiveId) {\n\t\t\tthrow new DurableTaskRuntimeError(`Task dependency '${dependencyId}' is not in objective '${objectiveId}'.`);\n\t\t}\n\t}\n\treturn dependencyIds;\n}\n\nconst DISPATCH_FIELDS = new Set([\n\t\"taskId\",\n\t\"profileId\",\n\t\"instructions\",\n\t\"resourcePointerIds\",\n\t\"parentAgentId\",\n\t\"requirementIds\",\n\t\"executionKind\",\n\t\"logicalLaneId\",\n\t\"dispatchSequence\",\n\t\"controlMessageId\",\n\t\"provider\",\n\t\"authorizationId\",\n\t\"worktreeLaneKey\",\n\t\"birthContextForkReference\",\n\t\"executionContract\",\n]);\n\nexport function dispatchFromValue(value: unknown, label: string): OrchestrationDispatchRequest {\n\tconst dispatch = record(value, label);\n\tconst unsupportedField = Object.keys(dispatch).find((field) => !DISPATCH_FIELDS.has(field));\n\tif (unsupportedField) throw new DurableTaskRuntimeError(`${label}.${unsupportedField} is unsupported.`);\n\tconst executionKind = dispatch.executionKind;\n\tif (executionKind !== undefined && executionKind !== \"in-process\" && executionKind !== \"managed-process\") {\n\t\tthrow new DurableTaskRuntimeError(`${label}.executionKind is invalid.`);\n\t}\n\tconst logicalLaneId = optionalDispatchIdentifier(dispatch.logicalLaneId, `${label}.logicalLaneId`);\n\tconst controlMessageId = optionalDispatchIdentifier(dispatch.controlMessageId, `${label}.controlMessageId`);\n\tconst parentAgentId = optionalDispatchIdentifier(dispatch.parentAgentId, `${label}.parentAgentId`);\n\tconst provider = optionalDispatchIdentifier(\n\t\tdispatch.provider,\n\t\t`${label}.provider`,\n\t\tMAX_ORCHESTRATION_MODEL_PROVIDER_LENGTH,\n\t);\n\tconst authorizationId = optionalDispatchIdentifier(dispatch.authorizationId, `${label}.authorizationId`);\n\tconst worktreeLaneKey = optionalDispatchIdentifier(dispatch.worktreeLaneKey, `${label}.worktreeLaneKey`);\n\tif (\n\t\tdispatch.dispatchSequence !== undefined &&\n\t\t(!Number.isSafeInteger(dispatch.dispatchSequence) || Number(dispatch.dispatchSequence) < 1)\n\t) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.dispatchSequence is invalid.`);\n\t}\n\tlet executionContract: WorkerExecutionContract | undefined;\n\tlet birthContextForkReference: OrchestrationDispatchRequest[\"birthContextForkReference\"];\n\ttry {\n\t\texecutionContract =\n\t\t\tdispatch.executionContract === undefined\n\t\t\t\t? undefined\n\t\t\t\t: parseWorkerExecutionContract(dispatch.executionContract);\n\t\tbirthContextForkReference =\n\t\t\tdispatch.birthContextForkReference === undefined\n\t\t\t\t? undefined\n\t\t\t\t: normalizeWorkerContextForkReference(dispatch.birthContextForkReference);\n\t} catch (error) {\n\t\tthrow new DurableTaskRuntimeError(\n\t\t\t`${label} is invalid: ${error instanceof Error ? error.message : String(error)}`,\n\t\t);\n\t}\n\tif (executionContract && executionKind === \"managed-process\") {\n\t\tthrow new DurableTaskRuntimeError(`${label} cannot combine a worker execution contract with managed execution.`);\n\t}\n\treturn {\n\t\ttaskId: dispatchIdentifier(dispatch.taskId, `${label}.taskId`),\n\t\tprofileId: dispatchIdentifier(dispatch.profileId, `${label}.profileId`),\n\t\tinstructions: dispatchInstructions(dispatch.instructions, `${label}.instructions`),\n\t\tresourcePointerIds: dispatchIdentifierArray(dispatch.resourcePointerIds, `${label}.resourcePointerIds`),\n\t\t...(parentAgentId ? { parentAgentId } : {}),\n\t\trequirementIds:\n\t\t\tdispatch.requirementIds === undefined\n\t\t\t\t? []\n\t\t\t\t: dispatchIdentifierArray(dispatch.requirementIds, `${label}.requirementIds`),\n\t\t...(executionKind ? { executionKind } : {}),\n\t\t...(logicalLaneId ? { logicalLaneId } : {}),\n\t\t...(typeof dispatch.dispatchSequence === \"number\" ? { dispatchSequence: dispatch.dispatchSequence } : {}),\n\t\t...(controlMessageId ? { controlMessageId } : {}),\n\t\t...(provider ? { provider } : {}),\n\t\t...(authorizationId ? { authorizationId } : {}),\n\t\t...(worktreeLaneKey ? { worktreeLaneKey } : {}),\n\t\t...(birthContextForkReference ? { birthContextForkReference } : {}),\n\t\t...(executionContract ? { executionContract } : {}),\n\t};\n}\n\nexport function objectiveFromPayload(payload: JsonObject): ObjectiveContract {\n\treturn objectiveFromValue(payload.objective, \"objective\");\n}\n\nexport function evidenceFromPayload(payload: JsonObject): EvidenceContract {\n\treturn evidenceFromValue(payload.evidence, \"evidence\");\n}\n\nfunction objectiveFromValue(value: unknown, label: string): ObjectiveContract {\n\tconst objective = exactRecord(value, label, [\n\t\t\"schemaVersion\",\n\t\t\"objectiveId\",\n\t\t\"title\",\n\t\t\"description\",\n\t\t\"status\",\n\t\t\"constraints\",\n\t\t\"acceptanceCriteria\",\n\t\t\"riskBudget\",\n\t\t\"createdAt\",\n\t\t\"updatedAt\",\n\t]);\n\tif (objective.schemaVersion !== ORCHESTRATION_SCHEMA_VERSION) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.schemaVersion is invalid.`);\n\t}\n\tconst status = string(objective.status, `${label}.status`);\n\tif (!OBJECTIVE_STATUSES.some((candidate) => candidate === status)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.status is invalid.`);\n\t}\n\tconst constraints = stringArray(objective.constraints, `${label}.constraints`);\n\tif (\n\t\tconstraints.length > MAX_ORCHESTRATION_COLLECTION_LENGTH ||\n\t\tconstraints.some((constraint) => !constraint.trim() || constraint.length > MAX_ORCHESTRATION_DESCRIPTION_LENGTH)\n\t) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.constraints must be a bounded description array.`);\n\t}\n\tif (!Array.isArray(objective.acceptanceCriteria)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.acceptanceCriteria must be an array.`);\n\t}\n\tif (objective.acceptanceCriteria.length > MAX_ORCHESTRATION_COLLECTION_LENGTH) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.acceptanceCriteria exceeds its collection limit.`);\n\t}\n\tconst acceptanceCriteria = objective.acceptanceCriteria.map((value, index): AcceptanceCriterion => {\n\t\tconst criterion = exactRecord(value, `${label}.acceptanceCriteria[${index}]`, [\n\t\t\t\"id\",\n\t\t\t\"description\",\n\t\t\t\"required\",\n\t\t\t\"evaluator\",\n\t\t]);\n\t\treturn {\n\t\t\tid: dispatchIdentifier(criterion.id, `${label}.acceptanceCriteria[${index}].id`),\n\t\t\tdescription: retainedDescription(criterion.description, `${label}.acceptanceCriteria[${index}].description`),\n\t\t\trequired: boolean(criterion.required, `${label}.acceptanceCriteria[${index}].required`),\n\t\t\t...(criterion.evaluator === undefined\n\t\t\t\t? {}\n\t\t\t\t: {\n\t\t\t\t\t\tevaluator: dispatchIdentifier(criterion.evaluator, `${label}.acceptanceCriteria[${index}].evaluator`),\n\t\t\t\t\t}),\n\t\t};\n\t});\n\tassertAcceptanceCriteria(acceptanceCriteria);\n\tconst riskBudget = structuredClone(record(objective.riskBudget, `${label}.riskBudget`)) as RiskBudget;\n\tassertRiskBudget(riskBudget, `${label}.riskBudget`);\n\treturn {\n\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\tobjectiveId: dispatchIdentifier(objective.objectiveId, `${label}.objectiveId`),\n\t\ttitle: retainedDescription(objective.title, `${label}.title`),\n\t\tdescription: retainedDescription(objective.description, `${label}.description`),\n\t\tstatus: status as ObjectiveStatus,\n\t\tconstraints,\n\t\tacceptanceCriteria,\n\t\triskBudget,\n\t\tcreatedAt: isoDate(objective.createdAt, `${label}.createdAt`),\n\t\tupdatedAt: isoDate(objective.updatedAt, `${label}.updatedAt`),\n\t};\n}\n\nfunction evidenceFromValue(value: unknown, label: string): EvidenceContract {\n\tconst evidence = exactRecord(value, label, [\n\t\t\"evidenceId\",\n\t\t\"criterionId\",\n\t\t\"kind\",\n\t\t\"summary\",\n\t\t\"artifactIds\",\n\t\t\"trusted\",\n\t\t\"createdAt\",\n\t\t\"metadata\",\n\t]);\n\tconst kind = string(evidence.kind, `${label}.kind`);\n\tif (![\"observation\", \"command\", \"test\", \"review\", \"external\"].includes(kind)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.kind is invalid.`);\n\t}\n\tconst metadata =\n\t\tevidence.metadata === undefined ? undefined : structuredClone(record(evidence.metadata, `${label}.metadata`));\n\treturn {\n\t\tevidenceId: dispatchIdentifier(evidence.evidenceId, `${label}.evidenceId`),\n\t\t...(evidence.criterionId === undefined\n\t\t\t? {}\n\t\t\t: { criterionId: dispatchIdentifier(evidence.criterionId, `${label}.criterionId`) }),\n\t\tkind: kind as EvidenceContract[\"kind\"],\n\t\tsummary: retainedDescription(evidence.summary, `${label}.summary`),\n\t\tartifactIds: dispatchIdentifierArray(evidence.artifactIds, `${label}.artifactIds`),\n\t\ttrusted: boolean(evidence.trusted, `${label}.trusted`),\n\t\tcreatedAt: isoDate(evidence.createdAt, `${label}.createdAt`),\n\t\t...(metadata ? { metadata: metadata as JsonObject } : {}),\n\t};\n}\n\nfunction objectiveRuntimeStateFromValue(value: unknown, label: string): ObjectiveRuntimeState {\n\tconst state = exactRecord(value, label, [\"objective\", \"taskIds\", \"evidence\"]);\n\tconst objective = objectiveFromValue(state.objective, `${label}.objective`);\n\tif (!Array.isArray(state.evidence) || state.evidence.length > MAX_ORCHESTRATION_OBJECTIVE_EVIDENCE) {\n\t\tthrow new DurableTaskRuntimeError(\n\t\t\t`${label}.evidence exceeds its retained collection limit (${MAX_ORCHESTRATION_OBJECTIVE_EVIDENCE}).`,\n\t\t);\n\t}\n\tconst evidence = state.evidence.map((item, index) => evidenceFromValue(item, `${label}.evidence[${index}]`));\n\tconst evidenceIds = new Set<string>();\n\tfor (const item of evidence) {\n\t\tif (evidenceIds.has(item.evidenceId)) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label}.evidence contains duplicate id '${item.evidenceId}'.`);\n\t\t}\n\t\tevidenceIds.add(item.evidenceId);\n\t\tif (item.criterionId && !objective.acceptanceCriteria.some((criterion) => criterion.id === item.criterionId)) {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`${label}.evidence references unknown acceptance criterion '${item.criterionId}'.`,\n\t\t\t);\n\t\t}\n\t}\n\treturn {\n\t\tobjective,\n\t\ttaskIds: retainedIdentifierArray(state.taskIds, MAX_ORCHESTRATION_TASKS, `${label}.taskIds`),\n\t\tevidence,\n\t};\n}\n\nexport function assertAcceptanceCriteria(criteria: readonly AcceptanceCriterion[]): void {\n\tconst criterionIds = criteria.map((criterion) => criterion.id);\n\tif (\n\t\tcriterionIds.some((id) => !id.trim()) ||\n\t\tnew Set(criterionIds).size !== criterionIds.length ||\n\t\tcriteria.some((criterion) => !criterion.description.trim())\n\t) {\n\t\tthrow new DurableTaskRuntimeError(\"Objective acceptance criteria require unique ids and descriptions.\");\n\t}\n}\n\nexport function assertReferencedAcceptanceCriteriaRetained(\n\ttasks: TaskRuntimeProjection[\"tasks\"],\n\tcurrent: ObjectiveRuntimeState,\n\tacceptanceCriteria: readonly AcceptanceCriterion[],\n): void {\n\tconst retainedCriterionIds = new Set(acceptanceCriteria.map((criterion) => criterion.id));\n\tconst referencedRemovedIds = current.taskIds.flatMap((taskId) =>\n\t\t(tasks[taskId]?.task.acceptanceCriterionIds ?? []).filter(\n\t\t\t(criterionId) => !retainedCriterionIds.has(criterionId),\n\t\t),\n\t);\n\tif (referencedRemovedIds.length > 0) {\n\t\tthrow new DurableTaskRuntimeError(\n\t\t\t`Cannot remove acceptance criteria referenced by tasks: ${[...new Set(referencedRemovedIds)].join(\", \")}.`,\n\t\t);\n\t}\n}\n\nexport function taskFromValue(value: unknown, label: string): TaskContract {\n\tconst task = exactRecord(value, label, [\n\t\t\"schemaVersion\",\n\t\t\"taskId\",\n\t\t\"objectiveId\",\n\t\t\"title\",\n\t\t\"description\",\n\t\t\"role\",\n\t\t\"status\",\n\t\t\"dependsOn\",\n\t\t\"requiredCapabilities\",\n\t\t\"acceptanceCriterionIds\",\n\t\t\"verificationOfTaskId\",\n\t\t\"riskBudget\",\n\t\t\"createdAt\",\n\t\t\"updatedAt\",\n\t]);\n\tif (task.schemaVersion !== ORCHESTRATION_SCHEMA_VERSION) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.schemaVersion is invalid.`);\n\t}\n\tconst role = string(task.role, `${label}.role`);\n\tif (!WORKER_ROLES.some((candidate) => candidate === role)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.role is invalid.`);\n\t}\n\tconst status = string(task.status, `${label}.status`);\n\tif (!TASK_STATUSES.some((candidate) => candidate === status)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.status is invalid.`);\n\t}\n\tconst requiredCapabilities = stringArray(task.requiredCapabilities, `${label}.requiredCapabilities`);\n\tif (\n\t\trequiredCapabilities.length > MAX_ORCHESTRATION_COLLECTION_LENGTH ||\n\t\tnew Set(requiredCapabilities).size !== requiredCapabilities.length ||\n\t\t!requiredCapabilities.every(isHarnessCapability)\n\t) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.requiredCapabilities must be a bounded capability array.`);\n\t}\n\tconst riskBudget = structuredClone(record(task.riskBudget, `${label}.riskBudget`)) as RiskBudget;\n\tassertRiskBudget(riskBudget, `${label}.riskBudget`);\n\treturn {\n\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\ttaskId: dispatchIdentifier(task.taskId, `${label}.taskId`),\n\t\tobjectiveId: dispatchIdentifier(task.objectiveId, `${label}.objectiveId`),\n\t\ttitle: retainedDescription(task.title, `${label}.title`),\n\t\tdescription: retainedDescription(task.description, `${label}.description`),\n\t\trole: role as TaskContract[\"role\"],\n\t\tstatus: status as OrchestrationTaskStatus,\n\t\tdependsOn: dispatchIdentifierArray(task.dependsOn, `${label}.dependsOn`),\n\t\trequiredCapabilities: requiredCapabilities as TaskContract[\"requiredCapabilities\"],\n\t\tacceptanceCriterionIds: dispatchIdentifierArray(task.acceptanceCriterionIds, `${label}.acceptanceCriterionIds`),\n\t\t...(task.verificationOfTaskId === undefined\n\t\t\t? {}\n\t\t\t: {\n\t\t\t\t\tverificationOfTaskId: dispatchIdentifier(task.verificationOfTaskId, `${label}.verificationOfTaskId`),\n\t\t\t\t}),\n\t\triskBudget,\n\t\tcreatedAt: isoDate(task.createdAt, `${label}.createdAt`),\n\t\tupdatedAt: isoDate(task.updatedAt, `${label}.updatedAt`),\n\t};\n}\n\nexport function taskFromPayload(payload: JsonObject): TaskContract {\n\treturn taskFromValue(payload.task, \"task\");\n}\n\nfunction taskRuntimeStateFromValue(value: unknown, label: string): TaskRuntimeState {\n\tconst state = exactRecord(value, label, [\"task\", \"attemptIds\", \"verification\"]);\n\tlet verification: TaskRuntimeState[\"verification\"];\n\tif (state.verification !== undefined) {\n\t\tconst record = exactRecord(state.verification, `${label}.verification`, [\n\t\t\t\"verifierTaskId\",\n\t\t\t\"verifierAttemptId\",\n\t\t\t\"verdict\",\n\t\t\t\"reasonCode\",\n\t\t\t\"completedAt\",\n\t\t]);\n\t\tconst verdict = string(record.verdict, `${label}.verification.verdict`);\n\t\tif (verdict !== \"accepted\" && verdict !== \"rejected\" && verdict !== \"inconclusive\") {\n\t\t\tthrow new DurableTaskRuntimeError(`${label}.verification.verdict is invalid.`);\n\t\t}\n\t\tverification = {\n\t\t\tverifierTaskId: dispatchIdentifier(record.verifierTaskId, `${label}.verification.verifierTaskId`),\n\t\t\tverifierAttemptId: dispatchIdentifier(record.verifierAttemptId, `${label}.verification.verifierAttemptId`),\n\t\t\tverdict,\n\t\t\treasonCode: dispatchIdentifier(record.reasonCode, `${label}.verification.reasonCode`),\n\t\t\tcompletedAt: dispatchIdentifier(record.completedAt, `${label}.verification.completedAt`),\n\t\t};\n\t}\n\treturn {\n\t\ttask: taskFromValue(state.task, `${label}.task`),\n\t\tattemptIds: retainedIdentifierArray(state.attemptIds, MAX_ORCHESTRATION_ATTEMPTS, `${label}.attemptIds`),\n\t\t...(verification ? { verification } : {}),\n\t};\n}\n\nfunction resourcePointerFromValue(value: unknown, label: string): ResourcePointer {\n\tconst pointer = exactRecord(value, label, [\"id\", \"kind\", \"uri\", \"readOnly\", \"digest\", \"metadata\"]);\n\tconst kind = string(pointer.kind, `${label}.kind`);\n\tif (!isResourcePointerKind(kind)) throw new DurableTaskRuntimeError(`${label}.kind is invalid.`);\n\tconst uri = string(pointer.uri, `${label}.uri`);\n\tif (!uri.trim() || uri.length > MAX_WORKER_RESOURCE_PATH_LENGTH) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.uri exceeds its durable size bound.`);\n\t}\n\tconst metadata =\n\t\tpointer.metadata === undefined\n\t\t\t? undefined\n\t\t\t: (structuredClone(record(pointer.metadata, `${label}.metadata`)) as JsonObject);\n\treturn {\n\t\tid: dispatchIdentifier(pointer.id, `${label}.id`),\n\t\tkind,\n\t\turi,\n\t\treadOnly: boolean(pointer.readOnly, `${label}.readOnly`),\n\t\t...(pointer.digest === undefined ? {} : { digest: dispatchIdentifier(pointer.digest, `${label}.digest`) }),\n\t\t...(metadata ? { metadata } : {}),\n\t};\n}\n\nfunction resourcePointersFromValue(value: unknown, label: string): ResourcePointer[] {\n\tif (!Array.isArray(value) || value.length > MAX_WORKER_RESOURCE_POINTERS) {\n\t\tthrow new DurableTaskRuntimeError(`${label} exceeds its retained collection limit.`);\n\t}\n\tconst pointers = value.map((pointer, index) => resourcePointerFromValue(pointer, `${label}[${index}]`));\n\tif (new Set(pointers.map((pointer) => pointer.id)).size !== pointers.length) {\n\t\tthrow new DurableTaskRuntimeError(`${label} contains duplicate ids.`);\n\t}\n\treturn pointers;\n}\n\nexport function executionGrantFromValue(value: unknown, label: string): ExecutionGrant {\n\tconst grant = exactRecord(value, label, [\n\t\t\"schemaVersion\",\n\t\t\"grantId\",\n\t\t\"objectiveId\",\n\t\t\"taskId\",\n\t\t\"attemptId\",\n\t\t\"subjectId\",\n\t\t\"role\",\n\t\t\"capabilities\",\n\t\t\"allowedTools\",\n\t\t\"resources\",\n\t\t\"readPaths\",\n\t\t\"writePaths\",\n\t\t\"deniedPaths\",\n\t\t\"budget\",\n\t\t\"policyVersion\",\n\t\t\"decisionTrace\",\n\t\t\"issuedAt\",\n\t\t\"expiresAt\",\n\t]);\n\tif (grant.schemaVersion !== ORCHESTRATION_SCHEMA_VERSION) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.schemaVersion is invalid.`);\n\t}\n\tconst role = string(grant.role, `${label}.role`);\n\tif (!WORKER_ROLES.some((candidate) => candidate === role)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.role is invalid.`);\n\t}\n\tconst capabilities = stringArray(grant.capabilities, `${label}.capabilities`);\n\tif (\n\t\tcapabilities.length > MAX_ORCHESTRATION_COLLECTION_LENGTH ||\n\t\tnew Set(capabilities).size !== capabilities.length ||\n\t\t!capabilities.every(isHarnessCapability)\n\t) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.capabilities is invalid.`);\n\t}\n\tconst boundedStrings = (field: \"allowedTools\" | \"readPaths\" | \"writePaths\" | \"deniedPaths\"): string[] => {\n\t\tconst values = stringArray(grant[field], `${label}.${field}`);\n\t\tif (\n\t\t\tvalues.length > MAX_ORCHESTRATION_COLLECTION_LENGTH ||\n\t\t\tnew Set(values).size !== values.length ||\n\t\t\tvalues.some((item) => !item || item.length > MAX_ORCHESTRATION_DESCRIPTION_LENGTH)\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label}.${field} is invalid.`);\n\t\t}\n\t\treturn values;\n\t};\n\tif (!Array.isArray(grant.decisionTrace) || grant.decisionTrace.length > MAX_ORCHESTRATION_COLLECTION_LENGTH) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.decisionTrace is invalid.`);\n\t}\n\tconst resources = resourcePointersFromValue(grant.resources, `${label}.resources`);\n\tconst decisionTrace: ExecutionGrant[\"decisionTrace\"] = grant.decisionTrace.map((value, index) => {\n\t\tconst decision = exactRecord(value, `${label}.decisionTrace[${index}]`, [\n\t\t\t\"capability\",\n\t\t\t\"outcome\",\n\t\t\t\"reasonCode\",\n\t\t\t\"source\",\n\t\t]);\n\t\tconst capability = string(decision.capability, `${label}.decisionTrace[${index}].capability`);\n\t\tif (!isHarnessCapability(capability)) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label}.decisionTrace[${index}].capability is invalid.`);\n\t\t}\n\t\tconst outcome = string(decision.outcome, `${label}.decisionTrace[${index}].outcome`);\n\t\tif (outcome !== \"allow\" && outcome !== \"deny\") {\n\t\t\tthrow new DurableTaskRuntimeError(`${label}.decisionTrace[${index}].outcome is invalid.`);\n\t\t}\n\t\treturn {\n\t\t\tcapability,\n\t\t\toutcome,\n\t\t\treasonCode: dispatchIdentifier(decision.reasonCode, `${label}.decisionTrace[${index}].reasonCode`),\n\t\t\tsource: retainedDescription(decision.source, `${label}.decisionTrace[${index}].source`),\n\t\t};\n\t});\n\tconst budget = structuredClone(record(grant.budget, `${label}.budget`)) as RiskBudget;\n\tassertRiskBudget(budget, `${label}.budget`);\n\tconst issuedAt = isoDate(grant.issuedAt, `${label}.issuedAt`);\n\tconst expiresAt = grant.expiresAt === undefined ? undefined : isoDate(grant.expiresAt, `${label}.expiresAt`);\n\tif (expiresAt && Date.parse(expiresAt) <= Date.parse(issuedAt)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.expiresAt must be after issuedAt.`);\n\t}\n\treturn {\n\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\tgrantId: dispatchIdentifier(grant.grantId, `${label}.grantId`),\n\t\tobjectiveId: dispatchIdentifier(grant.objectiveId, `${label}.objectiveId`),\n\t\ttaskId: dispatchIdentifier(grant.taskId, `${label}.taskId`),\n\t\tattemptId: dispatchIdentifier(grant.attemptId, `${label}.attemptId`),\n\t\tsubjectId: dispatchIdentifier(grant.subjectId, `${label}.subjectId`),\n\t\trole: role as ExecutionGrant[\"role\"],\n\t\tcapabilities: capabilities as ExecutionGrant[\"capabilities\"],\n\t\tallowedTools: boundedStrings(\"allowedTools\"),\n\t\tresources,\n\t\treadPaths: boundedStrings(\"readPaths\"),\n\t\twritePaths: boundedStrings(\"writePaths\"),\n\t\tdeniedPaths: boundedStrings(\"deniedPaths\"),\n\t\tbudget,\n\t\tpolicyVersion: dispatchIdentifier(grant.policyVersion, `${label}.policyVersion`),\n\t\tdecisionTrace,\n\t\tissuedAt,\n\t\t...(expiresAt ? { expiresAt } : {}),\n\t};\n}\n\nfunction attemptRuntimeStateFromValue(value: unknown, label: string): AttemptRuntimeState {\n\tconst attempt = exactRecord(value, label, [\n\t\t\"attemptId\",\n\t\t\"taskId\",\n\t\t\"dispatch\",\n\t\t\"status\",\n\t\t\"reasonCode\",\n\t\t\"grantId\",\n\t\t\"grant\",\n\t\t\"agentId\",\n\t\t\"lease\",\n\t\t\"retry\",\n\t\t\"checkpointIds\",\n\t\t\"result\",\n\t\t\"createdAt\",\n\t\t\"updatedAt\",\n\t]);\n\tconst status = string(attempt.status, `${label}.status`);\n\tif (!ATTEMPT_STATUSES.some((candidate) => candidate === status)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.status is invalid.`);\n\t}\n\tconst grant = attempt.grant === undefined ? undefined : executionGrantFromValue(attempt.grant, `${label}.grant`);\n\tconst createdAt = isoDate(attempt.createdAt, `${label}.createdAt`);\n\tconst updatedAt = isoDate(attempt.updatedAt, `${label}.updatedAt`);\n\tif (Date.parse(updatedAt) < Date.parse(createdAt)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.updatedAt is before createdAt.`);\n\t}\n\treturn {\n\t\tattemptId: dispatchIdentifier(attempt.attemptId, `${label}.attemptId`),\n\t\ttaskId: dispatchIdentifier(attempt.taskId, `${label}.taskId`),\n\t\tdispatch: dispatchFromValue(attempt.dispatch, `${label}.dispatch`),\n\t\tstatus: status as AttemptStatus,\n\t\t...(attempt.reasonCode === undefined\n\t\t\t? {}\n\t\t\t: { reasonCode: dispatchIdentifier(attempt.reasonCode, `${label}.reasonCode`) }),\n\t\t...(attempt.grantId === undefined ? {} : { grantId: dispatchIdentifier(attempt.grantId, `${label}.grantId`) }),\n\t\t...(grant ? { grant } : {}),\n\t\t...(attempt.agentId === undefined ? {} : { agentId: dispatchIdentifier(attempt.agentId, `${label}.agentId`) }),\n\t\t...(attempt.lease === undefined ? {} : { lease: leaseFromPayload(toJsonObject({ lease: attempt.lease })) }),\n\t\t...(attempt.retry === undefined ? {} : { retry: retryStateFromValue(attempt.retry, `${label}.retry`) }),\n\t\tcheckpointIds: retainedIdentifierArray(\n\t\t\tattempt.checkpointIds,\n\t\t\tMAX_ORCHESTRATION_CHECKPOINTS,\n\t\t\t`${label}.checkpointIds`,\n\t\t),\n\t\t...(attempt.result === undefined ? {} : { result: resultFromValue(attempt.result, `${label}.result`) }),\n\t\tcreatedAt,\n\t\tupdatedAt,\n\t};\n}\n\nexport function leaseFromPayload(payload: JsonObject): AttemptLease {\n\treturn leaseFromValue(payload.lease, \"lease\");\n}\n\nfunction leaseFromValue(value: unknown, label: string): AttemptLease {\n\tconst lease = exactRecord(value, label, [\n\t\t\"leaseId\",\n\t\t\"attemptId\",\n\t\t\"ownerId\",\n\t\t\"fencingToken\",\n\t\t\"issuedAt\",\n\t\t\"expiresAt\",\n\t]);\n\tconst fencingToken = number(lease.fencingToken, `${label}.fencingToken`);\n\tif (!Number.isSafeInteger(fencingToken) || fencingToken < 1) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.fencingToken must be a positive safe integer.`);\n\t}\n\tconst issuedAt = isoDate(lease.issuedAt, `${label}.issuedAt`);\n\tconst expiresAt = isoDate(lease.expiresAt, `${label}.expiresAt`);\n\tif (Date.parse(expiresAt) <= Date.parse(issuedAt)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.expiresAt must be after issuedAt.`);\n\t}\n\treturn {\n\t\tleaseId: dispatchIdentifier(lease.leaseId, `${label}.leaseId`),\n\t\tattemptId: dispatchIdentifier(lease.attemptId, `${label}.attemptId`),\n\t\townerId: dispatchIdentifier(lease.ownerId, `${label}.ownerId`),\n\t\tfencingToken,\n\t\tissuedAt,\n\t\texpiresAt,\n\t};\n}\n\nexport function retryStateFromValue(value: unknown, label: string): AttemptRetryState {\n\tconst retry = record(value, label);\n\tconst unsupportedField = Object.keys(retry).find((field) => field !== \"retriesUsed\" && field !== \"notBefore\");\n\tif (unsupportedField) throw new DurableTaskRuntimeError(`${label}.${unsupportedField} is unsupported.`);\n\tconst retriesUsed = number(retry.retriesUsed, `${label}.retriesUsed`);\n\tif (!Number.isSafeInteger(retriesUsed) || retriesUsed < 1) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.retriesUsed must be a positive safe integer.`);\n\t}\n\tconst notBefore = string(retry.notBefore, `${label}.notBefore`);\n\tconst notBeforeMs = Date.parse(notBefore);\n\tif (\n\t\t!Number.isFinite(notBeforeMs) ||\n\t\tMath.abs(notBeforeMs) > MAX_DATE_EPOCH_MS ||\n\t\tnew Date(notBeforeMs).toISOString() !== notBefore\n\t) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.notBefore is invalid.`);\n\t}\n\treturn { retriesUsed, notBefore };\n}\n\nexport function checkpointFromPayload(payload: JsonObject): AttemptCheckpoint {\n\treturn checkpointFromValue(payload.checkpoint, \"checkpoint\");\n}\n\nfunction checkpointFromValue(value: unknown, label: string): AttemptCheckpoint {\n\tconst checkpoint = exactRecord(value, label, [\n\t\t\"checkpointId\",\n\t\t\"attemptId\",\n\t\t\"fencingToken\",\n\t\t\"summary\",\n\t\t\"artifactIds\",\n\t\t\"evidenceIds\",\n\t\t\"usage\",\n\t\t\"createdAt\",\n\t]);\n\tconst usage = checkpoint.usage === undefined ? undefined : usageFromPayload(checkpoint.usage, `${label}.usage`);\n\tconst fencingToken = number(checkpoint.fencingToken, `${label}.fencingToken`);\n\tif (!Number.isSafeInteger(fencingToken) || fencingToken < 1) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.fencingToken must be a positive safe integer.`);\n\t}\n\treturn {\n\t\tcheckpointId: dispatchIdentifier(checkpoint.checkpointId, `${label}.checkpointId`),\n\t\tattemptId: dispatchIdentifier(checkpoint.attemptId, `${label}.attemptId`),\n\t\tfencingToken,\n\t\tsummary: checkpointSummary(checkpoint.summary, `${label}.summary`),\n\t\tartifactIds: dispatchIdentifierArray(checkpoint.artifactIds, `${label}.artifactIds`),\n\t\tevidenceIds: dispatchIdentifierArray(checkpoint.evidenceIds, `${label}.evidenceIds`),\n\t\t...(usage ? { usage } : {}),\n\t\tcreatedAt: isoDate(checkpoint.createdAt, `${label}.createdAt`),\n\t};\n}\n\nexport function usageFromPayload(value: unknown, label: string): AttemptCheckpoint[\"usage\"] {\n\tconst usage = record(value, label);\n\tconst expectedFields = [\n\t\t\"toolCalls\",\n\t\t\"inputTokens\",\n\t\t\"outputTokens\",\n\t\t\"cacheReadTokens\",\n\t\t\"cacheWriteTokens\",\n\t\t\"totalTokens\",\n\t\t\"costUsd\",\n\t\t\"activeWallClockMs\",\n\t];\n\tconst unexpected = Object.keys(usage).find((field) => !expectedFields.includes(field));\n\tif (unexpected) throw new DurableTaskRuntimeError(`${label}.${unexpected} is unsupported.`);\n\ttry {\n\t\treturn validateAttemptUsageSnapshot(\n\t\t\t{\n\t\t\t\ttoolCalls: number(usage.toolCalls, `${label}.toolCalls`),\n\t\t\t\tinputTokens: number(usage.inputTokens, `${label}.inputTokens`),\n\t\t\t\toutputTokens: number(usage.outputTokens, `${label}.outputTokens`),\n\t\t\t\tcacheReadTokens: number(usage.cacheReadTokens, `${label}.cacheReadTokens`),\n\t\t\t\tcacheWriteTokens: number(usage.cacheWriteTokens, `${label}.cacheWriteTokens`),\n\t\t\t\ttotalTokens: number(usage.totalTokens, `${label}.totalTokens`),\n\t\t\t\tcostUsd: number(usage.costUsd, `${label}.costUsd`),\n\t\t\t\tactiveWallClockMs: number(usage.activeWallClockMs, `${label}.activeWallClockMs`),\n\t\t\t},\n\t\t\tlabel,\n\t\t);\n\t} catch (error) {\n\t\tthrow new DurableTaskRuntimeError(error instanceof Error ? error.message : String(error));\n\t}\n}\n\nexport function resultFromPayload(payload: JsonObject): WorkerResultContract {\n\treturn resultFromValue(payload.result, \"result\");\n}\n\nfunction resultFromValue(value: unknown, label: string): WorkerResultContract {\n\tconst result = exactRecord(value, label, [\n\t\t\"schemaVersion\",\n\t\t\"resultId\",\n\t\t\"objectiveId\",\n\t\t\"taskId\",\n\t\t\"attemptId\",\n\t\t\"leaseId\",\n\t\t\"fencingToken\",\n\t\t\"status\",\n\t\t\"reasonCode\",\n\t\t\"summary\",\n\t\t\"artifacts\",\n\t\t\"evidence\",\n\t\t\"errors\",\n\t\t\"nextAction\",\n\t\t\"usage\",\n\t\t\"createdAt\",\n\t]);\n\tif (result.schemaVersion !== ORCHESTRATION_SCHEMA_VERSION) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.schemaVersion is invalid.`);\n\t}\n\tconst status = string(result.status, `${label}.status`);\n\tif (!WORKER_RESULT_STATUSES.some((candidate) => candidate === status)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.status is invalid.`);\n\t}\n\tif (!Array.isArray(result.artifacts) || !Array.isArray(result.evidence) || !Array.isArray(result.errors)) {\n\t\tthrow new DurableTaskRuntimeError(`${label} collections are invalid.`);\n\t}\n\tif (\n\t\tresult.artifacts.length > MAX_ORCHESTRATION_COLLECTION_LENGTH ||\n\t\tresult.evidence.length > MAX_ORCHESTRATION_COLLECTION_LENGTH ||\n\t\tresult.errors.length > MAX_ORCHESTRATION_COLLECTION_LENGTH\n\t) {\n\t\tthrow new DurableTaskRuntimeError(`${label} exceeds its collection limit.`);\n\t}\n\tconst artifacts = result.artifacts.map((value, index) => {\n\t\tconst artifact = exactRecord(value, `${label}.artifacts[${index}]`, [\n\t\t\t\"artifactId\",\n\t\t\t\"kind\",\n\t\t\t\"uri\",\n\t\t\t\"digest\",\n\t\t\t\"sizeBytes\",\n\t\t\t\"createdAt\",\n\t\t\t\"metadata\",\n\t\t]);\n\t\tconst kind = string(artifact.kind, `${label}.artifacts[${index}].kind`);\n\t\tif (![\"diff\", \"file\", \"report\", \"test-result\", \"log\", \"structured-data\"].includes(kind)) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label}.artifacts[${index}].kind is invalid.`);\n\t\t}\n\t\tif (\n\t\t\tartifact.sizeBytes !== undefined &&\n\t\t\t(!Number.isSafeInteger(artifact.sizeBytes) || Number(artifact.sizeBytes) < 0)\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label}.artifacts[${index}].sizeBytes is invalid.`);\n\t\t}\n\t\treturn {\n\t\t\tartifactId: dispatchIdentifier(artifact.artifactId, `${label}.artifacts[${index}].artifactId`),\n\t\t\tkind,\n\t\t\turi: retainedDescription(artifact.uri, `${label}.artifacts[${index}].uri`),\n\t\t\t...(artifact.digest === undefined\n\t\t\t\t? {}\n\t\t\t\t: { digest: dispatchIdentifier(artifact.digest, `${label}.artifacts[${index}].digest`) }),\n\t\t\t...(typeof artifact.sizeBytes === \"number\" ? { sizeBytes: artifact.sizeBytes } : {}),\n\t\t\tcreatedAt: dispatchIdentifier(artifact.createdAt, `${label}.artifacts[${index}].createdAt`),\n\t\t\t...(artifact.metadata === undefined\n\t\t\t\t? {}\n\t\t\t\t: { metadata: structuredClone(record(artifact.metadata, `${label}.artifacts[${index}].metadata`)) }),\n\t\t};\n\t});\n\tconst errors = result.errors.map((value, index) => {\n\t\tconst error = exactRecord(value, `${label}.errors[${index}]`, [\"code\", \"message\", \"retryable\", \"details\"]);\n\t\treturn {\n\t\t\tcode: dispatchIdentifier(error.code, `${label}.errors[${index}].code`),\n\t\t\tmessage: retainedDescription(error.message, `${label}.errors[${index}].message`),\n\t\t\tretryable: boolean(error.retryable, `${label}.errors[${index}].retryable`),\n\t\t\t...(error.details === undefined\n\t\t\t\t? {}\n\t\t\t\t: { details: structuredClone(record(error.details, `${label}.errors[${index}].details`)) }),\n\t\t};\n\t});\n\tconst usage = exactRecord(result.usage, `${label}.usage`, [\n\t\t\"inputTokens\",\n\t\t\"outputTokens\",\n\t\t\"totalTokens\",\n\t\t\"costUsd\",\n\t\t\"wallClockMs\",\n\t\t\"toolCalls\",\n\t]);\n\tfor (const field of [\"inputTokens\", \"outputTokens\", \"totalTokens\"] as const) {\n\t\tif (usage[field] !== undefined && (!Number.isSafeInteger(usage[field]) || Number(usage[field]) < 0)) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label}.usage.${field} is invalid.`);\n\t\t}\n\t}\n\tif (!Number.isSafeInteger(usage.toolCalls) || Number(usage.toolCalls) < 0) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.usage.toolCalls is invalid.`);\n\t}\n\tif (\n\t\tusage.costUsd !== undefined &&\n\t\t(typeof usage.costUsd !== \"number\" || !Number.isFinite(usage.costUsd) || usage.costUsd < 0)\n\t) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.usage.costUsd is invalid.`);\n\t}\n\tif (typeof usage.wallClockMs !== \"number\" || !Number.isFinite(usage.wallClockMs) || usage.wallClockMs < 0) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.usage.wallClockMs is invalid.`);\n\t}\n\tconst fencingToken = number(result.fencingToken, `${label}.fencingToken`);\n\tif (!Number.isSafeInteger(fencingToken) || fencingToken < 1) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.fencingToken is invalid.`);\n\t}\n\treturn {\n\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\tresultId: dispatchIdentifier(result.resultId, `${label}.resultId`),\n\t\tobjectiveId: dispatchIdentifier(result.objectiveId, `${label}.objectiveId`),\n\t\ttaskId: dispatchIdentifier(result.taskId, `${label}.taskId`),\n\t\tattemptId: dispatchIdentifier(result.attemptId, `${label}.attemptId`),\n\t\tleaseId: dispatchIdentifier(result.leaseId, `${label}.leaseId`),\n\t\tfencingToken,\n\t\tstatus: status as WorkerResultContract[\"status\"],\n\t\treasonCode: dispatchIdentifier(result.reasonCode, `${label}.reasonCode`),\n\t\tsummary: retainedWorkerResultSummary(result.summary, `${label}.summary`),\n\t\tartifacts: artifacts as WorkerResultContract[\"artifacts\"],\n\t\tevidence: result.evidence.map((item, index) => evidenceFromValue(item, `${label}.evidence[${index}]`)),\n\t\terrors: errors as WorkerResultContract[\"errors\"],\n\t\t...(result.nextAction === undefined\n\t\t\t? {}\n\t\t\t: { nextAction: retainedDescription(result.nextAction, `${label}.nextAction`) }),\n\t\tusage: {\n\t\t\t...(typeof usage.inputTokens === \"number\" ? { inputTokens: usage.inputTokens } : {}),\n\t\t\t...(typeof usage.outputTokens === \"number\" ? { outputTokens: usage.outputTokens } : {}),\n\t\t\t...(typeof usage.totalTokens === \"number\" ? { totalTokens: usage.totalTokens } : {}),\n\t\t\t...(typeof usage.costUsd === \"number\" ? { costUsd: usage.costUsd } : {}),\n\t\t\twallClockMs: usage.wallClockMs as number,\n\t\t\ttoolCalls: usage.toolCalls as number,\n\t\t},\n\t\tcreatedAt: isoDate(result.createdAt, `${label}.createdAt`),\n\t};\n}\n\nfunction normalizeAgentBinding(value: unknown, label: string): AgentBindingContract {\n\tconst agent = exactRecord(value, label, [\n\t\t\"schemaVersion\",\n\t\t\"agentId\",\n\t\t\"resumeContext\",\n\t\t\"parentAgentId\",\n\t\t\"rootAgentId\",\n\t\t\"depth\",\n\t\t\"role\",\n\t\t\"status\",\n\t\t\"activeAttemptId\",\n\t\t\"createdAt\",\n\t\t\"updatedAt\",\n\t]);\n\tif (agent.schemaVersion !== ORCHESTRATION_SCHEMA_VERSION) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.schemaVersion is invalid.`);\n\t}\n\tconst agentId = dispatchIdentifier(agent.agentId, `${label}.agentId`);\n\tconst parentAgentId = optionalDispatchIdentifier(agent.parentAgentId, `${label}.parentAgentId`);\n\tconst rootAgentId = dispatchIdentifier(agent.rootAgentId, `${label}.rootAgentId`);\n\tconst depth = number(agent.depth, `${label}.depth`);\n\tif (!Number.isSafeInteger(depth) || depth < 0) {\n\t\tthrow new DurableTaskRuntimeError(`${label} lineage is invalid.`);\n\t}\n\tif (parentAgentId && depth === 0) throw new DurableTaskRuntimeError(`${label} child lineage depth is invalid.`);\n\tconst role = string(agent.role, `${label}.role`);\n\tif (!WORKER_ROLES.some((candidate) => candidate === role)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.role is invalid.`);\n\t}\n\tconst status = string(agent.status, `${label}.status`);\n\tif (![\"registered\", \"active\", \"suspended\", \"resuming\", \"retired\"].includes(status)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.status is invalid.`);\n\t}\n\tconst context = exactRecord(agent.resumeContext, `${label}.resumeContext`, [\n\t\t\"provider\",\n\t\t\"sessionId\",\n\t\t\"sessionDir\",\n\t\t\"sessionFile\",\n\t\t\"cwd\",\n\t\t\"worktreeLaneKey\",\n\t\t\"orchestrationProfileId\",\n\t\t\"resourceProfileNames\",\n\t\t\"modelRef\",\n\t\t\"contextPointers\",\n\t\t\"latestCheckpointId\",\n\t]);\n\tconst provider = string(context.provider, `${label}.resumeContext.provider`);\n\tif (provider !== \"pi\" && provider !== \"external\") {\n\t\tthrow new DurableTaskRuntimeError(`${label}.resumeContext.provider is invalid.`);\n\t}\n\tconst optionalPath = (field: \"sessionDir\" | \"sessionFile\"): string | undefined => {\n\t\tconst candidate = context[field];\n\t\tif (candidate === undefined) return undefined;\n\t\tconst path = string(candidate, `${label}.resumeContext.${field}`);\n\t\tif (!path.trim() || path.length > MAX_WORKER_RESOURCE_PATH_LENGTH) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label}.resumeContext.${field} exceeds its durable size bound.`);\n\t\t}\n\t\treturn path;\n\t};\n\tconst cwd = string(context.cwd, `${label}.resumeContext.cwd`);\n\tif (!cwd.trim() || cwd.length > MAX_WORKER_RESOURCE_PATH_LENGTH) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.resumeContext.cwd exceeds its durable size bound.`);\n\t}\n\tconst sessionDir = optionalPath(\"sessionDir\");\n\tconst sessionFile = optionalPath(\"sessionFile\");\n\tconst resumeContext: AgentResumeContext = {\n\t\tprovider,\n\t\tsessionId: dispatchIdentifier(context.sessionId, `${label}.resumeContext.sessionId`),\n\t\t...(sessionDir ? { sessionDir } : {}),\n\t\t...(sessionFile ? { sessionFile } : {}),\n\t\tcwd,\n\t\t...(context.worktreeLaneKey === undefined\n\t\t\t? {}\n\t\t\t: {\n\t\t\t\t\tworktreeLaneKey: dispatchIdentifier(context.worktreeLaneKey, `${label}.resumeContext.worktreeLaneKey`),\n\t\t\t\t}),\n\t\t...(context.orchestrationProfileId === undefined\n\t\t\t? {}\n\t\t\t: {\n\t\t\t\t\torchestrationProfileId: dispatchIdentifier(\n\t\t\t\t\t\tcontext.orchestrationProfileId,\n\t\t\t\t\t\t`${label}.resumeContext.orchestrationProfileId`,\n\t\t\t\t\t),\n\t\t\t\t}),\n\t\tresourceProfileNames: dispatchIdentifierArray(\n\t\t\tcontext.resourceProfileNames,\n\t\t\t`${label}.resumeContext.resourceProfileNames`,\n\t\t),\n\t\t...(context.modelRef === undefined\n\t\t\t? {}\n\t\t\t: { modelRef: dispatchIdentifier(context.modelRef, `${label}.resumeContext.modelRef`) }),\n\t\tcontextPointers: resourcePointersFromValue(context.contextPointers, `${label}.resumeContext.contextPointers`),\n\t\t...(context.latestCheckpointId === undefined\n\t\t\t? {}\n\t\t\t: {\n\t\t\t\t\tlatestCheckpointId: dispatchIdentifier(\n\t\t\t\t\t\tcontext.latestCheckpointId,\n\t\t\t\t\t\t`${label}.resumeContext.latestCheckpointId`,\n\t\t\t\t\t),\n\t\t\t\t}),\n\t};\n\ttry {\n\t\tcreateAgentIdentity(agentId, resumeContext);\n\t} catch (error) {\n\t\tthrow new DurableTaskRuntimeError(error instanceof Error ? error.message : String(error));\n\t}\n\tconst createdAt = isoDate(agent.createdAt, `${label}.createdAt`);\n\tconst updatedAt = isoDate(agent.updatedAt, `${label}.updatedAt`);\n\tif (Date.parse(updatedAt) < Date.parse(createdAt)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.updatedAt is before createdAt.`);\n\t}\n\treturn {\n\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\tagentId,\n\t\tresumeContext,\n\t\t...(parentAgentId ? { parentAgentId } : {}),\n\t\trootAgentId,\n\t\tdepth,\n\t\trole: role as AgentBindingContract[\"role\"],\n\t\tstatus: status as AgentBindingContract[\"status\"],\n\t\t...(agent.activeAttemptId === undefined\n\t\t\t? {}\n\t\t\t: { activeAttemptId: dispatchIdentifier(agent.activeAttemptId, `${label}.activeAttemptId`) }),\n\t\tcreatedAt,\n\t\tupdatedAt,\n\t};\n}\n\nexport function agentFromPayload(payload: JsonObject): AgentBindingContract {\n\treturn normalizeAgentBinding(payload.agent, \"agent\");\n}\n\nexport function approvalFromPayload(payload: JsonObject): ApprovalRequestContract {\n\treturn approvalFromValue(payload.approval, \"approval\");\n}\n\nfunction approvalFromValue(value: unknown, label: string): ApprovalRequestContract {\n\tconst approval = exactRecord(value, label, [\n\t\t\"schemaVersion\",\n\t\t\"approvalId\",\n\t\t\"objectiveId\",\n\t\t\"taskId\",\n\t\t\"attemptId\",\n\t\t\"reasonCode\",\n\t\t\"summary\",\n\t\t\"requestedCapabilities\",\n\t\t\"requestedBudget\",\n\t\t\"reversible\",\n\t\t\"createdAt\",\n\t]);\n\tconst capabilities = stringArray(approval.requestedCapabilities, `${label}.requestedCapabilities`);\n\tif (\n\t\tcapabilities.length > MAX_ORCHESTRATION_COLLECTION_LENGTH ||\n\t\tnew Set(capabilities).size !== capabilities.length ||\n\t\t!capabilities.every(isHarnessCapability)\n\t) {\n\t\tthrow new DurableTaskRuntimeError(`${label} contains invalid capabilities.`);\n\t}\n\tconst requestedBudget =\n\t\tapproval.requestedBudget !== undefined\n\t\t\t? (structuredClone(record(approval.requestedBudget, `${label}.requestedBudget`)) as RiskBudget)\n\t\t\t: undefined;\n\tassertRiskBudget(requestedBudget, `${label}.requestedBudget`);\n\tif (capabilities.length === 0 && !requestedBudget) {\n\t\tthrow new DurableTaskRuntimeError(`${label} must request capabilities or budget.`);\n\t}\n\tif (approval.schemaVersion !== ORCHESTRATION_SCHEMA_VERSION) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.schemaVersion is invalid.`);\n\t}\n\treturn {\n\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\tapprovalId: dispatchIdentifier(approval.approvalId, `${label}.approvalId`),\n\t\tobjectiveId: dispatchIdentifier(approval.objectiveId, `${label}.objectiveId`),\n\t\t...(approval.taskId !== undefined ? { taskId: dispatchIdentifier(approval.taskId, `${label}.taskId`) } : {}),\n\t\t...(approval.attemptId !== undefined\n\t\t\t? { attemptId: dispatchIdentifier(approval.attemptId, `${label}.attemptId`) }\n\t\t\t: {}),\n\t\treasonCode: dispatchIdentifier(approval.reasonCode, `${label}.reasonCode`),\n\t\tsummary: retainedDescription(approval.summary, `${label}.summary`),\n\t\trequestedCapabilities: capabilities,\n\t\t...(requestedBudget ? { requestedBudget } : {}),\n\t\treversible: boolean(approval.reversible, `${label}.reversible`),\n\t\tcreatedAt: isoDate(approval.createdAt, `${label}.createdAt`),\n\t};\n}\n\nexport function approvalResolutionFromPayload(payload: JsonObject): ApprovalResolutionContract {\n\treturn approvalResolutionFromValue(payload.resolution, \"resolution\");\n}\n\nfunction approvalResolutionFromValue(value: unknown, label: string): ApprovalResolutionContract {\n\tconst resolution = exactRecord(value, label, [\"schemaVersion\", \"approvalId\", \"outcome\", \"reasonCode\", \"resolvedAt\"]);\n\tif (resolution.schemaVersion !== ORCHESTRATION_SCHEMA_VERSION) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.schemaVersion is invalid.`);\n\t}\n\tconst outcome = string(resolution.outcome, `${label}.outcome`);\n\tif (outcome !== \"approved\" && outcome !== \"rejected\") {\n\t\tthrow new DurableTaskRuntimeError(`Unknown approval outcome '${outcome}'.`);\n\t}\n\treturn {\n\t\tschemaVersion: ORCHESTRATION_SCHEMA_VERSION,\n\t\tapprovalId: dispatchIdentifier(resolution.approvalId, `${label}.approvalId`),\n\t\toutcome,\n\t\treasonCode: dispatchIdentifier(resolution.reasonCode, `${label}.reasonCode`),\n\t\tresolvedAt: isoDate(resolution.resolvedAt, `${label}.resolvedAt`),\n\t};\n}\n\nfunction approvalRuntimeStateFromValue(value: unknown, label: string): ApprovalRuntimeState {\n\tconst state = exactRecord(value, label, [\"request\", \"status\", \"resolution\"]);\n\tconst request = approvalFromValue(state.request, `${label}.request`);\n\tconst status = string(state.status, `${label}.status`);\n\tif (status !== \"pending\" && status !== \"approved\" && status !== \"rejected\") {\n\t\tthrow new DurableTaskRuntimeError(`${label}.status is invalid.`);\n\t}\n\tconst resolution =\n\t\tstate.resolution === undefined ? undefined : approvalResolutionFromValue(state.resolution, `${label}.resolution`);\n\tif (status === \"pending\" && resolution) {\n\t\tthrow new DurableTaskRuntimeError(`${label} pending approval cannot have a resolution.`);\n\t}\n\tif (\n\t\tstatus !== \"pending\" &&\n\t\t(!resolution || resolution.approvalId !== request.approvalId || resolution.outcome !== status)\n\t) {\n\t\tthrow new DurableTaskRuntimeError(`${label} resolution does not match its approval state.`);\n\t}\n\tif (resolution && Date.parse(resolution.resolvedAt) < Date.parse(request.createdAt)) {\n\t\tthrow new DurableTaskRuntimeError(`${label} resolution predates its request.`);\n\t}\n\treturn { request, status, ...(resolution ? { resolution } : {}) };\n}\n\nfunction notificationRuntimeStateFromValue(value: unknown, label: string): NotificationRuntimeState {\n\tconst notification = exactRecord(value, label, [\n\t\t\"notificationId\",\n\t\t\"objectiveId\",\n\t\t\"attemptId\",\n\t\t\"status\",\n\t\t\"message\",\n\t\t\"createdAt\",\n\t\t\"deliveredAt\",\n\t]);\n\tconst status = string(notification.status, `${label}.status`);\n\tif (status !== \"pending\" && status !== \"delivered\") {\n\t\tthrow new DurableTaskRuntimeError(`${label}.status is invalid.`);\n\t}\n\tconst createdAt = isoDate(notification.createdAt, `${label}.createdAt`);\n\tconst deliveredAt =\n\t\tnotification.deliveredAt === undefined ? undefined : isoDate(notification.deliveredAt, `${label}.deliveredAt`);\n\tif ((status === \"delivered\") !== Boolean(deliveredAt)) {\n\t\tthrow new DurableTaskRuntimeError(`${label} delivery status is inconsistent.`);\n\t}\n\tif (deliveredAt && Date.parse(deliveredAt) < Date.parse(createdAt)) {\n\t\tthrow new DurableTaskRuntimeError(`${label}.deliveredAt predates createdAt.`);\n\t}\n\treturn {\n\t\tnotificationId: dispatchIdentifier(notification.notificationId, `${label}.notificationId`),\n\t\tobjectiveId: dispatchIdentifier(notification.objectiveId, `${label}.objectiveId`),\n\t\t...(notification.attemptId === undefined\n\t\t\t? {}\n\t\t\t: { attemptId: dispatchIdentifier(notification.attemptId, `${label}.attemptId`) }),\n\t\tstatus,\n\t\tmessage: retainedDescription(notification.message, `${label}.message`),\n\t\tcreatedAt,\n\t\t...(deliveredAt ? { deliveredAt } : {}),\n\t};\n}\n\nfunction taskDependencyReaches(\n\ttasks: TaskRuntimeProjection[\"tasks\"],\n\tstartTaskId: string,\n\ttargetTaskId: string,\n\tvisited = new Set<string>(),\n): boolean {\n\tif (startTaskId === targetTaskId) return true;\n\tif (visited.has(startTaskId)) return false;\n\tvisited.add(startTaskId);\n\treturn (tasks[startTaskId]?.task.dependsOn ?? []).some((dependencyId) =>\n\t\ttaskDependencyReaches(tasks, dependencyId, targetTaskId, visited),\n\t);\n}\n\nexport function validateTaskContractForState(state: TaskRuntimeProjection, task: TaskContract, label: string): void {\n\tconst objective = state.objectives[task.objectiveId]?.objective;\n\tif (!objective) throw new DurableTaskRuntimeError(`${label} references an unknown objective.`);\n\tif (task.status !== (task.dependsOn.length === 0 ? \"ready\" : \"pending\")) {\n\t\tthrow new DurableTaskRuntimeError(`${label} initial status does not match its dependencies.`);\n\t}\n\tfor (const dependencyId of task.dependsOn) {\n\t\tif (dependencyId === task.taskId) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} cannot depend on itself.`);\n\t\t}\n\t\tconst dependency = state.tasks[dependencyId];\n\t\tif (!dependency || dependency.task.objectiveId !== task.objectiveId) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} dependency '${dependencyId}' is not in its objective.`);\n\t\t}\n\t\tif (taskDependencyReaches(state.tasks, dependencyId, task.taskId)) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} introduces a dependency cycle.`);\n\t\t}\n\t}\n\tconst criterionIds = new Set(objective.acceptanceCriteria.map((criterion) => criterion.id));\n\tconst unknownCriteria = task.acceptanceCriterionIds.filter((criterionId) => !criterionIds.has(criterionId));\n\tif (unknownCriteria.length > 0) {\n\t\tthrow new DurableTaskRuntimeError(\n\t\t\t`${label} references unknown acceptance criteria: ${unknownCriteria.join(\", \")}.`,\n\t\t);\n\t}\n\tif (task.verificationOfTaskId) {\n\t\tconst subject = state.tasks[task.verificationOfTaskId];\n\t\tif (!subject || subject.task.objectiveId !== task.objectiveId) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} verification subject is not in its objective.`);\n\t\t}\n\t\tif (task.role !== \"verifier\" || subject.task.role === \"verifier\") {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} has an invalid verification relationship.`);\n\t\t}\n\t}\n}\n\nfunction validateSnapshotTaskGraph(state: TaskRuntimeProjection): void {\n\tconst label = \"Orchestration projection snapshot\";\n\tconst taskObjectiveOwners = new Map<string, string>();\n\tfor (const [objectiveId, objectiveState] of Object.entries(state.objectives)) {\n\t\tif (objectiveState.objective.objectiveId !== objectiveId) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} objective '${objectiveId}' has a mismatched id.`);\n\t\t}\n\t\tif (Date.parse(objectiveState.objective.updatedAt) < Date.parse(objectiveState.objective.createdAt)) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} objective '${objectiveId}' has invalid lifecycle dates.`);\n\t\t}\n\t\tfor (const taskId of objectiveState.taskIds) {\n\t\t\tconst existingOwner = taskObjectiveOwners.get(taskId);\n\t\t\tif (existingOwner) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} task '${taskId}' is listed by multiple objectives.`);\n\t\t\t}\n\t\t\tconst task = state.tasks[taskId];\n\t\t\tif (!task || task.task.objectiveId !== objectiveId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t\t`${label} objective '${objectiveId}' lists an unknown or cross-objective task '${taskId}'.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\ttaskObjectiveOwners.set(taskId, objectiveId);\n\t\t}\n\t}\n\n\tfor (const [taskId, taskState] of Object.entries(state.tasks)) {\n\t\tif (taskState.task.taskId !== taskId) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} task '${taskId}' has a mismatched id.`);\n\t\t}\n\t\tconst objectiveState = state.objectives[taskState.task.objectiveId];\n\t\tif (!objectiveState) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} task '${taskId}' has no objective.`);\n\t\t}\n\t\tif (taskObjectiveOwners.get(taskId) !== taskState.task.objectiveId) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} task '${taskId}' is missing from its objective task list.`);\n\t\t}\n\t\tif (Date.parse(taskState.task.updatedAt) < Date.parse(taskState.task.createdAt)) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} task '${taskId}' has invalid lifecycle dates.`);\n\t\t}\n\t\tconst criterionIds = new Set(objectiveState.objective.acceptanceCriteria.map((criterion) => criterion.id));\n\t\tconst unknownCriteria = taskState.task.acceptanceCriterionIds.filter(\n\t\t\t(criterionId) => !criterionIds.has(criterionId),\n\t\t);\n\t\tif (unknownCriteria.length > 0) {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`${label} task '${taskId}' references unknown acceptance criteria: ${unknownCriteria.join(\", \")}.`,\n\t\t\t);\n\t\t}\n\t\tfor (const dependencyId of taskState.task.dependsOn) {\n\t\t\tif (dependencyId === taskId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} task graph contains a self-cycle.`);\n\t\t\t}\n\t\t\tconst dependency = state.tasks[dependencyId];\n\t\t\tif (!dependency || dependency.task.objectiveId !== taskState.task.objectiveId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} task '${taskId}' dependency is not in its objective.`);\n\t\t\t}\n\t\t\tif (taskDependencyReaches(state.tasks, dependencyId, taskId)) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} task graph contains a cycle.`);\n\t\t\t}\n\t\t}\n\t\tif (taskState.task.verificationOfTaskId) {\n\t\t\tconst subject = state.tasks[taskState.task.verificationOfTaskId];\n\t\t\tif (\n\t\t\t\t!subject ||\n\t\t\t\tsubject.task.objectiveId !== taskState.task.objectiveId ||\n\t\t\t\ttaskState.task.role !== \"verifier\" ||\n\t\t\t\tsubject.task.role === \"verifier\"\n\t\t\t) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} task '${taskId}' has an invalid verification relationship.`);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst attemptTaskOwners = new Map<string, string>();\n\tfor (const [taskId, taskState] of Object.entries(state.tasks)) {\n\t\tfor (const attemptId of taskState.attemptIds) {\n\t\t\tconst existingOwner = attemptTaskOwners.get(attemptId);\n\t\t\tif (existingOwner) {\n\t\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t\t`Orchestration projection snapshot attempt '${attemptId}' is listed by multiple tasks.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst attempt = state.attempts[attemptId];\n\t\t\tif (!attempt || attempt.taskId !== taskId || attempt.dispatch.taskId !== taskId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t\t`${label} task '${taskId}' lists an unknown or cross-task attempt '${attemptId}'.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tattemptTaskOwners.set(attemptId, taskId);\n\t\t}\n\t}\n\tfor (const [attemptId, attempt] of Object.entries(state.attempts)) {\n\t\tif (attempt.attemptId !== attemptId) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} attempt '${attemptId}' has a mismatched id.`);\n\t\t}\n\t\tif (attempt.dispatch.taskId !== attempt.taskId) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} attempt '${attemptId}' dispatch references a different task.`);\n\t\t}\n\t\tconst task = state.tasks[attempt.taskId];\n\t\tif (!task || attemptTaskOwners.get(attemptId) !== attempt.taskId) {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`${label} attempt '${attemptId}' is missing from its owning task attempt list.`,\n\t\t\t);\n\t\t}\n\t\tif (attempt.dispatch.executionContract?.worker.profile.role !== undefined) {\n\t\t\tconst contract = attempt.dispatch.executionContract;\n\t\t\tif (\n\t\t\t\tcontract.worker.profile.profileId !== attempt.dispatch.profileId ||\n\t\t\t\tcontract.worker.profile.role !== task.task.role\n\t\t\t) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} attempt '${attemptId}' execution contract is inconsistent.`);\n\t\t\t}\n\t\t}\n\t\tif (attempt.lease?.attemptId !== undefined && attempt.lease.attemptId !== attemptId) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} attempt '${attemptId}' has a cross-attempt lease.`);\n\t\t}\n\t\tif (attempt.grant) {\n\t\t\tif (\n\t\t\t\tattempt.grantId !== attempt.grant.grantId ||\n\t\t\t\tattempt.grant.attemptId !== attemptId ||\n\t\t\t\tattempt.grant.taskId !== attempt.taskId ||\n\t\t\t\tattempt.grant.objectiveId !== task.task.objectiveId ||\n\t\t\t\tattempt.grant.role !== task.task.role\n\t\t\t) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} attempt '${attemptId}' has an inconsistent grant.`);\n\t\t\t}\n\t\t}\n\t\tif ([\"leased\", \"running\", \"suspended\"].includes(attempt.status) && (!attempt.grantId || !attempt.lease)) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} live attempt '${attemptId}' lacks a grant or lease.`);\n\t\t}\n\t\tif (\n\t\t\tattempt.status === \"queued\" &&\n\t\t\t(attempt.lease || attempt.agentId || attempt.result || attempt.checkpointIds.length)\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} queued attempt '${attemptId}' contains live execution state.`);\n\t\t}\n\t\tif (\n\t\t\tattempt.retry &&\n\t\t\t(![\"suspended\", \"leased\", \"running\"].includes(attempt.status) || !attempt.agentId || !attempt.lease)\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`${label} attempt '${attemptId}' retains retry state outside the resumable agent lifecycle.`,\n\t\t\t);\n\t\t}\n\t\tif (attempt.agentId && !state.agents[attempt.agentId]) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} attempt '${attemptId}' references an unknown agent.`);\n\t\t}\n\t\tif (attempt.result) {\n\t\t\tconst result = attempt.result;\n\t\t\tif (\n\t\t\t\tattempt.status !== result.status ||\n\t\t\t\tresult.attemptId !== attemptId ||\n\t\t\t\tresult.taskId !== attempt.taskId ||\n\t\t\t\tresult.objectiveId !== task.task.objectiveId ||\n\t\t\t\t!attempt.lease ||\n\t\t\t\tresult.leaseId !== attempt.lease.leaseId ||\n\t\t\t\tresult.fencingToken !== attempt.lease.fencingToken\n\t\t\t) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} attempt '${attemptId}' has an inconsistent result.`);\n\t\t\t}\n\t\t\tif (\n\t\t\t\tresult.status === \"completed\" &&\n\t\t\t\tmissingTrustedCriteria(result, task.task.acceptanceCriterionIds).length > 0\n\t\t\t) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} completed attempt '${attemptId}' lacks trusted evidence.`);\n\t\t\t}\n\t\t} else if ([\"completed\", \"partial\", \"failed\"].includes(attempt.status)) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} terminal attempt '${attemptId}' lacks its result.`);\n\t\t}\n\t}\n\n\tfor (const [taskId, task] of Object.entries(state.tasks)) {\n\t\tconst liveAttempts = task.attemptIds\n\t\t\t.map((attemptId) => state.attempts[attemptId]!)\n\t\t\t.filter((attempt) => !terminalAttemptStatus(attempt.status));\n\t\tif (liveAttempts.length > 1) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} task '${taskId}' owns multiple live attempts.`);\n\t\t}\n\t\tconst liveAttempt = liveAttempts[0];\n\t\tif (liveAttempt && [\"leased\", \"running\", \"suspended\"].includes(liveAttempt.status)) {\n\t\t\tif (task.task.status !== \"running\") {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} task '${taskId}' does not reflect its live attempt.`);\n\t\t\t}\n\t\t} else if (liveAttempt?.status === \"queued\" && ![\"pending\", \"ready\"].includes(task.task.status)) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} queued task '${taskId}' has an invalid status.`);\n\t\t} else if (!liveAttempt && task.task.status === \"running\") {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} running task '${taskId}' has no live attempt.`);\n\t\t}\n\t}\n\n\tconst checkpointAttemptOwners = new Map<string, string>();\n\tfor (const [attemptId, attempt] of Object.entries(state.attempts)) {\n\t\tfor (const checkpointId of attempt.checkpointIds) {\n\t\t\tif (checkpointAttemptOwners.has(checkpointId)) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} checkpoint '${checkpointId}' is listed by multiple attempts.`);\n\t\t\t}\n\t\t\tconst checkpoint = state.checkpoints[checkpointId];\n\t\t\tif (!checkpoint || checkpoint.attemptId !== attemptId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} attempt '${attemptId}' lists a cross-attempt checkpoint.`);\n\t\t\t}\n\t\t\tcheckpointAttemptOwners.set(checkpointId, attemptId);\n\t\t}\n\t}\n\tfor (const [checkpointId, checkpoint] of Object.entries(state.checkpoints)) {\n\t\tconst attempt = state.attempts[checkpoint.attemptId];\n\t\tif (\n\t\t\tcheckpoint.checkpointId !== checkpointId ||\n\t\t\t!attempt ||\n\t\t\tcheckpointAttemptOwners.get(checkpointId) !== checkpoint.attemptId ||\n\t\t\t!attempt.lease ||\n\t\t\tcheckpoint.fencingToken > attempt.lease.fencingToken ||\n\t\t\tDate.parse(checkpoint.createdAt) < Date.parse(attempt.createdAt)\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} checkpoint '${checkpointId}' has invalid ownership.`);\n\t\t}\n\t}\n\n\tfor (const [agentId, agent] of Object.entries(state.agents)) {\n\t\tif (agent.agentId !== agentId)\n\t\t\tthrow new DurableTaskRuntimeError(`${label} agent '${agentId}' has a mismatched id.`);\n\t\tif (agent.parentAgentId) {\n\t\t\tconst parent = state.agents[agent.parentAgentId];\n\t\t\tif (!parent || parent.rootAgentId !== agent.rootAgentId || agent.depth !== parent.depth + 1) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} agent '${agentId}' has invalid lineage.`);\n\t\t\t}\n\t\t} else if (agent.rootAgentId !== agentId || agent.depth !== 0) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} root agent '${agentId}' has invalid lineage.`);\n\t\t}\n\t\tconst lineage = new Set<string>([agentId]);\n\t\tlet ancestorId = agent.parentAgentId;\n\t\twhile (ancestorId) {\n\t\t\tif (lineage.has(ancestorId)) throw new DurableTaskRuntimeError(`${label} agent lineage contains a cycle.`);\n\t\t\tlineage.add(ancestorId);\n\t\t\tancestorId = state.agents[ancestorId]?.parentAgentId;\n\t\t}\n\t\tconst activeAttempt = agent.activeAttemptId ? state.attempts[agent.activeAttemptId] : undefined;\n\t\tif (agent.status === \"registered\" || agent.status === \"retired\") {\n\t\t\tif (agent.activeAttemptId)\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} idle agent '${agentId}' owns an attempt.`);\n\t\t} else if (!activeAttempt || activeAttempt.agentId !== agentId) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} active agent '${agentId}' lacks its attempt.`);\n\t\t} else if (\n\t\t\t(agent.status === \"active\" && ![\"leased\", \"running\"].includes(activeAttempt.status)) ||\n\t\t\t((agent.status === \"suspended\" || agent.status === \"resuming\") && activeAttempt.status !== \"suspended\")\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} agent '${agentId}' status conflicts with its attempt.`);\n\t\t}\n\t\tif (agent.resumeContext.latestCheckpointId) {\n\t\t\tconst checkpoint = state.checkpoints[agent.resumeContext.latestCheckpointId];\n\t\t\tconst attempt = checkpoint ? state.attempts[checkpoint.attemptId] : undefined;\n\t\t\tif (!checkpoint || attempt?.agentId !== agentId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(`${label} agent '${agentId}' has an unrelated latest checkpoint.`);\n\t\t\t}\n\t\t}\n\t}\n\tfor (const attempt of Object.values(state.attempts)) {\n\t\tif (!attempt.agentId || terminalAttemptStatus(attempt.status)) continue;\n\t\tconst agent = state.agents[attempt.agentId];\n\t\tif (\n\t\t\t!agent ||\n\t\t\tagent.activeAttemptId !== attempt.attemptId ||\n\t\t\t([\"leased\", \"running\"].includes(attempt.status) && agent.status !== \"active\") ||\n\t\t\t(attempt.status === \"suspended\" && agent.status !== \"suspended\" && agent.status !== \"resuming\")\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t`${label} attempt '${attempt.attemptId}' has an inconsistent agent binding.`,\n\t\t\t);\n\t\t}\n\t}\n\n\tfor (const [approvalId, approval] of Object.entries(state.approvals)) {\n\t\tconst request = approval.request;\n\t\tif (request.approvalId !== approvalId || !state.objectives[request.objectiveId]) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} approval '${approvalId}' has invalid ownership.`);\n\t\t}\n\t\tconst task = request.taskId ? state.tasks[request.taskId] : undefined;\n\t\tif (\n\t\t\t(request.taskId && task?.task.objectiveId !== request.objectiveId) ||\n\t\t\t(request.attemptId && !request.taskId)\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} approval '${approvalId}' has a cross-objective task.`);\n\t\t}\n\t\tconst attempt = request.attemptId ? state.attempts[request.attemptId] : undefined;\n\t\tif (request.attemptId && attempt?.taskId !== request.taskId) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} approval '${approvalId}' has a cross-task attempt.`);\n\t\t}\n\t\tif (approval.status === \"pending\" && attempt && (attempt.status !== \"queued\" || attempt.grantId)) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} pending approval '${approvalId}' no longer awaits policy.`);\n\t\t}\n\t\tconst notification = state.notifications[`approval-requested:${approvalId}`];\n\t\tif (\n\t\t\t!notification ||\n\t\t\tnotification.objectiveId !== request.objectiveId ||\n\t\t\tnotification.attemptId !== request.attemptId ||\n\t\t\tnotification.message !== request.summary\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} approval '${approvalId}' lacks its notification.`);\n\t\t}\n\t}\n\n\tfor (const [notificationId, notification] of Object.entries(state.notifications)) {\n\t\tif (notification.notificationId !== notificationId || !state.objectives[notification.objectiveId]) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} notification '${notificationId}' has invalid ownership.`);\n\t\t}\n\t\tif (notification.attemptId) {\n\t\t\tconst attempt = state.attempts[notification.attemptId];\n\t\t\tconst task = attempt ? state.tasks[attempt.taskId] : undefined;\n\t\t\tif (!attempt || task?.task.objectiveId !== notification.objectiveId) {\n\t\t\t\tthrow new DurableTaskRuntimeError(\n\t\t\t\t\t`${label} notification '${notificationId}' has a cross-objective attempt.`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (const [taskId, subject] of Object.entries(state.tasks)) {\n\t\tconst verification = subject.verification;\n\t\tif (!verification) continue;\n\t\tconst verifierTask = state.tasks[verification.verifierTaskId];\n\t\tconst verifierAttempt = state.attempts[verification.verifierAttemptId];\n\t\tif (\n\t\t\t!verifierTask ||\n\t\t\tverifierTask.task.verificationOfTaskId !== taskId ||\n\t\t\t!verifierAttempt ||\n\t\t\tverifierAttempt.taskId !== verification.verifierTaskId ||\n\t\t\t!terminalAttemptStatus(verifierAttempt.status)\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} task '${taskId}' has an invalid verification record.`);\n\t\t}\n\t\tif (verification.verdict === \"accepted\" && subject.task.status !== \"completed\") {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} accepted verification for '${taskId}' is not completed.`);\n\t\t}\n\t\tif (\n\t\t\tverification.verdict !== \"inconclusive\" &&\n\t\t\t!verifierAttempt.result?.evidence.some(\n\t\t\t\t(evidence) =>\n\t\t\t\t\tevidence.trusted &&\n\t\t\t\t\tevidence.kind === \"review\" &&\n\t\t\t\t\tevidence.metadata?.subjectTaskId === taskId &&\n\t\t\t\t\tevidence.metadata.verdict === verification.verdict,\n\t\t\t)\n\t\t) {\n\t\t\tthrow new DurableTaskRuntimeError(`${label} task '${taskId}' verification lacks matching evidence.`);\n\t\t}\n\t}\n}\n"]}