@cello-protocol/daemon 0.0.196 → 0.0.198

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 (213) hide show
  1. package/dist/agent-admin-handlers.d.ts +56 -0
  2. package/dist/agent-admin-handlers.d.ts.map +1 -0
  3. package/dist/agent-admin-handlers.js +70 -0
  4. package/dist/agent-admin-handlers.js.map +1 -0
  5. package/dist/agent-handlers.d.ts +8 -7
  6. package/dist/agent-handlers.d.ts.map +1 -1
  7. package/dist/agent-handlers.js.map +1 -1
  8. package/dist/agent-selection-root.d.ts +29 -0
  9. package/dist/agent-selection-root.d.ts.map +1 -0
  10. package/dist/agent-selection-root.js +126 -0
  11. package/dist/agent-selection-root.js.map +1 -0
  12. package/dist/attendance-wiring.d.ts +44 -0
  13. package/dist/attendance-wiring.d.ts.map +1 -0
  14. package/dist/attendance-wiring.js +432 -0
  15. package/dist/attendance-wiring.js.map +1 -0
  16. package/dist/backup-restore-handlers.d.ts +10 -0
  17. package/dist/backup-restore-handlers.d.ts.map +1 -0
  18. package/dist/backup-restore-handlers.js +82 -0
  19. package/dist/backup-restore-handlers.js.map +1 -0
  20. package/dist/boot-agents.d.ts +64 -0
  21. package/dist/boot-agents.d.ts.map +1 -0
  22. package/dist/boot-agents.js +241 -0
  23. package/dist/boot-agents.js.map +1 -0
  24. package/dist/boot-connection-state.d.ts +40 -0
  25. package/dist/boot-connection-state.d.ts.map +1 -0
  26. package/dist/boot-connection-state.js +136 -0
  27. package/dist/boot-connection-state.js.map +1 -0
  28. package/dist/boot-core.d.ts +36 -0
  29. package/dist/boot-core.d.ts.map +1 -0
  30. package/dist/boot-core.js +292 -0
  31. package/dist/boot-core.js.map +1 -0
  32. package/dist/boot-parked-content.d.ts +34 -0
  33. package/dist/boot-parked-content.d.ts.map +1 -0
  34. package/dist/boot-parked-content.js +527 -0
  35. package/dist/boot-parked-content.js.map +1 -0
  36. package/dist/boot-sweeps.d.ts +22 -0
  37. package/dist/boot-sweeps.d.ts.map +1 -0
  38. package/dist/boot-sweeps.js +50 -0
  39. package/dist/boot-sweeps.js.map +1 -0
  40. package/dist/connection-agents.d.ts +16 -0
  41. package/dist/connection-agents.d.ts.map +1 -0
  42. package/dist/connection-agents.js +68 -0
  43. package/dist/connection-agents.js.map +1 -0
  44. package/dist/content-park.d.ts.map +1 -1
  45. package/dist/content-park.js +274 -25
  46. package/dist/content-park.js.map +1 -1
  47. package/dist/daemon-handle.d.ts +57 -0
  48. package/dist/daemon-handle.d.ts.map +1 -0
  49. package/dist/daemon-handle.js +2 -0
  50. package/dist/daemon-handle.js.map +1 -0
  51. package/dist/daemon-status-report.d.ts +40 -0
  52. package/dist/daemon-status-report.d.ts.map +1 -0
  53. package/dist/daemon-status-report.js +78 -0
  54. package/dist/daemon-status-report.js.map +1 -0
  55. package/dist/daemon.d.ts +5 -66
  56. package/dist/daemon.d.ts.map +1 -1
  57. package/dist/daemon.js +332 -4894
  58. package/dist/daemon.js.map +1 -1
  59. package/dist/delivery-open-registry.d.ts +1 -1
  60. package/dist/delivery-open-registry.js +1 -1
  61. package/dist/directory-connect.d.ts +27 -0
  62. package/dist/directory-connect.d.ts.map +1 -0
  63. package/dist/directory-connect.js +98 -0
  64. package/dist/directory-connect.js.map +1 -0
  65. package/dist/disconnect-cleanup.d.ts +45 -0
  66. package/dist/disconnect-cleanup.d.ts.map +1 -0
  67. package/dist/disconnect-cleanup.js +65 -0
  68. package/dist/disconnect-cleanup.js.map +1 -0
  69. package/dist/document-surface.d.ts +32 -0
  70. package/dist/document-surface.d.ts.map +1 -0
  71. package/dist/document-surface.js +150 -0
  72. package/dist/document-surface.js.map +1 -0
  73. package/dist/document-wiring.d.ts +53 -0
  74. package/dist/document-wiring.d.ts.map +1 -0
  75. package/dist/document-wiring.js +323 -0
  76. package/dist/document-wiring.js.map +1 -0
  77. package/dist/held-content.d.ts +7 -3
  78. package/dist/held-content.d.ts.map +1 -1
  79. package/dist/held-content.js.map +1 -1
  80. package/dist/inbound-sessions.d.ts +9 -1
  81. package/dist/inbound-sessions.d.ts.map +1 -1
  82. package/dist/inbound-sessions.js +9 -1
  83. package/dist/inbound-sessions.js.map +1 -1
  84. package/dist/index.d.ts +1 -2
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +1 -2
  87. package/dist/index.js.map +1 -1
  88. package/dist/ipc-surface.d.ts +44 -0
  89. package/dist/ipc-surface.d.ts.map +1 -0
  90. package/dist/ipc-surface.js +106 -0
  91. package/dist/ipc-surface.js.map +1 -0
  92. package/dist/network-directory-node.d.ts +0 -18
  93. package/dist/network-directory-node.d.ts.map +1 -1
  94. package/dist/network-directory-node.js +1 -38
  95. package/dist/network-directory-node.js.map +1 -1
  96. package/dist/notification-handlers.d.ts.map +1 -1
  97. package/dist/notification-handlers.js +2 -0
  98. package/dist/notification-handlers.js.map +1 -1
  99. package/dist/operator-guidance.d.ts +25 -0
  100. package/dist/operator-guidance.d.ts.map +1 -0
  101. package/dist/operator-guidance.js +50 -0
  102. package/dist/operator-guidance.js.map +1 -0
  103. package/dist/park-recovery.d.ts +22 -1
  104. package/dist/park-recovery.d.ts.map +1 -1
  105. package/dist/park-recovery.js.map +1 -1
  106. package/dist/park-refusals.d.ts +147 -0
  107. package/dist/park-refusals.d.ts.map +1 -0
  108. package/dist/park-refusals.js +331 -0
  109. package/dist/park-refusals.js.map +1 -0
  110. package/dist/refusal-notices.d.ts.map +1 -1
  111. package/dist/refusal-notices.js +22 -2
  112. package/dist/refusal-notices.js.map +1 -1
  113. package/dist/refusal-reasons.d.ts +13 -0
  114. package/dist/refusal-reasons.d.ts.map +1 -1
  115. package/dist/refusal-reasons.js +19 -0
  116. package/dist/refusal-reasons.js.map +1 -1
  117. package/dist/register-handler.d.ts +8 -7
  118. package/dist/register-handler.d.ts.map +1 -1
  119. package/dist/register-handler.js.map +1 -1
  120. package/dist/session-content-context.d.ts +144 -0
  121. package/dist/session-content-context.d.ts.map +1 -0
  122. package/dist/session-content-context.js +2 -0
  123. package/dist/session-content-context.js.map +1 -0
  124. package/dist/session-content-handlers.d.ts.map +1 -1
  125. package/dist/session-content-handlers.js +2 -0
  126. package/dist/session-content-handlers.js.map +1 -1
  127. package/dist/session-content-ingest.d.ts +209 -0
  128. package/dist/session-content-ingest.d.ts.map +1 -0
  129. package/dist/session-content-ingest.js +2216 -0
  130. package/dist/session-content-ingest.js.map +1 -0
  131. package/dist/session-content-send.d.ts +184 -0
  132. package/dist/session-content-send.d.ts.map +1 -0
  133. package/dist/session-content-send.js +1300 -0
  134. package/dist/session-content-send.js.map +1 -0
  135. package/dist/session-lifecycle.d.ts +303 -0
  136. package/dist/session-lifecycle.d.ts.map +1 -0
  137. package/dist/session-lifecycle.js +1643 -0
  138. package/dist/session-lifecycle.js.map +1 -0
  139. package/dist/session-node-factory.d.ts +18 -0
  140. package/dist/session-node-factory.d.ts.map +1 -0
  141. package/dist/session-node-factory.js +182 -0
  142. package/dist/session-node-factory.js.map +1 -0
  143. package/dist/session-node-manager.d.ts +68 -766
  144. package/dist/session-node-manager.d.ts.map +1 -1
  145. package/dist/session-node-manager.js +966 -7940
  146. package/dist/session-node-manager.js.map +1 -1
  147. package/dist/session-node-types.d.ts +30 -0
  148. package/dist/session-node-types.d.ts.map +1 -1
  149. package/dist/session-node-types.js.map +1 -1
  150. package/dist/session-notify.d.ts +46 -0
  151. package/dist/session-notify.d.ts.map +1 -0
  152. package/dist/session-notify.js +115 -0
  153. package/dist/session-notify.js.map +1 -0
  154. package/dist/session-read-handlers.d.ts.map +1 -1
  155. package/dist/session-read-handlers.js +0 -1
  156. package/dist/session-read-handlers.js.map +1 -1
  157. package/dist/session-relay.d.ts +361 -0
  158. package/dist/session-relay.d.ts.map +1 -0
  159. package/dist/session-relay.js +1471 -0
  160. package/dist/session-relay.js.map +1 -0
  161. package/dist/session-salt-agreement.d.ts +0 -7
  162. package/dist/session-salt-agreement.d.ts.map +1 -1
  163. package/dist/session-salt-agreement.js +0 -7
  164. package/dist/session-salt-agreement.js.map +1 -1
  165. package/dist/session-salts.d.ts +13 -0
  166. package/dist/session-salts.d.ts.map +1 -1
  167. package/dist/session-salts.js +13 -0
  168. package/dist/session-salts.js.map +1 -1
  169. package/dist/session-seal.d.ts +336 -0
  170. package/dist/session-seal.d.ts.map +1 -0
  171. package/dist/session-seal.js +948 -0
  172. package/dist/session-seal.js.map +1 -0
  173. package/dist/session-views.d.ts +46 -0
  174. package/dist/session-views.d.ts.map +1 -0
  175. package/dist/session-views.js +197 -0
  176. package/dist/session-views.js.map +1 -0
  177. package/dist/signal-handlers.d.ts +66 -0
  178. package/dist/signal-handlers.d.ts.map +1 -0
  179. package/dist/signal-handlers.js +975 -0
  180. package/dist/signal-handlers.js.map +1 -0
  181. package/dist/signaling-wiring.d.ts +100 -0
  182. package/dist/signaling-wiring.d.ts.map +1 -0
  183. package/dist/signaling-wiring.js +392 -0
  184. package/dist/signaling-wiring.js.map +1 -0
  185. package/dist/start-agent.d.ts +64 -0
  186. package/dist/start-agent.d.ts.map +1 -0
  187. package/dist/start-agent.js +136 -0
  188. package/dist/start-agent.js.map +1 -0
  189. package/dist/status-handler.d.ts +46 -0
  190. package/dist/status-handler.d.ts.map +1 -0
  191. package/dist/status-handler.js +58 -0
  192. package/dist/status-handler.js.map +1 -0
  193. package/dist/test-handlers.d.ts +62 -0
  194. package/dist/test-handlers.d.ts.map +1 -0
  195. package/dist/test-handlers.js +239 -0
  196. package/dist/test-handlers.js.map +1 -0
  197. package/dist/types.d.ts +0 -11
  198. package/dist/types.d.ts.map +1 -1
  199. package/dist/types.js +0 -12
  200. package/dist/types.js.map +1 -1
  201. package/dist/unresolved-nodes-report.d.ts +14 -0
  202. package/dist/unresolved-nodes-report.d.ts.map +1 -0
  203. package/dist/unresolved-nodes-report.js +96 -0
  204. package/dist/unresolved-nodes-report.js.map +1 -0
  205. package/dist/who-resolver.d.ts +15 -0
  206. package/dist/who-resolver.d.ts.map +1 -0
  207. package/dist/who-resolver.js +46 -0
  208. package/dist/who-resolver.js.map +1 -0
  209. package/dist/wire-content-hash.d.ts +0 -2
  210. package/dist/wire-content-hash.d.ts.map +1 -1
  211. package/dist/wire-content-hash.js +0 -4
  212. package/dist/wire-content-hash.js.map +1 -1
  213. package/package.json +5 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-seal.js","sourceRoot":"","sources":["../src/session-seal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAM1F,OAAO,EAAE,cAAc,EAAyB,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAsB,MAAM,8BAA8B,CAAC;AAmGxF,MAAM,OAAO,WAAW;IACb,IAAI,CAAqB;IAElC,YAAY,GAAuB;QACjC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IAClB,CAAC;IAED,0FAA0F;IAC1F,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;IACxB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,qBAAqB,CAAC,SAAiB,EAAE,SAAiB;QAGxD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACpF,IAAI,KAAK,EAAE,CAAC;YACV,6FAA6F;YAC7F,yCAAyC;YACzC,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,mBAAmB;gBAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;YAC5F,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC9G,CAAC;QACD,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC7E,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC;QAC7D,iGAAiG;QACjG,8FAA8F;QAC9F,gGAAgG;QAChG,8EAA8E;QAC9E,MAAM,SAAS,GAAG,GAAG,SAAS,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC;QACpD,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,2FAA2F;YAC3F,6FAA6F;YAC7F,2FAA2F;YAC3F,6FAA6F;YAC7F,yFAAyF;YACzF,2CAA2C;YAC3C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,GAAG;gBAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9H,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,GAAG;gBAAE,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzH,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE;gBAC7F,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,SAAS;gBACtD,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,SAAS;gBACnD,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,SAAS;gBACnD,yFAAyF;gBACzF,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC;aAChE,CAAC,CAAC;YACH,IAAI,CAAC,MAAM;gBAAE,OAAO,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;YAC1D,8FAA8F;YAC9F,2FAA2F;YAC3F,8FAA8F;YAC9F,kCAAkC;YAClC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;QACD,8FAA8F;QAC9F,gGAAgG;QAChG,mFAAmF;QACnF,6FAA6F;QAC7F,6FAA6F;QAC7F,6BAA6B;QAC7B;;;;;;;;;;;;;;;;;;;;;WAqBG;QACH,MAAM,mBAAmB,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,mBAAmB,EAAE,CAAC;YACxB,2FAA2F;YAC3F,6FAA6F;YAC7F,6EAA6E;YAC7E,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACpI,CAAC;aAAM,CAAC;YACN;;;;;;;;;eASG;YACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE;gBAClE,SAAS;gBACT,SAAS;gBACT,MAAM,EACJ,2FAA2F;oBAC3F,+EAA+E;aAClF,CAAC,CAAC;QACL,CAAC;QACD;;;;;;;;;WASG;QACH,OAAO;YACL,IAAI;YACJ,WAAW,EAAE,MAAM;YACnB,mBAAmB,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAClE,0FAA0F;YAC1F,oDAAoD;YACpD,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjE,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,mBAAmB,CACjB,cAAsB,EACtB,YAAoB,EACpB,aAAyB,EACzB,kBAA0B;QAE1B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAC9D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAE/E;;;;;;;;;;;;;;;;;;;;;;;WAuBG;QACH,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3E,MAAM,iBAAiB,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CACjF,CAAC;QACF,MAAM,qBAAqB,GAAG,iBAAiB,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,CAAC;QAE1E;;;;;;;;;;;;;;;;;;;;;;WAsBG;QACH,MAAM,WAAW,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAClD,IACE,WAAW,KAAK,IAAI;YACpB,KAAK,CAAC,MAAM,KAAK,kBAAkB;YACnC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,EACvG,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC3B,OAAO;gBACL,OAAO,EAAE,cAAc;gBACvB,MAAM,EAAE,iBAAiB;oBACvB,CAAC,CAAC,qBAAqB,WAAW,CAAC,IAAI,uCAAuC;oBAC9E,CAAC,CAAC,6BAA6B,KAAK,CAAC,MAAM,0CAA0C;aACxF,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;YACxC,uFAAuF;YACvF,sEAAsE;YACtE,OAAO;gBACL,OAAO,EAAE,UAAU;gBACnB,UAAU,EAAE,IAAI,EAAE,2EAA2E;gBAC7F,MAAM,EAAE,+DAA+D,KAAK,CAAC,MAAM,qCAAqC,kBAAkB,EAAE;aAC7I,CAAC;QACJ,CAAC;QACD,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,mFAAmF;YACnF,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,oCAAoC,EAAE,CAAC;QACnF,CAAC;QACD,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;YAC3E,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE;YACtB,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,sEAAsE,EAAE,CAAC;IAC1H,CAAC;IAED;;;;;;;;OAQG;IACH,YAAY,CAAC,cAAsB,EAAE,YAAoB;QACvD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACzC,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC;IAC/E,CAAC;IAED,+GAA+G;IAC/G,mBAAmB,CACjB,EAAyG;QAEzG,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAClC,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,UAAU,CAAC,SAAiB,EAAE,SAAiB;QAC7C,+FAA+F;QAC/F,0FAA0F;QAC1F,WAAW;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;;;;OASG;IACH,gCAAgC,CAC9B,SAAiB,EACjB,SAAiB,EACjB,qBAA6B,EAC7B,aAAqB,EACrB,cAAsB;QAEtB,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG;aACL,OAAO,CACN;;mCAE2B,CAC5B;aACA,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,qBAAqB,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAClG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;IAC/F,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,gCAAgC,CAAC,IAQhC;QACC,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,IAAI,CAAC,GAAG;iBACL,OAAO,CACN;;2CAEiC,CAClC;iBACA,GAAG,CACF,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EACxC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,EACrC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,KAAK,EACV,GAAG,CACJ,CAAC;QACN,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE;gBAC5D,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;QAED,wEAAwE;QACxE,4EAA4E;QAC5E,wEAAwE;QACxE,0CAA0C;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG;aACpB,OAAO,CACN,uJAAuJ,CACxJ;aACA,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,MAAM,EAAE,CAAC;YACX,yFAAyF;YACzF,mFAAmF;YACnF,yFAAyF;YACzF,sCAAsC;YACtC,wFAAwF;YACxF,8FAA8F;YAC9F,6FAA6F;YAC7F,8EAA8E;YAC9E,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,cAAc,CAClB,SAAiB,EACjB,SAAiB,EACjB,aAAsB;QAKtB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3D,6FAA6F;QAC7F,sFAAsF;QACtF,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnE,IAAI,OAAO,IAAI,SAAS;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC;QACxE,MAAM,KAAK,GAAG,SAAS,CAAC;QACxB;;;;;;;WAOG;QACH,MAAM,eAAe,GAAG,GAAS,EAAE;YACjC,IAAI,SAAS,CAAC,aAAa,KAAK,IAAI;gBAAE,OAAO;YAC7C,IAAI,CAAC;gBACH,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBAC/C,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;oBACrC,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;wBACnD,IAAI,MAAM,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;4BACjC,MAAM,CAAC,KAAK,EAAE,CAAC;4BACf,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;4BACnC,MAAM;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE;oBAC7D,SAAS;oBACT,SAAS;oBACT,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;oBACxD,MAAM,EAAE,mFAAmF;iBAC5F,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QACF;;;;;WAKG;QACH,IAAI,CAAC;YAEH,0FAA0F;YAC1F,gGAAgG;YAChG,iGAAiG;YACjG,iGAAiG;YACjG,uFAAuF;YACvF,4FAA4F;YAC5F,oCAAoC;YACpC,EAAE;YACF,8FAA8F;YAC9F,6FAA6F;YAC7F,uFAAuF;YACvF,sGAAsG;YACtG,6FAA6F;YAC7F,EAAE;YACF,4FAA4F;YAC5F,4FAA4F;YAC5F,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC5E,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC1B,0FAA0F;oBAC1F,uFAAuF;oBACvF,6CAA6C;oBAC7C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,gCAAgC,EAAE,CAAC;gBACjE,CAAC;gBACD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;oBACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+CAA+C,EAAE;wBACrE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc;wBAC5D,MAAM,EAAE,oIAAoI;qBAC7I,CAAC,CAAC;oBACH,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClD,sFAAsF;gBACtF,kFAAkF;gBAClF,oFAAoF;gBACpF,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC5D,OAAO,KAAK;oBACV,CAAC,CAAC;wBACE,EAAE,EAAE,KAAK;wBACT,MAAM,EAAE,kCAAkC;wBAC1C,eAAe,EAAE,KAAK,CAAC,eAAe;wBACtC,cAAc,EAAE,KAAK,CAAC,cAAc;qBACrC;oBACH,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,kCAAkC,EAAE,CAAC;YAChE,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAEpD,uFAAuF;YACvF,mFAAmF;YACnF,mEAAmE;YACnE,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC3E,MAAM,WAAW,GAAG,iBAAiB,CAAC;oBACpC,UAAU,EAAE,KAAK,CAAC,mBAAmB;oBACrC,UAAU,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;oBAC5D,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE;oBAC3B,WAAW,EAAE,SAAS;iBACvB,CAAC,CAAC;gBACH,kFAAkF;gBAClF,MAAM,WAAW,GAAG,IAAI,UAAU,CAChC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,CAC3F,CAAC;gBACF;;;;;;;;;;;;;;mBAcG;gBACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,mBAAmB,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;gBACnI,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBACf,gGAAgG;oBAChG,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBACjD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;oBAC9G,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC9C,CAAC;gBACD,oFAAoF;gBACpF,wFAAwF;gBACxF,gFAAgF;gBAChF,iFAAiF;gBACjF,2EAA2E;gBAC3E,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAChE,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;gBAC3G,uFAAuF;gBACvF,oFAAoF;gBACpF,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;gBAC3G,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;oBACnD,SAAS;oBACT,cAAc,EAAE,MAAM,CAAC,eAAe;oBACtC,aAAa;iBACd,CAAC,CAAC;gBACH,4FAA4F;gBAC5F,kGAAkG;gBAClG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,eAAe,EAAE,eAAe,EAAE,CAAC;YAC/E,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACjD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,eAAe,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,uBAAuB,CAAC,SAAiB,EAAE,SAAiB;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACxE,OAAO;YACL,KAAK,EAAE,CAAC,CAAC,MAAM;YACf;;;;;;;;;;;eAWG;YACH,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,IAAI,IAAI;SAChG,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,wBAAwB,CAAC,SAAiB,EAAE,SAAiB,EAAE,aAAqB;QAClF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC1D,iFAAiF;QACjF,IAAI,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACxE,6FAA6F;QAC7F,6FAA6F;QAC7F,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO;QAClD;;;;;;;;;;;;;;;;;;WAkBG;QACH,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,YAAY,EAAE,CAAC;YACjB;;;;;;;;;;eAUG;YACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE;gBACrD,SAAS;gBACT,MAAM,EAAE,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,kCAAkC;gBAC3F,aAAa;aACd,CAAC,CAAC;YACH,0FAA0F;YAC1F,6FAA6F;YAC7F,2FAA2F;YAC3F,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACtH,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE;oBACpD,SAAS;oBACT,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACzD,CAAC,CAAC;YACL,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,eAAe,GAAG,KAAK,EAAE,WAAW,EAAE,eAAe,IAAI,SAAS,CAAC;QACzE,6FAA6F;QAC7F,0EAA0E;QAC1E,+FAA+F;QAC/F,iGAAiG;QACjG,8FAA8F;QAC9F,yFAAyF;QACzF,sDAAsD;QACtD,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,cAAc,GAAuD,IAAI,CAAC;YAC9E,IAAI,CAAC;gBACH,cAAc,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC;YACtF,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,6FAA6F;gBAC7F,mFAAmF;gBACnF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE;oBAC1D,SAAS;oBACT,aAAa;oBACb,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACzD,CAAC,CAAC;YACL,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;YACjF,8DAA8D;YAC9D,EAAE;YACF,iGAAiG;YACjG,6FAA6F;YAC7F,gGAAgG;YAChG,gEAAgE;YAChE,EAAE;YACF,2FAA2F;YAC3F,gGAAgG;YAChG,iGAAiG;YACjG,yFAAyF;YACzF,gDAAgD;YAChD,EAAE;YACF,gGAAgG;YAChG,+FAA+F;YAC/F,8FAA8F;YAC9F,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,IAAI,GAAG,cAAc,CAAC;gBAC5B,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC;gBACvH,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YACd,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,EAAE;aACD,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACd,0FAA0F;gBAC1F,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE;oBACrD,SAAS;oBACT,eAAe;oBACf,aAAa;iBACd,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,kCAAkC,EAAE,CAAC;gBAChE,0FAA0F;gBAC1F,OAAO;YACT,CAAC;iBAAM,CAAC;gBACN,mFAAmF;gBACnF,wDAAwD;gBACxD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE;oBACpD,SAAS;oBACT,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,aAAa;iBACd,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE;gBACpD,SAAS;gBACT,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBACxD,aAAa;aACd,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,aAAa,CAAC,SAAiB,EAAE,SAAiB;QAgBhD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACvD,6FAA6F;QAC7F,gGAAgG;QAChG,8FAA8F;QAC9F,oEAAoE;QACpE,EAAE;QACF,4FAA4F;QAC5F,+FAA+F;QAC/F,6FAA6F;QAC7F,0BAA0B;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;QACvE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;QAC5D,4FAA4F;QAC5F,6FAA6F;QAC7F,8FAA8F;QAC9F,6FAA6F;QAC7F,+FAA+F;QAC/F,yFAAyF;QACzF,0FAA0F;QAC1F,6FAA6F;QAC7F,EAAE;QACF,iGAAiG;QACjG,2FAA2F;QAC3F,iGAAiG;QACjG,+FAA+F;QAC/F,8FAA8F;QAC9F,+FAA+F;QAC/F,8FAA8F;QAC9F,+EAA+E;QAC/E,sDAAsD;QACtD,EAAE;QACF,gGAAgG;QAChG,8FAA8F;QAC9F,8FAA8F;QAC9F,6FAA6F;QAC7F,6BAA6B;QAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;QACjE,2FAA2F;QAC3F,gGAAgG;QAChG,+FAA+F;QAC/F,wEAAwE;QACxE,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;YAAE,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM;gBAAE,OAAO,EAAE,CAAC;QACnG,+FAA+F;QAC/F,8FAA8F;QAC9F,gGAAgG;QAChG,oEAAoE;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3E,OAAO;YACL,KAAK,EAAE,aAAa,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,IAAI,CAAC,QAAQ;YAC1D,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa;YAChD,OAAO,EAAE,YAAY,EAAE,SAAS,GAAG,OAAO;YAC1C,QAAQ;SACT,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,iBAAiB,CAAC,SAAiB,EAAE,SAAiB;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACvD,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnD,0FAA0F;QAC1F,+FAA+F;QAC/F,4FAA4F;QAC5F,2FAA2F;QAC3F,gGAAgG;QAChG,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YACf,+FAA+F;YAC/F,6FAA6F;YAC7F,wEAAwE;YACxE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAC1E,OAAO;gBACL,KAAK,EAAE,SAAS;gBAChB,2FAA2F;gBAC3F,qFAAqF;gBACrF,0FAA0F;gBAC1F,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,YAAY,CAAC;gBAC9D,aAAa,EAAE,CAAC,CAAC,SAAS;gBAC1B,YAAY;aACb,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3D,OAAO;gBACL,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,qCAAqC;aAC9C,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,gCAAgC,CAAC,cAAsB,EAAE,YAAoB;QAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAC9D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;QACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,8FAA8F;YAC9F,2FAA2F;YAC3F,qFAAqF;YACrF,2FAA2F;YAC3F,MAAM,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACjD,oFAAoF;YACpF,oDAAoD;YACpD,IAAI,CAAC,EAAE,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAC;YACxB,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBACnE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC;gBAC/B,CAAC,CAAC,CAAC,CAAC;YACN,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACnD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC;QACxF,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC;CACF"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * The views the daemon builds of its own sessions and agents.
