@earendil-works/pi-durable 1.5.0 → 1.5.1

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 (201) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +17 -4
  3. package/dist/codemode/codemode.d.ts +2 -1
  4. package/dist/codemode/codemode.d.ts.map +1 -1
  5. package/dist/codemode/codemode.js +1 -37
  6. package/dist/codemode/codemode.js.map +1 -1
  7. package/dist/codemode/models.d.ts +2 -1
  8. package/dist/codemode/models.d.ts.map +1 -1
  9. package/dist/codemode/models.js.map +1 -1
  10. package/dist/documents.d.ts +1 -1
  11. package/dist/documents.d.ts.map +1 -1
  12. package/dist/documents.js +1 -1
  13. package/dist/documents.js.map +1 -1
  14. package/dist/entries.d.ts +1 -1
  15. package/dist/entries.d.ts.map +1 -1
  16. package/dist/entries.js.map +1 -1
  17. package/dist/env/index.d.ts +1 -1
  18. package/dist/env/index.d.ts.map +1 -1
  19. package/dist/env/index.js.map +1 -1
  20. package/dist/env/node-watch.d.ts +1 -1
  21. package/dist/env/node-watch.d.ts.map +1 -1
  22. package/dist/env/node-watch.js.map +1 -1
  23. package/dist/env/node.d.ts +1 -1
  24. package/dist/env/node.d.ts.map +1 -1
  25. package/dist/env/node.js.map +1 -1
  26. package/dist/harness/agent.d.ts.map +1 -1
  27. package/dist/harness/agent.js +27 -1
  28. package/dist/harness/agent.js.map +1 -1
  29. package/dist/harness/compaction.d.ts +8 -3
  30. package/dist/harness/compaction.d.ts.map +1 -1
  31. package/dist/harness/compaction.js +21 -9
  32. package/dist/harness/compaction.js.map +1 -1
  33. package/dist/harness/context.d.ts +1 -1
  34. package/dist/harness/context.d.ts.map +1 -1
  35. package/dist/harness/context.js.map +1 -1
  36. package/dist/harness/define.d.ts +1 -1
  37. package/dist/harness/define.d.ts.map +1 -1
  38. package/dist/harness/define.js.map +1 -1
  39. package/dist/harness/generation.d.ts +1 -1
  40. package/dist/harness/generation.d.ts.map +1 -1
  41. package/dist/harness/generation.js +6 -4
  42. package/dist/harness/generation.js.map +1 -1
  43. package/dist/harness/harness.d.ts +1 -1
  44. package/dist/harness/harness.d.ts.map +1 -1
  45. package/dist/harness/harness.js.map +1 -1
  46. package/dist/harness/inbox.d.ts +2 -1
  47. package/dist/harness/inbox.d.ts.map +1 -1
  48. package/dist/harness/inbox.js +1 -1
  49. package/dist/harness/inbox.js.map +1 -1
  50. package/dist/harness/json.d.ts +1 -1
  51. package/dist/harness/json.d.ts.map +1 -1
  52. package/dist/harness/json.js.map +1 -1
  53. package/dist/harness/live.d.ts +2 -1
  54. package/dist/harness/live.d.ts.map +1 -1
  55. package/dist/harness/live.js.map +1 -1
  56. package/dist/harness/partial-changes.d.ts +1 -1
  57. package/dist/harness/partial-changes.d.ts.map +1 -1
  58. package/dist/harness/partial-changes.js +1 -0
  59. package/dist/harness/partial-changes.js.map +1 -1
  60. package/dist/harness/prompt.d.ts +1 -1
  61. package/dist/harness/prompt.d.ts.map +1 -1
  62. package/dist/harness/prompt.js.map +1 -1
  63. package/dist/harness/provider.d.ts +1 -1
  64. package/dist/harness/provider.d.ts.map +1 -1
  65. package/dist/harness/provider.js.map +1 -1
  66. package/dist/harness/registry-reader.d.ts +1 -1
  67. package/dist/harness/registry-reader.d.ts.map +1 -1
  68. package/dist/harness/registry-reader.js.map +1 -1
  69. package/dist/harness/scheduler.d.ts +2 -1
  70. package/dist/harness/scheduler.d.ts.map +1 -1
  71. package/dist/harness/scheduler.js +42 -13
  72. package/dist/harness/scheduler.js.map +1 -1
  73. package/dist/harness/submissions.d.ts +1 -1
  74. package/dist/harness/submissions.d.ts.map +1 -1
  75. package/dist/harness/submissions.js +1 -1
  76. package/dist/harness/submissions.js.map +1 -1
  77. package/dist/harness/task-graph.d.ts +3 -1
  78. package/dist/harness/task-graph.d.ts.map +1 -1
  79. package/dist/harness/task-graph.js +1 -1
  80. package/dist/harness/task-graph.js.map +1 -1
  81. package/dist/harness/tool.d.ts +1 -1
  82. package/dist/harness/tool.d.ts.map +1 -1
  83. package/dist/harness/tool.js +1 -1
  84. package/dist/harness/tool.js.map +1 -1
  85. package/dist/harness/transcript.d.ts +1 -1
  86. package/dist/harness/transcript.d.ts.map +1 -1
  87. package/dist/harness/transcript.js.map +1 -1
  88. package/dist/harness/types.d.ts +21 -4
  89. package/dist/harness/types.d.ts.map +1 -1
  90. package/dist/harness/types.js.map +1 -1
  91. package/dist/harness/usage.d.ts +2 -1
  92. package/dist/harness/usage.d.ts.map +1 -1
  93. package/dist/harness/usage.js +1 -1
  94. package/dist/harness/usage.js.map +1 -1
  95. package/dist/harness/util.d.ts +1 -1
  96. package/dist/harness/util.d.ts.map +1 -1
  97. package/dist/harness/util.js.map +1 -1
  98. package/dist/harness/view.d.ts +2 -1
  99. package/dist/harness/view.d.ts.map +1 -1
  100. package/dist/harness/view.js +1 -1
  101. package/dist/harness/view.js.map +1 -1
  102. package/dist/index.d.ts +1 -1
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.js.map +1 -1
  105. package/dist/session/cached-storage.d.ts +2 -1
  106. package/dist/session/cached-storage.d.ts.map +1 -1
  107. package/dist/session/cached-storage.js.map +1 -1
  108. package/dist/session/forks.d.ts +1 -1
  109. package/dist/session/forks.d.ts.map +1 -1
  110. package/dist/session/forks.js.map +1 -1
  111. package/dist/session/keys.d.ts +2 -1
  112. package/dist/session/keys.d.ts.map +1 -1
  113. package/dist/session/keys.js.map +1 -1
  114. package/dist/session/session.d.ts +3 -1
  115. package/dist/session/session.d.ts.map +1 -1
  116. package/dist/session/session.js +1 -1
  117. package/dist/session/session.js.map +1 -1
  118. package/dist/session/transaction.d.ts +4 -3
  119. package/dist/session/transaction.d.ts.map +1 -1
  120. package/dist/session/transaction.js +3 -3
  121. package/dist/session/transaction.js.map +1 -1
  122. package/dist/session/writer.d.ts +1 -1
  123. package/dist/session/writer.d.ts.map +1 -1
  124. package/dist/session/writer.js.map +1 -1
  125. package/dist/storage/indexeddb.d.ts +2 -1
  126. package/dist/storage/indexeddb.d.ts.map +1 -1
  127. package/dist/storage/indexeddb.js.map +1 -1
  128. package/dist/storage/jsonl/index.d.ts +1 -1
  129. package/dist/storage/jsonl/index.d.ts.map +1 -1
  130. package/dist/storage/jsonl/index.js +1 -1
  131. package/dist/storage/jsonl/index.js.map +1 -1
  132. package/dist/storage/jsonl/node.d.ts +3 -3
  133. package/dist/storage/jsonl/node.d.ts.map +1 -1
  134. package/dist/storage/jsonl/node.js +2 -2
  135. package/dist/storage/jsonl/node.js.map +1 -1
  136. package/dist/storage/jsonl/storage.d.ts +32 -3
  137. package/dist/storage/jsonl/storage.d.ts.map +1 -1
  138. package/dist/storage/jsonl/storage.js +70 -19
  139. package/dist/storage/jsonl/storage.js.map +1 -1
  140. package/dist/storage/memory.d.ts +2 -1
  141. package/dist/storage/memory.d.ts.map +1 -1
  142. package/dist/storage/memory.js.map +1 -1
  143. package/dist/storage/sqlite/commit.d.ts +52 -0
  144. package/dist/storage/sqlite/commit.d.ts.map +1 -0
  145. package/dist/storage/sqlite/commit.js +371 -0
  146. package/dist/storage/sqlite/commit.js.map +1 -0
  147. package/dist/storage/sqlite/rows.d.ts +33 -0
  148. package/dist/storage/sqlite/rows.d.ts.map +1 -0
  149. package/dist/storage/sqlite/rows.js +53 -0
  150. package/dist/storage/sqlite/rows.js.map +1 -0
  151. package/dist/storage/sqlite/statements.d.ts +13 -0
  152. package/dist/storage/sqlite/statements.d.ts.map +1 -0
  153. package/dist/storage/sqlite/statements.js +88 -0
  154. package/dist/storage/sqlite/statements.js.map +1 -0
  155. package/dist/storage/sqlite/storage.d.ts +12 -11
  156. package/dist/storage/sqlite/storage.d.ts.map +1 -1
  157. package/dist/storage/sqlite/storage.js +44 -259
  158. package/dist/storage/sqlite/storage.js.map +1 -1
  159. package/dist/storage/store/commit.d.ts +2 -2
  160. package/dist/storage/store/commit.d.ts.map +1 -1
  161. package/dist/storage/store/commit.js +1 -1
  162. package/dist/storage/store/commit.js.map +1 -1
  163. package/dist/storage/store/documents.d.ts +1 -1
  164. package/dist/storage/store/documents.d.ts.map +1 -1
  165. package/dist/storage/store/documents.js +1 -1
  166. package/dist/storage/store/documents.js.map +1 -1
  167. package/dist/storage/store/queries.d.ts +2 -2
  168. package/dist/storage/store/queries.d.ts.map +1 -1
  169. package/dist/storage/store/queries.js.map +1 -1
  170. package/dist/storage/store/storage.d.ts +3 -2
  171. package/dist/storage/store/storage.d.ts.map +1 -1
  172. package/dist/storage/store/storage.js +1 -1
  173. package/dist/storage/store/storage.js.map +1 -1
  174. package/dist/storage/store/tables.d.ts +31 -31
  175. package/dist/storage/store/tables.d.ts.map +1 -1
  176. package/dist/storage/store/tables.js +1 -1
  177. package/dist/storage/store/tables.js.map +1 -1
  178. package/dist/testing/commit-writes.d.ts +1 -1
  179. package/dist/testing/commit-writes.d.ts.map +1 -1
  180. package/dist/testing/commit-writes.js.map +1 -1
  181. package/dist/testing/env-conformance.js.map +1 -1
  182. package/dist/testing/storage-benchmark.js.map +1 -1
  183. package/dist/testing/storage-conformance.js.map +1 -1
  184. package/dist/tool-search/tool-search.d.ts +2 -2
  185. package/dist/tool-search/tool-search.d.ts.map +1 -1
  186. package/dist/tool-search/tool-search.js +18 -6
  187. package/dist/tool-search/tool-search.js.map +1 -1
  188. package/dist/tools/bash.d.ts +1 -1
  189. package/dist/tools/bash.d.ts.map +1 -1
  190. package/dist/tools/bash.js.map +1 -1
  191. package/dist/tools/file-mutation-queue.d.ts +1 -1
  192. package/dist/tools/file-mutation-queue.d.ts.map +1 -1
  193. package/dist/tools/file-mutation-queue.js.map +1 -1
  194. package/dist/tools/path-utils.d.ts +1 -1
  195. package/dist/tools/path-utils.d.ts.map +1 -1
  196. package/dist/tools/path-utils.js.map +1 -1
  197. package/dist/tools/read.js.map +1 -1
  198. package/dist/types.d.ts +6 -2
  199. package/dist/types.d.ts.map +1 -1
  200. package/dist/types.js.map +1 -1
  201. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzG,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EACX,KAAK,EACL,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACX,MAAM,oBAAoB,CAAC;AAE5B,8DAA8D;AAC9D,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEtD,OAAO,CAAC,MAAM,OAAO,EAAE,OAAO,MAAM,CAAC;AAErC,iEAAiE;AACjE,MAAM,MAAM,EAAE,CAAC,IAAI,SAAS,MAAM,EAAE,IAAI,GAAG,OAAO,IAAI,MAAM,GAAG;IAC9D,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE;QACnB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;QACpB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;KACpB,CAAC;CACF,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC;AAChD,MAAM,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;AAClC,MAAM,MAAM,MAAM,CAAC,MAAM,GAAG,OAAO,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC;AAC5C,MAAM,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC;AAExC,OAAO,CAAC,MAAM,QAAQ,EAAE,OAAO,MAAM,CAAC;AAEtC,8FAA8F;AAC9F,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAE/D,0DAA0D;AAC1D,eAAO,MAAM,oBAAoB,EAAQ,cAAc,CAAC;AAExD,iEAAiE;AACjE,MAAM,MAAM,2BAA2B,GAAG;IACzC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;CACrC,CAAC;AAEF,+EAA+E;AAC/E,MAAM,MAAM,+BAA+B,GAAG;IAC7C,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;CAC9C,CAAC;AAEF,2GAA2G;AAC3G,MAAM,MAAM,iBAAiB,GAC1B;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,GAC9E,2BAA2B,GAC3B,+BAA+B,GAC/B;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAE/E,yEAAyE;AACzE,MAAM,MAAM,cAAc,GAAG;IAC5B,yFAAyF;IACzF,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,6EAA6E;AAC7E,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,UAAU,IAAI;IACvD,0DAA0D;IAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,IAAI,CAAC,CAAC;IACb,OAAO,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC,CAAC;IACpD,wGAAwG;IACxG,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC;CACtF,CAAC;AAEF,qCAAqC;AACrC,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,UAAU,IAAI,mBAAmB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC;AAE7F,2FAA2F;AAC3F,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,GACnH,iBAAiB,GAAG;IACnB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;CACpB,CAAC;AAEH,OAAO,CAAC,MAAM,OAAO,EAAE,OAAO,MAAM,CAAC;AAErC,wEAAwE;AACxE,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC;IACzE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACvB,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;CACvB;AAED,qEAAqE;AACrE,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7G,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACvB,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;CACvB;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,UAAU,IAAI,QAAQ,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AACxH,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,UAAU,IAAI,QAAQ,CAChE,CAAC,EACD,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,2BAA2B,GAAG,+BAA+B,CAAC,CACxF,CAAC;AACF,MAAM,MAAM,8BAA8B,CAAC,CAAC,SAAS,UAAU,IAAI,QAAQ,CAC1E,CAAC,EACD,mBAAmB,CAAC,CAAC,CAAC,GAAG,+BAA+B,CACxD,CAAC;AACF,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,UAAU,IAAI,QAAQ,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAElH,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,IAAI,cAAc,CAC5F,CAAC,EACD,CAAC,EACD,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CACzD,CAAC;AACF,MAAM,MAAM,0BAA0B,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,IAAI,cAAc,CACjG,CAAC,EACD,CAAC,EACD,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,2BAA2B,GAAG,+BAA+B,CAAC,CAC3F,CAAC;AACF,MAAM,MAAM,oCAAoC,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,IAAI,cAAc,CAC3G,CAAC,EACD,CAAC,EACD,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,+BAA+B,CAC3D,CAAC;AACF,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,IAAI,cAAc,CACzF,CAAC,EACD,CAAC,EACD,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CACtD,CAAC;AAEF,kCAAkC;AAClC,MAAM,MAAM,UAAU,GAAG;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;CACxC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,UAAU,GAAG,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEpH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,UAAU,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,GACnC;IACA,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,eAAe,CAAC;CAC1C,GACD;IACA,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,aAAa,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CACzB,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7F;IACA,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,GAAG,kBAAkB,CAAC;CACrE,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACvF;IACA,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;CACxC,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAAE,GAC5F;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAEvC,oHAAoH;AACpH,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAE9D,mHAAmH;AACnH,MAAM,MAAM,UAAU,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAAG,CACtB,QAAQ,EAAE,MAAM,IAAI,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;CAAE,KACrC,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;AAE9B,mDAAmD;AACnD,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG;IACxD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;CACzE,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,IAAI,OAAO,CACxC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EACf;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAA;CAAE,CACpE,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,MAAM,IAAI,CACxD,IAAI,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC1B,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAChC,OAAO,EAAE,OAAO,KACZ,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,mHAAmH;AACnH,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,MAAM;IAC3C;;;OAGG;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9G;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,MAAM,CAAE,SAAQ,gBAAgB,EAAE,cAAc;IAC/F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,+GAA+G;IAC/G,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACxC,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sFAAsF;IACtF,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;IACzD,qGAAqG;IACrG,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAE9B;;;;;;;OAOG;IACH,MAAM,CACL,MAAM,EAAE,CACP,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACzB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,EAC/E,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,wCAAwC;IACxC,IAAI,CAAC,CAAC,SAAS,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAClF,iFAAiF;IACjF,IAAI,CAAC,CAAC,SAAS,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACpF,6BAA6B;IAC7B,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACtG,kFAAkF;IAClF,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE;;;OAGG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;IACrF,4GAA4G;IAC5G,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpF;;;OAGG;IACH,YAAY,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;IAC5F,4DAA4D;IAC5D,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IACvE,4EAA4E;IAC5E,KAAK,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC/G;;;;OAIG;IACH,OAAO,CACN,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,EACzC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IACtC,uGAAuG;IACvG,OAAO,CAAC,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACrH,yBAAyB;IACzB,GAAG,IAAI,MAAM,CAAC;IACd;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC;IAC5D;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAChD;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1E;AAED,yFAAyF;AACzF,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,EAAE,CAAC,SAAS,MAAM,IAAI;IACjF,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,yDAAyD;IACzD,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;IACrB,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE;QAChB,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE;YAAE,KAAK,EAAE,CAAC,CAAA;SAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KAC9E,CAAC;IACF,yFAAyF;IACzF,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrG,mFAAmF;IACnF,OAAO,CAAC,CACP,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,SAAS,EACrB,WAAW,EAAE,MAAM,GACjB;QACF,KAAK,EAAE,CAAC,CAAC;QACT,UAAU,EAAE,CAAC,CAAC;KACd,CAAC;IACF,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;CACnB,CAAC;AAEF,wCAAwC;AACxC,MAAM,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,EAAE,CAAC,SAAS,MAAM;IACxE,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAChD;AAED,oHAAoH;AACpH,MAAM,MAAM,aAAa,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnH,mEAAmE;AACnE,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC;AAEnD,2CAA2C;AAC3C,MAAM,MAAM,WAAW,GAAG;IACzB,0GAA0G;IAC1G,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC;IAC3C,4FAA4F;IAC5F,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC7C,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,2GAA2G;IAC3G,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AAEF,wEAAwE;AACxE,MAAM,MAAM,qBAAqB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAExH,sFAAsF;AACtF,MAAM,MAAM,kBAAkB,GAAG;IAChC,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAC5B,iFAAiF;IACjF,QAAQ,CAAC,MAAM,CAAC,EAAE;QACjB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;QACxC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,gFAAgF;IAChF,QAAQ,CAAC,KAAK,CAAC,EAAE;QAChB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;QACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACxB,CAAC;CACF,CAAC;AAEF,kFAAkF;AAClF,MAAM,MAAM,WAAW,GAAG;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CACzB,GAAG,CACD;IACA,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;CACzB,GACD;IACA,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;CACrC,CACH,CAAC;AAEF,6FAA6F;AAC7F,MAAM,MAAM,WAAW,GAAG;IACzB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wFAAwF;IACxF,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IACpC,wEAAwE;IACxE,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAC1B,gEAAgE;IAChE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,yDAAyD;IACzD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,uFAAuF;AACvF,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,gBAAgB,GAAG,UAAU,GAAG,MAAM,CAAC,GAAG;IAC3F,qEAAqE;IACrE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CACjC,CAAC;AAEF,+EAA+E;AAC/E,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,GACtE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC;AAE1E,gEAAgE;AAChE,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,GACnF,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC;AAE1E,+CAA+C;AAC/C,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,SAAS,GAAG,KAAK;IACjD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;CAC3D;AAED,gEAAgE;AAChE,KAAK,oBAAoB,GAAG;IAC3B,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,mEAAmE;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,sFAAsF;AACtF,MAAM,MAAM,gBAAgB,GACzB,CAAC,oBAAoB,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACtB,GAAG,CACD;IACA,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;CACvB,GACD;IACA,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;CACvB,GACD;IACA,wCAAwC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;CACvB,GACD;IACA,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;CAC3B,CACH,CAAC,GACF,CAAC,oBAAoB,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACtB,GAAG,CACD;IACA,uDAAuD;IACvD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;CACvB,GACD;IACA,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;CACvB,GACD;IACA,uDAAuD;IACvD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;CAC3B,CACH,CAAC,GACF,CAAC,oBAAoB,GAAG;IACxB,oFAAoF;IACpF,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CACzB,GAAG,CACD;IACA,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;CACvB,GACD;IACA,wBAAwB;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;CACvB,GACD;IACA,uCAAuC;IACvC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;CAC3B,CACH,CAAC,CAAC;AAEN,uGAAuG;AACvG,MAAM,MAAM,oBAAoB,GAC7B;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC;AAE3F,mEAAmE;AACnE,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,SAAS,MAAM,MAAM,GACjE,MAAM,SAAS,gBAAgB,GAC9B,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAClB,KAAK,GACN,KAAK,CAAC;AAET,8EAA8E;AAC9E,MAAM,MAAM,gBAAgB,GAAG;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;CAC5B,CAAC;AAEF,gFAAgF;AAChF,MAAM,MAAM,WAAW,CAAC,CAAC,IACtB;IACA,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;CACvB;AACH,kFAAkF;GAChF;IACA,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;CACvB;AACH,kEAAkE;GAChE;IACA,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CACtB;AACH,kFAAkF;GAChF;IACA,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CACtB;AACH,2FAA2F;GACzF;IACA,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;CACvB,CAAC;AAEL,kDAAkD;AAClD,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,IACvB;IACA,+BAA+B;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;CACxB,GACD;IACA,iDAAiD;IACjD,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;CACxB,GACD;IACA,uGAAuG;IACvG,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;CACxB,GACD;IACA;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;CACxB,GACD;IACA,sGAAsG;IACtG,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;CAChC,GACD;IACA,kDAAkD;IAClD,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;CAChC,CAAC;AAEL,8EAA8E;AAC9E,KAAK,cAAc,CAAC,CAAC,EAAE,CAAC,IAAI;IAC3B,kGAAkG;IAClG,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAClC,qEAAqE;IACrE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC7C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,uEAAuE;IACvE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,uFAAuF;IACvF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,oHAAoH;IACpH,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,0DAA0D;IAC1D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,sGAAsG;IACtG,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,sEAAsE;AACtE,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GACrD,CACG;IACA,QAAQ,CAAC,KAAK,EAAE,OAAO,CACtB,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EACf;QAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAA;KAAE,CACnE,CAAC;IACF,sEAAsE;IACtE,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;CACpD,GACD;IACA,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU,CAAA;KAAE,CAAC,CAAC;IACzF,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CACtB,CACH,CAAC;AAEH,gFAAgF;AAChF,MAAM,MAAM,cAAc,GAAG;IAC5B,uFAAuF;IACvF,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC;IACxB,uEAAuE;IACvE,QAAQ,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC;CACzB,GAAG,CACD;IACA,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;CACrB,GACD,CAAC;IAAE,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;QAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAA;KAAE,CAAA;CAAE,GAAG,CAChG;IACA,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC3B,qFAAqF;IACrF,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;CACpC,GACD;IACA,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,sFAAsF;IACtF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;CAC7C,CACF,CAAC,GACF;IACA,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;CACrB,CACH,CAAC;AAEF,8EAA8E;AAC9E,MAAM,MAAM,cAAc,GAAG,cAAc,SAAS,MAAM,MAAM,GAC7D,MAAM,SAAS,cAAc,GAC5B,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAAC,GACvC,KAAK,GACN,KAAK,CAAC;AAET,mEAAmE;AACnE,MAAM,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AAEzD,kFAAkF;AAClF,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,YAAY,CAAC;AAEnD,yDAAyD;AACzD,MAAM,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,cAAc,CAAC;IAC9C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;CAC3B,CAAC;AAEF,+EAA+E;AAC/E,MAAM,MAAM,UAAU,GAAG;IACxB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,4CAA4C;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,4CAA4C;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;CAC3B,CAAC;AAEF,oEAAoE;AACpE,MAAM,MAAM,SAAS,GAAG;IACvB,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC5D,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;CAC3B,CAAC;AAEF,kEAAkE;AAClE,MAAM,MAAM,eAAe,GAAG;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC7C,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;CAC3B,CAAC;AAEF,sGAAsG;AACtG,MAAM,MAAM,aAAa,GAAG,GAAG,GAAG,SAAS,CAAC;AAE5C,wEAAwE;AACxE,MAAM,MAAM,eAAe,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACxC,uEAAuE;IACvE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,mFAAmF;AACnF,MAAM,MAAM,aAAa,GAAG;IAC3B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,mFAAmF;AACnF,MAAM,MAAM,eAAe,GACxB;IACA,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;CAC1B,GACD;IACA,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC;CAC3B,CAAC;AAEL,2EAA2E;AAC3E,MAAM,MAAM,kBAAkB,GAAG;IAChC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;CAC3B,CAAC;AAEF,qFAAqF;AACrF,MAAM,MAAM,cAAc,GAAG;IAC5B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,sEAAsE;IACtE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,YAAY,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAA;CAAE,GACrE;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GACvD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;CAAE,GACtF;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAA;CAAE,GACjE;IACA,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrE,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,GACxG;IACA,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;CACjC,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAA;CAAE,CAAC;AAEjE;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAC7B;IACA,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,+HAA+H;IAC/H,QAAQ,CAAC,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;IACpD,qCAAqC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC;CAC3B,GACD;IACA,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,+HAA+H;IAC/H,QAAQ,CAAC,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;CACnD,GACD;IACA,yFAAyF;IACzF,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;CACnC,CAAC;AAEL,wEAAwE;AACxE,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACtC,YAAY,EACZ;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,YAAY,CAAA;CAAE,CACnE,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;CAC1C,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,EAAE;IAClB,YAAY,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;IAC1E,KAAK,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IACrD,8DAA8D;IAC9D,KAAK,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC7F,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;IACnF,iBAAiB,CAChB,KAAK,EAAE,iBAAiB,EACxB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IACnG,sEAAsE;IACtE,gBAAgB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,WAAW,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC,CAAC;IAClH,0FAA0F;IAC1F,aAAa,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAC5E,SAAS,CACR,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,kEAAkE;IAClE,mBAAmB,CAAC,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC;IAE9G,gEAAgE;IAChE,kBAAkB,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACxG,8FAA8F;IAC9F,gBAAgB,CACf,oBAAoB,EAAE,cAAc,EACpC,EAAE,EAAE,OAAO,EACX,OAAO,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAA;KAAE,GACpD,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC/B,mGAAmG;IACnG,WAAW,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACrF,kDAAkD;IAClD,WAAW,CAAC,CAAC,SAAS,SAAS,EAC9B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAChC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,EAAE,CAAC,SAAS,MAAM,EAC7D,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACtB,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,WAAW,GAClB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACtE;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC3E;;;OAGG;IACH,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAExD,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7G,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACrF,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,EAC5C,KAAK,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,EAClC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,CAAC,GACL,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,EAC5C,KAAK,EAAE,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,EACvC,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,CAAC,GACL,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,EAC5C,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,CAAC,GACL,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAErB,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/G,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvF,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrH,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,EAClD,KAAK,EAAE,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,EACvC,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,MAAM,GACT,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,EAClD,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACT,OAAO,CAAC,IAAI,CAAC,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,UAAU,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAE3E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;IACzB,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACpD,GAAG,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B,OAAO,CAAC,WAAW,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAChE,GAAG,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,oGAAoG;AACpG,MAAM,MAAM,iBAAiB,GAAG;IAAE,MAAM,IAAI,IAAI,CAAA;CAAE,CAAC;AAEnD,sHAAsH;AACtH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC5B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,gGAAgG;IAChG,MAAM,IAAI,IAAI,CAAC;CACf,CAAC;AAEF,gCAAgC;AAChC,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,cAAc,CAAC,CAAC;AAExE,2FAA2F;AAC3F,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACnH,QAAQ,CAAC,CAAC,SAAS,UAAU,EAC5B,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAC9B,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACzC,QAAQ,CAAC,CAAC,SAAS,UAAU,EAC5B,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EACtB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACzC,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,EACjD,KAAK,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,EAClC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACzC,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,EACjD,KAAK,EAAE,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,EACvC,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACzC,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,EACjD,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;CACzC;AAED,mGAAmG;AACnG,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAE5G;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GAC9B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7D,qCAAqC;AACrC,MAAM,MAAM,aAAa,GAAG;IAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAEzE,0EAA0E;AAC1E,MAAM,WAAW,OAAQ,SAAQ,gBAAgB;IAChD;;;;;;OAMG;IACH,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACrG,mEAAmE;IACnE,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC;;;;;OAKG;IACH,UAAU,CAAC,CAAC,SAAS,UAAU,EAC9B,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EACzB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAC/B,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACjD,UAAU,CAAC,CAAC,SAAS,UAAU,EAC9B,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAC9B,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAC/B,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACjD,UAAU,CAAC,CAAC,SAAS,UAAU,EAC9B,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EACtB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAC/B,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACjD,UAAU,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,EACnD,KAAK,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,EAClC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAC/B,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACjD,UAAU,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,EACnD,KAAK,EAAE,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,EACvC,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAC/B,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACjD,UAAU,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,EACnD,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAC/B,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACjD;;;;;;;;;;OAUG;IACH,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,iBAAiB,CAAC;IAC5D;;;OAGG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAEjD,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC9G,QAAQ,CAAC,CAAC,SAAS,UAAU,EAC5B,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAC9B,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACpC,QAAQ,CAAC,CAAC,SAAS,UAAU,EAC5B,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EACtB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACpC,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,EACjD,KAAK,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,EAClC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACpC,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,EACjD,KAAK,EAAE,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,EACvC,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACpC,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,EACjD,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAEpC,YAAY,CAAC,CAAC,SAAS,UAAU,EAChC,KAAK,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACxC,cAAc,EAAE,cAAc,EAC9B,EAAE,EAAE,OAAO,EACX,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACpC,YAAY,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,SAAS,EACrD,KAAK,EAAE,oCAAoC,CAAC,CAAC,EAAE,CAAC,CAAC,EACjD,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,OAAO,EACX,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;CACpC;AAED,mHAAmH;AACnH,MAAM,MAAM,YAAY,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEnF;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,OAAO;IACvB;;;;;;;;;;OAUG;IACH,MAAM,CACL,OAAO,EAAE,SAAS,CAAC,SAAS,YAAY,EAAE,CAAC,EAAE,EAC7C,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,EAC1C,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzB;;;;;OAKG;IACH,UAAU,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAEzD;;;;OAIG;IACH,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAE3C,4CAA4C;IAC5C,YAAY,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;IAE5F,qEAAqE;IACrE,iBAAiB,CAChB,KAAK,EAAE,iBAAiB,EACxB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC;IAE7C,iFAAiF;IACjF,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAA;KAAE,GAAG,SAAS,CAAC,CAAC;IACpH,+FAA+F;IAC/F,KAAK,CACJ,cAAc,EAAE,cAAc,EAC9B,EAAE,EAAE,OAAO,EACX,OAAO,EAAE,OAAO,GACd,OAAO,CAAC;QAAE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAA;KAAE,GAAG,SAAS,CAAC,CAAC;IAEjF;;;OAGG;IACH,oBAAoB,CACnB,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,OAAO,GAAG,SAAS,EACtC,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,CAAC,WAAW,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC,CAAC;IAEnE,iHAAiH;IACjH,WAAW,CACV,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAEtC,uDAAuD;IACvD,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;IAErG,mGAAmG;IACnG,SAAS,CACR,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAEtE,sEAAsE;IACtE,UAAU,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC;IAEtF,kGAAkG;IAClG,eAAe,CACd,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3C,2EAA2E;IAC3E,mBAAmB,CAClB,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC;IAEzC,yFAAyF;IACzF,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAEjH,uHAAuH;IACvH,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAEnG,wEAAwE;IACxE,aAAa,CACZ,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IAEzC,mEAAmE;IACnE,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAsCA,0DAA0D;AAC1D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAmB,CAAC","sourcesContent":["import type { Context, Draft, JsonValue, WatchCall, WatchEnd, WatchHandle } from \"@earendil-works/chord\";\nimport type { Op } from \"@earendil-works/chord/delta\";\nimport type { Message, Models } from \"@earendil-works/pi-ai\";\nimport type { TelemetryCarrier } from \"@earendil-works/pi-telemetry\";\nimport type { ExecutionEnv } from \"./env/index.ts\";\nimport type {\n\tAgent,\n\tContextView,\n\tConversationHandle,\n\tRegistrySnapshot,\n\tSettings,\n\tSettledTask,\n} from \"./harness/types.ts\";\n\n/** JSON object used as the root of every durable document. */\nexport type JsonObject = { [key: string]: JsonValue };\n\ndeclare const idBrand: unique symbol;\n\n/** Erased nominal number identifying one durable record kind. */\nexport type Id<Kind extends string, Type = unknown> = number & {\n\treadonly [idBrand]: {\n\t\treadonly kind: Kind;\n\t\treadonly type: Type;\n\t};\n};\n\nexport type ConversationId = Id<\"conversation\">;\nexport type EntryId = Id<\"entry\">;\nexport type TaskId<Result = unknown> = Id<\"task\", Result>;\nexport type SubmissionId = Id<\"submission\">;\nexport type DocumentId = Id<\"document\">;\n\ndeclare const seqBrand: unique symbol;\n\n/** Strictly increasing sequence assigned to one atomic storage commit; gaps are permitted. */\nexport type Seq = number & { readonly [seqBrand]: \"sequence\" };\n\n/** The root conversation always uses this reserved ID. */\nexport const ROOT_CONVERSATION_ID = 1 as ConversationId;\n\n/** Conversation document that retains only its current state. */\nexport type LatestConversationSemantics = {\n\treadonly scope: \"conversation\";\n\treadonly history: \"latest\";\n\treadonly fork: \"current\" | \"initial\";\n};\n\n/** Conversation document whose history remains addressable for as-of reads. */\nexport type RewindableConversationSemantics = {\n\treadonly scope: \"conversation\";\n\treadonly history: \"rewindable\";\n\treadonly fork: \"asOf\" | \"current\" | \"initial\";\n};\n\n/** Ownership and lifetime of a document; only conversation documents declare history and fork behavior. */\nexport type DocumentSemantics =\n\t| { readonly scope: \"session\"; readonly history?: never; readonly fork?: never }\n\t| LatestConversationSemantics\n\t| RewindableConversationSemantics\n\t| { readonly scope: \"task\"; readonly history?: never; readonly fork?: never };\n\n/** Stored replay state supplied to a document's checkpoint predicate. */\nexport type CheckpointInfo = {\n\t/** Deltas already stored after the newest base, excluding the change being evaluated. */\n\treadonly deltasSinceBase: number;\n};\n\n/** Definition fields shared by singleton documents and document families. */\nexport type CommonDocDefinition<T extends JsonObject> = {\n\t/** Stable persisted kind; part of the public protocol. */\n\treadonly kind: string;\n\t/** Positive integer version of the stored value shape. */\n\treadonly version: number;\n\tinitial(): T;\n\tmigrate?(value: JsonObject, fromVersion: number): T;\n\t/** Required policy: return true to store this ordinary change as a complete base instead of a delta. */\n\tcheckpointWhen(value: Readonly<T>, ops: readonly Op[], info: CheckpointInfo): boolean;\n};\n\n/** Singleton document definition. */\nexport type DocDefinition<T extends JsonObject> = CommonDocDefinition<T> & DocumentSemantics;\n\n/** Keyed document family definition; `initial(seed)` runs only when a member is absent. */\nexport type DocFamilyDefinition<T extends JsonObject, I extends JsonValue> = Omit<CommonDocDefinition<T>, \"initial\"> &\n\tDocumentSemantics & {\n\t\treadonly family: true;\n\t\tinitial(seed: I): T;\n\t};\n\ndeclare const docType: unique symbol;\n\n/** Typed singleton document token passed explicitly to typed access. */\nexport interface DocToken<T extends JsonObject, D extends DocDefinition<T>> {\n\treadonly definition: D;\n\treadonly [docType]?: T;\n}\n\n/** Typed document family token passed explicitly to typed access. */\nexport interface DocFamilyToken<T extends JsonObject, I extends JsonValue, D extends DocFamilyDefinition<T, I>> {\n\treadonly definition: D;\n\treadonly [docType]?: T;\n}\n\nexport type SessionDocToken<T extends JsonObject> = DocToken<T, CommonDocDefinition<T> & { readonly scope: \"session\" }>;\nexport type ConversationDocToken<T extends JsonObject> = DocToken<\n\tT,\n\tCommonDocDefinition<T> & (LatestConversationSemantics | RewindableConversationSemantics)\n>;\nexport type RewindableConversationDocToken<T extends JsonObject> = DocToken<\n\tT,\n\tCommonDocDefinition<T> & RewindableConversationSemantics\n>;\nexport type TaskDocToken<T extends JsonObject> = DocToken<T, CommonDocDefinition<T> & { readonly scope: \"task\" }>;\n\nexport type SessionDocFamilyToken<T extends JsonObject, I extends JsonValue> = DocFamilyToken<\n\tT,\n\tI,\n\tDocFamilyDefinition<T, I> & { readonly scope: \"session\" }\n>;\nexport type ConversationDocFamilyToken<T extends JsonObject, I extends JsonValue> = DocFamilyToken<\n\tT,\n\tI,\n\tDocFamilyDefinition<T, I> & (LatestConversationSemantics | RewindableConversationSemantics)\n>;\nexport type RewindableConversationDocFamilyToken<T extends JsonObject, I extends JsonValue> = DocFamilyToken<\n\tT,\n\tI,\n\tDocFamilyDefinition<T, I> & RewindableConversationSemantics\n>;\nexport type TaskDocFamilyToken<T extends JsonObject, I extends JsonValue> = DocFamilyToken<\n\tT,\n\tI,\n\tDocFamilyDefinition<T, I> & { readonly scope: \"task\" }\n>;\n\n/** The task a report is about. */\nexport type ReportTask = {\n\treadonly id: TaskId;\n\t/** The task's registered name. */\n\treadonly kind: string;\n\treadonly conversationId: ConversationId;\n};\n\n/**\n * A host callback, by its `HarnessOptions` name; `env` is the environment builder, `models` a provider call, and\n * `telemetry` a telemetry adapter call made while a commit is published, which must not fail it.\n */\nexport type HostCallback = \"now\" | \"settings\" | \"registry\" | \"env\" | \"models\" | \"setTimer\" | \"onWake\" | \"telemetry\";\n\n/**\n * What a report to `HarnessOptions.onReport` is about, by `kind` (`Report` adds the error). `extension`, where present,\n * names the extension whose code failed, when known; for a task's own code, the one that installed the definition the\n * task ran.\n * - `storage_failed`: the error failed the Session, which closes: a Storage error, often a platform reset.\n * - `task_faulted`: the task ended `faulted`: its phase threw (`reason: \"threw\"`), or its abort handler was cut off\n * `settings.restartLimit` times (`reason: \"restart_limit\"`), as was a phase of a task of an extension's kind.\n * - `task_interrupted`: crashes ended the task: it ended itself after being cut off `settings.restartLimit` times in a\n * row (`reason: \"restart_limit\"`; a tool call, a compaction, a generation), or a generation's run ended because the\n * host kept stopping while the model answered (`reason: \"interrupted\"`). `restarts` is the task's count when it ended.\n * - `migration_failed`: the task's stored state could not be migrated; it is blocked until the registry changes.\n * - `task_outdated`: a running task keeps running under its old definition, which was uninstalled (`missing_task`)\n * or replaced by one that cannot take over its state: older than the task (`task_too_old`), or newer without a\n * `migrate` (`migration_failed`).\n * - `task_error`: the task's own `runtime.report()`, or a failure in running it.\n * - `extension_error`: a hook, a section, a wrapper, or a tool's invalid structured output; with the task that ran it,\n * or, outside a task, the conversation whose agent was resolved.\n * - `host_error`: a host callback threw; with the task that called it, if one did.\n * - `listener_error`: a commit, close, watch, view, or document listener threw.\n */\nexport type ReportInfo =\n\t| { readonly kind: \"storage_failed\" }\n\t| {\n\t\t\treadonly kind: \"task_faulted\";\n\t\t\treadonly task: ReportTask;\n\t\t\treadonly extension?: string;\n\t\t\treadonly reason: \"threw\" | \"restart_limit\";\n\t }\n\t| {\n\t\t\treadonly kind: \"task_interrupted\";\n\t\t\treadonly task: ReportTask;\n\t\t\treadonly extension?: string;\n\t\t\treadonly reason: \"restart_limit\" | \"interrupted\";\n\t\t\treadonly restarts: number;\n\t }\n\t| { readonly kind: \"migration_failed\"; readonly task: ReportTask; readonly extension?: string }\n\t| {\n\t\t\treadonly kind: \"task_outdated\";\n\t\t\treadonly task: ReportTask;\n\t\t\treadonly extension?: string;\n\t\t\treadonly reason: \"missing_task\" | \"task_too_old\" | \"migration_failed\";\n\t }\n\t| { readonly kind: \"task_error\"; readonly task: ReportTask; readonly extension?: string }\n\t| {\n\t\t\treadonly kind: \"extension_error\";\n\t\t\treadonly extension?: string;\n\t\t\treadonly task?: ReportTask;\n\t\t\treadonly conversationId?: ConversationId;\n\t }\n\t| { readonly kind: \"host_error\"; readonly callback: HostCallback; readonly task?: ReportTask }\n\t| { readonly kind: \"listener_error\" };\n\n/** One report to `HarnessOptions.onReport`: what it is about (`ReportInfo`, by `kind`) and the `error` reported. */\nexport type Report = ReportInfo & { readonly error: unknown };\n\n/** Whose code a task's `runtime.report()` is about when not the task's own: an extension's, or a host callback. */\nexport type ReportFrom =\n\t| { readonly kind: \"extension\"; readonly extension?: string }\n\t| { readonly kind: \"host\"; readonly callback: HostCallback };\n\n/**\n * A host timer, given as `HarnessOptions.setTimer`: call `callback` once, about `delayMs` from now, and return\n * a function that disarms it. `background` timers only free memory, and a host may decline one by returning\n * `undefined`, for example where a pending timer keeps the process from hibernating; the Harness then frees that memory\n * at later commits. Other timers pace or resume work: one the host throws on or declines is armed with `setTimeout`.\n * A timer should not fire early; callers check their clock again when it fires.\n */\nexport type SetTimer = (\n\tcallback: () => void,\n\tdelayMs: number,\n\toptions: { readonly background: boolean },\n) => (() => void) | undefined;\n\n/** Live task record reserved by one invocation. */\nexport type RunningTask<I, S, R> = TaskRecord<I, S, R> & {\n\treadonly state: Extract<TaskState<S, R>, { readonly status: \"running\" }>;\n};\n\n/**\n * Next state a task commits for itself: a replacement checkpoint, a wait on tasks, a sleep, or its outcome. A returned `terminal` state is\n * stored as `completing` while ordinary owned work below the task is live (spec §5.5).\n */\nexport type NextTaskState<S, R> = Extract<\n\tTaskState<S, R>,\n\t{ readonly status: \"running\" | \"waiting\" | \"sleeping\" | \"terminal\" }\n>;\n\n/**\n * Runs one checkpoint phase. It must commit a changed checkpoint or a terminal outcome through `runtime.commit()`;\n * returning without durable progress faults the task.\n */\nexport type PhaseHandler<I, P, S, R, H extends object> = (\n\ttask: RunningTask<I, P, R>,\n\truntime: TaskRuntime<I, S, R, H>,\n\tcontext: Context,\n) => Promise<void>;\n\n/** Dispatches one hook of a task to every matching registered handler, in registry order of the phase snapshot. */\nexport interface HookRunner<H extends object> {\n\t/**\n\t * Call `invoke` with each matching handler named `name`. An ordinary throw from `invoke` is reported and the next\n\t * handler runs; once the invocation is signalled, the error propagates. Composition happens inside `invoke`.\n\t */\n\teach<K extends keyof H>(name: K, invoke: (handler: NonNullable<H[K]>) => void | Promise<void>): Promise<void>;\n}\n\n/**\n * Operations of one task invocation. Every operation rejects after the invocation ends; watches acquired through it\n * stop at invocation end.\n */\nexport interface TaskRuntime<I, S, R, H extends object> extends DocumentObserver, DocumentReader {\n\treadonly taskId: TaskId<R>;\n\treadonly conversationId: ConversationId;\n\t/**\n\t * Aborted when the run is signalled by `abortTask()`, the Harness closes, or the invocation ends. Work still using it\n\t * after the invocation ended, such as a detached wait, is cancelled; it could not write anything anyway.\n\t */\n\treadonly signal: AbortSignal;\n\t/** Registry snapshot of the current phase; refreshed at every phase boundary. */\n\treadonly registry: RegistrySnapshot;\n\t/** The task's conversation's agent, resolved at most once per phase, at first use, and fixed for the phase. */\n\tagent(context: Context): Promise<Agent>;\n\t/** `HarnessOptions.settings`, resolved at each access. */\n\treadonly settings: Settings;\n\t/** `HarnessOptions.models`, resolved at each access. */\n\treadonly models: Models;\n\t/** Calls `HarnessOptions.env` for the task's conversation; rejects with its error. */\n\tenv(context: Context): Promise<ExecutionEnv | undefined>;\n\t/** Handlers of this task's name from the extensions its conversation selects, in extension order. */\n\treadonly hooks: HookRunner<H>;\n\n\t/**\n\t * Commit on the Session line after rereading the task. Rejects when the task is terminal, the invocation ended, the\n\t * Harness is closing, or, in a run invocation, the task carries an abort mark. A returned state replaces the task's\n\t * state in the same commit; returning nothing leaves it unchanged. `tx.createTask()` defaults to the task's\n\t * conversation. Inside the callback read only through `tx`: `snapshot()`, `watchDoc()`, `getTask()`, and the other Session and runtime reads may queue on the line the callback holds, and then never resolve.\n\t * `options.persistence` may defer storing a commit that changes only documents (`CommitPersistence`); one that returns\n\t * a state is immediate.\n\t */\n\tcommit(\n\t\tchange: (\n\t\t\ttx: Tx,\n\t\t\tcurrent: RunningTask<I, S, R>,\n\t\t) => NextTaskState<S, R> | undefined | Promise<NextTaskState<S, R> | undefined>,\n\t\tcontext: Context,\n\t\toptions?: CommitOptions,\n\t): Promise<void>;\n\t/** Read a durable memo of this task. */\n\tmemo<T extends JsonValue>(name: string, context: Context): Promise<T | undefined>;\n\t/** Store `candidate` unless a memo already exists; return the durable winner. */\n\tmemo<T extends JsonValue>(name: string, candidate: T, context: Context): Promise<T>;\n\t/** Committed task record. */\n\tgetTask<T>(id: TaskId<T>, context: Context): Promise<TaskRecord<JsonValue, JsonValue, T> | undefined>;\n\t/** Resolve with the task's terminal receipt; rejects when the invocation ends. */\n\twaitForTask<T>(id: TaskId<T>, context: Context): Promise<SettledTask<T>>;\n\t/**\n\t * Abort a task this task owns, as `Harness.abortTask()` does, and resolve once it is terminal. Rejects for a task\n\t * another owns; resolves at once for a terminal one.\n\t */\n\tabortOwned(id: TaskId, context: Context): Promise<void>;\n\t/**\n\t * Live tasks this task owns directly, in ID order: also those an earlier invocation created, before a restart. Tasks\n\t * in conversations it owns are not included. Copies of the committed records.\n\t */\n\townedTasks(context: Context): Promise<TaskRecord<JsonValue, JsonValue, JsonValue>[]>;\n\t/** Outcomes of terminal tasks, in order; rejects when one is missing or not terminal. Used after a wait. */\n\toutcomes<T>(ids: readonly TaskId<T>[], context: Context): Promise<TaskOutcome<T>[]>;\n\t/**\n\t * Invocation-bound handle of an existing conversation, for example one this task owns; `undefined` when absent. Its\n\t * operations and the submissions it returns reject after the invocation ends; admitted work stays durable.\n\t */\n\tconversation(id: ConversationId, context: Context): Promise<ConversationHandle | undefined>;\n\t/** Committed entry visible from the task's conversation. */\n\tentry(id: EntryId, context: Context): Promise<EntryRecord | undefined>;\n\t/** Undefined when the entry is absent, not visible, or has another kind. */\n\tentry<D extends JsonValue>(token: Entry<D>, id: EntryId, context: Context): Promise<TypedEntry<D> | undefined>;\n\t/**\n\t * Committed raw history of the task's conversation, fork-aware, as `Conversation.entries()`: every entry, also those a\n\t * compaction summary or reset left behind. Entries never change, so a range bounded by entry IDs reads the same\n\t * before and after a compaction, and in a rerun after a crash.\n\t */\n\tentries(\n\t\tquery: Omit<EntryQuery, \"conversationId\">,\n\t\tlimit: number,\n\t\tcursor: Cursor | undefined,\n\t\tcontext: Context,\n\t): Promise<Page<EntryRecord, Cursor>>;\n\t/** Committed raw active transcript and model context, optionally cut off at the visible entry `at`. */\n\tcontext(conversationId: ConversationId, context: Context, options?: { readonly at?: EntryId }): Promise<ContextView>;\n\t/** The Harness clock. */\n\tnow(): number;\n\t/**\n\t * Call `callback` once after about `delayMs` on the Harness's timer (`HarnessOptions.setTimer`), for pacing work\n\t * inside a phase, such as throttled progress commits. Not durable: the invocation's end disarms it, and after its end\n\t * nothing is armed. Returns a function that disarms it. Wait for time between phases with `sleepUntil()`.\n\t */\n\tsetTimer(callback: () => void, delayMs: number): () => void;\n\t/**\n\t * Forward a non-fatal failure to `HarnessOptions.onReport`, with this task in its info: a `task_error` about the\n\t * task's own code, or, with `from`, an `extension_error` about extension code it called, such as a section, or a\n\t * `host_error` about a host callback, such as the environment builder.\n\t */\n\treport(error: unknown, from?: ReportFrom): void;\n\t/**\n\t * Commit a sleep: the task holds no invocation until the Harness clock reaches `until`, then resumes at `checkpoint`.\n\t * Resolves once the sleep is stored, not when the time comes; the phase returns right after. Returning\n\t * `{ status: \"sleeping\", until, checkpoint }` from `commit()` is the same sleep, for one that must commit together\n\t * with other writes.\n\t */\n\tsleepUntil(until: number, checkpoint: S, context: Context): Promise<void>;\n}\n\n/** Executable durable state machine definition, registered in the registry by `name`. */\nexport type TaskDefinition<I, S extends { phase: string }, R, H extends object> = {\n\t/** Registered task kind persisted in `TaskRecord.kind`. */\n\treadonly name: string;\n\t/** Definition version persisted with live input and checkpoints. */\n\treadonly version: number;\n\t/** First durable checkpoint for a newly created task. */\n\tinitial(input: I): S;\n\t/** Exhaustive phase map; each handler receives the task narrowed to its phase. */\n\treadonly phases: {\n\t\treadonly [P in S[\"phase\"]]: PhaseHandler<I, Extract<S, { phase: P }>, S, R, H>;\n\t};\n\t/** Runs in a fresh invocation after an abort mark and must commit a terminal outcome. */\n\tabort(task: RunningTask<I, S, R>, runtime: TaskRuntime<I, S, R, H>, context: Context): Promise<void>;\n\t/** Convert a record stored by any older supported version; runs at reservation. */\n\tmigrate?(\n\t\tinput: JsonValue,\n\t\tcheckpoint: JsonValue,\n\t\tfromVersion: number,\n\t): {\n\t\tinput: I;\n\t\tcheckpoint: S;\n\t};\n\treadonly hooks?: H;\n};\n\n/** Typed executable task definition. */\nexport interface Task<I, S extends { phase: string }, R, H extends object> {\n\treadonly definition: TaskDefinition<I, S, R, H>;\n}\n\n/** Who owns a task: its conversation (a top-level task) or another task of the same conversation (a child task). */\nexport type TaskOwnership = { readonly kind: \"conversation\" } | { readonly kind: \"task\"; readonly taskId: TaskId };\n\n/** How a waiting task treats the tasks it waits on (spec §5.5). */\nexport type JoinPolicy = \"failFast\" | \"allSettled\";\n\n/** Creation options for a durable task. */\nexport type TaskOptions = {\n\t/** Omitted: inherit the creator's carrier. \"root\": start at the adapter root without a stored carrier. */\n\treadonly trace?: TelemetryCarrier | \"root\";\n\t/** Immutable creation-time links, attached to the spans of this task's first invocation. */\n\treadonly links?: readonly TelemetryCarrier[];\n\t/** Required: a task always names its owner (spec §5.5). */\n\treadonly ownership: TaskOwnership;\n\t/**\n\t * Default: the owner task's conversation, or the transaction's bound conversation; required for conversation-owned\n\t * tasks created by Session commits that are not bound to a conversation.\n\t */\n\treadonly conversationId?: ConversationId;\n\t/** Conversation-owned tasks only: excluded from ordinary idle waits, conversation aborts, and cascades. */\n\treadonly background?: boolean;\n\t/**\n\t * Its creator awaits it only in memory and does not resume after a restart, so it is pointless once the Harness that\n\t * created it is gone. When scheduling starts in a later Harness, the task, if still live, is abort-marked with reason\n\t * `restart`, and the mark cascades to its ordinary owned work, before any of it runs again.\n\t */\n\treadonly abandonOnRestart?: boolean;\n};\n\n/** Ownership selected explicitly whenever a conversation is created. */\nexport type ConversationOwnership = { readonly kind: \"ownerless\" } | { readonly kind: \"task\"; readonly taskId: TaskId };\n\n/** Immutable identity, history ancestry, and task ownership of a transcript scope. */\nexport type ConversationRecord = {\n\treadonly id: ConversationId;\n\t/** Fork source and inclusive parent entry through which history is inherited. */\n\treadonly parent?: {\n\t\treadonly conversationId: ConversationId;\n\t\treadonly at: EntryId;\n\t};\n\t/** Creator edge used for attribution, subtree abort, and subtree idle waits. */\n\treadonly owner?: {\n\t\treadonly conversationId: ConversationId;\n\t\treadonly taskId: TaskId;\n\t};\n};\n\n/** An immutable override of one visible entry's contribution to model context. */\nexport type ContextEdit = {\n\t/** Entry whose model messages are omitted or replaced. */\n\treadonly target: EntryId;\n} & (\n\t| {\n\t\t\treadonly action: \"omit\";\n\t\t\treadonly messages?: never;\n\t }\n\t| {\n\t\t\treadonly action: \"replace\";\n\t\t\t/** Messages contributed instead of the target entry's model messages. */\n\t\t\treadonly messages: readonly Message[];\n\t }\n);\n\n/** Immutable transcript event with separate model-facing and application-facing payloads. */\nexport type EntryRecord = {\n\treadonly id: EntryId;\n\treadonly conversationId: ConversationId;\n\t/** Application-defined entry discriminator. */\n\treadonly kind: string;\n\t/** Messages contributed to model context; absent for display or bookkeeping entries. */\n\treadonly model?: readonly Message[];\n\t/** JSON payload consumed by views, extensions, or bookkeeping logic. */\n\treadonly data?: JsonValue;\n\t/** First entry in the active context selected by this entry. */\n\treadonly head?: EntryId;\n\t/** Context-only overrides of earlier visible entries. */\n\treadonly edits?: readonly ContextEdit[];\n\t/** Task that appended this entry, when it was produced by durable work. */\n\treadonly byTaskId?: TaskId;\n};\n\n/** Entry content supplied before the Session assigns identity and task attribution. */\nexport type EntryDraft = Omit<EntryRecord, \"id\" | \"conversationId\" | \"byTaskId\" | \"head\"> & {\n\t/** `\"self\"` starts active context at the newly assigned entry ID. */\n\treadonly head?: EntryId | \"self\";\n};\n\n/** Entry whose `data` has type `D`; `never` means the kind carries no data. */\nexport type TypedEntry<D extends JsonValue> = Omit<EntryRecord, \"data\"> &\n\t([D] extends [never] ? { readonly data?: never } : { readonly data: D });\n\n/** Entry content of a typed kind; the token supplies `kind`. */\nexport type TypedEntryDraft<D extends JsonValue> = Omit<EntryDraft, \"kind\" | \"data\"> &\n\t([D] extends [never] ? { readonly data?: never } : { readonly data: D });\n\n/** Typed entry kind with a narrowing guard. */\nexport interface Entry<D extends JsonValue = never> {\n\treadonly kind: string;\n\tis(entry: EntryRecord | undefined): entry is TypedEntry<D>;\n}\n\n/** Identity fields shared by every durable submission state. */\ntype SubmissionRecordBase = {\n\t/** Adapter-owned context of the admission span; absent without propagation. */\n\treadonly trace?: TelemetryCarrier;\n\treadonly id: SubmissionId;\n\treadonly conversationId: ConversationId;\n\t/** Host-provided deduplication key, scoped to the conversation. */\n\treadonly requestId?: string;\n};\n\n/** Durable lifecycle of one admitted user input, passive entry write, or continue. */\nexport type SubmissionRecord =\n\t| (SubmissionRecordBase & {\n\t\t\treadonly type: \"input\";\n\t } & (\n\t\t\t\t| {\n\t\t\t\t\t\t/** Admitted but not yet represented in the transcript. */\n\t\t\t\t\t\treadonly status: \"queued\";\n\t\t\t\t\t\treadonly entry?: never;\n\t\t\t\t\t\treadonly answer?: never;\n\t\t\t\t\t\treadonly reason?: never;\n\t\t\t\t\t\treadonly detail?: never;\n\t\t\t\t }\n\t\t\t\t| {\n\t\t\t\t\t\t/** Added to the transcript and owned by an active run. */\n\t\t\t\t\t\treadonly status: \"placed\";\n\t\t\t\t\t\treadonly entry: EntryId;\n\t\t\t\t\t\treadonly answer?: never;\n\t\t\t\t\t\treadonly reason?: never;\n\t\t\t\t\t\treadonly detail?: never;\n\t\t\t\t }\n\t\t\t\t| {\n\t\t\t\t\t\t/** Successfully answered user input. */\n\t\t\t\t\t\treadonly status: \"done\";\n\t\t\t\t\t\treadonly entry: EntryId;\n\t\t\t\t\t\treadonly answer: EntryId;\n\t\t\t\t\t\treadonly reason?: never;\n\t\t\t\t\t\treadonly detail?: never;\n\t\t\t\t }\n\t\t\t\t| {\n\t\t\t\t\t\t/** Terminal input that can no longer receive an answer. */\n\t\t\t\t\t\treadonly status: \"unanswered\";\n\t\t\t\t\t\treadonly entry?: EntryId;\n\t\t\t\t\t\treadonly answer?: never;\n\t\t\t\t\t\treadonly reason: string;\n\t\t\t\t\t\treadonly detail?: JsonValue;\n\t\t\t\t }\n\t\t\t))\n\t| (SubmissionRecordBase & {\n\t\t\treadonly type: \"write\";\n\t } & (\n\t\t\t\t| {\n\t\t\t\t\t\t/** Admitted but not yet appended to the transcript. */\n\t\t\t\t\t\treadonly status: \"queued\";\n\t\t\t\t\t\treadonly entry?: never;\n\t\t\t\t\t\treadonly answer?: never;\n\t\t\t\t\t\treadonly reason?: never;\n\t\t\t\t\t\treadonly detail?: never;\n\t\t\t\t }\n\t\t\t\t| {\n\t\t\t\t\t\t/** Successfully appended passive entry. */\n\t\t\t\t\t\treadonly status: \"done\";\n\t\t\t\t\t\treadonly entry: EntryId;\n\t\t\t\t\t\treadonly answer?: never;\n\t\t\t\t\t\treadonly reason?: never;\n\t\t\t\t\t\treadonly detail?: never;\n\t\t\t\t }\n\t\t\t\t| {\n\t\t\t\t\t\t/** Terminal passive write that could not be placed. */\n\t\t\t\t\t\treadonly status: \"unanswered\";\n\t\t\t\t\t\treadonly entry?: never;\n\t\t\t\t\t\treadonly answer?: never;\n\t\t\t\t\t\treadonly reason: string;\n\t\t\t\t\t\treadonly detail?: JsonValue;\n\t\t\t\t }\n\t\t\t))\n\t| (SubmissionRecordBase & {\n\t\t\t/** A run started without a user message; it places no entry and is never queued. */\n\t\t\treadonly type: \"continue\";\n\t } & (\n\t\t\t\t| {\n\t\t\t\t\t\t/** Owned by an active run. */\n\t\t\t\t\t\treadonly status: \"placed\";\n\t\t\t\t\t\treadonly entry?: never;\n\t\t\t\t\t\treadonly answer?: never;\n\t\t\t\t\t\treadonly reason?: never;\n\t\t\t\t\t\treadonly detail?: never;\n\t\t\t\t }\n\t\t\t\t| {\n\t\t\t\t\t\t/** The run answered. */\n\t\t\t\t\t\treadonly status: \"done\";\n\t\t\t\t\t\treadonly entry?: never;\n\t\t\t\t\t\treadonly answer: EntryId;\n\t\t\t\t\t\treadonly reason?: never;\n\t\t\t\t\t\treadonly detail?: never;\n\t\t\t\t }\n\t\t\t\t| {\n\t\t\t\t\t\t/** The run ended without an answer. */\n\t\t\t\t\t\treadonly status: \"unanswered\";\n\t\t\t\t\t\treadonly entry?: never;\n\t\t\t\t\t\treadonly answer?: never;\n\t\t\t\t\t\treadonly reason: string;\n\t\t\t\t\t\treadonly detail?: JsonValue;\n\t\t\t\t }\n\t\t\t));\n\n/** Terminal status staged for a submission; identity, type, and entry come from its current record. */\nexport type SubmissionSettlement =\n\t| { readonly status: \"done\"; readonly answer: EntryId }\n\t| { readonly status: \"unanswered\"; readonly reason: string; readonly detail?: JsonValue };\n\n/** Submission fields supplied before the Session assigns an ID. */\nexport type SubmissionCreate = SubmissionRecord extends infer Record\n\t? Record extends SubmissionRecord\n\t\t? Omit<Record, \"id\">\n\t\t: never\n\t: never;\n\n/** JSON-safe error snapshot persisted instead of a runtime `Error` object. */\nexport type TaskOutcomeError = {\n\treadonly message: string;\n\t/** Optional structured diagnostic data for inspection or recovery. */\n\treadonly detail?: JsonValue;\n};\n\n/** Durable reason and optional result recorded when a task becomes terminal. */\nexport type TaskOutcome<R> =\n\t| {\n\t\t\treadonly status: \"completed\";\n\t\t\treadonly result: R;\n\t\t\treadonly error?: never;\n\t\t\treadonly reason?: never;\n\t }\n\t/** Expected task or domain failure explicitly committed by its implementation. */\n\t| {\n\t\t\treadonly status: \"failed\";\n\t\t\treadonly error: TaskOutcomeError;\n\t\t\treadonly result?: R;\n\t\t\treadonly reason?: never;\n\t }\n\t/** Explicit cancellation handled by the task's abort protocol. */\n\t| {\n\t\t\treadonly status: \"aborted\";\n\t\t\treadonly reason?: string;\n\t\t\treadonly result?: R;\n\t\t\treadonly error?: never;\n\t }\n\t/** Task that cannot resume because its definition or migration is unavailable. */\n\t| {\n\t\t\treadonly status: \"orphaned\";\n\t\t\treadonly reason: string;\n\t\t\treadonly result?: never;\n\t\t\treadonly error?: never;\n\t }\n\t/** Runtime-detected contract failure, such as an uncaught throw or no durable progress. */\n\t| {\n\t\t\treadonly status: \"faulted\";\n\t\t\treadonly error: TaskOutcomeError;\n\t\t\treadonly result?: never;\n\t\t\treadonly reason?: never;\n\t };\n\n/** Complete durable execution state of a task. */\nexport type TaskState<S, R> =\n\t| {\n\t\t\t/** Eligible for scheduling. */\n\t\t\treadonly status: \"pending\";\n\t\t\t/** Complete durable state from which execution resumes. */\n\t\t\treadonly checkpoint: S;\n\t\t\treadonly outcome?: never;\n\t }\n\t| {\n\t\t\t/** Reserved by one in-memory task invocation. */\n\t\t\treadonly status: \"running\";\n\t\t\t/** Complete durable state from which execution resumes. */\n\t\t\treadonly checkpoint: S;\n\t\t\treadonly outcome?: never;\n\t }\n\t| {\n\t\t\t/** Parked without an invocation until every task in `on` is terminal; then resumes at `checkpoint`. */\n\t\t\treadonly status: \"waiting\";\n\t\t\treadonly checkpoint: S;\n\t\t\treadonly on: readonly TaskId[];\n\t\t\treadonly policy: JoinPolicy;\n\t\t\treadonly outcome?: never;\n\t }\n\t| {\n\t\t\t/**\n\t\t\t * Parked without an invocation until the Harness clock reaches `until`, in milliseconds on the\n\t\t\t * `HarnessOptions.now` clock; then resumes at `checkpoint`. An abort mark does not wait for it.\n\t\t\t */\n\t\t\treadonly status: \"sleeping\";\n\t\t\treadonly checkpoint: S;\n\t\t\treadonly until: number;\n\t\t\treadonly outcome?: never;\n\t }\n\t| {\n\t\t\t/** Outcome decided; becomes terminal once no ordinary owned work below is live. Runs no more code. */\n\t\t\treadonly status: \"completing\";\n\t\t\treadonly checkpoint?: never;\n\t\t\treadonly outcome: TaskOutcome<R>;\n\t }\n\t| {\n\t\t\t/** Permanently settled durable result receipt. */\n\t\t\treadonly status: \"terminal\";\n\t\t\treadonly checkpoint?: never;\n\t\t\treadonly outcome: TaskOutcome<R>;\n\t };\n\n/** Identity, definition, and scheduling fields shared by every task state. */\ntype TaskRecordBase<I, R> = {\n\t/** Adapter-owned context that created this task; phase invocations extract it as their parent. */\n\treadonly trace?: TelemetryCarrier;\n\t/** Immutable creation-time links for the task's first invocation. */\n\treadonly links?: readonly TelemetryCarrier[];\n\treadonly id: TaskId<R>;\n\treadonly conversationId: ConversationId;\n\t/** Registered task definition name. */\n\treadonly kind: string;\n\t/** Definition version used to migrate live input and checkpoints. */\n\treadonly version: number;\n\t/** Original task input retained while the task is live or terminal. */\n\treadonly input: I;\n\t/** Owning task of a child task; absent for a task its conversation owns. Immutable. */\n\treadonly owner?: TaskId;\n\t/** Whether this conversation-owned task is excluded from ordinary idle waits, conversation aborts, and cascades. */\n\treadonly background: boolean;\n\t/** Durable abort mark checked before run-mode progress is committed. */\n\treadonly abortRequested: boolean;\n\t/**\n\t * Why the mark was set when not by an abort request: `restart` for a task abandoned after a restart\n\t * (`TaskOptions.abandonOnRestart`) or below one. Such a task waits for its definition instead of becoming `orphaned`.\n\t * A later abort request clears it.\n\t */\n\treadonly abortReason?: \"restart\";\n\t/** Set from `TaskOptions.abandonOnRestart`. Immutable. */\n\treadonly abandonOnRestart?: true;\n\t/**\n\t * Wall-clock milliseconds of the first change to `running`, stamped by the Session. Kept through waits and recovery,\n\t * so the span to `endedAt` includes them. Absent before the task first runs, and on records written by earlier\n\t * versions.\n\t */\n\treadonly startedAt?: number;\n\t/** Wall-clock milliseconds of the change to `terminal`, stamped by the Session; absent while live. */\n\treadonly endedAt?: number;\n\t/**\n\t * How many times in a row a crash, eviction, or reset cut the task off while it ran, without the task changing its\n\t * state since; open counts them, and a close does not. At `HarnessSettings.restartLimit` the task ends (the built-in\n\t * tasks end themselves, visibly; the scheduler faults any other kind), and a generation reads it to charge an\n\t * interrupted model request as a failed attempt.\n\t */\n\treadonly restarts?: number;\n};\n\n/** Complete replacement record for one durable task state machine. */\nexport type TaskRecord<I, S, R> = TaskRecordBase<I, R> &\n\t(\n\t\t| {\n\t\t\t\treadonly state: Extract<\n\t\t\t\t\tTaskState<S, R>,\n\t\t\t\t\t{ readonly status: \"pending\" | \"running\" | \"waiting\" | \"sleeping\" }\n\t\t\t\t>;\n\t\t\t\t/** Small first-writer-wins values retained while the task can run. */\n\t\t\t\treadonly memos?: Readonly<Record<string, JsonValue>>;\n\t\t }\n\t\t| {\n\t\t\t\treadonly state: Extract<TaskState<S, R>, { readonly status: \"completing\" | \"terminal\" }>;\n\t\t\t\treadonly memos?: never;\n\t\t }\n\t);\n\n/** Persisted lifecycle record for one create-to-retire document incarnation. */\nexport type DocumentRecord = {\n\t/** Unique incarnation ID; never reused when the same logical document is recreated. */\n\treadonly id: DocumentId;\n\t/** Stable document definition kind. */\n\treadonly kind: string;\n\t/** Family member key; absent for singleton documents. */\n\treadonly key?: string;\n\t/** Commit that created the incarnation, stamped by storage. */\n\treadonly createdAt: Seq;\n\t/** Commit that retired the incarnation; absent while it is current. */\n\treadonly retiredAt?: Seq;\n} & (\n\t| {\n\t\t\treadonly scope: { readonly kind: \"session\" };\n\t\t\treadonly history?: never;\n\t\t\treadonly fork?: never;\n\t }\n\t| ({ readonly scope: { readonly kind: \"conversation\"; readonly conversationId: ConversationId } } & (\n\t\t\t| {\n\t\t\t\t\t/** Retain only current state. */\n\t\t\t\t\treadonly history: \"latest\";\n\t\t\t\t\t/** Initialize a fork from current source state or the definition's initial value. */\n\t\t\t\t\treadonly fork: \"current\" | \"initial\";\n\t\t\t }\n\t\t\t| {\n\t\t\t\t\t/** Retain history needed for as-of reads. */\n\t\t\t\t\treadonly history: \"rewindable\";\n\t\t\t\t\t/** Initialize a fork at its cutoff, from current state, or from the initial value. */\n\t\t\t\t\treadonly fork: \"asOf\" | \"current\" | \"initial\";\n\t\t\t }\n\t ))\n\t| {\n\t\t\treadonly scope: { readonly kind: \"task\"; readonly taskId: TaskId };\n\t\t\treadonly history?: never;\n\t\t\treadonly fork?: never;\n\t }\n);\n\n/** Fields supplied when storage creates and stamps a new `DocumentRecord`. */\nexport type DocumentCreate = DocumentRecord extends infer Record\n\t? Record extends DocumentRecord\n\t\t? Omit<Record, \"createdAt\" | \"retiredAt\">\n\t\t: never\n\t: never;\n\n/** One ordered scan result and its optional continuation state. */\nexport type Page<T, C> = {\n\treadonly items: readonly T[];\n\treadonly next?: C;\n};\n\n/**\n * Backend-owned JSON continuation state that callers only round-trip to the same scan. It carries the scan's order: a\n * scan given a cursor continues in that order, and rejects a different `order` in its query.\n */\nexport type Cursor = Readonly<Record<string, JsonValue>>;\n\n/** ID order of a scan: `ascending` is oldest first, `descending` newest first. */\nexport type ScanOrder = \"ascending\" | \"descending\";\n\n/** Optional filters for an ordered conversation scan. */\nexport type ConversationQuery = {\n\treadonly ownerConversationId?: ConversationId;\n\treadonly ownerTaskId?: TaskId;\n\t/** Default `ascending`; with a cursor, the cursor's order. */\n\treadonly order?: ScanOrder;\n};\n\n/** Inclusive ID bounds for a scan of one conversation's fork-aware history. */\nexport type EntryQuery = {\n\treadonly conversationId: ConversationId;\n\t/** Oldest entry ID that may be returned. */\n\treadonly minEntryId?: EntryId;\n\t/** Newest entry ID that may be returned. */\n\treadonly maxEntryId?: EntryId;\n\t/** Default `descending`; with a cursor, the cursor's order. */\n\treadonly order?: ScanOrder;\n};\n\n/** Optional filters for an ordered scan of durable task records. */\nexport type TaskQuery = {\n\treadonly conversationId?: ConversationId;\n\treadonly kind?: string;\n\treadonly status?: TaskState<JsonValue, JsonValue>[\"status\"];\n\treadonly abortRequested?: boolean;\n\treadonly background?: boolean;\n\t/** Default `ascending`; with a cursor, the cursor's order. */\n\treadonly order?: ScanOrder;\n};\n\n/** Optional filters for an ordered scan of submission records. */\nexport type SubmissionQuery = {\n\treadonly conversationId?: ConversationId;\n\treadonly status?: SubmissionRecord[\"status\"];\n\t/** Default `ascending`; with a cursor, the cursor's order. */\n\treadonly order?: ScanOrder;\n};\n\n/** Current state or one historical commit sequence used for document membership and content reads. */\nexport type DocumentPoint = Seq | \"current\";\n\n/** Exact logical identity of a singleton or one keyed family member. */\nexport type DocumentAddress = {\n\treadonly kind: string;\n\treadonly scope: DocumentRecord[\"scope\"];\n\t/** Absent selects the singleton; present selects one family member. */\n\treadonly key?: string;\n};\n\n/** Ordered scan of document incarnations alive in one exact scope at one point. */\nexport type DocumentQuery = {\n\treadonly scope: DocumentRecord[\"scope\"];\n\treadonly at: DocumentPoint;\n\treadonly kind?: string;\n};\n\n/** Complete checkpoint or Chord operation batch selected by the owning Session. */\nexport type DocumentContent =\n\t| {\n\t\t\treadonly version: number;\n\t\t\treadonly kind: \"base\";\n\t\t\treadonly value: JsonObject;\n\t }\n\t| {\n\t\t\treadonly version: number;\n\t\t\treadonly kind: \"delta\";\n\t\t\treadonly ops: readonly Op[];\n\t };\n\n/** Exact persisted source selected for a definition-free document copy. */\nexport type DocumentCopySource = {\n\treadonly id: DocumentId;\n\treadonly at: DocumentPoint;\n};\n\n/** Detached materialized value and stored definition version at a selected point. */\nexport type StoredDocument = {\n\treadonly record: DocumentRecord;\n\treadonly version: number;\n\treadonly value: JsonObject;\n\t/** Deltas replayed after the selected base to materialize `value`. */\n\treadonly deltasSinceBase: number;\n};\n\n/** One record or document mutation in an atomic storage commit. */\nexport type StorageWrite =\n\t| { readonly type: \"conversation\"; readonly value: ConversationRecord }\n\t| { readonly type: \"entry\"; readonly value: EntryRecord }\n\t| { readonly type: \"task\"; readonly value: TaskRecord<JsonValue, JsonValue, JsonValue> }\n\t| { readonly type: \"submission\"; readonly value: SubmissionRecord }\n\t| {\n\t\t\treadonly type: \"document.create\";\n\t\t\treadonly record: DocumentCreate;\n\t\t\treadonly content: Extract<DocumentContent, { readonly kind: \"base\" }>;\n\t }\n\t| { readonly type: \"document.copy\"; readonly record: DocumentCreate; readonly source: DocumentCopySource }\n\t| {\n\t\t\treadonly type: \"document.change\";\n\t\t\treadonly id: DocumentId;\n\t\t\treadonly content: DocumentContent;\n\t }\n\t| { readonly type: \"document.retire\"; readonly id: DocumentId };\n\n/**\n * Committed change of one document incarnation: `type: \"document\"` with `kind: \"change\"` (a creation or an update) or\n * `kind: \"retire\"` (this commit retired the incarnation), or a `document.copy`.\n */\nexport type DocumentCommitChange =\n\t| {\n\t\t\treadonly type: \"document\";\n\t\t\treadonly kind: \"change\";\n\t\t\treadonly record: DocumentRecord;\n\t\t\t/** Conversation owning the document; task documents derive it from their task record. Undefined only for Session documents. */\n\t\t\treadonly conversationId: ConversationId | undefined;\n\t\t\t/** Definition version of `value`. */\n\t\t\treadonly version: number;\n\t\t\t/** Exact adopted immutable revision. */\n\t\t\treadonly value: JsonObject;\n\t\t\t/** Exact adopted operations for an ordinary update; empty for creation. */\n\t\t\treadonly ops: readonly Op[];\n\t }\n\t| {\n\t\t\treadonly type: \"document\";\n\t\t\treadonly kind: \"retire\";\n\t\t\treadonly record: DocumentRecord;\n\t\t\t/** Conversation owning the document; task documents derive it from their task record. Undefined only for Session documents. */\n\t\t\treadonly conversationId: ConversationId | undefined;\n\t }\n\t| {\n\t\t\t/** Definition-free child initialization; consumers hydrate through watch acquisition. */\n\t\t\treadonly type: \"document.copy\";\n\t\t\treadonly record: DocumentRecord;\n\t\t\treadonly conversationId: ConversationId;\n\t\t\treadonly source: DocumentCopySource;\n\t };\n\n/** Complete table record committed without another publication copy. */\nexport type TableCommitChange = Extract<\n\tStorageWrite,\n\t{ readonly type: \"conversation\" | \"entry\" | \"task\" | \"submission\" }\n>;\n\nexport type CommitChange = TableCommitChange | DocumentCommitChange;\n\n/**\n * Every immutable change one Session storage transaction stored, with its `seq`. Change order is unspecified. A commit\n * held in memory (`CommitPersistence`) is published once it is stored: by the next commit that reads or writes its\n * document, alone (`seq` of its own), or with that commit, whose document change then carries the held operations\n * followed by its own.\n */\nexport type CommitPublication = {\n\treadonly seq: Seq;\n\treadonly changes: readonly CommitChange[];\n};\n\n/**\n * Transaction surface of one Session commit callback.\n * Table reads and creation results are trusted immutable values and may be shared with internal commit state; the\n * Session may freeze them (its caches and context ranges keep them), so mutating one can throw.\n */\nexport interface Tx {\n\tconversation(id: ConversationId): Promise<ConversationRecord | undefined>;\n\tentry(id: EntryId): Promise<EntryRecord | undefined>;\n\t/** Undefined when the entry is absent or has another kind. */\n\tentry<D extends JsonValue>(token: Entry<D>, id: EntryId): Promise<TypedEntry<D> | undefined>;\n\ttask(id: TaskId): Promise<TaskRecord<JsonValue, JsonValue, JsonValue> | undefined>;\n\tscanConversations(\n\t\tquery: ConversationQuery,\n\t\tlimit: number,\n\t\tcursor?: Cursor,\n\t): Promise<Page<ConversationRecord, Cursor>>;\n\tscanEntries(query: EntryQuery, limit: number, cursor?: Cursor): Promise<Page<EntryRecord, Cursor>>;\n\t/** Newest visible entry of the conversation that carries a `head`. */\n\tlatestHeadMarker(conversationId: ConversationId): Promise<(EntryRecord & { readonly head: EntryId }) | undefined>;\n\t/** ID of the newest entry visible from the conversation; `undefined` when it has none. */\n\tlatestEntryId(conversationId: ConversationId): Promise<EntryId | undefined>;\n\tscanTasks(\n\t\tquery: TaskQuery,\n\t\tlimit: number,\n\t\tcursor?: Cursor,\n\t): Promise<Page<TaskRecord<JsonValue, JsonValue, JsonValue>, Cursor>>;\n\t/** Committed submission with a conversation-scoped request ID. */\n\tsubmissionByRequest(conversationId: ConversationId, requestId: string): Promise<SubmissionRecord | undefined>;\n\n\t/** Create a conversation with explicitly selected ownership. */\n\tcreateConversation(options: { readonly ownership: ConversationOwnership }): Promise<ConversationRecord>;\n\t/** Create a history fork at one concrete visible entry with explicitly selected ownership. */\n\tforkConversation(\n\t\tparentConversationId: ConversationId,\n\t\tat: EntryId,\n\t\toptions: { readonly ownership: ConversationOwnership },\n\t): Promise<ConversationRecord>;\n\t/** Returned records are Session-owned immutable values and may be shared with commit listeners. */\n\tappendEntry(conversationId: ConversationId, value: EntryDraft): Promise<EntryRecord>;\n\t/** The token supplies `kind` and types `data`. */\n\tappendEntry<D extends JsonValue>(\n\t\ttoken: Entry<D>,\n\t\tconversationId: ConversationId,\n\t\tvalue: TypedEntryDraft<NoInfer<D>>,\n\t): Promise<TypedEntry<D>>;\n\tcreateTask<I, S extends { phase: string }, R, H extends object>(\n\t\ttask: Task<I, S, R, H>,\n\t\tinput: I,\n\t\toptions: TaskOptions,\n\t): Promise<TaskId<R>>;\n\t/**\n\t * Create a raw submission record with a fresh ID. No admission rules apply: no busy check, no inbox queueing, no\n\t * placement. Use `Conversation.submit()` or a conversation handle unless the caller implements admission itself.\n\t */\n\tcreateSubmission(create: SubmissionCreate): Promise<SubmissionRecord>;\n\t/**\n\t * Settle a queued or placed submission; only a placed input or continue can be answered, and a settled submission stays\n\t * unchanged. Resolved against this transaction's latest record of the submission, so it works after table writes.\n\t * Run tasks settle the inputs they answer.\n\t */\n\tsettleSubmission(id: SubmissionId, settlement: SubmissionSettlement): void;\n\t/**\n\t * Place a queued submission at `entry`: an input becomes `placed`, a write `done`. Resolved like\n\t * `settleSubmission()`. Inbox boundaries place the submissions they select.\n\t */\n\tplaceSubmission(id: SubmissionId, entry: EntryId): void;\n\n\tdoc<T extends JsonObject>(token: SessionDocToken<T>): Promise<Draft<T>>;\n\tdoc<T extends JsonObject>(token: ConversationDocToken<T>, conversationId: ConversationId): Promise<Draft<T>>;\n\tdoc<T extends JsonObject>(token: TaskDocToken<T>, taskId: TaskId): Promise<Draft<T>>;\n\tdoc<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: SessionDocFamilyToken<T, I>,\n\t\tkey: string,\n\t\tseed: I,\n\t): Promise<Draft<T>>;\n\tdoc<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: ConversationDocFamilyToken<T, I>,\n\t\tconversationId: ConversationId,\n\t\tkey: string,\n\t\tseed: I,\n\t): Promise<Draft<T>>;\n\tdoc<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: TaskDocFamilyToken<T, I>,\n\t\ttaskId: TaskId,\n\t\tkey: string,\n\t\tseed: I,\n\t): Promise<Draft<T>>;\n\n\tretireDoc<T extends JsonObject>(token: SessionDocToken<T>): Promise<void>;\n\tretireDoc<T extends JsonObject>(token: ConversationDocToken<T>, conversationId: ConversationId): Promise<void>;\n\tretireDoc<T extends JsonObject>(token: TaskDocToken<T>, taskId: TaskId): Promise<void>;\n\tretireDoc<T extends JsonObject, I extends JsonValue>(token: SessionDocFamilyToken<T, I>, key: string): Promise<void>;\n\tretireDoc<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: ConversationDocFamilyToken<T, I>,\n\t\tconversationId: ConversationId,\n\t\tkey: string,\n\t): Promise<void>;\n\tretireDoc<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: TaskDocFamilyToken<T, I>,\n\t\ttaskId: TaskId,\n\t\tkey: string,\n\t): Promise<void>;\n}\n\n/**\n * Watch of one document address (kind, scope, and key), from the incarnation found at acquisition on. A retirement is a\n * call with `retired` set, the last value the watch was given and no ops (a change made in the retiring commit itself\n * is not shown: that commit publishes the retirement only); the watch goes on, and a document created at the address\n * later arrives as `[[\"r\", value]]`, folded with what is pending. It ends `ended` when its scope's owner ends: a task\n * document's watch once the retirement call of the commit that makes its task terminal returned, every watch at Session\n * close (a pending retirement dropped); `failed` with the error that failed the Session.\n */\nexport type DocumentWatch<T extends JsonObject> = WatchHandle<Readonly<T>>;\n\n/**\n * A synchronous observer of committed Durable state, for adapters such as a Chord source (`observeDoc()`,\n * `Harness.observeConversation()`, `Harness.observeTaskGraph()`), with the shapes of Chord's watch: `advance` gets a\n * `WatchCall`, `end` a `WatchEnd`. `advance` gets every change, unfolded, as memory adopts it: for a stored commit at its\n * publication once Storage stored it, for a deferred one before it is stored. A view or the graph gets at most one call\n * per commit, a document observer one per change at its address (two for a commit that retires and recreates it); the\n * task graph also advances outside any commit's publication, on the Session line, when a registry change or a failed\n * migration changes a\n * `blocked` reason. Durable's failures are final, so every call is a `value` call; a failure ends the observer. Calls\n * may come before the attaching promise resolves; their ops apply from `Observation.value`. `advance` must only record\n * the call, synchronously and quickly, never await, call the Session, or throw. A throw is reported as\n * `listener_error`, detaches the observer, and ends it `listener_error` with the error. `end` is called once: `ended`\n * when the observed scope's owner ends (a task document's task, after its retirement change, inside that commit's\n * `adopt`), `failed` with \"session closed\" when the Session closes (an adapter follows the next Session) or with the\n * error that failed the Session; never after `detach()`.\n */\nexport type Observer<T> = {\n\tadvance(call: WatchCall<T>, context: Context): void;\n\tend(end: WatchEnd): void;\n};\n\n/**\n * A synchronous observer of stored commits (`Session.observeCommits()`): `advance` gets each `CommitPublication`, `end`\n * the Session's close (`failed` with \"session closed\", or with the error that failed the Session).\n */\nexport type CommitObserver = {\n\tadvance(publication: CommitPublication, context: Context): void;\n\tend(end: WatchEnd): void;\n};\n\n/** An attached `CommitObserver`: how to detach it. Idempotent: no `advance` or `end` follows it. */\nexport type CommitObservation = { detach(): void };\n\n/** An attached `Observer`: the value at attachment, which every later `advance` starts from, and how to detach it. */\nexport type Observation<T> = {\n\treadonly value: T;\n\t/** Idempotent: no `advance` or `end` follows it, not even for the rest of a commit underway. */\n\tdetach(): void;\n};\n\n/** Committed document reads. */\nexport type DocumentReader = Pick<Session, \"snapshot\" | \"snapshotAsOf\">;\n\n/** Non-creating document watch acquisition shared by Session and later invocation APIs. */\nexport interface DocumentObserver {\n\twatchDoc<T extends JsonObject>(token: SessionDocToken<T>, context: Context): Promise<DocumentWatch<T> | undefined>;\n\twatchDoc<T extends JsonObject>(\n\t\ttoken: ConversationDocToken<T>,\n\t\tconversationId: ConversationId,\n\t\tcontext: Context,\n\t): Promise<DocumentWatch<T> | undefined>;\n\twatchDoc<T extends JsonObject>(\n\t\ttoken: TaskDocToken<T>,\n\t\ttaskId: TaskId,\n\t\tcontext: Context,\n\t): Promise<DocumentWatch<T> | undefined>;\n\twatchDoc<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: SessionDocFamilyToken<T, I>,\n\t\tkey: string,\n\t\tcontext: Context,\n\t): Promise<DocumentWatch<T> | undefined>;\n\twatchDoc<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: ConversationDocFamilyToken<T, I>,\n\t\tconversationId: ConversationId,\n\t\tkey: string,\n\t\tcontext: Context,\n\t): Promise<DocumentWatch<T> | undefined>;\n\twatchDoc<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: TaskDocFamilyToken<T, I>,\n\t\ttaskId: TaskId,\n\t\tkey: string,\n\t\tcontext: Context,\n\t): Promise<DocumentWatch<T> | undefined>;\n}\n\n/** Why a Session ended, by `kind`: `close()`, or a failed Storage call, whose error it carries. */\nexport type SessionEnd = { readonly kind: \"closed\" } | { readonly kind: \"failed\"; readonly error: unknown };\n\n/**\n * When a commit reaches Storage. `immediate`, the default: before `commit()` resolves. `deferred`: when every write of\n * the commit changes an existing conversation document with `history: \"latest\"` and `fork: \"initial\"` (no creation,\n * migration, or retirement), the Session adopts it in memory, shows it to watches and views, and resolves, but stores it\n * later: with the next commit that reads (`tx.doc()`) or writes that document, before the document leaves memory or\n * retires, at `close()`, and at the latest about `withinMs` after the commit (default `settings.progress.persistWithinMs`,\n * 1,000 ms; `Infinity` waits for one of the others). A commit that writes anything else is immediate. A crash loses what\n * is held, so only state whose loss is acceptable, such as streamed progress, should be deferred, and nothing durable may\n * depend on it without reading it in a commit.\n */\nexport type CommitPersistence =\n\t| { readonly kind: \"immediate\" }\n\t| { readonly kind: \"deferred\"; readonly withinMs?: number };\n\n/** Options of one Session commit. */\nexport type CommitOptions = { readonly persistence?: CommitPersistence };\n\n/** Owner of one mutation line, its records, and its tracked documents. */\nexport interface Session extends DocumentObserver {\n\t/**\n\t * Run one atomic transaction on the Session mutation line. Inside the callback read only through `tx`: `snapshot()`, `watchDoc()`, `getTask()`, and the other Session and runtime reads may queue on the line the callback holds, and then never resolve.\n\t * `options.persistence` may defer storing it (`CommitPersistence`). The callback may run while an earlier commit is\n\t * being stored: at its first read or write of what an unpublished commit wrote, it waits until that commit is stored\n\t * and published; code before that runs early, so act on what it computes only once the commit resolves. Resolves\n\t * once the commit is stored and published, after every earlier commit's outcome.\n\t */\n\tcommit<T>(change: (tx: Tx) => T | Promise<T>, context: Context, options?: CommitOptions): Promise<T>;\n\t/** Seal admission, settle admitted commits, then close storage. */\n\tclose(context: Context): Promise<void>;\n\t/**\n\t * Settles once the Session has closed, Storage included: after `close()`, or after the first failed Storage call,\n\t * which closes the Session itself. A failed Session is reopened from Storage; nothing else is left to clean up.\n\t */\n\treadonly closed: Promise<SessionEnd>;\n\t/**\n\t * Attach a synchronous `Observer` to one document address, atomically on the Session line, as `watchDoc()` acquires\n\t * a watch: the observation's value includes every commit before it, and `advance` gets every later one, retirements\n\t * and later incarnations included. `undefined` when the address is absent. `context` governs only the attachment:\n\t * cancelled while attaching, the promise rejects and nothing stays attached.\n\t */\n\tobserveDoc<T extends JsonObject>(\n\t\ttoken: SessionDocToken<T>,\n\t\tobserver: Observer<Readonly<T>>,\n\t\tcontext: Context,\n\t): Promise<Observation<Readonly<T>> | undefined>;\n\tobserveDoc<T extends JsonObject>(\n\t\ttoken: ConversationDocToken<T>,\n\t\tconversationId: ConversationId,\n\t\tobserver: Observer<Readonly<T>>,\n\t\tcontext: Context,\n\t): Promise<Observation<Readonly<T>> | undefined>;\n\tobserveDoc<T extends JsonObject>(\n\t\ttoken: TaskDocToken<T>,\n\t\ttaskId: TaskId,\n\t\tobserver: Observer<Readonly<T>>,\n\t\tcontext: Context,\n\t): Promise<Observation<Readonly<T>> | undefined>;\n\tobserveDoc<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: SessionDocFamilyToken<T, I>,\n\t\tkey: string,\n\t\tobserver: Observer<Readonly<T>>,\n\t\tcontext: Context,\n\t): Promise<Observation<Readonly<T>> | undefined>;\n\tobserveDoc<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: ConversationDocFamilyToken<T, I>,\n\t\tconversationId: ConversationId,\n\t\tkey: string,\n\t\tobserver: Observer<Readonly<T>>,\n\t\tcontext: Context,\n\t): Promise<Observation<Readonly<T>> | undefined>;\n\tobserveDoc<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: TaskDocFamilyToken<T, I>,\n\t\ttaskId: TaskId,\n\t\tkey: string,\n\t\tobserver: Observer<Readonly<T>>,\n\t\tcontext: Context,\n\t): Promise<Observation<Readonly<T>> | undefined>;\n\t/**\n\t * Observe stored commits, each with exactly what it stored, except that a document the commit retires is published\n\t * as its retirement only; a commit held in memory is published when it is stored (`CommitPublication`). Commits are\n\t * published in line order once Storage stored them, a macrotask apart; a publication queues one dispatch, which runs\n\t * a microtask later, before every wait the commit resolves and every abort it queues, and calls the observers\n\t * attached by then; a commit published while none was attached has no dispatch. There is no order relative to watch listeners. `advance` runs synchronously and must not block or\n\t * call Session APIs; a throw is reported as `listener_error`, detaches the observer, and ends it `listener_error`.\n\t * `end` is called once, when the Session closes (`ended`, after its last publication) or fails (`failed`), never\n\t * after `detach()`. Attaches synchronously; the observation has no `value`: commits are events, not a state, and the\n\t * Session does not know Storage's newest `seq` before its own first commit.\n\t */\n\tobserveCommits(observer: CommitObserver): CommitObservation;\n\t/**\n\t * Observe close synchronously when it begins, also when a failed Storage call closes the Session. The listener must\n\t * not block or call Session APIs.\n\t */\n\tsubscribeClose(listener: () => void): () => void;\n\n\tsnapshot<T extends JsonObject>(token: SessionDocToken<T>, context: Context): Promise<Readonly<T> | undefined>;\n\tsnapshot<T extends JsonObject>(\n\t\ttoken: ConversationDocToken<T>,\n\t\tconversationId: ConversationId,\n\t\tcontext: Context,\n\t): Promise<Readonly<T> | undefined>;\n\tsnapshot<T extends JsonObject>(\n\t\ttoken: TaskDocToken<T>,\n\t\ttaskId: TaskId,\n\t\tcontext: Context,\n\t): Promise<Readonly<T> | undefined>;\n\tsnapshot<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: SessionDocFamilyToken<T, I>,\n\t\tkey: string,\n\t\tcontext: Context,\n\t): Promise<Readonly<T> | undefined>;\n\tsnapshot<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: ConversationDocFamilyToken<T, I>,\n\t\tconversationId: ConversationId,\n\t\tkey: string,\n\t\tcontext: Context,\n\t): Promise<Readonly<T> | undefined>;\n\tsnapshot<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: TaskDocFamilyToken<T, I>,\n\t\ttaskId: TaskId,\n\t\tkey: string,\n\t\tcontext: Context,\n\t): Promise<Readonly<T> | undefined>;\n\n\tsnapshotAsOf<T extends JsonObject>(\n\t\ttoken: RewindableConversationDocToken<T>,\n\t\tconversationId: ConversationId,\n\t\tat: EntryId,\n\t\tcontext: Context,\n\t): Promise<Readonly<T> | undefined>;\n\tsnapshotAsOf<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: RewindableConversationDocFamilyToken<T, I>,\n\t\tconversationId: ConversationId,\n\t\tkey: string,\n\t\tat: EntryId,\n\t\tcontext: Context,\n\t): Promise<Readonly<T> | undefined>;\n}\n\n/** What `Storage.commit()` stored: the number of durable batches, and why the next one was refused, if one was. */\nexport type CommitResult = { readonly stored: number; readonly refused?: unknown };\n\n/**\n * Atomic persistence boundary for Session records.\n *\n * Storage trusts the owning Session to supply semantically valid records, references,\n * ancestry, and transitions. Implementations enforce atomicity, global ID ownership,\n * immutable conversation/entry creation, document record consistency, and detached values;\n * Session serializes commits.\n *\n * An error a method throws is final: it fails the Session, which nothing retries, so retry transient failures inside\n * the method. Two errors of a read fail only that read: a `StorageRequestError` for an invalid request (an unknown\n * conversation, a foreign or malformed cursor, history a document does not keep), which must have no durable effect, and a\n * rejection because its caller's context was aborted. Any error from `commit()` or `mintId()` is fatal.\n */\nexport interface Storage {\n\t/**\n\t * Persist `batches` in order, each as one ordinary atomic commit with its own seq, checked against the state the\n\t * earlier ones left, in as few round trips as the backend can. Every batch has at least one write: a commit without\n\t * writes never reaches Storage, so the Session never sends an empty batch. Stops at the first batch Durable's own checks refuse\n\t * (global IDs, document actions, copy resolution): the batches before it are durable, it and the ones after are not.\n\t * Calls `receive(index, seq)` once per durable batch, in order, synchronously, after all of them are durable and\n\t * before the next commit starts. Resolves with the number of durable batches and the refusal, if any. Rejects for an\n\t * unknown outcome (connection lost, statement or commit failed); `receive` calls made before the rejection still\n\t * stand. `receive` is a durability receipt, not publication: the Session publishes later. Once it resolved, later\n\t * reads through this storage observe the stored batches.\n\t */\n\tcommit(\n\t\tbatches: readonly (readonly StorageWrite[])[],\n\t\treceive: (index: number, seq: Seq) => void,\n\t\tcontext: Context,\n\t): Promise<CommitResult>;\n\n\t/**\n\t * Optional. Run `publish`, the Session's publication of one stored or held commit (its cache write-through,\n\t * adoption, and observers), inside this storage's own scope, such as a store's attached host batch, so what the\n\t * publication marks lands together. Call `publish` exactly once, now or soon after; the Session publishes the next\n\t * commit only once it ran. Without it, the Session publishes directly.\n\t */\n\tpublishing?(publish: () => void, context: Context): void;\n\n\t/**\n\t * Return a fresh branded candidate from the Session-global numeric ID namespace, greater than every ID minted since\n\t * this storage was opened and every ID stored, also across reopen: scans order by ID as creation order, and the\n\t * Harness relies on it.\n\t */\n\tmintId<I extends Id<string>>(): Promise<I>;\n\n\t/** Look up one conversation by exact ID. */\n\tconversation(id: ConversationId, context: Context): Promise<ConversationRecord | undefined>;\n\n\t/** Scan conversations in `query.order` (default ascending) by ID. */\n\tscanConversations(\n\t\tquery: ConversationQuery,\n\t\tlimit: number,\n\t\tcursor: Cursor | undefined,\n\t\tcontext: Context,\n\t): Promise<Page<ConversationRecord, Cursor>>;\n\n\t/** Look up one global entry and the sequence of the commit that persisted it. */\n\tentry(id: EntryId, context: Context): Promise<{ readonly entry: EntryRecord; readonly commitSeq: Seq } | undefined>;\n\t/** Look up one entry only when it is visible through the requested conversation's ancestry. */\n\tentry(\n\t\tconversationId: ConversationId,\n\t\tid: EntryId,\n\t\tcontext: Context,\n\t): Promise<{ readonly entry: EntryRecord; readonly commitSeq: Seq } | undefined>;\n\n\t/**\n\t * Return the newest visible entry with a `head` at or below the optional inclusive cutoff.\n\t * The returned entry is the marker; its `head` value is the range's actual lower bound.\n\t */\n\tfindLatestHeadMarker(\n\t\tconversationId: ConversationId,\n\t\tatOrBeforeEntryId: EntryId | undefined,\n\t\tcontext: Context,\n\t): Promise<(EntryRecord & { readonly head: EntryId }) | undefined>;\n\n\t/** Scan the inclusive visible range in `query.order` (default descending), returning at most `limit` entries. */\n\tscanEntries(\n\t\tquery: EntryQuery,\n\t\tlimit: number,\n\t\tcursor: Cursor | undefined,\n\t\tcontext: Context,\n\t): Promise<Page<EntryRecord, Cursor>>;\n\n\t/** Look up the latest complete record for one task. */\n\ttask(id: TaskId, context: Context): Promise<TaskRecord<JsonValue, JsonValue, JsonValue> | undefined>;\n\n\t/** Scan task records matching every supplied filter in `query.order` (default ascending) by ID. */\n\tscanTasks(\n\t\tquery: TaskQuery,\n\t\tlimit: number,\n\t\tcursor: Cursor | undefined,\n\t\tcontext: Context,\n\t): Promise<Page<TaskRecord<JsonValue, JsonValue, JsonValue>, Cursor>>;\n\n\t/** Look up the latest complete record for one admitted submission. */\n\tsubmission(id: SubmissionId, context: Context): Promise<SubmissionRecord | undefined>;\n\n\t/** Scan submissions matching every supplied filter in `query.order` (default ascending) by ID. */\n\tscanSubmissions(\n\t\tquery: SubmissionQuery,\n\t\tlimit: number,\n\t\tcursor: Cursor | undefined,\n\t\tcontext: Context,\n\t): Promise<Page<SubmissionRecord, Cursor>>;\n\n\t/** Find a submission by its conversation-scoped host deduplication key. */\n\tsubmissionByRequest(\n\t\tconversationId: ConversationId,\n\t\trequestId: string,\n\t\tcontext: Context,\n\t): Promise<SubmissionRecord | undefined>;\n\n\t/** Resolve the incarnation occupying one exact logical address at the selected point. */\n\tfindDocument(address: DocumentAddress, at: DocumentPoint, context: Context): Promise<DocumentRecord | undefined>;\n\n\t/** Materialize one specific incarnation by ID at the selected point without following a replacement at its address. */\n\tdocument(id: DocumentId, at: DocumentPoint, context: Context): Promise<StoredDocument | undefined>;\n\n\t/** Scan incarnations alive in one exact scope at the selected point. */\n\tscanDocuments(\n\t\tquery: DocumentQuery,\n\t\tlimit: number,\n\t\tcursor: Cursor | undefined,\n\t\tcontext: Context,\n\t): Promise<Page<DocumentRecord, Cursor>>;\n\n\t/** Release backend resources; all later operations must reject. */\n\tclose(context: Context): Promise<void>;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAwCA,0DAA0D;AAC1D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAmB,CAAC","sourcesContent":["import type { Context } from \"@earendil-works/chord/context\";\nimport type { Draft, Op } from \"@earendil-works/chord/delta\";\nimport type { JsonValue } from \"@earendil-works/chord/json\";\nimport type { WatchCall, WatchEnd, WatchHandle } from \"@earendil-works/chord/watch\";\nimport type { Message, Models } from \"@earendil-works/pi-ai\";\nimport type { TelemetryCarrier } from \"@earendil-works/pi-telemetry\";\nimport type { ExecutionEnv } from \"./env/index.ts\";\nimport type {\n\tAgent,\n\tContextView,\n\tConversationHandle,\n\tRegistrySnapshot,\n\tSettings,\n\tSettledTask,\n} from \"./harness/types.ts\";\n\n/** JSON object used as the root of every durable document. */\nexport type JsonObject = { [key: string]: JsonValue };\n\ndeclare const idBrand: unique symbol;\n\n/** Erased nominal number identifying one durable record kind. */\nexport type Id<Kind extends string, Type = unknown> = number & {\n\treadonly [idBrand]: {\n\t\treadonly kind: Kind;\n\t\treadonly type: Type;\n\t};\n};\n\nexport type ConversationId = Id<\"conversation\">;\nexport type EntryId = Id<\"entry\">;\nexport type TaskId<Result = unknown> = Id<\"task\", Result>;\nexport type SubmissionId = Id<\"submission\">;\nexport type DocumentId = Id<\"document\">;\n\ndeclare const seqBrand: unique symbol;\n\n/** Strictly increasing sequence assigned to one atomic storage commit; gaps are permitted. */\nexport type Seq = number & { readonly [seqBrand]: \"sequence\" };\n\n/** The root conversation always uses this reserved ID. */\nexport const ROOT_CONVERSATION_ID = 1 as ConversationId;\n\n/** Conversation document that retains only its current state. */\nexport type LatestConversationSemantics = {\n\treadonly scope: \"conversation\";\n\treadonly history: \"latest\";\n\treadonly fork: \"current\" | \"initial\";\n};\n\n/** Conversation document whose history remains addressable for as-of reads. */\nexport type RewindableConversationSemantics = {\n\treadonly scope: \"conversation\";\n\treadonly history: \"rewindable\";\n\treadonly fork: \"asOf\" | \"current\" | \"initial\";\n};\n\n/** Ownership and lifetime of a document; only conversation documents declare history and fork behavior. */\nexport type DocumentSemantics =\n\t| { readonly scope: \"session\"; readonly history?: never; readonly fork?: never }\n\t| LatestConversationSemantics\n\t| RewindableConversationSemantics\n\t| { readonly scope: \"task\"; readonly history?: never; readonly fork?: never };\n\n/** Stored replay state supplied to a document's checkpoint predicate. */\nexport type CheckpointInfo = {\n\t/** Deltas already stored after the newest base, excluding the change being evaluated. */\n\treadonly deltasSinceBase: number;\n};\n\n/** Definition fields shared by singleton documents and document families. */\nexport type CommonDocDefinition<T extends JsonObject> = {\n\t/** Stable persisted kind; part of the public protocol. */\n\treadonly kind: string;\n\t/** Positive integer version of the stored value shape. */\n\treadonly version: number;\n\tinitial(): T;\n\tmigrate?(value: JsonObject, fromVersion: number): T;\n\t/** Required policy: return true to store this ordinary change as a complete base instead of a delta. */\n\tcheckpointWhen(value: Readonly<T>, ops: readonly Op[], info: CheckpointInfo): boolean;\n};\n\n/** Singleton document definition. */\nexport type DocDefinition<T extends JsonObject> = CommonDocDefinition<T> & DocumentSemantics;\n\n/** Keyed document family definition; `initial(seed)` runs only when a member is absent. */\nexport type DocFamilyDefinition<T extends JsonObject, I extends JsonValue> = Omit<CommonDocDefinition<T>, \"initial\"> &\n\tDocumentSemantics & {\n\t\treadonly family: true;\n\t\tinitial(seed: I): T;\n\t};\n\ndeclare const docType: unique symbol;\n\n/** Typed singleton document token passed explicitly to typed access. */\nexport interface DocToken<T extends JsonObject, D extends DocDefinition<T>> {\n\treadonly definition: D;\n\treadonly [docType]?: T;\n}\n\n/** Typed document family token passed explicitly to typed access. */\nexport interface DocFamilyToken<T extends JsonObject, I extends JsonValue, D extends DocFamilyDefinition<T, I>> {\n\treadonly definition: D;\n\treadonly [docType]?: T;\n}\n\nexport type SessionDocToken<T extends JsonObject> = DocToken<T, CommonDocDefinition<T> & { readonly scope: \"session\" }>;\nexport type ConversationDocToken<T extends JsonObject> = DocToken<\n\tT,\n\tCommonDocDefinition<T> & (LatestConversationSemantics | RewindableConversationSemantics)\n>;\nexport type RewindableConversationDocToken<T extends JsonObject> = DocToken<\n\tT,\n\tCommonDocDefinition<T> & RewindableConversationSemantics\n>;\nexport type TaskDocToken<T extends JsonObject> = DocToken<T, CommonDocDefinition<T> & { readonly scope: \"task\" }>;\n\nexport type SessionDocFamilyToken<T extends JsonObject, I extends JsonValue> = DocFamilyToken<\n\tT,\n\tI,\n\tDocFamilyDefinition<T, I> & { readonly scope: \"session\" }\n>;\nexport type ConversationDocFamilyToken<T extends JsonObject, I extends JsonValue> = DocFamilyToken<\n\tT,\n\tI,\n\tDocFamilyDefinition<T, I> & (LatestConversationSemantics | RewindableConversationSemantics)\n>;\nexport type RewindableConversationDocFamilyToken<T extends JsonObject, I extends JsonValue> = DocFamilyToken<\n\tT,\n\tI,\n\tDocFamilyDefinition<T, I> & RewindableConversationSemantics\n>;\nexport type TaskDocFamilyToken<T extends JsonObject, I extends JsonValue> = DocFamilyToken<\n\tT,\n\tI,\n\tDocFamilyDefinition<T, I> & { readonly scope: \"task\" }\n>;\n\n/** The task a report is about. */\nexport type ReportTask = {\n\treadonly id: TaskId;\n\t/** The task's registered name. */\n\treadonly kind: string;\n\treadonly conversationId: ConversationId;\n};\n\n/**\n * A host callback, by its `HarnessOptions` name; `env` is the environment builder, `models` a provider call, and\n * `telemetry` a telemetry adapter call made while a commit is published, which must not fail it.\n */\nexport type HostCallback = \"now\" | \"settings\" | \"registry\" | \"env\" | \"models\" | \"setTimer\" | \"onWake\" | \"telemetry\";\n\n/**\n * What a report to `HarnessOptions.onReport` is about, by `kind` (`Report` adds the error). `extension`, where present,\n * names the extension whose code failed, when known; for a task's own code, the one that installed the definition the\n * task ran.\n * - `storage_failed`: the error failed the Session, which closes: a Storage error, often a platform reset.\n * - `task_faulted`: the task ended `faulted`: its phase threw (`reason: \"threw\"`), or its abort handler was cut off\n * `settings.restartLimit` times (`reason: \"restart_limit\"`), as was a phase of a task of an extension's kind.\n * - `task_interrupted`: crashes ended the task: it ended itself after being cut off `settings.restartLimit` times in a\n * row (`reason: \"restart_limit\"`; a tool call, a compaction, a generation), or a generation's run ended because the\n * host kept stopping while the model answered (`reason: \"interrupted\"`). `restarts` is the task's count when it ended.\n * - `migration_failed`: the task's stored state could not be migrated; it is blocked until the registry changes.\n * - `task_outdated`: a running task keeps running under its old definition, which was uninstalled (`missing_task`)\n * or replaced by one that cannot take over its state: older than the task (`task_too_old`), or newer without a\n * `migrate` (`migration_failed`).\n * - `task_error`: the task's own `runtime.report()`, or a failure in running it.\n * - `extension_error`: a hook, a section, a wrapper, or a tool's invalid structured output; with the task that ran it,\n * or, outside a task, the conversation whose agent was resolved.\n * - `host_error`: a host callback threw; with the task that called it, if one did.\n * - `listener_error`: a commit, close, watch, view, or document listener threw.\n */\nexport type ReportInfo =\n\t| { readonly kind: \"storage_failed\" }\n\t| {\n\t\t\treadonly kind: \"task_faulted\";\n\t\t\treadonly task: ReportTask;\n\t\t\treadonly extension?: string;\n\t\t\treadonly reason: \"threw\" | \"restart_limit\";\n\t }\n\t| {\n\t\t\treadonly kind: \"task_interrupted\";\n\t\t\treadonly task: ReportTask;\n\t\t\treadonly extension?: string;\n\t\t\treadonly reason: \"restart_limit\" | \"interrupted\";\n\t\t\treadonly restarts: number;\n\t }\n\t| { readonly kind: \"migration_failed\"; readonly task: ReportTask; readonly extension?: string }\n\t| {\n\t\t\treadonly kind: \"task_outdated\";\n\t\t\treadonly task: ReportTask;\n\t\t\treadonly extension?: string;\n\t\t\treadonly reason: \"missing_task\" | \"task_too_old\" | \"migration_failed\";\n\t }\n\t| { readonly kind: \"task_error\"; readonly task: ReportTask; readonly extension?: string }\n\t| {\n\t\t\treadonly kind: \"extension_error\";\n\t\t\treadonly extension?: string;\n\t\t\treadonly task?: ReportTask;\n\t\t\treadonly conversationId?: ConversationId;\n\t }\n\t| { readonly kind: \"host_error\"; readonly callback: HostCallback; readonly task?: ReportTask }\n\t| { readonly kind: \"listener_error\" };\n\n/** One report to `HarnessOptions.onReport`: what it is about (`ReportInfo`, by `kind`) and the `error` reported. */\nexport type Report = ReportInfo & { readonly error: unknown };\n\n/** Whose code a task's `runtime.report()` is about when not the task's own: an extension's, or a host callback. */\nexport type ReportFrom =\n\t| { readonly kind: \"extension\"; readonly extension?: string }\n\t| { readonly kind: \"host\"; readonly callback: HostCallback };\n\n/**\n * A host timer, given as `HarnessOptions.setTimer`: call `callback` once, about `delayMs` from now, and return\n * a function that disarms it. `background` timers only free memory, and a host may decline one by returning\n * `undefined`, for example where a pending timer keeps the process from hibernating; the Harness then frees that memory\n * at later commits. Other timers pace or resume work: one the host throws on or declines is armed with `setTimeout`.\n * A timer should not fire early; callers check their clock again when it fires.\n */\nexport type SetTimer = (\n\tcallback: () => void,\n\tdelayMs: number,\n\toptions: { readonly background: boolean },\n) => (() => void) | undefined;\n\n/** Live task record reserved by one invocation. */\nexport type RunningTask<I, S, R> = TaskRecord<I, S, R> & {\n\treadonly state: Extract<TaskState<S, R>, { readonly status: \"running\" }>;\n};\n\n/**\n * Next state a task commits for itself: a replacement checkpoint, a wait on tasks, a sleep, or its outcome. A returned `terminal` state is\n * stored as `completing` while ordinary owned work below the task is live (spec §5.5).\n */\nexport type NextTaskState<S, R> = Extract<\n\tTaskState<S, R>,\n\t{ readonly status: \"running\" | \"waiting\" | \"sleeping\" | \"terminal\" }\n>;\n\n/**\n * Runs one checkpoint phase. It must commit a changed checkpoint or a terminal outcome through `runtime.commit()`;\n * returning without durable progress faults the task.\n */\nexport type PhaseHandler<I, P, S, R, H extends object> = (\n\ttask: RunningTask<I, P, R>,\n\truntime: TaskRuntime<I, S, R, H>,\n\tcontext: Context,\n) => Promise<void>;\n\n/** Dispatches one hook of a task to every matching registered handler, in registry order of the phase snapshot. */\nexport interface HookRunner<H extends object> {\n\t/**\n\t * Call `invoke` with each matching handler named `name`. An ordinary throw from `invoke` is reported and the next\n\t * handler runs; once the invocation is signalled, the error propagates. Composition happens inside `invoke`.\n\t */\n\teach<K extends keyof H>(name: K, invoke: (handler: NonNullable<H[K]>) => void | Promise<void>): Promise<void>;\n}\n\n/**\n * Operations of one task invocation. Every operation rejects after the invocation ends; watches acquired through it\n * stop at invocation end.\n */\nexport interface TaskRuntime<I, S, R, H extends object> extends DocumentObserver, DocumentReader {\n\treadonly taskId: TaskId<R>;\n\treadonly conversationId: ConversationId;\n\t/**\n\t * Aborted when the run is signalled by `abortTask()`, the Harness closes, or the invocation ends. Work still using it\n\t * after the invocation ended, such as a detached wait, is cancelled; it could not write anything anyway.\n\t */\n\treadonly signal: AbortSignal;\n\t/** Registry snapshot of the current phase; refreshed at every phase boundary. */\n\treadonly registry: RegistrySnapshot;\n\t/** The task's conversation's agent, resolved at most once per phase, at first use, and fixed for the phase. */\n\tagent(context: Context): Promise<Agent>;\n\t/** `HarnessOptions.settings`, resolved at each access. */\n\treadonly settings: Settings;\n\t/** `HarnessOptions.models`, resolved at each access. */\n\treadonly models: Models;\n\t/** Calls `HarnessOptions.env` for the task's conversation; rejects with its error. */\n\tenv(context: Context): Promise<ExecutionEnv | undefined>;\n\t/** Handlers of this task's name from the extensions its conversation selects, in extension order. */\n\treadonly hooks: HookRunner<H>;\n\n\t/**\n\t * Commit on the Session line after rereading the task. Rejects when the task is terminal, the invocation ended, the\n\t * Harness is closing, or, in a run invocation, the task carries an abort mark. A returned state replaces the task's\n\t * state in the same commit; returning nothing leaves it unchanged. `tx.createTask()` defaults to the task's\n\t * conversation. Inside the callback read only through `tx`: `snapshot()`, `watchDoc()`, `getTask()`, and the other Session and runtime reads may queue on the line the callback holds, and then never resolve.\n\t * `options.persistence` may defer storing a commit that changes only documents (`CommitPersistence`); one that returns\n\t * a state is immediate.\n\t */\n\tcommit(\n\t\tchange: (\n\t\t\ttx: Tx,\n\t\t\tcurrent: RunningTask<I, S, R>,\n\t\t) => NextTaskState<S, R> | undefined | Promise<NextTaskState<S, R> | undefined>,\n\t\tcontext: Context,\n\t\toptions?: CommitOptions,\n\t): Promise<void>;\n\t/** Read a durable memo of this task. */\n\tmemo<T extends JsonValue>(name: string, context: Context): Promise<T | undefined>;\n\t/** Store `candidate` unless a memo already exists; return the durable winner. */\n\tmemo<T extends JsonValue>(name: string, candidate: T, context: Context): Promise<T>;\n\t/** Committed task record. */\n\tgetTask<T>(id: TaskId<T>, context: Context): Promise<TaskRecord<JsonValue, JsonValue, T> | undefined>;\n\t/** Resolve with the task's terminal receipt; rejects when the invocation ends. */\n\twaitForTask<T>(id: TaskId<T>, context: Context): Promise<SettledTask<T>>;\n\t/**\n\t * Abort a task this task owns, as `Harness.abortTask()` does, and resolve once it is terminal. Rejects for a task\n\t * another owns; resolves at once for a terminal one.\n\t */\n\tabortOwned(id: TaskId, context: Context): Promise<void>;\n\t/**\n\t * Live tasks this task owns directly, in ID order: also those an earlier invocation created, before a restart. Tasks\n\t * in conversations it owns are not included. Copies of the committed records.\n\t */\n\townedTasks(context: Context): Promise<TaskRecord<JsonValue, JsonValue, JsonValue>[]>;\n\t/** Outcomes of terminal tasks, in order; rejects when one is missing or not terminal. Used after a wait. */\n\toutcomes<T>(ids: readonly TaskId<T>[], context: Context): Promise<TaskOutcome<T>[]>;\n\t/**\n\t * Invocation-bound handle of an existing conversation, for example one this task owns; `undefined` when absent. Its\n\t * operations and the submissions it returns reject after the invocation ends; admitted work stays durable.\n\t */\n\tconversation(id: ConversationId, context: Context): Promise<ConversationHandle | undefined>;\n\t/** Committed entry visible from the task's conversation. */\n\tentry(id: EntryId, context: Context): Promise<EntryRecord | undefined>;\n\t/** Undefined when the entry is absent, not visible, or has another kind. */\n\tentry<D extends JsonValue>(token: Entry<D>, id: EntryId, context: Context): Promise<TypedEntry<D> | undefined>;\n\t/**\n\t * Committed raw history of the task's conversation, fork-aware, as `Conversation.entries()`: every entry, also those a\n\t * compaction summary or reset left behind. Entries never change, so a range bounded by entry IDs reads the same\n\t * before and after a compaction, and in a rerun after a crash.\n\t */\n\tentries(\n\t\tquery: Omit<EntryQuery, \"conversationId\">,\n\t\tlimit: number,\n\t\tcursor: Cursor | undefined,\n\t\tcontext: Context,\n\t): Promise<Page<EntryRecord, Cursor>>;\n\t/** Committed raw active transcript and model context, optionally cut off at the visible entry `at`. */\n\tcontext(conversationId: ConversationId, context: Context, options?: { readonly at?: EntryId }): Promise<ContextView>;\n\t/** The Harness clock. */\n\tnow(): number;\n\t/**\n\t * Call `callback` once after about `delayMs` on the Harness's timer (`HarnessOptions.setTimer`), for pacing work\n\t * inside a phase, such as throttled progress commits. Not durable: the invocation's end disarms it, and after its end\n\t * nothing is armed. Returns a function that disarms it. Wait for time between phases with `sleepUntil()`.\n\t */\n\tsetTimer(callback: () => void, delayMs: number): () => void;\n\t/**\n\t * Forward a non-fatal failure to `HarnessOptions.onReport`, with this task in its info: a `task_error` about the\n\t * task's own code, or, with `from`, an `extension_error` about extension code it called, such as a section, or a\n\t * `host_error` about a host callback, such as the environment builder.\n\t */\n\treport(error: unknown, from?: ReportFrom): void;\n\t/**\n\t * Commit a sleep: the task holds no invocation until the Harness clock reaches `until`, then resumes at `checkpoint`.\n\t * Resolves once the sleep is stored, not when the time comes; the phase returns right after. Returning\n\t * `{ status: \"sleeping\", until, checkpoint }` from `commit()` is the same sleep, for one that must commit together\n\t * with other writes.\n\t */\n\tsleepUntil(until: number, checkpoint: S, context: Context): Promise<void>;\n}\n\n/** Executable durable state machine definition, registered in the registry by `name`. */\nexport type TaskDefinition<I, S extends { phase: string }, R, H extends object> = {\n\t/** Registered task kind persisted in `TaskRecord.kind`. */\n\treadonly name: string;\n\t/** Definition version persisted with live input and checkpoints. */\n\treadonly version: number;\n\t/** First durable checkpoint for a newly created task. */\n\tinitial(input: I): S;\n\t/** Exhaustive phase map; each handler receives the task narrowed to its phase. */\n\treadonly phases: {\n\t\treadonly [P in S[\"phase\"]]: PhaseHandler<I, Extract<S, { phase: P }>, S, R, H>;\n\t};\n\t/** Runs in a fresh invocation after an abort mark and must commit a terminal outcome. */\n\tabort(task: RunningTask<I, S, R>, runtime: TaskRuntime<I, S, R, H>, context: Context): Promise<void>;\n\t/** Convert a record stored by any older supported version; runs at reservation. */\n\tmigrate?(\n\t\tinput: JsonValue,\n\t\tcheckpoint: JsonValue,\n\t\tfromVersion: number,\n\t): {\n\t\tinput: I;\n\t\tcheckpoint: S;\n\t};\n\treadonly hooks?: H;\n};\n\n/** Typed executable task definition. */\nexport interface Task<I, S extends { phase: string }, R, H extends object> {\n\treadonly definition: TaskDefinition<I, S, R, H>;\n}\n\n/** Who owns a task: its conversation (a top-level task) or another task of the same conversation (a child task). */\nexport type TaskOwnership = { readonly kind: \"conversation\" } | { readonly kind: \"task\"; readonly taskId: TaskId };\n\n/** How a waiting task treats the tasks it waits on (spec §5.5). */\nexport type JoinPolicy = \"failFast\" | \"allSettled\";\n\n/** Creation options for a durable task. */\nexport type TaskOptions = {\n\t/** Omitted: inherit the creator's carrier. \"root\": start at the adapter root without a stored carrier. */\n\treadonly trace?: TelemetryCarrier | \"root\";\n\t/** Immutable creation-time links, attached to the spans of this task's first invocation. */\n\treadonly links?: readonly TelemetryCarrier[];\n\t/** Required: a task always names its owner (spec §5.5). */\n\treadonly ownership: TaskOwnership;\n\t/**\n\t * Default: the owner task's conversation, or the transaction's bound conversation; required for conversation-owned\n\t * tasks created by Session commits that are not bound to a conversation.\n\t */\n\treadonly conversationId?: ConversationId;\n\t/** Conversation-owned tasks only: excluded from ordinary idle waits, conversation aborts, and cascades. */\n\treadonly background?: boolean;\n\t/**\n\t * Its creator awaits it only in memory and does not resume after a restart, so it is pointless once the Harness that\n\t * created it is gone. When scheduling starts in a later Harness, the task, if still live, is abort-marked with reason\n\t * `restart`, and the mark cascades to its ordinary owned work, before any of it runs again.\n\t */\n\treadonly abandonOnRestart?: boolean;\n};\n\n/** Ownership selected explicitly whenever a conversation is created. */\nexport type ConversationOwnership = { readonly kind: \"ownerless\" } | { readonly kind: \"task\"; readonly taskId: TaskId };\n\n/** Immutable identity, history ancestry, and task ownership of a transcript scope. */\nexport type ConversationRecord = {\n\treadonly id: ConversationId;\n\t/** Fork source and inclusive parent entry through which history is inherited. */\n\treadonly parent?: {\n\t\treadonly conversationId: ConversationId;\n\t\treadonly at: EntryId;\n\t};\n\t/** Creator edge used for attribution, subtree abort, and subtree idle waits. */\n\treadonly owner?: {\n\t\treadonly conversationId: ConversationId;\n\t\treadonly taskId: TaskId;\n\t};\n};\n\n/** An immutable override of one visible entry's contribution to model context. */\nexport type ContextEdit = {\n\t/** Entry whose model messages are omitted or replaced. */\n\treadonly target: EntryId;\n} & (\n\t| {\n\t\t\treadonly action: \"omit\";\n\t\t\treadonly messages?: never;\n\t }\n\t| {\n\t\t\treadonly action: \"replace\";\n\t\t\t/** Messages contributed instead of the target entry's model messages. */\n\t\t\treadonly messages: readonly Message[];\n\t }\n);\n\n/** Immutable transcript event with separate model-facing and application-facing payloads. */\nexport type EntryRecord = {\n\treadonly id: EntryId;\n\treadonly conversationId: ConversationId;\n\t/** Application-defined entry discriminator. */\n\treadonly kind: string;\n\t/** Messages contributed to model context; absent for display or bookkeeping entries. */\n\treadonly model?: readonly Message[];\n\t/** JSON payload consumed by views, extensions, or bookkeeping logic. */\n\treadonly data?: JsonValue;\n\t/** First entry in the active context selected by this entry. */\n\treadonly head?: EntryId;\n\t/** Context-only overrides of earlier visible entries. */\n\treadonly edits?: readonly ContextEdit[];\n\t/** Task that appended this entry, when it was produced by durable work. */\n\treadonly byTaskId?: TaskId;\n};\n\n/** Entry content supplied before the Session assigns identity and task attribution. */\nexport type EntryDraft = Omit<EntryRecord, \"id\" | \"conversationId\" | \"byTaskId\" | \"head\"> & {\n\t/** `\"self\"` starts active context at the newly assigned entry ID. */\n\treadonly head?: EntryId | \"self\";\n};\n\n/** Entry whose `data` has type `D`; `never` means the kind carries no data. */\nexport type TypedEntry<D extends JsonValue> = Omit<EntryRecord, \"data\"> &\n\t([D] extends [never] ? { readonly data?: never } : { readonly data: D });\n\n/** Entry content of a typed kind; the token supplies `kind`. */\nexport type TypedEntryDraft<D extends JsonValue> = Omit<EntryDraft, \"kind\" | \"data\"> &\n\t([D] extends [never] ? { readonly data?: never } : { readonly data: D });\n\n/** Typed entry kind with a narrowing guard. */\nexport interface Entry<D extends JsonValue = never> {\n\treadonly kind: string;\n\tis(entry: EntryRecord | undefined): entry is TypedEntry<D>;\n}\n\n/** Identity fields shared by every durable submission state. */\ntype SubmissionRecordBase = {\n\t/** Adapter-owned context of the admission span; absent without propagation. */\n\treadonly trace?: TelemetryCarrier;\n\treadonly id: SubmissionId;\n\treadonly conversationId: ConversationId;\n\t/** Host-provided deduplication key, scoped to the conversation. */\n\treadonly requestId?: string;\n};\n\n/** Durable lifecycle of one admitted user input, passive entry write, or continue. */\nexport type SubmissionRecord =\n\t| (SubmissionRecordBase & {\n\t\t\treadonly type: \"input\";\n\t } & (\n\t\t\t\t| {\n\t\t\t\t\t\t/** Admitted but not yet represented in the transcript. */\n\t\t\t\t\t\treadonly status: \"queued\";\n\t\t\t\t\t\treadonly entry?: never;\n\t\t\t\t\t\treadonly answer?: never;\n\t\t\t\t\t\treadonly reason?: never;\n\t\t\t\t\t\treadonly detail?: never;\n\t\t\t\t }\n\t\t\t\t| {\n\t\t\t\t\t\t/** Added to the transcript and owned by an active run. */\n\t\t\t\t\t\treadonly status: \"placed\";\n\t\t\t\t\t\treadonly entry: EntryId;\n\t\t\t\t\t\treadonly answer?: never;\n\t\t\t\t\t\treadonly reason?: never;\n\t\t\t\t\t\treadonly detail?: never;\n\t\t\t\t }\n\t\t\t\t| {\n\t\t\t\t\t\t/** Successfully answered user input. */\n\t\t\t\t\t\treadonly status: \"done\";\n\t\t\t\t\t\treadonly entry: EntryId;\n\t\t\t\t\t\treadonly answer: EntryId;\n\t\t\t\t\t\treadonly reason?: never;\n\t\t\t\t\t\treadonly detail?: never;\n\t\t\t\t }\n\t\t\t\t| {\n\t\t\t\t\t\t/** Terminal input that can no longer receive an answer. */\n\t\t\t\t\t\treadonly status: \"unanswered\";\n\t\t\t\t\t\treadonly entry?: EntryId;\n\t\t\t\t\t\treadonly answer?: never;\n\t\t\t\t\t\treadonly reason: string;\n\t\t\t\t\t\treadonly detail?: JsonValue;\n\t\t\t\t }\n\t\t\t))\n\t| (SubmissionRecordBase & {\n\t\t\treadonly type: \"write\";\n\t } & (\n\t\t\t\t| {\n\t\t\t\t\t\t/** Admitted but not yet appended to the transcript. */\n\t\t\t\t\t\treadonly status: \"queued\";\n\t\t\t\t\t\treadonly entry?: never;\n\t\t\t\t\t\treadonly answer?: never;\n\t\t\t\t\t\treadonly reason?: never;\n\t\t\t\t\t\treadonly detail?: never;\n\t\t\t\t }\n\t\t\t\t| {\n\t\t\t\t\t\t/** Successfully appended passive entry. */\n\t\t\t\t\t\treadonly status: \"done\";\n\t\t\t\t\t\treadonly entry: EntryId;\n\t\t\t\t\t\treadonly answer?: never;\n\t\t\t\t\t\treadonly reason?: never;\n\t\t\t\t\t\treadonly detail?: never;\n\t\t\t\t }\n\t\t\t\t| {\n\t\t\t\t\t\t/** Terminal passive write that could not be placed. */\n\t\t\t\t\t\treadonly status: \"unanswered\";\n\t\t\t\t\t\treadonly entry?: never;\n\t\t\t\t\t\treadonly answer?: never;\n\t\t\t\t\t\treadonly reason: string;\n\t\t\t\t\t\treadonly detail?: JsonValue;\n\t\t\t\t }\n\t\t\t))\n\t| (SubmissionRecordBase & {\n\t\t\t/** A run started without a user message; it places no entry and is never queued. */\n\t\t\treadonly type: \"continue\";\n\t } & (\n\t\t\t\t| {\n\t\t\t\t\t\t/** Owned by an active run. */\n\t\t\t\t\t\treadonly status: \"placed\";\n\t\t\t\t\t\treadonly entry?: never;\n\t\t\t\t\t\treadonly answer?: never;\n\t\t\t\t\t\treadonly reason?: never;\n\t\t\t\t\t\treadonly detail?: never;\n\t\t\t\t }\n\t\t\t\t| {\n\t\t\t\t\t\t/** The run answered. */\n\t\t\t\t\t\treadonly status: \"done\";\n\t\t\t\t\t\treadonly entry?: never;\n\t\t\t\t\t\treadonly answer: EntryId;\n\t\t\t\t\t\treadonly reason?: never;\n\t\t\t\t\t\treadonly detail?: never;\n\t\t\t\t }\n\t\t\t\t| {\n\t\t\t\t\t\t/** The run ended without an answer. */\n\t\t\t\t\t\treadonly status: \"unanswered\";\n\t\t\t\t\t\treadonly entry?: never;\n\t\t\t\t\t\treadonly answer?: never;\n\t\t\t\t\t\treadonly reason: string;\n\t\t\t\t\t\treadonly detail?: JsonValue;\n\t\t\t\t }\n\t\t\t));\n\n/** Terminal status staged for a submission; identity, type, and entry come from its current record. */\nexport type SubmissionSettlement =\n\t| { readonly status: \"done\"; readonly answer: EntryId }\n\t| { readonly status: \"unanswered\"; readonly reason: string; readonly detail?: JsonValue };\n\n/** Submission fields supplied before the Session assigns an ID. */\nexport type SubmissionCreate = SubmissionRecord extends infer Record\n\t? Record extends SubmissionRecord\n\t\t? Omit<Record, \"id\">\n\t\t: never\n\t: never;\n\n/** JSON-safe error snapshot persisted instead of a runtime `Error` object. */\nexport type TaskOutcomeError = {\n\treadonly message: string;\n\t/** Optional structured diagnostic data for inspection or recovery. */\n\treadonly detail?: JsonValue;\n};\n\n/** Durable reason and optional result recorded when a task becomes terminal. */\nexport type TaskOutcome<R> =\n\t| {\n\t\t\treadonly status: \"completed\";\n\t\t\treadonly result: R;\n\t\t\treadonly error?: never;\n\t\t\treadonly reason?: never;\n\t }\n\t/** Expected task or domain failure explicitly committed by its implementation. */\n\t| {\n\t\t\treadonly status: \"failed\";\n\t\t\treadonly error: TaskOutcomeError;\n\t\t\treadonly result?: R;\n\t\t\treadonly reason?: never;\n\t }\n\t/** Explicit cancellation handled by the task's abort protocol. */\n\t| {\n\t\t\treadonly status: \"aborted\";\n\t\t\treadonly reason?: string;\n\t\t\treadonly result?: R;\n\t\t\treadonly error?: never;\n\t }\n\t/** Task that cannot resume because its definition or migration is unavailable. */\n\t| {\n\t\t\treadonly status: \"orphaned\";\n\t\t\treadonly reason: string;\n\t\t\treadonly result?: never;\n\t\t\treadonly error?: never;\n\t }\n\t/** Runtime-detected contract failure, such as an uncaught throw or no durable progress. */\n\t| {\n\t\t\treadonly status: \"faulted\";\n\t\t\treadonly error: TaskOutcomeError;\n\t\t\treadonly result?: never;\n\t\t\treadonly reason?: never;\n\t };\n\n/** Complete durable execution state of a task. */\nexport type TaskState<S, R> =\n\t| {\n\t\t\t/** Eligible for scheduling. */\n\t\t\treadonly status: \"pending\";\n\t\t\t/** Complete durable state from which execution resumes. */\n\t\t\treadonly checkpoint: S;\n\t\t\treadonly outcome?: never;\n\t }\n\t| {\n\t\t\t/** Reserved by one in-memory task invocation. */\n\t\t\treadonly status: \"running\";\n\t\t\t/** Complete durable state from which execution resumes. */\n\t\t\treadonly checkpoint: S;\n\t\t\treadonly outcome?: never;\n\t }\n\t| {\n\t\t\t/** Parked without an invocation until every task in `on` is terminal; then resumes at `checkpoint`. */\n\t\t\treadonly status: \"waiting\";\n\t\t\treadonly checkpoint: S;\n\t\t\treadonly on: readonly TaskId[];\n\t\t\treadonly policy: JoinPolicy;\n\t\t\treadonly outcome?: never;\n\t }\n\t| {\n\t\t\t/**\n\t\t\t * Parked without an invocation until the Harness clock reaches `until`, in milliseconds on the\n\t\t\t * `HarnessOptions.now` clock; then resumes at `checkpoint`. An abort mark does not wait for it.\n\t\t\t */\n\t\t\treadonly status: \"sleeping\";\n\t\t\treadonly checkpoint: S;\n\t\t\treadonly until: number;\n\t\t\treadonly outcome?: never;\n\t }\n\t| {\n\t\t\t/** Outcome decided; becomes terminal once no ordinary owned work below is live. Runs no more code. */\n\t\t\treadonly status: \"completing\";\n\t\t\treadonly checkpoint?: never;\n\t\t\treadonly outcome: TaskOutcome<R>;\n\t }\n\t| {\n\t\t\t/** Permanently settled durable result receipt. */\n\t\t\treadonly status: \"terminal\";\n\t\t\treadonly checkpoint?: never;\n\t\t\treadonly outcome: TaskOutcome<R>;\n\t };\n\n/** Identity, definition, and scheduling fields shared by every task state. */\ntype TaskRecordBase<I, R> = {\n\t/** Adapter-owned context that created this task; phase invocations extract it as their parent. */\n\treadonly trace?: TelemetryCarrier;\n\t/** Immutable creation-time links for the task's first invocation. */\n\treadonly links?: readonly TelemetryCarrier[];\n\treadonly id: TaskId<R>;\n\treadonly conversationId: ConversationId;\n\t/** Registered task definition name. */\n\treadonly kind: string;\n\t/** Definition version used to migrate live input and checkpoints. */\n\treadonly version: number;\n\t/** Original task input retained while the task is live or terminal. */\n\treadonly input: I;\n\t/** Owning task of a child task; absent for a task its conversation owns. Immutable. */\n\treadonly owner?: TaskId;\n\t/** Whether this conversation-owned task is excluded from ordinary idle waits, conversation aborts, and cascades. */\n\treadonly background: boolean;\n\t/** Durable abort mark checked before run-mode progress is committed. */\n\treadonly abortRequested: boolean;\n\t/**\n\t * Why the mark was set when not by an abort request: `restart` for a task abandoned after a restart\n\t * (`TaskOptions.abandonOnRestart`) or below one. Such a task waits for its definition instead of becoming `orphaned`.\n\t * A later abort request clears it.\n\t */\n\treadonly abortReason?: \"restart\";\n\t/** Set from `TaskOptions.abandonOnRestart`. Immutable. */\n\treadonly abandonOnRestart?: true;\n\t/**\n\t * Wall-clock milliseconds of the first change to `running`, stamped by the Session. Kept through waits and recovery,\n\t * so the span to `endedAt` includes them. Absent before the task first runs, and on records written by earlier\n\t * versions.\n\t */\n\treadonly startedAt?: number;\n\t/** Wall-clock milliseconds of the change to `terminal`, stamped by the Session; absent while live. */\n\treadonly endedAt?: number;\n\t/**\n\t * How many times in a row a crash, eviction, or reset cut the task off while it ran, without the task changing its\n\t * state since; open counts them, and a close does not. At `HarnessSettings.restartLimit` the task ends (the built-in\n\t * tasks end themselves, visibly; the scheduler faults any other kind), and a generation reads it to charge an\n\t * interrupted model request as a failed attempt.\n\t */\n\treadonly restarts?: number;\n};\n\n/** Complete replacement record for one durable task state machine. */\nexport type TaskRecord<I, S, R> = TaskRecordBase<I, R> &\n\t(\n\t\t| {\n\t\t\t\treadonly state: Extract<\n\t\t\t\t\tTaskState<S, R>,\n\t\t\t\t\t{ readonly status: \"pending\" | \"running\" | \"waiting\" | \"sleeping\" }\n\t\t\t\t>;\n\t\t\t\t/** Small first-writer-wins values retained while the task can run. */\n\t\t\t\treadonly memos?: Readonly<Record<string, JsonValue>>;\n\t\t }\n\t\t| {\n\t\t\t\treadonly state: Extract<TaskState<S, R>, { readonly status: \"completing\" | \"terminal\" }>;\n\t\t\t\treadonly memos?: never;\n\t\t }\n\t);\n\n/** Persisted lifecycle record for one create-to-retire document incarnation. */\nexport type DocumentRecord = {\n\t/** Unique incarnation ID; never reused when the same logical document is recreated. */\n\treadonly id: DocumentId;\n\t/** Stable document definition kind. */\n\treadonly kind: string;\n\t/** Family member key; absent for singleton documents. */\n\treadonly key?: string;\n\t/** Commit that created the incarnation, stamped by storage. */\n\treadonly createdAt: Seq;\n\t/** Commit that retired the incarnation; absent while it is current. */\n\treadonly retiredAt?: Seq;\n} & (\n\t| {\n\t\t\treadonly scope: { readonly kind: \"session\" };\n\t\t\treadonly history?: never;\n\t\t\treadonly fork?: never;\n\t }\n\t| ({ readonly scope: { readonly kind: \"conversation\"; readonly conversationId: ConversationId } } & (\n\t\t\t| {\n\t\t\t\t\t/** Retain only current state. */\n\t\t\t\t\treadonly history: \"latest\";\n\t\t\t\t\t/** Initialize a fork from current source state or the definition's initial value. */\n\t\t\t\t\treadonly fork: \"current\" | \"initial\";\n\t\t\t }\n\t\t\t| {\n\t\t\t\t\t/** Retain history needed for as-of reads. */\n\t\t\t\t\treadonly history: \"rewindable\";\n\t\t\t\t\t/** Initialize a fork at its cutoff, from current state, or from the initial value. */\n\t\t\t\t\treadonly fork: \"asOf\" | \"current\" | \"initial\";\n\t\t\t }\n\t ))\n\t| {\n\t\t\treadonly scope: { readonly kind: \"task\"; readonly taskId: TaskId };\n\t\t\treadonly history?: never;\n\t\t\treadonly fork?: never;\n\t }\n);\n\n/** Fields supplied when storage creates and stamps a new `DocumentRecord`. */\nexport type DocumentCreate = DocumentRecord extends infer Record\n\t? Record extends DocumentRecord\n\t\t? Omit<Record, \"createdAt\" | \"retiredAt\">\n\t\t: never\n\t: never;\n\n/** One ordered scan result and its optional continuation state. */\nexport type Page<T, C> = {\n\treadonly items: readonly T[];\n\treadonly next?: C;\n};\n\n/**\n * Backend-owned JSON continuation state that callers only round-trip to the same scan. It carries the scan's order: a\n * scan given a cursor continues in that order, and rejects a different `order` in its query.\n */\nexport type Cursor = Readonly<Record<string, JsonValue>>;\n\n/** ID order of a scan: `ascending` is oldest first, `descending` newest first. */\nexport type ScanOrder = \"ascending\" | \"descending\";\n\n/** Optional filters for an ordered conversation scan. */\nexport type ConversationQuery = {\n\treadonly ownerConversationId?: ConversationId;\n\treadonly ownerTaskId?: TaskId;\n\t/** Default `ascending`; with a cursor, the cursor's order. */\n\treadonly order?: ScanOrder;\n};\n\n/** Inclusive ID bounds for a scan of one conversation's fork-aware history. */\nexport type EntryQuery = {\n\treadonly conversationId: ConversationId;\n\t/** Oldest entry ID that may be returned. */\n\treadonly minEntryId?: EntryId;\n\t/** Newest entry ID that may be returned. */\n\treadonly maxEntryId?: EntryId;\n\t/** Default `descending`; with a cursor, the cursor's order. */\n\treadonly order?: ScanOrder;\n};\n\n/** Optional filters for an ordered scan of durable task records. */\nexport type TaskQuery = {\n\treadonly conversationId?: ConversationId;\n\treadonly kind?: string;\n\treadonly status?: TaskState<JsonValue, JsonValue>[\"status\"];\n\treadonly abortRequested?: boolean;\n\treadonly background?: boolean;\n\t/** Default `ascending`; with a cursor, the cursor's order. */\n\treadonly order?: ScanOrder;\n};\n\n/** Optional filters for an ordered scan of submission records. */\nexport type SubmissionQuery = {\n\treadonly conversationId?: ConversationId;\n\treadonly status?: SubmissionRecord[\"status\"];\n\t/** Default `ascending`; with a cursor, the cursor's order. */\n\treadonly order?: ScanOrder;\n};\n\n/** Current state or one historical commit sequence used for document membership and content reads. */\nexport type DocumentPoint = Seq | \"current\";\n\n/** Exact logical identity of a singleton or one keyed family member. */\nexport type DocumentAddress = {\n\treadonly kind: string;\n\treadonly scope: DocumentRecord[\"scope\"];\n\t/** Absent selects the singleton; present selects one family member. */\n\treadonly key?: string;\n};\n\n/** Ordered scan of document incarnations alive in one exact scope at one point. */\nexport type DocumentQuery = {\n\treadonly scope: DocumentRecord[\"scope\"];\n\treadonly at: DocumentPoint;\n\treadonly kind?: string;\n};\n\n/** Complete checkpoint or Chord operation batch selected by the owning Session. */\nexport type DocumentContent =\n\t| {\n\t\t\treadonly version: number;\n\t\t\treadonly kind: \"base\";\n\t\t\treadonly value: JsonObject;\n\t }\n\t| {\n\t\t\treadonly version: number;\n\t\t\treadonly kind: \"delta\";\n\t\t\treadonly ops: readonly Op[];\n\t };\n\n/** Exact persisted source selected for a definition-free document copy. */\nexport type DocumentCopySource = {\n\treadonly id: DocumentId;\n\treadonly at: DocumentPoint;\n};\n\n/** Detached materialized value and stored definition version at a selected point. */\nexport type StoredDocument = {\n\treadonly record: DocumentRecord;\n\treadonly version: number;\n\treadonly value: JsonObject;\n\t/** Deltas replayed after the selected base to materialize `value`. */\n\treadonly deltasSinceBase: number;\n};\n\n/** One record or document mutation in an atomic storage commit. */\nexport type StorageWrite =\n\t| { readonly type: \"conversation\"; readonly value: ConversationRecord }\n\t| { readonly type: \"entry\"; readonly value: EntryRecord }\n\t| { readonly type: \"task\"; readonly value: TaskRecord<JsonValue, JsonValue, JsonValue> }\n\t| { readonly type: \"submission\"; readonly value: SubmissionRecord }\n\t| {\n\t\t\treadonly type: \"document.create\";\n\t\t\treadonly record: DocumentCreate;\n\t\t\treadonly content: Extract<DocumentContent, { readonly kind: \"base\" }>;\n\t }\n\t| { readonly type: \"document.copy\"; readonly record: DocumentCreate; readonly source: DocumentCopySource }\n\t| {\n\t\t\treadonly type: \"document.change\";\n\t\t\treadonly id: DocumentId;\n\t\t\treadonly content: DocumentContent;\n\t }\n\t| { readonly type: \"document.retire\"; readonly id: DocumentId };\n\n/**\n * Committed change of one document incarnation: `type: \"document\"` with `kind: \"change\"` (a creation or an update) or\n * `kind: \"retire\"` (this commit retired the incarnation), or a `document.copy`.\n */\nexport type DocumentCommitChange =\n\t| {\n\t\t\treadonly type: \"document\";\n\t\t\treadonly kind: \"change\";\n\t\t\treadonly record: DocumentRecord;\n\t\t\t/** Conversation owning the document; task documents derive it from their task record. Undefined only for Session documents. */\n\t\t\treadonly conversationId: ConversationId | undefined;\n\t\t\t/** Definition version of `value`. */\n\t\t\treadonly version: number;\n\t\t\t/** Exact adopted immutable revision. */\n\t\t\treadonly value: JsonObject;\n\t\t\t/** Exact adopted operations for an ordinary update; empty for creation. */\n\t\t\treadonly ops: readonly Op[];\n\t }\n\t| {\n\t\t\treadonly type: \"document\";\n\t\t\treadonly kind: \"retire\";\n\t\t\treadonly record: DocumentRecord;\n\t\t\t/** Conversation owning the document; task documents derive it from their task record. Undefined only for Session documents. */\n\t\t\treadonly conversationId: ConversationId | undefined;\n\t }\n\t| {\n\t\t\t/** Definition-free child initialization; consumers hydrate through watch acquisition. */\n\t\t\treadonly type: \"document.copy\";\n\t\t\treadonly record: DocumentRecord;\n\t\t\treadonly conversationId: ConversationId;\n\t\t\treadonly source: DocumentCopySource;\n\t };\n\n/** Complete table record committed without another publication copy. */\nexport type TableCommitChange = Extract<\n\tStorageWrite,\n\t{ readonly type: \"conversation\" | \"entry\" | \"task\" | \"submission\" }\n>;\n\nexport type CommitChange = TableCommitChange | DocumentCommitChange;\n\n/**\n * Every immutable change one Session storage transaction stored, with its `seq`. Change order is unspecified. A commit\n * held in memory (`CommitPersistence`) is published once it is stored: by the next commit that reads or writes its\n * document, alone (`seq` of its own), or with that commit, whose document change then carries the held operations\n * followed by its own.\n */\nexport type CommitPublication = {\n\treadonly seq: Seq;\n\treadonly changes: readonly CommitChange[];\n};\n\n/**\n * Transaction surface of one Session commit callback.\n * Table reads and creation results are trusted immutable values and may be shared with internal commit state; the\n * Session may freeze them (its caches and context ranges keep them), so mutating one can throw.\n */\nexport interface Tx {\n\tconversation(id: ConversationId): Promise<ConversationRecord | undefined>;\n\tentry(id: EntryId): Promise<EntryRecord | undefined>;\n\t/** Undefined when the entry is absent or has another kind. */\n\tentry<D extends JsonValue>(token: Entry<D>, id: EntryId): Promise<TypedEntry<D> | undefined>;\n\ttask(id: TaskId): Promise<TaskRecord<JsonValue, JsonValue, JsonValue> | undefined>;\n\tscanConversations(\n\t\tquery: ConversationQuery,\n\t\tlimit: number,\n\t\tcursor?: Cursor,\n\t): Promise<Page<ConversationRecord, Cursor>>;\n\tscanEntries(query: EntryQuery, limit: number, cursor?: Cursor): Promise<Page<EntryRecord, Cursor>>;\n\t/** Newest visible entry of the conversation that carries a `head`. */\n\tlatestHeadMarker(conversationId: ConversationId): Promise<(EntryRecord & { readonly head: EntryId }) | undefined>;\n\t/** ID of the newest entry visible from the conversation; `undefined` when it has none. */\n\tlatestEntryId(conversationId: ConversationId): Promise<EntryId | undefined>;\n\tscanTasks(\n\t\tquery: TaskQuery,\n\t\tlimit: number,\n\t\tcursor?: Cursor,\n\t): Promise<Page<TaskRecord<JsonValue, JsonValue, JsonValue>, Cursor>>;\n\t/** Committed submission record, such as one of `pi.live.run.inputs`; a placed input's `entry` is its transcript entry. */\n\tsubmission(id: SubmissionId): Promise<SubmissionRecord | undefined>;\n\t/** Committed submission with a conversation-scoped request ID. */\n\tsubmissionByRequest(conversationId: ConversationId, requestId: string): Promise<SubmissionRecord | undefined>;\n\n\t/** Create a conversation with explicitly selected ownership. */\n\tcreateConversation(options: { readonly ownership: ConversationOwnership }): Promise<ConversationRecord>;\n\t/** Create a history fork at one concrete visible entry with explicitly selected ownership. */\n\tforkConversation(\n\t\tparentConversationId: ConversationId,\n\t\tat: EntryId,\n\t\toptions: { readonly ownership: ConversationOwnership },\n\t): Promise<ConversationRecord>;\n\t/** Returned records are Session-owned immutable values and may be shared with commit listeners. */\n\tappendEntry(conversationId: ConversationId, value: EntryDraft): Promise<EntryRecord>;\n\t/** The token supplies `kind` and types `data`. */\n\tappendEntry<D extends JsonValue>(\n\t\ttoken: Entry<D>,\n\t\tconversationId: ConversationId,\n\t\tvalue: TypedEntryDraft<NoInfer<D>>,\n\t): Promise<TypedEntry<D>>;\n\tcreateTask<I, S extends { phase: string }, R, H extends object>(\n\t\ttask: Task<I, S, R, H>,\n\t\tinput: I,\n\t\toptions: TaskOptions,\n\t): Promise<TaskId<R>>;\n\t/**\n\t * Create a raw submission record with a fresh ID. No admission rules apply: no busy check, no inbox queueing, no\n\t * placement. Use `Conversation.submit()` or a conversation handle unless the caller implements admission itself.\n\t */\n\tcreateSubmission(create: SubmissionCreate): Promise<SubmissionRecord>;\n\t/**\n\t * Settle a queued or placed submission; only a placed input or continue can be answered, and a settled submission stays\n\t * unchanged. Resolved against this transaction's latest record of the submission, so it works after table writes.\n\t * Run tasks settle the inputs they answer.\n\t */\n\tsettleSubmission(id: SubmissionId, settlement: SubmissionSettlement): void;\n\t/**\n\t * Place a queued submission at `entry`: an input becomes `placed`, a write `done`. Resolved like\n\t * `settleSubmission()`. Inbox boundaries place the submissions they select.\n\t */\n\tplaceSubmission(id: SubmissionId, entry: EntryId): void;\n\n\tdoc<T extends JsonObject>(token: SessionDocToken<T>): Promise<Draft<T>>;\n\tdoc<T extends JsonObject>(token: ConversationDocToken<T>, conversationId: ConversationId): Promise<Draft<T>>;\n\tdoc<T extends JsonObject>(token: TaskDocToken<T>, taskId: TaskId): Promise<Draft<T>>;\n\tdoc<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: SessionDocFamilyToken<T, I>,\n\t\tkey: string,\n\t\tseed: I,\n\t): Promise<Draft<T>>;\n\tdoc<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: ConversationDocFamilyToken<T, I>,\n\t\tconversationId: ConversationId,\n\t\tkey: string,\n\t\tseed: I,\n\t): Promise<Draft<T>>;\n\tdoc<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: TaskDocFamilyToken<T, I>,\n\t\ttaskId: TaskId,\n\t\tkey: string,\n\t\tseed: I,\n\t): Promise<Draft<T>>;\n\n\tretireDoc<T extends JsonObject>(token: SessionDocToken<T>): Promise<void>;\n\tretireDoc<T extends JsonObject>(token: ConversationDocToken<T>, conversationId: ConversationId): Promise<void>;\n\tretireDoc<T extends JsonObject>(token: TaskDocToken<T>, taskId: TaskId): Promise<void>;\n\tretireDoc<T extends JsonObject, I extends JsonValue>(token: SessionDocFamilyToken<T, I>, key: string): Promise<void>;\n\tretireDoc<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: ConversationDocFamilyToken<T, I>,\n\t\tconversationId: ConversationId,\n\t\tkey: string,\n\t): Promise<void>;\n\tretireDoc<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: TaskDocFamilyToken<T, I>,\n\t\ttaskId: TaskId,\n\t\tkey: string,\n\t): Promise<void>;\n}\n\n/**\n * Watch of one document address (kind, scope, and key), from the incarnation found at acquisition on. A retirement is a\n * call with `retired` set, the last value the watch was given and no ops (a change made in the retiring commit itself\n * is not shown: that commit publishes the retirement only); the watch goes on, and a document created at the address\n * later arrives as `[[\"r\", value]]`, folded with what is pending. It ends `ended` when its scope's owner ends: a task\n * document's watch once the retirement call of the commit that makes its task terminal returned, every watch at Session\n * close (a pending retirement dropped); `failed` with the error that failed the Session.\n */\nexport type DocumentWatch<T extends JsonObject> = WatchHandle<Readonly<T>>;\n\n/**\n * A synchronous observer of committed Durable state, for adapters such as a Chord source (`observeDoc()`,\n * `Harness.observeConversation()`, `Harness.observeTaskGraph()`), with the shapes of Chord's watch: `advance` gets a\n * `WatchCall`, `end` a `WatchEnd`. `advance` gets every change, unfolded, as memory adopts it: for a stored commit at its\n * publication once Storage stored it, for a deferred one before it is stored. A view or the graph gets at most one call\n * per commit, a document observer one per change at its address (two for a commit that retires and recreates it); the\n * task graph also advances outside any commit's publication, on the Session line, when a registry change or a failed\n * migration changes a\n * `blocked` reason. Durable's failures are final, so every call is a `value` call; a failure ends the observer. Calls\n * may come before the attaching promise resolves; their ops apply from `Observation.value`. `advance` must only record\n * the call, synchronously and quickly, never await, call the Session, or throw. A throw is reported as\n * `listener_error`, detaches the observer, and ends it `listener_error` with the error. `end` is called once: `ended`\n * when the observed scope's owner ends (a task document's task, after its retirement change, inside that commit's\n * `adopt`), `failed` with \"session closed\" when the Session closes (an adapter follows the next Session) or with the\n * error that failed the Session; never after `detach()`.\n */\nexport type Observer<T> = {\n\tadvance(call: WatchCall<T>, context: Context): void;\n\tend(end: WatchEnd): void;\n};\n\n/**\n * A synchronous observer of stored commits (`Session.observeCommits()`): `advance` gets each `CommitPublication`, `end`\n * the Session's close (`failed` with \"session closed\", or with the error that failed the Session).\n */\nexport type CommitObserver = {\n\tadvance(publication: CommitPublication, context: Context): void;\n\tend(end: WatchEnd): void;\n};\n\n/** An attached `CommitObserver`: how to detach it. Idempotent: no `advance` or `end` follows it. */\nexport type CommitObservation = { detach(): void };\n\n/** An attached `Observer`: the value at attachment, which every later `advance` starts from, and how to detach it. */\nexport type Observation<T> = {\n\treadonly value: T;\n\t/** Idempotent: no `advance` or `end` follows it, not even for the rest of a commit underway. */\n\tdetach(): void;\n};\n\n/** Committed document reads. */\nexport type DocumentReader = Pick<Session, \"snapshot\" | \"snapshotAsOf\">;\n\n/** Non-creating document watch acquisition shared by Session and later invocation APIs. */\nexport interface DocumentObserver {\n\twatchDoc<T extends JsonObject>(token: SessionDocToken<T>, context: Context): Promise<DocumentWatch<T> | undefined>;\n\twatchDoc<T extends JsonObject>(\n\t\ttoken: ConversationDocToken<T>,\n\t\tconversationId: ConversationId,\n\t\tcontext: Context,\n\t): Promise<DocumentWatch<T> | undefined>;\n\twatchDoc<T extends JsonObject>(\n\t\ttoken: TaskDocToken<T>,\n\t\ttaskId: TaskId,\n\t\tcontext: Context,\n\t): Promise<DocumentWatch<T> | undefined>;\n\twatchDoc<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: SessionDocFamilyToken<T, I>,\n\t\tkey: string,\n\t\tcontext: Context,\n\t): Promise<DocumentWatch<T> | undefined>;\n\twatchDoc<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: ConversationDocFamilyToken<T, I>,\n\t\tconversationId: ConversationId,\n\t\tkey: string,\n\t\tcontext: Context,\n\t): Promise<DocumentWatch<T> | undefined>;\n\twatchDoc<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: TaskDocFamilyToken<T, I>,\n\t\ttaskId: TaskId,\n\t\tkey: string,\n\t\tcontext: Context,\n\t): Promise<DocumentWatch<T> | undefined>;\n}\n\n/** Why a Session ended, by `kind`: `close()`, or a failed Storage call, whose error it carries. */\nexport type SessionEnd = { readonly kind: \"closed\" } | { readonly kind: \"failed\"; readonly error: unknown };\n\n/**\n * When a commit reaches Storage. `immediate`, the default: before `commit()` resolves. `deferred`: when every write of\n * the commit changes an existing conversation document with `history: \"latest\"` and `fork: \"initial\"` (no creation,\n * migration, or retirement), the Session adopts it in memory, shows it to watches and views, and resolves, but stores it\n * later: with the next commit that reads (`tx.doc()`) or writes that document, before the document leaves memory or\n * retires, at `close()`, and at the latest about `withinMs` after the commit (default `settings.progress.persistWithinMs`,\n * 1,000 ms; `Infinity` waits for one of the others). A commit that writes anything else is immediate. A crash loses what\n * is held, so only state whose loss is acceptable, such as streamed progress, should be deferred, and nothing durable may\n * depend on it without reading it in a commit.\n */\nexport type CommitPersistence =\n\t| { readonly kind: \"immediate\" }\n\t| { readonly kind: \"deferred\"; readonly withinMs?: number };\n\n/** Options of one Session commit. */\nexport type CommitOptions = { readonly persistence?: CommitPersistence };\n\n/** Owner of one mutation line, its records, and its tracked documents. */\nexport interface Session extends DocumentObserver {\n\t/**\n\t * Run one atomic transaction on the Session mutation line. Inside the callback read only through `tx`: `snapshot()`, `watchDoc()`, `getTask()`, and the other Session and runtime reads may queue on the line the callback holds, and then never resolve.\n\t * `options.persistence` may defer storing it (`CommitPersistence`). The callback may run while an earlier commit is\n\t * being stored: at its first read or write of what an unpublished commit wrote, it waits until that commit is stored\n\t * and published; code before that runs early, so act on what it computes only once the commit resolves. Resolves\n\t * once the commit is stored and published, after every earlier commit's outcome.\n\t */\n\tcommit<T>(change: (tx: Tx) => T | Promise<T>, context: Context, options?: CommitOptions): Promise<T>;\n\t/** Seal admission, settle admitted commits, then close storage. */\n\tclose(context: Context): Promise<void>;\n\t/**\n\t * Settles once the Session has closed, Storage included: after `close()`, or after the first failed Storage call,\n\t * which closes the Session itself. A failed Session is reopened from Storage; nothing else is left to clean up.\n\t */\n\treadonly closed: Promise<SessionEnd>;\n\t/**\n\t * Attach a synchronous `Observer` to one document address, atomically on the Session line, as `watchDoc()` acquires\n\t * a watch: the observation's value includes every commit before it, and `advance` gets every later one, retirements\n\t * and later incarnations included. `undefined` when the address is absent. `context` governs only the attachment:\n\t * cancelled while attaching, the promise rejects and nothing stays attached.\n\t */\n\tobserveDoc<T extends JsonObject>(\n\t\ttoken: SessionDocToken<T>,\n\t\tobserver: Observer<Readonly<T>>,\n\t\tcontext: Context,\n\t): Promise<Observation<Readonly<T>> | undefined>;\n\tobserveDoc<T extends JsonObject>(\n\t\ttoken: ConversationDocToken<T>,\n\t\tconversationId: ConversationId,\n\t\tobserver: Observer<Readonly<T>>,\n\t\tcontext: Context,\n\t): Promise<Observation<Readonly<T>> | undefined>;\n\tobserveDoc<T extends JsonObject>(\n\t\ttoken: TaskDocToken<T>,\n\t\ttaskId: TaskId,\n\t\tobserver: Observer<Readonly<T>>,\n\t\tcontext: Context,\n\t): Promise<Observation<Readonly<T>> | undefined>;\n\tobserveDoc<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: SessionDocFamilyToken<T, I>,\n\t\tkey: string,\n\t\tobserver: Observer<Readonly<T>>,\n\t\tcontext: Context,\n\t): Promise<Observation<Readonly<T>> | undefined>;\n\tobserveDoc<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: ConversationDocFamilyToken<T, I>,\n\t\tconversationId: ConversationId,\n\t\tkey: string,\n\t\tobserver: Observer<Readonly<T>>,\n\t\tcontext: Context,\n\t): Promise<Observation<Readonly<T>> | undefined>;\n\tobserveDoc<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: TaskDocFamilyToken<T, I>,\n\t\ttaskId: TaskId,\n\t\tkey: string,\n\t\tobserver: Observer<Readonly<T>>,\n\t\tcontext: Context,\n\t): Promise<Observation<Readonly<T>> | undefined>;\n\t/**\n\t * Observe stored commits, each with exactly what it stored, except that a document the commit retires is published\n\t * as its retirement only; a commit held in memory is published when it is stored (`CommitPublication`). Commits are\n\t * published in line order once Storage stored them, a macrotask apart; a publication queues one dispatch, which runs\n\t * a microtask later, before every wait the commit resolves and every abort it queues, and calls the observers\n\t * attached by then; a commit published while none was attached has no dispatch. There is no order relative to watch listeners. `advance` runs synchronously and must not block or\n\t * call Session APIs; a throw is reported as `listener_error`, detaches the observer, and ends it `listener_error`.\n\t * `end` is called once, when the Session closes (`ended`, after its last publication) or fails (`failed`), never\n\t * after `detach()`. Attaches synchronously; the observation has no `value`: commits are events, not a state, and the\n\t * Session does not know Storage's newest `seq` before its own first commit.\n\t */\n\tobserveCommits(observer: CommitObserver): CommitObservation;\n\t/**\n\t * Observe close synchronously when it begins, also when a failed Storage call closes the Session. The listener must\n\t * not block or call Session APIs.\n\t */\n\tsubscribeClose(listener: () => void): () => void;\n\n\tsnapshot<T extends JsonObject>(token: SessionDocToken<T>, context: Context): Promise<Readonly<T> | undefined>;\n\tsnapshot<T extends JsonObject>(\n\t\ttoken: ConversationDocToken<T>,\n\t\tconversationId: ConversationId,\n\t\tcontext: Context,\n\t): Promise<Readonly<T> | undefined>;\n\tsnapshot<T extends JsonObject>(\n\t\ttoken: TaskDocToken<T>,\n\t\ttaskId: TaskId,\n\t\tcontext: Context,\n\t): Promise<Readonly<T> | undefined>;\n\tsnapshot<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: SessionDocFamilyToken<T, I>,\n\t\tkey: string,\n\t\tcontext: Context,\n\t): Promise<Readonly<T> | undefined>;\n\tsnapshot<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: ConversationDocFamilyToken<T, I>,\n\t\tconversationId: ConversationId,\n\t\tkey: string,\n\t\tcontext: Context,\n\t): Promise<Readonly<T> | undefined>;\n\tsnapshot<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: TaskDocFamilyToken<T, I>,\n\t\ttaskId: TaskId,\n\t\tkey: string,\n\t\tcontext: Context,\n\t): Promise<Readonly<T> | undefined>;\n\n\tsnapshotAsOf<T extends JsonObject>(\n\t\ttoken: RewindableConversationDocToken<T>,\n\t\tconversationId: ConversationId,\n\t\tat: EntryId,\n\t\tcontext: Context,\n\t): Promise<Readonly<T> | undefined>;\n\tsnapshotAsOf<T extends JsonObject, I extends JsonValue>(\n\t\ttoken: RewindableConversationDocFamilyToken<T, I>,\n\t\tconversationId: ConversationId,\n\t\tkey: string,\n\t\tat: EntryId,\n\t\tcontext: Context,\n\t): Promise<Readonly<T> | undefined>;\n}\n\n/** What `Storage.commit()` stored: the number of durable batches, and why the next one was refused, if one was. */\nexport type CommitResult = { readonly stored: number; readonly refused?: unknown };\n\n/**\n * Atomic persistence boundary for Session records.\n *\n * Storage trusts the owning Session to supply semantically valid records, references,\n * ancestry, and transitions. Implementations enforce atomicity, global ID ownership,\n * immutable conversation/entry creation, document record consistency, and detached values;\n * Session serializes commits.\n *\n * An error a method throws is final: it fails the Session, which nothing retries, so retry transient failures inside\n * the method. Two errors of a read fail only that read: a `StorageRequestError` for an invalid request (an unknown\n * conversation, a foreign or malformed cursor, history a document does not keep), which must have no durable effect, and a\n * rejection because its caller's context was aborted. Any error from `commit()` or `mintId()` is fatal.\n */\nexport interface Storage {\n\t/**\n\t * Persist `batches` in order, each as one ordinary atomic commit with its own seq, checked against the state the\n\t * earlier ones left, in as few round trips as the backend can. Every batch has at least one write: a commit without\n\t * writes never reaches Storage, so the Session never sends an empty batch. Stops at the first batch Durable's own checks refuse\n\t * (global IDs, document actions, copy resolution): the batches before it are durable, it and the ones after are not.\n\t * Calls `receive(index, seq)` once per durable batch, in order, synchronously, after all of them are durable and\n\t * before the next commit starts. Resolves with the number of durable batches and the refusal, if any. Rejects for an\n\t * unknown outcome (connection lost, statement or commit failed); `receive` calls made before the rejection still\n\t * stand. `receive` is a durability receipt, not publication: the Session publishes later. Once it resolved, later\n\t * reads through this storage observe the stored batches.\n\t */\n\tcommit(\n\t\tbatches: readonly (readonly StorageWrite[])[],\n\t\treceive: (index: number, seq: Seq) => void,\n\t\tcontext: Context,\n\t): Promise<CommitResult>;\n\n\t/**\n\t * Optional. Run `publish`, the Session's publication of one stored or held commit (its cache write-through,\n\t * adoption, and observers), inside this storage's own scope, such as a store's attached host batch, so what the\n\t * publication marks lands together. Call `publish` exactly once, now or soon after; the Session publishes the next\n\t * commit only once it ran. Without it, the Session publishes directly.\n\t */\n\tpublishing?(publish: () => void, context: Context): void;\n\n\t/**\n\t * Return a fresh branded candidate from the Session-global numeric ID namespace, greater than every ID minted since\n\t * this storage was opened and every ID stored, also across reopen: scans order by ID as creation order, and the\n\t * Harness relies on it.\n\t */\n\tmintId<I extends Id<string>>(): Promise<I>;\n\n\t/** Look up one conversation by exact ID. */\n\tconversation(id: ConversationId, context: Context): Promise<ConversationRecord | undefined>;\n\n\t/** Scan conversations in `query.order` (default ascending) by ID. */\n\tscanConversations(\n\t\tquery: ConversationQuery,\n\t\tlimit: number,\n\t\tcursor: Cursor | undefined,\n\t\tcontext: Context,\n\t): Promise<Page<ConversationRecord, Cursor>>;\n\n\t/** Look up one global entry and the sequence of the commit that persisted it. */\n\tentry(id: EntryId, context: Context): Promise<{ readonly entry: EntryRecord; readonly commitSeq: Seq } | undefined>;\n\t/** Look up one entry only when it is visible through the requested conversation's ancestry. */\n\tentry(\n\t\tconversationId: ConversationId,\n\t\tid: EntryId,\n\t\tcontext: Context,\n\t): Promise<{ readonly entry: EntryRecord; readonly commitSeq: Seq } | undefined>;\n\n\t/**\n\t * Return the newest visible entry with a `head` at or below the optional inclusive cutoff.\n\t * The returned entry is the marker; its `head` value is the range's actual lower bound.\n\t */\n\tfindLatestHeadMarker(\n\t\tconversationId: ConversationId,\n\t\tatOrBeforeEntryId: EntryId | undefined,\n\t\tcontext: Context,\n\t): Promise<(EntryRecord & { readonly head: EntryId }) | undefined>;\n\n\t/** Scan the inclusive visible range in `query.order` (default descending), returning at most `limit` entries. */\n\tscanEntries(\n\t\tquery: EntryQuery,\n\t\tlimit: number,\n\t\tcursor: Cursor | undefined,\n\t\tcontext: Context,\n\t): Promise<Page<EntryRecord, Cursor>>;\n\n\t/** Look up the latest complete record for one task. */\n\ttask(id: TaskId, context: Context): Promise<TaskRecord<JsonValue, JsonValue, JsonValue> | undefined>;\n\n\t/** Scan task records matching every supplied filter in `query.order` (default ascending) by ID. */\n\tscanTasks(\n\t\tquery: TaskQuery,\n\t\tlimit: number,\n\t\tcursor: Cursor | undefined,\n\t\tcontext: Context,\n\t): Promise<Page<TaskRecord<JsonValue, JsonValue, JsonValue>, Cursor>>;\n\n\t/** Look up the latest complete record for one admitted submission. */\n\tsubmission(id: SubmissionId, context: Context): Promise<SubmissionRecord | undefined>;\n\n\t/** Scan submissions matching every supplied filter in `query.order` (default ascending) by ID. */\n\tscanSubmissions(\n\t\tquery: SubmissionQuery,\n\t\tlimit: number,\n\t\tcursor: Cursor | undefined,\n\t\tcontext: Context,\n\t): Promise<Page<SubmissionRecord, Cursor>>;\n\n\t/** Find a submission by its conversation-scoped host deduplication key. */\n\tsubmissionByRequest(\n\t\tconversationId: ConversationId,\n\t\trequestId: string,\n\t\tcontext: Context,\n\t): Promise<SubmissionRecord | undefined>;\n\n\t/** Resolve the incarnation occupying one exact logical address at the selected point. */\n\tfindDocument(address: DocumentAddress, at: DocumentPoint, context: Context): Promise<DocumentRecord | undefined>;\n\n\t/** Materialize one specific incarnation by ID at the selected point without following a replacement at its address. */\n\tdocument(id: DocumentId, at: DocumentPoint, context: Context): Promise<StoredDocument | undefined>;\n\n\t/** Scan incarnations alive in one exact scope at the selected point. */\n\tscanDocuments(\n\t\tquery: DocumentQuery,\n\t\tlimit: number,\n\t\tcursor: Cursor | undefined,\n\t\tcontext: Context,\n\t): Promise<Page<DocumentRecord, Cursor>>;\n\n\t/** Release backend resources; all later operations must reject. */\n\tclose(context: Context): Promise<void>;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@earendil-works/pi-durable",
3
- "version": "1.5.0",
3
+ "version": "1.5.1",
4
4
  "description": "Durable conversation, task, and document runtime for Pi",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -158,11 +158,11 @@
158
158
  "node": ">=22.19.0"
159
159
  },
160
160
  "dependencies": {
161
- "@earendil-works/chord": "1.5.0",
162
- "@earendil-works/pi-ai": "1.5.0",
163
- "@earendil-works/pi-codemode": "1.5.0",
164
- "@earendil-works/pi-schema": "1.5.0",
165
- "@earendil-works/pi-telemetry": "1.5.0",
161
+ "@earendil-works/chord": "1.5.1",
162
+ "@earendil-works/pi-ai": "1.5.1",
163
+ "@earendil-works/pi-codemode": "1.5.1",
164
+ "@earendil-works/pi-schema": "1.5.1",
165
+ "@earendil-works/pi-telemetry": "1.5.1",
166
166
  "@silvia-odwyer/photon": "0.3.3",
167
167
  "diff": "8.0.4"
168
168
  },