3
+ *
4
+ * Which sessions are interrupted and can still be resumed, which are live, whether a given session
5
+ * could be sealed right now, and what state each agent is in. Plus the half-open reaper, which is
6
+ * here rather than with the sweeps because "which sessions are live" and "which sessions are dead
7
+ * but still listed" are the same question asked twice — separating them is how a list starts
8
+ * reporting sessions that no longer exist.
9
+ *
10
+ * ⚠️ THE CONTEXT IS DESIGNED, NOT LIFTED. An attempt to move the whole status cluster — these
11
+ * builders plus `getStatus` — found TWENTY free names, because `getStatus` reads from every part of
12
+ * the daemon by construction. That is the composition root with an extra hop. The builders alone
13
+ * need what is listed below and nothing else; `getStatus` stays in the root, where its breadth is
14
+ * honest, and calls in.
15
+ */
16
+ import type { ActiveSessionInfo, AgentInfo, AgentState, InterruptedSessionInfo, Logger } from "./types.js";
17
+ import type { SessionNodeManager } from "./session-node-manager.js";
18
+ import type { SignalingManager } from "@cello-protocol/transport";
19
+ import type { SealCompletion } from "./seal-coordinator.js";
20
+ import type { FrontierMismatchStore } from "./frontier-mismatch.js";
21
+ export interface SessionViewsDeps {
22
+ logger: Logger;
23
+ sessionNodeManager: SessionNodeManager;
24
+ /** Live containers, shared by reference: a copy freezes attendance and every agent reads unattended. */
25
+ perConnectionState: ReadonlyMap<string, {
26
+ currentAgent: string | null;
27
+ }>;
28
+ onlineAgents: ReadonlySet<string>;
29
+ explicitlyOfflineAgents: ReadonlySet<string>;
30
+ perAgentSignaling: ReadonlyMap<string, {
31
+ signaling: SignalingManager;
32
+ }>;
33
+ /** Present only on the in-process test path. */
34
+ sharedSignaling: SignalingManager | undefined;
35
+ frontierMismatches: FrontierMismatchStore;
36
+ sealKey: (agentName: string, sessionId: string) => string;
37
+ sealInterruptedInProgress: ReadonlySet<string>;
38
+ pendingSealWaiters: ReadonlyMap<string, (completion: SealCompletion) => void>;
39
+ }
40
+ export declare function createSessionViews(deps: SessionViewsDeps): {
41
+ buildInterruptedSessions: () => InterruptedSessionInfo[];
42
+ reapDeadHalfOpenSessions: (agentName?: string) => void;
43
+ buildActiveSessions: () => ActiveSessionInfo[];
44
+ agentStateFor: (a: AgentInfo) => AgentState;
45
+ };
46
+ //# sourceMappingURL=session-views.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-views.d.ts","sourceRoot":"","sources":["../src/session-views.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EACV,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,EACzE,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAKpE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,wGAAwG;IACxG,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE;QAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IACzE,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,gBAAgB,CAAA;KAAE,CAAC,CAAC;IACxE,gDAAgD;IAChD,eAAe,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC9C,kBAAkB,EAAE,qBAAqB,CAAC;IAC1C,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1D,yBAAyB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/C,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,IAAI,CAAC,CAAC;CAC/E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB;oCAwClB,sBAAsB,EAAE;2CA4Cf,MAAM,KAAG,IAAI;+BAgD3B,iBAAiB,EAAE;uBA8BzB,SAAS,KAAG,UAAU;EAqCjD"}
@@ -0,0 +1,197 @@
1
+ import { countAttendance } from "./co-attendance.js";
2
+ import { renderFrontierMismatch } from "./frontier-mismatch.js";
3
+ import { resolveAgentState } from "./agent-state.js";
4
+ export function createSessionViews(deps) {
5
+ const { logger, sessionNodeManager, perConnectionState, onlineAgents, explicitlyOfflineAgents, perAgentSignaling, sharedSignaling, frontierMismatches, sealKey, sealInterruptedInProgress, pendingSealWaiters, } = deps;
6
+ // M7-SESSION-001 AC-006/AC-007 (and M-1 PULL): build the interrupted_sessions
7
+ // array from SQLite. Shared by both getStatus() (daemon-wide) and the
8
+ // cello_status MCP handler (per-connection) so live MCP clients see the same
9
+ // interrupted sessions a CLI `cello status` would.
10
+ // `cello status` is a health snapshot, not a session archive. It surfaces ONLY genuinely
11
+ // RESUMABLE sessions (interrupted with messages exchanged) — never failed inits (interrupted,
12
+ // 0 messages — a dead handshake), which classify as "failed" and would otherwise accumulate
13
+ // unbounded and confuse. The list is also capped; the full, queryable history is `cello sessions`
14
+ // / cello_list_sessions (with filter + limit flags).
15
+ const STATUS_RESUMABLE_CAP = 10;
16
+ /**
17
+ * DOD-M12B-SEAL-STUCK-1 — ask the seal gate for ONE session, and never let the answer take the
18
+ * status response with it.
19
+ *
20
+ * This runs per session on every `cello status` and every `cello_status`, and it touches the
21
+ * database. An unguarded throw here rejects the whole response, after which the CLI finds the
22
+ * singleton lock still held and prints `daemon: "broken_shutdown"` — telling the operator their
23
+ * healthy daemon has failed to stop, over one session row it could not read. There is a
24
+ * documented precedent in this codebase for exactly that shape.
25
+ *
26
+ * A failure yields `unknown`, never `ready`: "we could not check" must not read as "safe to
27
+ * close", because a close on a short chain is terminal.
28
+ */
29
+ function probeSealReadiness(agentName, sessionId) {
30
+ try {
31
+ return sessionNodeManager.sealReadinessView(agentName, sessionId);
32
+ }
33
+ catch (err) {
34
+ const message = err instanceof Error ? err.message : String(err);
35
+ logger.warn("session.seal.readiness.probe.failed", { agentName, sessionId, error: message });
36
+ return { state: "unknown", reason: `probe_failed: ${message}` };
37
+ }
38
+ }
39
+ function buildInterruptedSessions() {
40
+ return sessionNodeManager
41
+ .getSessionsByStatus("interrupted")
42
+ .filter((row) => (row.message_count ?? 0) > 0) // resumable only — drop failed 0-message inits
43
+ .slice(0, STATUS_RESUMABLE_CAP)
44
+ .map((row) => ({
45
+ sessionId: row.session_id,
46
+ agentName: row.agent_name,
47
+ counterpartyPubkey: row.counterparty_pubkey,
48
+ messageCount: row.message_count ?? 0,
49
+ interruptedAt: row.interrupted_at ?? new Date(row.updated_at).toISOString(),
50
+ // DOD-SESSION-NAME-1 (AC-A11): an interrupted session is one you may want to resume or seal
51
+ // — the name is how you tell which one it was.
52
+ sessionName: row.session_name ?? null,
53
+ // DOD-M12B-SEAL-STUCK-1: the same answer the active list carries, for the same reason —
54
+ // an interrupted session can seal, so it can also be blocked from sealing by a gap, and
55
+ // that is knowable here instead of only after a failed close. A plain property, never a
56
+ // spread: a spread bypasses excess-property checking, which is how `frontierMismatch`
57
+ // below came to typecheck while no renderer could read it.
58
+ sealReadiness: probeSealReadiness(row.agent_name, row.session_id),
59
+ // DOD-FRONTIER-STRAND-1 AC3: if a seal exchange has already proved the two sides disagree on
60
+ // how many messages this session holds, SAY SO HERE. Otherwise a stranded session is listed
61
+ // exactly like a healthy paused one, and the only way to learn it can never seal is to
62
+ // attempt another close and read the error — which is how dbb93dfc… sat unnoticed a week.
63
+ ...(() => {
64
+ const m = frontierMismatches.get(row.agent_name, row.session_id);
65
+ return m ? { frontierMismatch: renderFrontierMismatch(m, row.session_id) } : {};
66
+ })(),
67
+ }));
68
+ }
69
+ // CC-5/F21: reap dead half-open sessions on READ (compute-on-read, like reapExpiredInboundSessions —
70
+ // no background timer). A session the standing receiver opened from an inbound offer the initiator
71
+ // ABANDONED stays "active" forever (the counterparty never joins), clutters the open/active lists, and
72
+ // its normal close fires an unsealable bilateral seal. Mark such a session terminal ("abandoned") once
73
+ // it is PROVABLY dead: counterparty never established (liveness != "alive" AND 0 RECEIVED messages —
74
+ // message_count alone counts our own auto-"Dispatched." ack, so it is NOT the signal) + age past the
75
+ // grace TTL (a genuinely fresh session still setting up must survive).
76
+ // CC-10 (live 2026-07-08 Phase-2 block): scan 'interrupted' too, not just 'active'. A daemon restart
77
+ // flips dead half-opens to 'interrupted'; those classify as "failed" (invisible in every list) yet
78
+ // still count toward the unknown-sender acceptance bound (D18 deliberately counts 'interrupted') — so
79
+ // a stranger whose first handshakes died was silently locked out FOREVER. Reaping only 0-RECEIVED
80
+ // ghosts keeps D18 intact: the disconnect-evasion attacker's sessions always carry received content.
81
+ const HALF_OPEN_TTL_MS = Number(process.env["CELLO_HALF_OPEN_TTL_MS"]) || 5 * 60 * 1000;
82
+ function reapDeadHalfOpenSessions(agentName) {
83
+ const now = Date.now();
84
+ const candidates = [...sessionNodeManager.getSessionsByStatus("active"), ...sessionNodeManager.getSessionsByStatus("interrupted")];
85
+ for (const row of candidates) {
86
+ if (agentName !== undefined && row.agent_name !== agentName)
87
+ continue;
88
+ if (now - row.created_at <= HALF_OPEN_TTL_MS)
89
+ continue; // too young — may just be setting up
90
+ // DOD-M12B-ACK-1: 'impaired' counts as live HERE. This reaper's question is "did the
91
+ // counterparty ever establish?", and impaired means it did — the connection is up, only
92
+ // delivery on it is failing. Reaping on impaired would abandon exactly the sessions this
93
+ // milestone exists to repair.
94
+ const liveness = sessionNodeManager.getSessionLiveness(row.agent_name, row.session_id);
95
+ if (liveness === "alive" || liveness === "impaired")
96
+ continue; // live
97
+ /**
98
+ * DOD-M12B-REAP-HELD-1 — count HELD frames too, or an interrupted conversation reads as a
99
+ * dead handshake.
100
+ *
101
+ * OBSERVED LIVE 2026-08-18: this line abandoned session `d28db475…` — twenty leaves in the
102
+ * chain plus sixteen verified frames still held, ten of them from the counterparty — while the
103
+ * restart-seal resolver was actively trying to notarize it. The receipt was forfeited and the
104
+ * held content annexed.
105
+ *
106
+ * `countReceivedMessages` asks the TRANSCRIPT, and held content never reaches the transcript;
107
+ * it waits in `held_content` until it can join the chain. So the very condition that holds
108
+ * content — an interrupted session — is the condition that hides the counterparty's messages
109
+ * from this test, and a real conversation becomes indistinguishable from an offer nobody
110
+ * answered. `countEstablishedReceived` asks both places.
111
+ */
112
+ if (sessionNodeManager.countEstablishedReceived(row.agent_name, row.session_id) > 0)
113
+ continue; // counterparty spoke
114
+ // Non-awaited: abandonSession flips the DB status synchronously (before its first await), so THIS
115
+ // read reflects it; the async node teardown finishes in the background. CC-10 reviewer LOW: only
116
+ // log "reaped" if the status flip actually wrote — a swallowed write failure already logs
117
+ // session.status.write.failed, and reporting success over it would hide a still-counting ghost.
118
+ void sessionNodeManager.abandonSession(row.agent_name, row.session_id)
119
+ .then((flipped) => {
120
+ if (flipped) {
121
+ logger.info("session.half_open.reaped", { agentName: row.agent_name, sessionId: row.session_id, priorStatus: row.status, ageMs: now - row.created_at });
122
+ }
123
+ })
124
+ .catch((err) => {
125
+ logger.warn("session.half_open.reap.failed", { agentName: row.agent_name, sessionId: row.session_id, reason: err instanceof Error ? err.message : String(err) });
126
+ });
127
+ }
128
+ }
129
+ // M8B F16: per-session liveness for ACTIVE sessions, shared by both status surfaces
130
+ // ("status" for the CLI, "cello_status" for MCP). The signal (session.liveness.changed,
131
+ // tracked in the node manager) existed but nothing consumed it — a dead counterparty
132
+ // was invisible to the operator.
133
+ function buildActiveSessions() {
134
+ reapDeadHalfOpenSessions(); // CC-5/F21: drop provably-dead half-open sessions before surfacing active ones
135
+ return sessionNodeManager.getSessionsByStatus("active").map((row) => {
136
+ // DOD-M12B-SEAL-STUCK-1: ask the SAME gate the close path asks, so the surface and the
137
+ // refusal can never disagree. Computed here rather than cached because the answer changes
138
+ // the moment a gap fills, and a stale "stuck" is its own lie.
139
+ return {
140
+ sessionId: row.session_id,
141
+ agentName: row.agent_name,
142
+ counterpartyPubkey: row.counterparty_pubkey,
143
+ liveness: sessionNodeManager.getSessionLiveness(row.agent_name, row.session_id),
144
+ sessionName: row.session_name ?? null, // DOD-SESSION-NAME-1 (AC-A11)
145
+ sealReadiness: probeSealReadiness(row.agent_name, row.session_id),
146
+ // DOD-M12B-CLOSE-SILENT-WAIT-1: both flows, because either can be the one blocking the
147
+ // operator's command — `pendingSealWaiters` is the active close, `sealInterruptedInProgress`
148
+ // the interrupted one.
149
+ sealing: pendingSealWaiters.has(sealKey(row.agent_name, row.session_id)) ||
150
+ sealInterruptedInProgress.has(sealKey(row.agent_name, row.session_id)),
151
+ };
152
+ });
153
+ }
154
+ /**
155
+ * The state an operator sees, for one agent — used by BOTH status surfaces.
156
+ *
157
+ * Deliberately one function. The daemon-wide status and the per-connection `cello_status` used to
158
+ * compute this separately, and separate copies of a truth claim are how the directory-health block
159
+ * came to exist on one surface and not the other earlier today.
160
+ */
161
+ function agentStateFor(a) {
162
+ return resolveAgentState({
163
+ loadFailed: a.state === "load_failed",
164
+ // `unregistered` is BUILT and tested (agent-state.ts) and deliberately NOT EMITTED yet.
165
+ //
166
+ // The truthful signal is whether the DKG left a FROST share — registration's durable product,
167
+ // rather than a flag anyone could forget to set. But every test fixture creates an agent
168
+ // WITHOUT one, so switching this on relabels the agents in 29 tests across 8 files, and the
169
+ // alternative — fabricating share material in fixtures — plants fake crypto material that a
170
+ // later reader takes for real. Neither is worth it for a state that lasts the few seconds
171
+ // between `cello create-agent` and `cello register-agent`.
172
+ //
173
+ // So the daemon asserts exactly what it asserted before this change: a loaded agent is treated
174
+ // as registered. That is not a regression, and it is not silent — it is this comment. The VALUE
175
+ // stays in AgentState, so turning it on once fixtures can register for real is a one-line
176
+ // change here and NOT a second wire change for every consumer.
177
+ hasFrostShare: true,
178
+ deliberatelyOffline: explicitlyOfflineAgents.has(a.name),
179
+ started: onlineAgents.has(a.name),
180
+ // This agent's OWN stream where it has one — an agent whose connection is severed while its
181
+ // siblings are fine must not read as healthy.
182
+ //
183
+ // Falls back to the shared manager, mirroring directorySignalingStatus(): production gives
184
+ // every agent its own connection, but the IN-PROCESS TEST path has ONE shared manager (NOT back-compat: Rule F deletes
185
+ // back-compat on sight, and deleting this would break every in-process test in the package) and
186
+ // no per-agent entry at all. Reading only the per-agent map there returns undefined for every
187
+ // agent, so all of them reported `connecting` — which then made isAgentReady false and refused
188
+ // real commands with `selected_agent_offline`. Absent is not the same as disconnected.
189
+ signalingConnected: (perAgentSignaling.get(a.name)?.signaling.status ?? sharedSignaling?.status) === "connected",
190
+ attendance: countAttendance(perConnectionState, a.name),
191
+ });
192
+ }
193
+ // `probeSealReadiness` is NOT returned: its only caller is `buildInterruptedSessions`, which
194
+ // moved with it. Returning it would make a private helper reachable for no consumer.
195
+ return { buildInterruptedSessions, reapDeadHalfOpenSessions, buildActiveSessions, agentStateFor };
196
+ }
197
+ //# sourceMappingURL=session-views.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-views.js","sourceRoot":"","sources":["../src/session-views.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import type { SubmissionOp, ConsortiumManifest } from "@cello-protocol/protocol-types";
2
+ import type { KeyProvider } from "@cello-protocol/crypto";
3
+ import type { SignalingManager } from "@cello-protocol/transport";
4
+ import type { SubmissionRetryQueue } from "./submission-retry.js";
5
+ import type { IpcHandler } from "./ipc-server.js";
6
+ import type { SessionNodeManager } from "./session-node-manager.js";
7
+ import type { Logger } from "./types.js";
8
+ import type { LoadedAgent } from "./agent-loader.js";
9
+ /** The per-connection agent selection, as this surface needs to read it. */
10
+ export interface SignalConnState {
11
+ currentAgent: string | null;
12
+ }
13
+ export interface SignalHandlerDeps {
14
+ handlers: Map<string, IpcHandler>;
15
+ logger: Logger;
16
+ sessionNodeManager: SessionNodeManager;
17
+ /** Signing keys by agent name. A missing entry is a refusal, never a silent skip. */
18
+ keyProviders: Map<string, KeyProvider>;
19
+ /** Read-only: a submission needs its agent ONLINE, and this surface must not change that. */
20
+ onlineAgents: ReadonlySet<string>;
21
+ /**
22
+ * Every agent this daemon has loaded. Needed to answer one question the directory cannot be
23
+ * trusted to answer: is the SUBJECT of this attestation also mine? Two of your own agents
24
+ * vouching for each other is you vouching for yourself.
25
+ */
26
+ loadedAgents: ReadonlyArray<LoadedAgent>;
27
+ /** Read this connection's agent selection. The READ, not the container. */
28
+ getConnState: (connectionId: string) => SignalConnState | undefined;
29
+ /**
30
+ * ⚠️ NOT a getter — for an agent with no manager this CONSTRUCTS one. The comment at its use
31
+ * site says so and moved with the code; it is repeated here because the name reads like a lookup.
32
+ */
33
+ getAgentSignaling: (agentName: string, agentKeyProvider: KeyProvider, agentPubkeyHex: string) => {
34
+ signaling: SignalingManager;
35
+ };
36
+ /** A transient connection to a directory that is not this agent's home node. */
37
+ openVisitingConnection: (agentName: string, agentKeyProvider: KeyProvider, agentPubkeyHex: string, endpoint: {
38
+ peerId: string;
39
+ multiaddr: string;
40
+ }, correlationId: string, nodeId: string) => {
41
+ mgr: SignalingManager;
42
+ stop: (reason: string) => Promise<void>;
43
+ };
44
+ /** It returns synchronously and dials in the background; this is what makes it usable. */
45
+ waitForSignalingConnected: (mgr: SignalingManager, timeoutMs: number) => Promise<boolean>;
46
+ /** Every directory in the verified consortium. Null when there is no roster at all. */
47
+ resolveConsortiumRoster: () => Promise<Array<{
48
+ peerId: string;
49
+ multiaddr: string;
50
+ nodeId: string;
51
+ }> | null>;
52
+ /** The verified manifest, for its intake key. Null on every path that verified nothing. */
53
+ verifiedManifest: ConsortiumManifest | null;
54
+ /** Held submissions that could not be sent, retried on a window. */
55
+ submissionRetries: SubmissionRetryQueue;
56
+ /** Record an issued submission against the agent's STABLE id, never its display name. */
57
+ recordIssuedSubmission: (agentName: string, agentId: string, s: {
58
+ submissionId: string;
59
+ subject: string;
60
+ op: SubmissionOp;
61
+ intakeKeyId: string;
62
+ stored: boolean;
63
+ }) => void;
64
+ }
65
+ export declare function registerSignalHandlers(deps: SignalHandlerDeps): void;
66
+ //# sourceMappingURL=signal-handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal-handlers.d.ts","sourceRoot":"","sources":["../src/signal-handlers.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAqB,YAAY,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAC1G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAKlE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AASrD,4EAA4E;AAC5E,MAAM,WAAW,eAAe;IAAG,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAAE;AAEjE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,qFAAqF;IACrF,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACvC,6FAA6F;IAC7F,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC;;;;OAIG;IACH,YAAY,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACzC,2EAA2E;IAC3E,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,eAAe,GAAG,SAAS,CAAC;IACpE;;;OAGG;IACH,iBAAiB,EAAE,CACjB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,WAAW,EAC7B,cAAc,EAAE,MAAM,KACnB;QAAE,SAAS,EAAE,gBAAgB,CAAA;KAAE,CAAC;IACrC,gFAAgF;IAChF,sBAAsB,EAAE,CACtB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,WAAW,EAC7B,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAC/C,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,KACX;QAAE,GAAG,EAAE,gBAAgB,CAAC;QAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;IACxE,0FAA0F;IAC1F,yBAAyB,EAAE,CAAC,GAAG,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1F,uFAAuF;IACvF,uBAAuB,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5G,2FAA2F;IAC3F,gBAAgB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC5C,oEAAoE;IACpE,iBAAiB,EAAE,oBAAoB,CAAC;IACxC,yFAAyF;IACzF,sBAAsB,EAAE,CACtB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,CAAC,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,YAAY,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,KACjG,IAAI,CAAC;CACX;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CA49BpE"}