@songsid/agend 2.3.5-alpha.5 → 2.3.5-beta.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 (976) hide show
  1. package/README.md +0 -2
  2. package/README.zh-TW.md +0 -2
  3. package/THIRD_PARTY_NOTICES.md +0 -68
  4. package/dist/agent-endpoint.d.ts +1 -5
  5. package/dist/agent-endpoint.js +2 -12
  6. package/dist/agent-endpoint.js.map +1 -1
  7. package/dist/agent-file-read.js +1 -1
  8. package/dist/agent-file-read.js.map +1 -1
  9. package/dist/auth-api.d.ts +0 -48
  10. package/dist/auth-api.js +4 -250
  11. package/dist/auth-api.js.map +1 -1
  12. package/dist/authority/session-authorizations.d.ts +2 -0
  13. package/dist/authority/session-authorizations.js +7 -1
  14. package/dist/authority/session-authorizations.js.map +1 -1
  15. package/dist/authority/web-authority.d.ts +2 -12
  16. package/dist/authority/web-authority.js +4 -25
  17. package/dist/authority/web-authority.js.map +1 -1
  18. package/dist/backend/claude-code.d.ts +12 -15
  19. package/dist/backend/claude-code.js +133 -152
  20. package/dist/backend/claude-code.js.map +1 -1
  21. package/dist/backend/codex-footer-hints.d.ts +0 -3
  22. package/dist/backend/codex-footer-hints.js +0 -14
  23. package/dist/backend/codex-footer-hints.js.map +1 -1
  24. package/dist/backend/codex-package.d.ts +2 -5
  25. package/dist/backend/codex-package.js +5 -1
  26. package/dist/backend/codex-package.js.map +1 -1
  27. package/dist/backend/codex-quota-history.js +19 -4
  28. package/dist/backend/codex-quota-history.js.map +1 -1
  29. package/dist/backend/codex.d.ts +115 -142
  30. package/dist/backend/codex.js +1094 -1187
  31. package/dist/backend/codex.js.map +1 -1
  32. package/dist/backend/grok.d.ts +0 -2
  33. package/dist/backend/grok.js +0 -22
  34. package/dist/backend/grok.js.map +1 -1
  35. package/dist/backend/types.d.ts +2 -7
  36. package/dist/backend/types.js.map +1 -1
  37. package/dist/bundled-tmux-guard.d.ts +21 -0
  38. package/dist/bundled-tmux-guard.js +96 -0
  39. package/dist/bundled-tmux-guard.js.map +1 -0
  40. package/dist/channel/ipc-bridge.d.ts +0 -2
  41. package/dist/channel/mcp-tools.js +2 -2
  42. package/dist/channel/mcp-tools.js.map +1 -1
  43. package/dist/classic-channel-manager.d.ts +2 -0
  44. package/dist/classic-channel-manager.js +5 -1
  45. package/dist/classic-channel-manager.js.map +1 -1
  46. package/dist/cli.js +30 -127
  47. package/dist/cli.js.map +1 -1
  48. package/dist/config-validator.js +13 -74
  49. package/dist/config-validator.js.map +1 -1
  50. package/dist/config.js +3 -17
  51. package/dist/config.js.map +1 -1
  52. package/dist/daemon.d.ts +5 -72
  53. package/dist/daemon.js +275 -869
  54. package/dist/daemon.js.map +1 -1
  55. package/dist/delivery-consumed-watch.d.ts +3 -15
  56. package/dist/delivery-consumed-watch.js +1 -23
  57. package/dist/delivery-consumed-watch.js.map +1 -1
  58. package/dist/delivery-outbox.d.ts +0 -5
  59. package/dist/delivery-outbox.js +4 -32
  60. package/dist/delivery-outbox.js.map +1 -1
  61. package/dist/delivery-reconciliation.d.ts +42 -2
  62. package/dist/delivery-reconciliation.js +164 -2
  63. package/dist/delivery-reconciliation.js.map +1 -1
  64. package/dist/doctor.js +9 -20
  65. package/dist/doctor.js.map +1 -1
  66. package/dist/fleet-context.d.ts +2 -2
  67. package/dist/fleet-level-config.d.ts +1 -1
  68. package/dist/fleet-level-config.js +0 -2
  69. package/dist/fleet-level-config.js.map +1 -1
  70. package/dist/fleet-manager.d.ts +9 -498
  71. package/dist/fleet-manager.js +202 -2849
  72. package/dist/fleet-manager.js.map +1 -1
  73. package/dist/general-instance.d.ts +0 -7
  74. package/dist/general-instance.js +3 -20
  75. package/dist/general-instance.js.map +1 -1
  76. package/dist/general-knowledge/skills/concepts/SKILL.md +18 -50
  77. package/dist/general-knowledge/skills/credential-profiles/SKILL.md +2 -5
  78. package/dist/general-knowledge/skills/fleet-health/SKILL.md +2 -2
  79. package/dist/general-knowledge/skills/session-management/SKILL.md +1 -1
  80. package/dist/general-knowledge/skills/tui-effort/SKILL.md +10 -10
  81. package/dist/general-knowledge/skills/web-dashboard/SKILL.md +13 -23
  82. package/dist/instance-config-impact.js +4 -8
  83. package/dist/instance-config-impact.js.map +1 -1
  84. package/dist/instance-lifecycle.d.ts +3 -22
  85. package/dist/instance-lifecycle.js +176 -393
  86. package/dist/instance-lifecycle.js.map +1 -1
  87. package/dist/instructions.d.ts +0 -2
  88. package/dist/instructions.js +0 -6
  89. package/dist/instructions.js.map +1 -1
  90. package/dist/locale.js +2 -147
  91. package/dist/locale.js.map +1 -1
  92. package/dist/login-flows.d.ts +7 -8
  93. package/dist/login-flows.js +1 -24
  94. package/dist/login-flows.js.map +1 -1
  95. package/dist/ls-rows.js +4 -3
  96. package/dist/ls-rows.js.map +1 -1
  97. package/dist/muse-usage-relay.d.ts +2 -0
  98. package/dist/muse-usage-relay.js +5 -3
  99. package/dist/muse-usage-relay.js.map +1 -1
  100. package/dist/needs-you-hub.d.ts +0 -5
  101. package/dist/needs-you-hub.js +2 -18
  102. package/dist/needs-you-hub.js.map +1 -1
  103. package/dist/needs-you.d.ts +2 -45
  104. package/dist/needs-you.js +2 -26
  105. package/dist/needs-you.js.map +1 -1
  106. package/dist/office-share-page.js +3 -3
  107. package/dist/office-share-page.js.map +1 -1
  108. package/dist/office-share.d.ts +0 -11
  109. package/dist/office-share.js +0 -14
  110. package/dist/office-share.js.map +1 -1
  111. package/dist/outbound-handlers.d.ts +2 -30
  112. package/dist/outbound-handlers.js +4 -109
  113. package/dist/outbound-handlers.js.map +1 -1
  114. package/dist/outbound-schemas.d.ts +1 -71
  115. package/dist/outbound-schemas.js +14 -36
  116. package/dist/outbound-schemas.js.map +1 -1
  117. package/dist/pane-quota-history.d.ts +0 -2
  118. package/dist/pane-quota-history.js +0 -20
  119. package/dist/pane-quota-history.js.map +1 -1
  120. package/dist/pause-marker.d.ts +1 -1
  121. package/dist/pause-marker.js +1 -1
  122. package/dist/pause-marker.js.map +1 -1
  123. package/dist/public-web-gateway.js +0 -16
  124. package/dist/public-web-gateway.js.map +1 -1
  125. package/dist/public-web-link.d.ts +0 -11
  126. package/dist/public-web-link.js +0 -13
  127. package/dist/public-web-link.js.map +1 -1
  128. package/dist/quickstart-api.js +5 -9
  129. package/dist/quickstart-api.js.map +1 -1
  130. package/dist/quickstart.d.ts +0 -6
  131. package/dist/quickstart.js +6 -44
  132. package/dist/quickstart.js.map +1 -1
  133. package/dist/quota-notice-config.d.ts +22 -0
  134. package/dist/quota-notice-config.js +41 -0
  135. package/dist/quota-notice-config.js.map +1 -0
  136. package/dist/scheduler/task-board-text.js +1 -1
  137. package/dist/scheduler/task-board-text.js.map +1 -1
  138. package/dist/scheduler/task-board.d.ts +0 -4
  139. package/dist/scheduler/task-board.js +3 -9
  140. package/dist/scheduler/task-board.js.map +1 -1
  141. package/dist/service-installer.d.ts +2 -7
  142. package/dist/service-installer.js +10 -13
  143. package/dist/service-installer.js.map +1 -1
  144. package/dist/settings-api.d.ts +0 -12
  145. package/dist/settings-api.js +7 -487
  146. package/dist/settings-api.js.map +1 -1
  147. package/dist/settings-baseline.d.ts +0 -7
  148. package/dist/settings-baseline.js +1 -3
  149. package/dist/settings-baseline.js.map +1 -1
  150. package/dist/settings-change.js +7 -35
  151. package/dist/settings-change.js.map +1 -1
  152. package/dist/settings-confirmation.d.ts +1 -16
  153. package/dist/settings-confirmation.js +9 -47
  154. package/dist/settings-confirmation.js.map +1 -1
  155. package/dist/settings-effect.d.ts +0 -17
  156. package/dist/settings-effect.js +1 -155
  157. package/dist/settings-effect.js.map +1 -1
  158. package/dist/settings-http-confirmation.d.ts +0 -4
  159. package/dist/settings-http-confirmation.js +3 -43
  160. package/dist/settings-http-confirmation.js.map +1 -1
  161. package/dist/settings-instance-patch.js +1 -1
  162. package/dist/settings-instance-patch.js.map +1 -1
  163. package/dist/settings-request-capability.d.ts +0 -2
  164. package/dist/settings-request-capability.js +0 -4
  165. package/dist/settings-request-capability.js.map +1 -1
  166. package/dist/settings-transaction.d.ts +0 -4
  167. package/dist/settings-transaction.js +0 -9
  168. package/dist/settings-transaction.js.map +1 -1
  169. package/dist/setup-form.js +3 -6
  170. package/dist/setup-form.js.map +1 -1
  171. package/dist/setup-i18n.js +0 -3
  172. package/dist/setup-i18n.js.map +1 -1
  173. package/dist/setup-wizard.js +2 -6
  174. package/dist/setup-wizard.js.map +1 -1
  175. package/dist/task-board-tool.d.ts +1 -2
  176. package/dist/task-board-tool.js +6 -62
  177. package/dist/task-board-tool.js.map +1 -1
  178. package/dist/tmux-control.d.ts +1 -2
  179. package/dist/tmux-control.js +4 -4
  180. package/dist/tmux-control.js.map +1 -1
  181. package/dist/tmux-exec-helper.js +1 -32
  182. package/dist/tmux-exec-helper.js.map +1 -1
  183. package/dist/tmux-manager.d.ts +2 -3
  184. package/dist/tmux-manager.js +36 -45
  185. package/dist/tmux-manager.js.map +1 -1
  186. package/dist/tmux-read.js +3 -4
  187. package/dist/tmux-read.js.map +1 -1
  188. package/dist/tool-permissions.js +1 -2
  189. package/dist/tool-permissions.js.map +1 -1
  190. package/dist/topic-commands.js +5 -9
  191. package/dist/topic-commands.js.map +1 -1
  192. package/dist/transcript-delta-reader.d.ts +1 -1
  193. package/dist/transcript-delta-reader.js +1 -1
  194. package/dist/transcript-delta-reader.js.map +1 -1
  195. package/dist/transcript-monitor.d.ts +0 -3
  196. package/dist/transcript-monitor.js +51 -27
  197. package/dist/transcript-monitor.js.map +1 -1
  198. package/dist/transcript-sources.d.ts +0 -5
  199. package/dist/transcript-sources.js +79 -8
  200. package/dist/transcript-sources.js.map +1 -1
  201. package/dist/types.d.ts +3 -29
  202. package/dist/ui/app.html +8 -1
  203. package/dist/ui/backend-signin.js +21 -39
  204. package/dist/ui/chat-ambient.js +1 -1
  205. package/dist/ui/chat-md-strings.js +9 -3
  206. package/dist/ui/chat-render.js +670 -3
  207. package/dist/ui/chat-store.js +3 -14
  208. package/dist/ui/chat-strings.js +285 -3
  209. package/dist/ui/chat-thread.js +969 -3
  210. package/dist/ui/chat-time.js +80 -3
  211. package/dist/ui/chat-tour.js +1 -1
  212. package/dist/ui/fleet-office-pack.d.ts +0 -9
  213. package/dist/ui/fleet-office-pack.js +4 -76
  214. package/dist/ui/fleet-office-skin.js +5 -23
  215. package/dist/ui/fleet-office-store.js +0 -5
  216. package/dist/ui/fleet-office.js +6 -173
  217. package/dist/ui/fleet-task-card.js +4 -8
  218. package/dist/ui/fleet-task-common.js +2 -2
  219. package/dist/ui/fleet-tasks.js +39 -125
  220. package/dist/ui/html-attachment.js +40 -3
  221. package/dist/ui/office-share-page.js +2 -4
  222. package/dist/ui/panel-chat.js +75 -90
  223. package/dist/ui/panel-details.js +2 -3
  224. package/dist/ui/panel-fleet.js +18 -105
  225. package/dist/ui/panel-log.js +2 -2
  226. package/dist/ui/panel-needs.js +4 -162
  227. package/dist/ui/panel-notices.js +4 -3
  228. package/dist/ui/panel-settings.js +202 -281
  229. package/dist/ui/preview-pages.js +1 -1
  230. package/dist/ui/preview-panel.js +13 -21
  231. package/dist/ui/preview-versions.js +1 -1
  232. package/dist/ui/preview.js +476 -3
  233. package/dist/ui/search-dialog.js +3 -4
  234. package/dist/ui/settings-appearance.js +23 -122
  235. package/dist/ui/settings-catalog.js +10 -37
  236. package/dist/ui/settings-confirm.js +1 -3
  237. package/dist/ui/settings-dialogs.js +20 -48
  238. package/dist/ui/settings-guests.js +14 -27
  239. package/dist/ui/settings-model.js +1 -10
  240. package/dist/ui/settings-quota-notice.js +100 -0
  241. package/dist/ui/settings-registry.js +5 -15
  242. package/dist/ui/settings-strings.js +32 -105
  243. package/dist/ui/settings-web-authority.js +13 -18
  244. package/dist/ui/shared/app-i18n.js +2 -2
  245. package/dist/ui/shared/app-route.js +3 -12
  246. package/dist/ui/shared/app-session.js +2 -6
  247. package/dist/ui/shared/app-shell.js +26 -87
  248. package/dist/ui/shared/app-store.js +2 -3
  249. package/dist/ui/shared/app-stream.js +1 -3
  250. package/dist/ui/shared/app.css +5 -1368
  251. package/dist/ui/shared/app.js +5 -17
  252. package/dist/ui/shared/header-tools.js +9 -9
  253. package/dist/ui/shared/instance-nav.js +7 -34
  254. package/dist/ui/shared/instance-switch.js +3 -4
  255. package/dist/ui/shared/loading.css +37 -0
  256. package/dist/ui/shared/signin.js +6 -211
  257. package/dist/ui/shared/tokens.css +0 -1
  258. package/dist/ui/shared/ui-dialog.js +2 -2
  259. package/dist/ui/shared/ui-menu.js +10 -30
  260. package/dist/ui/shared/ui-states.js +14 -3
  261. package/dist/ui/shared/vendor/vendor.json +2 -19
  262. package/dist/ui/shared/view-strings.js +0 -8
  263. package/dist/ui/signin.html +5 -23
  264. package/dist/unattended-install.js +1 -2
  265. package/dist/unattended-install.js.map +1 -1
  266. package/dist/usage/providers.d.ts +5 -0
  267. package/dist/usage/providers.js +6 -2
  268. package/dist/usage/providers.js.map +1 -1
  269. package/dist/usage/quota-notices.d.ts +38 -0
  270. package/dist/usage/quota-notices.js +160 -0
  271. package/dist/usage/quota-notices.js.map +1 -0
  272. package/dist/usage/usage-api.d.ts +1 -0
  273. package/dist/usage/usage-api.js +16 -0
  274. package/dist/usage/usage-api.js.map +1 -1
  275. package/dist/view-api.js +7 -5
  276. package/dist/view-api.js.map +1 -1
  277. package/dist/web-api.d.ts +2 -80
  278. package/dist/web-api.js +10 -513
  279. package/dist/web-api.js.map +1 -1
  280. package/dist/web-backend-login.d.ts +1 -23
  281. package/dist/web-backend-login.js +17 -11
  282. package/dist/web-backend-login.js.map +1 -1
  283. package/dist/web-chat-history.d.ts +2 -19
  284. package/dist/web-chat-history.js +3 -72
  285. package/dist/web-chat-history.js.map +1 -1
  286. package/dist/web-office-skins.d.ts +0 -9
  287. package/dist/web-office-skins.js +1 -16
  288. package/dist/web-office-skins.js.map +1 -1
  289. package/dist/web-only-fleet.d.ts +0 -20
  290. package/dist/web-only-fleet.js +0 -21
  291. package/dist/web-only-fleet.js.map +1 -1
  292. package/dist/web-session.d.ts +0 -42
  293. package/dist/web-session.js +0 -9
  294. package/dist/web-session.js.map +1 -1
  295. package/dist/web-settings-patch.d.ts +1 -3
  296. package/dist/web-settings-patch.js +1 -4
  297. package/dist/web-settings-patch.js.map +1 -1
  298. package/dist/web-shell-routes.d.ts +1 -10
  299. package/dist/web-shell-routes.js +2 -14
  300. package/dist/web-shell-routes.js.map +1 -1
  301. package/dist/web-terminal.d.ts +30 -4
  302. package/dist/web-terminal.js +6 -9
  303. package/dist/web-terminal.js.map +1 -1
  304. package/dist/yaml-shared-nodes.js +3 -8
  305. package/dist/yaml-shared-nodes.js.map +1 -1
  306. package/launcher/agend-install.cjs +1 -8
  307. package/launcher/postinstall.cjs +2 -27
  308. package/package.json +3 -10
  309. package/templates/launchd.plist.ejs +1 -3
  310. package/dist/accounts-view.d.ts +0 -97
  311. package/dist/accounts-view.js +0 -116
  312. package/dist/accounts-view.js.map +0 -1
  313. package/dist/agent-runtime-api.d.ts +0 -4
  314. package/dist/agent-runtime-api.js +0 -59
  315. package/dist/agent-runtime-api.js.map +0 -1
  316. package/dist/agent-runtime-change.d.ts +0 -76
  317. package/dist/agent-runtime-change.js +0 -114
  318. package/dist/agent-runtime-change.js.map +0 -1
  319. package/dist/agent-workspace.d.ts +0 -93
  320. package/dist/agent-workspace.js +0 -353
  321. package/dist/agent-workspace.js.map +0 -1
  322. package/dist/backend/grok-model-cache.d.ts +0 -7
  323. package/dist/backend/grok-model-cache.js +0 -65
  324. package/dist/backend/grok-model-cache.js.map +0 -1
  325. package/dist/backend/native-pane.d.ts +0 -11
  326. package/dist/backend/native-pane.js +0 -59
  327. package/dist/backend/native-pane.js.map +0 -1
  328. package/dist/build-provenance-cli.d.ts +0 -3
  329. package/dist/build-provenance-cli.js +0 -11
  330. package/dist/build-provenance-cli.js.map +0 -1
  331. package/dist/build-provenance.d.ts +0 -20
  332. package/dist/build-provenance.js +0 -67
  333. package/dist/build-provenance.js.map +0 -1
  334. package/dist/build-provenance.json +0 -1
  335. package/dist/claude-auth-status.d.ts +0 -48
  336. package/dist/claude-auth-status.js +0 -149
  337. package/dist/claude-auth-status.js.map +0 -1
  338. package/dist/fleet-windows-runtime.d.ts +0 -98
  339. package/dist/fleet-windows-runtime.js +0 -467
  340. package/dist/fleet-windows-runtime.js.map +0 -1
  341. package/dist/general-binding.d.ts +0 -85
  342. package/dist/general-binding.js +0 -298
  343. package/dist/general-binding.js.map +0 -1
  344. package/dist/general-host-owner.d.ts +0 -8
  345. package/dist/general-host-owner.js +0 -26
  346. package/dist/general-host-owner.js.map +0 -1
  347. package/dist/general-role.d.ts +0 -5
  348. package/dist/general-role.js +0 -27
  349. package/dist/general-role.js.map +0 -1
  350. package/dist/hub/admission.d.ts +0 -28
  351. package/dist/hub/admission.js +0 -62
  352. package/dist/hub/admission.js.map +0 -1
  353. package/dist/hub/attachments/limits.d.ts +0 -20
  354. package/dist/hub/attachments/limits.js +0 -48
  355. package/dist/hub/attachments/limits.js.map +0 -1
  356. package/dist/hub/attachments/store.d.ts +0 -116
  357. package/dist/hub/attachments/store.js +0 -246
  358. package/dist/hub/attachments/store.js.map +0 -1
  359. package/dist/hub/audit/index.d.ts +0 -62
  360. package/dist/hub/audit/index.js +0 -344
  361. package/dist/hub/audit/index.js.map +0 -1
  362. package/dist/hub/browser-certificate.d.ts +0 -38
  363. package/dist/hub/browser-certificate.js +0 -247
  364. package/dist/hub/browser-certificate.js.map +0 -1
  365. package/dist/hub/buttons-model.d.ts +0 -9
  366. package/dist/hub/buttons-model.js +0 -42
  367. package/dist/hub/buttons-model.js.map +0 -1
  368. package/dist/hub/buttons.d.ts +0 -54
  369. package/dist/hub/buttons.js +0 -346
  370. package/dist/hub/buttons.js.map +0 -1
  371. package/dist/hub/catalog.d.ts +0 -74
  372. package/dist/hub/catalog.js +0 -195
  373. package/dist/hub/catalog.js.map +0 -1
  374. package/dist/hub/client.d.ts +0 -69
  375. package/dist/hub/client.js +0 -300
  376. package/dist/hub/client.js.map +0 -1
  377. package/dist/hub/compose/member.d.ts +0 -139
  378. package/dist/hub/compose/member.js +0 -450
  379. package/dist/hub/compose/member.js.map +0 -1
  380. package/dist/hub/compose/server.d.ts +0 -77
  381. package/dist/hub/compose/server.js +0 -349
  382. package/dist/hub/compose/server.js.map +0 -1
  383. package/dist/hub/compose/views.d.ts +0 -12
  384. package/dist/hub/compose/views.js +0 -4
  385. package/dist/hub/compose/views.js.map +0 -1
  386. package/dist/hub/db.d.ts +0 -56
  387. package/dist/hub/db.js +0 -188
  388. package/dist/hub/db.js.map +0 -1
  389. package/dist/hub/directory/config.d.ts +0 -39
  390. package/dist/hub/directory/config.js +0 -108
  391. package/dist/hub/directory/config.js.map +0 -1
  392. package/dist/hub/directory/directory.d.ts +0 -18
  393. package/dist/hub/directory/directory.js +0 -320
  394. package/dist/hub/directory/directory.js.map +0 -1
  395. package/dist/hub/directory/index.d.ts +0 -7
  396. package/dist/hub/directory/index.js +0 -4
  397. package/dist/hub/directory/index.js.map +0 -1
  398. package/dist/hub/directory/profiles.d.ts +0 -41
  399. package/dist/hub/directory/profiles.js +0 -90
  400. package/dist/hub/directory/profiles.js.map +0 -1
  401. package/dist/hub/directory/types.d.ts +0 -71
  402. package/dist/hub/directory/types.js +0 -14
  403. package/dist/hub/directory/types.js.map +0 -1
  404. package/dist/hub/execution/cli-provider.d.ts +0 -23
  405. package/dist/hub/execution/cli-provider.js +0 -341
  406. package/dist/hub/execution/cli-provider.js.map +0 -1
  407. package/dist/hub/execution/index.d.ts +0 -13
  408. package/dist/hub/execution/index.js +0 -8
  409. package/dist/hub/execution/index.js.map +0 -1
  410. package/dist/hub/execution/model-broker.d.ts +0 -24
  411. package/dist/hub/execution/model-broker.js +0 -208
  412. package/dist/hub/execution/model-broker.js.map +0 -1
  413. package/dist/hub/execution/provider-setup.d.ts +0 -11
  414. package/dist/hub/execution/provider-setup.js +0 -21
  415. package/dist/hub/execution/provider-setup.js.map +0 -1
  416. package/dist/hub/execution/sandbox-runner.d.ts +0 -1
  417. package/dist/hub/execution/sandbox-runner.js +0 -221
  418. package/dist/hub/execution/sandbox-runner.js.map +0 -1
  419. package/dist/hub/execution/service.d.ts +0 -136
  420. package/dist/hub/execution/service.js +0 -459
  421. package/dist/hub/execution/service.js.map +0 -1
  422. package/dist/hub/execution/store.d.ts +0 -61
  423. package/dist/hub/execution/store.js +0 -182
  424. package/dist/hub/execution/store.js.map +0 -1
  425. package/dist/hub/execution/views.d.ts +0 -20
  426. package/dist/hub/execution/views.js +0 -48
  427. package/dist/hub/execution/views.js.map +0 -1
  428. package/dist/hub/http/compose.d.ts +0 -20
  429. package/dist/hub/http/compose.js +0 -518
  430. package/dist/hub/http/compose.js.map +0 -1
  431. package/dist/hub/http/core.d.ts +0 -49
  432. package/dist/hub/http/core.js +0 -124
  433. package/dist/hub/http/core.js.map +0 -1
  434. package/dist/hub/http/deps.d.ts +0 -61
  435. package/dist/hub/http/deps.js +0 -2
  436. package/dist/hub/http/deps.js.map +0 -1
  437. package/dist/hub/http/schema.d.ts +0 -14
  438. package/dist/hub/http/schema.js +0 -80
  439. package/dist/hub/http/schema.js.map +0 -1
  440. package/dist/hub/identity.d.ts +0 -32
  441. package/dist/hub/identity.js +0 -80
  442. package/dist/hub/identity.js.map +0 -1
  443. package/dist/hub/init/browser-certificate.d.ts +0 -9
  444. package/dist/hub/init/browser-certificate.js +0 -78
  445. package/dist/hub/init/browser-certificate.js.map +0 -1
  446. package/dist/hub/init/browser-tls.d.ts +0 -18
  447. package/dist/hub/init/browser-tls.js +0 -62
  448. package/dist/hub/init/browser-tls.js.map +0 -1
  449. package/dist/hub/init/cli.d.ts +0 -3
  450. package/dist/hub/init/cli.js +0 -83
  451. package/dist/hub/init/cli.js.map +0 -1
  452. package/dist/hub/init/directory-certificate.d.ts +0 -24
  453. package/dist/hub/init/directory-certificate.js +0 -222
  454. package/dist/hub/init/directory-certificate.js.map +0 -1
  455. package/dist/hub/init/existing-fleet.d.ts +0 -6
  456. package/dist/hub/init/existing-fleet.js +0 -58
  457. package/dist/hub/init/existing-fleet.js.map +0 -1
  458. package/dist/hub/init/handoff.d.ts +0 -8
  459. package/dist/hub/init/handoff.js +0 -36
  460. package/dist/hub/init/handoff.js.map +0 -1
  461. package/dist/hub/init/identity.d.ts +0 -5
  462. package/dist/hub/init/identity.js +0 -24
  463. package/dist/hub/init/identity.js.map +0 -1
  464. package/dist/hub/init/initializer.d.ts +0 -24
  465. package/dist/hub/init/initializer.js +0 -385
  466. package/dist/hub/init/initializer.js.map +0 -1
  467. package/dist/hub/init/inventory.d.ts +0 -17
  468. package/dist/hub/init/inventory.js +0 -33
  469. package/dist/hub/init/inventory.js.map +0 -1
  470. package/dist/hub/init/layout.d.ts +0 -32
  471. package/dist/hub/init/layout.js +0 -53
  472. package/dist/hub/init/layout.js.map +0 -1
  473. package/dist/hub/init/network.d.ts +0 -18
  474. package/dist/hub/init/network.js +0 -104
  475. package/dist/hub/init/network.js.map +0 -1
  476. package/dist/hub/init/plan-digest.d.ts +0 -5
  477. package/dist/hub/init/plan-digest.js +0 -47
  478. package/dist/hub/init/plan-digest.js.map +0 -1
  479. package/dist/hub/init/prompt.d.ts +0 -26
  480. package/dist/hub/init/prompt.js +0 -110
  481. package/dist/hub/init/prompt.js.map +0 -1
  482. package/dist/hub/init/secret-file.d.ts +0 -1
  483. package/dist/hub/init/secret-file.js +0 -59
  484. package/dist/hub/init/secret-file.js.map +0 -1
  485. package/dist/hub/init/text.d.ts +0 -127
  486. package/dist/hub/init/text.js +0 -247
  487. package/dist/hub/init/text.js.map +0 -1
  488. package/dist/hub/init/types.d.ts +0 -114
  489. package/dist/hub/init/types.js +0 -9
  490. package/dist/hub/init/types.js.map +0 -1
  491. package/dist/hub/init/wizard.d.ts +0 -34
  492. package/dist/hub/init/wizard.js +0 -554
  493. package/dist/hub/init/wizard.js.map +0 -1
  494. package/dist/hub/initialization.d.ts +0 -23
  495. package/dist/hub/initialization.js +0 -28
  496. package/dist/hub/initialization.js.map +0 -1
  497. package/dist/hub/member/agent-mode.d.ts +0 -6
  498. package/dist/hub/member/agent-mode.js +0 -23
  499. package/dist/hub/member/agent-mode.js.map +0 -1
  500. package/dist/hub/member/attachments.d.ts +0 -29
  501. package/dist/hub/member/attachments.js +0 -107
  502. package/dist/hub/member/attachments.js.map +0 -1
  503. package/dist/hub/member/exposure-api.d.ts +0 -87
  504. package/dist/hub/member/exposure-api.js +0 -64
  505. package/dist/hub/member/exposure-api.js.map +0 -1
  506. package/dist/hub/member/exposures.d.ts +0 -123
  507. package/dist/hub/member/exposures.js +0 -282
  508. package/dist/hub/member/exposures.js.map +0 -1
  509. package/dist/hub/member/pairing-api.d.ts +0 -85
  510. package/dist/hub/member/pairing-api.js +0 -385
  511. package/dist/hub/member/pairing-api.js.map +0 -1
  512. package/dist/hub/member/quota.d.ts +0 -20
  513. package/dist/hub/member/quota.js +0 -98
  514. package/dist/hub/member/quota.js.map +0 -1
  515. package/dist/hub/member-journal.d.ts +0 -104
  516. package/dist/hub/member-journal.js +0 -336
  517. package/dist/hub/member-journal.js.map +0 -1
  518. package/dist/hub/member-reconciliation.d.ts +0 -14
  519. package/dist/hub/member-reconciliation.js +0 -97
  520. package/dist/hub/member-reconciliation.js.map +0 -1
  521. package/dist/hub/mount.d.ts +0 -39
  522. package/dist/hub/mount.js +0 -123
  523. package/dist/hub/mount.js.map +0 -1
  524. package/dist/hub/pairing-client.d.ts +0 -17
  525. package/dist/hub/pairing-client.js +0 -108
  526. package/dist/hub/pairing-client.js.map +0 -1
  527. package/dist/hub/pairing.d.ts +0 -65
  528. package/dist/hub/pairing.js +0 -211
  529. package/dist/hub/pairing.js.map +0 -1
  530. package/dist/hub/policy.d.ts +0 -63
  531. package/dist/hub/policy.js +0 -147
  532. package/dist/hub/policy.js.map +0 -1
  533. package/dist/hub/preview.d.ts +0 -32
  534. package/dist/hub/preview.js +0 -64
  535. package/dist/hub/preview.js.map +0 -1
  536. package/dist/hub/private-files.d.ts +0 -5
  537. package/dist/hub/private-files.js +0 -44
  538. package/dist/hub/private-files.js.map +0 -1
  539. package/dist/hub/profile.d.ts +0 -59
  540. package/dist/hub/profile.js +0 -73
  541. package/dist/hub/profile.js.map +0 -1
  542. package/dist/hub/protocol.d.ts +0 -779
  543. package/dist/hub/protocol.js +0 -93
  544. package/dist/hub/protocol.js.map +0 -1
  545. package/dist/hub/quota.d.ts +0 -24
  546. package/dist/hub/quota.js +0 -112
  547. package/dist/hub/quota.js.map +0 -1
  548. package/dist/hub/representative.d.ts +0 -141
  549. package/dist/hub/representative.js +0 -528
  550. package/dist/hub/representative.js.map +0 -1
  551. package/dist/hub/retention.d.ts +0 -17
  552. package/dist/hub/retention.js +0 -45
  553. package/dist/hub/retention.js.map +0 -1
  554. package/dist/hub/rooms.d.ts +0 -120
  555. package/dist/hub/rooms.js +0 -535
  556. package/dist/hub/rooms.js.map +0 -1
  557. package/dist/hub/runtime.d.ts +0 -106
  558. package/dist/hub/runtime.js +0 -298
  559. package/dist/hub/runtime.js.map +0 -1
  560. package/dist/hub/server.d.ts +0 -56
  561. package/dist/hub/server.js +0 -202
  562. package/dist/hub/server.js.map +0 -1
  563. package/dist/hub/service-start.d.ts +0 -17
  564. package/dist/hub/service-start.js +0 -109
  565. package/dist/hub/service-start.js.map +0 -1
  566. package/dist/hub/sessions.d.ts +0 -53
  567. package/dist/hub/sessions.js +0 -196
  568. package/dist/hub/sessions.js.map +0 -1
  569. package/dist/hub/socket.d.ts +0 -24
  570. package/dist/hub/socket.js +0 -79
  571. package/dist/hub/socket.js.map +0 -1
  572. package/dist/hub/store.d.ts +0 -77
  573. package/dist/hub/store.js +0 -88
  574. package/dist/hub/store.js.map +0 -1
  575. package/dist/hub/tls.d.ts +0 -31
  576. package/dist/hub/tls.js +0 -135
  577. package/dist/hub/tls.js.map +0 -1
  578. package/dist/hub/types.d.ts +0 -401
  579. package/dist/hub/types.js +0 -2
  580. package/dist/hub/types.js.map +0 -1
  581. package/dist/hub/validation.d.ts +0 -33
  582. package/dist/hub/validation.js +0 -136
  583. package/dist/hub/validation.js.map +0 -1
  584. package/dist/hub/version-floor.d.ts +0 -10
  585. package/dist/hub/version-floor.js +0 -45
  586. package/dist/hub/version-floor.js.map +0 -1
  587. package/dist/hub-browser-certificate-policy.d.ts +0 -31
  588. package/dist/hub-browser-certificate-policy.js +0 -25
  589. package/dist/hub-browser-certificate-policy.js.map +0 -1
  590. package/dist/hub-membership-settings.d.ts +0 -6
  591. package/dist/hub-membership-settings.js +0 -21
  592. package/dist/hub-membership-settings.js.map +0 -1
  593. package/dist/hub-mode.d.ts +0 -15
  594. package/dist/hub-mode.js +0 -17
  595. package/dist/hub-mode.js.map +0 -1
  596. package/dist/hub-pairing-summary.d.ts +0 -48
  597. package/dist/hub-pairing-summary.js +0 -36
  598. package/dist/hub-pairing-summary.js.map +0 -1
  599. package/dist/hub-report-target.d.ts +0 -32
  600. package/dist/hub-report-target.js +0 -33
  601. package/dist/hub-report-target.js.map +0 -1
  602. package/dist/hub-retention-policy.d.ts +0 -14
  603. package/dist/hub-retention-policy.js +0 -15
  604. package/dist/hub-retention-policy.js.map +0 -1
  605. package/dist/launchd-service-domain.d.ts +0 -5
  606. package/dist/launchd-service-domain.js +0 -21
  607. package/dist/launchd-service-domain.js.map +0 -1
  608. package/dist/local-pane-endpoint.d.ts +0 -46
  609. package/dist/local-pane-endpoint.js +0 -189
  610. package/dist/local-pane-endpoint.js.map +0 -1
  611. package/dist/local-pane-launcher.d.ts +0 -2
  612. package/dist/local-pane-launcher.js +0 -38
  613. package/dist/local-pane-launcher.js.map +0 -1
  614. package/dist/local-pane-stage.ps1 +0 -101
  615. package/dist/model-catalog-defaults.d.ts +0 -14
  616. package/dist/model-catalog-defaults.js +0 -20
  617. package/dist/model-catalog-defaults.js.map +0 -1
  618. package/dist/native-agent-admission.d.ts +0 -7
  619. package/dist/native-agent-admission.js +0 -26
  620. package/dist/native-agent-admission.js.map +0 -1
  621. package/dist/native-daemon-client.d.ts +0 -13
  622. package/dist/native-daemon-client.js +0 -28
  623. package/dist/native-daemon-client.js.map +0 -1
  624. package/dist/native-instance-api.d.ts +0 -13
  625. package/dist/native-instance-api.js +0 -217
  626. package/dist/native-instance-api.js.map +0 -1
  627. package/dist/native-instance-input.d.ts +0 -87
  628. package/dist/native-instance-input.js +0 -59
  629. package/dist/native-instance-input.js.map +0 -1
  630. package/dist/native-instance-registry.d.ts +0 -38
  631. package/dist/native-instance-registry.js +0 -129
  632. package/dist/native-instance-registry.js.map +0 -1
  633. package/dist/native-mcp.d.ts +0 -43
  634. package/dist/native-mcp.js +0 -291
  635. package/dist/native-mcp.js.map +0 -1
  636. package/dist/native-model-catalog.d.ts +0 -5
  637. package/dist/native-model-catalog.js +0 -76
  638. package/dist/native-model-catalog.js.map +0 -1
  639. package/dist/native-pane-crash-budget.d.ts +0 -20
  640. package/dist/native-pane-crash-budget.js +0 -60
  641. package/dist/native-pane-crash-budget.js.map +0 -1
  642. package/dist/native-pane-create.d.ts +0 -26
  643. package/dist/native-pane-create.js +0 -53
  644. package/dist/native-pane-create.js.map +0 -1
  645. package/dist/native-pane-lifecycle.d.ts +0 -73
  646. package/dist/native-pane-lifecycle.js +0 -239
  647. package/dist/native-pane-lifecycle.js.map +0 -1
  648. package/dist/native-pane-manager.d.ts +0 -59
  649. package/dist/native-pane-manager.js +0 -592
  650. package/dist/native-pane-manager.js.map +0 -1
  651. package/dist/native-pane-output-log.d.ts +0 -15
  652. package/dist/native-pane-output-log.js +0 -108
  653. package/dist/native-pane-output-log.js.map +0 -1
  654. package/dist/native-pane-reconciliation.d.ts +0 -4
  655. package/dist/native-pane-reconciliation.js +0 -40
  656. package/dist/native-pane-reconciliation.js.map +0 -1
  657. package/dist/native-pane-recovery.d.ts +0 -12
  658. package/dist/native-pane-recovery.js +0 -10
  659. package/dist/native-pane-recovery.js.map +0 -1
  660. package/dist/native-pane-tools.d.ts +0 -2
  661. package/dist/native-pane-tools.js +0 -14
  662. package/dist/native-pane-tools.js.map +0 -1
  663. package/dist/office-talk.d.ts +0 -26
  664. package/dist/office-talk.js +0 -50
  665. package/dist/office-talk.js.map +0 -1
  666. package/dist/pane-port.d.ts +0 -118
  667. package/dist/pane-port.js +0 -2
  668. package/dist/pane-port.js.map +0 -1
  669. package/dist/runtime-api.d.ts +0 -10
  670. package/dist/runtime-api.js +0 -189
  671. package/dist/runtime-api.js.map +0 -1
  672. package/dist/runtime-assets/@xterm/addon-serialize/LICENSE +0 -21
  673. package/dist/runtime-assets/@xterm/addon-serialize/lib/addon-serialize.js +0 -2
  674. package/dist/runtime-assets/@xterm/addon-serialize/lib/addon-serialize.mjs +0 -19
  675. package/dist/runtime-assets/@xterm/addon-serialize/package.json +0 -29
  676. package/dist/runtime-assets/@xterm/headless/LICENSE +0 -21
  677. package/dist/runtime-assets/@xterm/headless/lib-headless/xterm-headless.js +0 -2
  678. package/dist/runtime-assets/@xterm/headless/lib-headless/xterm-headless.mjs +0 -46
  679. package/dist/runtime-assets/@xterm/headless/package.json +0 -29
  680. package/dist/runtime-assets/node-pty/CONPTY-LICENSE +0 -21
  681. package/dist/runtime-assets/node-pty/CONPTY-NOTICE.md +0 -503
  682. package/dist/runtime-assets/node-pty/LICENSE +0 -69
  683. package/dist/runtime-assets/node-pty/lib/conpty_console_list_agent.js +0 -16
  684. package/dist/runtime-assets/node-pty/lib/eventEmitter2.js +0 -47
  685. package/dist/runtime-assets/node-pty/lib/index.js +0 -52
  686. package/dist/runtime-assets/node-pty/lib/interfaces.js +0 -7
  687. package/dist/runtime-assets/node-pty/lib/shared/conout.js +0 -11
  688. package/dist/runtime-assets/node-pty/lib/terminal.js +0 -190
  689. package/dist/runtime-assets/node-pty/lib/types.js +0 -7
  690. package/dist/runtime-assets/node-pty/lib/unixTerminal.js +0 -346
  691. package/dist/runtime-assets/node-pty/lib/utils.js +0 -39
  692. package/dist/runtime-assets/node-pty/lib/windowsConoutConnection.js +0 -125
  693. package/dist/runtime-assets/node-pty/lib/windowsPtyAgent.js +0 -320
  694. package/dist/runtime-assets/node-pty/lib/windowsTerminal.js +0 -199
  695. package/dist/runtime-assets/node-pty/lib/worker/conoutSocketWorker.js +0 -22
  696. package/dist/runtime-assets/node-pty/package.json +0 -64
  697. package/dist/runtime-assets/node-pty/prebuilds/win32-arm64/conpty/OpenConsole.exe +0 -0
  698. package/dist/runtime-assets/node-pty/prebuilds/win32-arm64/conpty/conpty.dll +0 -0
  699. package/dist/runtime-assets/node-pty/prebuilds/win32-arm64/conpty.node +0 -0
  700. package/dist/runtime-assets/node-pty/prebuilds/win32-arm64/conpty_console_list.node +0 -0
  701. package/dist/runtime-assets/node-pty/prebuilds/win32-x64/conpty/OpenConsole.exe +0 -0
  702. package/dist/runtime-assets/node-pty/prebuilds/win32-x64/conpty/conpty.dll +0 -0
  703. package/dist/runtime-assets/node-pty/prebuilds/win32-x64/conpty.node +0 -0
  704. package/dist/runtime-assets/node-pty/prebuilds/win32-x64/conpty_console_list.node +0 -0
  705. package/dist/runtime-build-info.d.ts +0 -9
  706. package/dist/runtime-build-info.js +0 -59
  707. package/dist/runtime-build-info.js.map +0 -1
  708. package/dist/runtime-bundle.d.ts +0 -22
  709. package/dist/runtime-bundle.js +0 -158
  710. package/dist/runtime-bundle.js.map +0 -1
  711. package/dist/runtime-cli.d.ts +0 -14
  712. package/dist/runtime-cli.js +0 -271
  713. package/dist/runtime-cli.js.map +0 -1
  714. package/dist/runtime-client-store.d.ts +0 -75
  715. package/dist/runtime-client-store.js +0 -372
  716. package/dist/runtime-client-store.js.map +0 -1
  717. package/dist/runtime-client.d.ts +0 -174
  718. package/dist/runtime-client.js +0 -1010
  719. package/dist/runtime-client.js.map +0 -1
  720. package/dist/runtime-connection.d.ts +0 -22
  721. package/dist/runtime-connection.js +0 -93
  722. package/dist/runtime-connection.js.map +0 -1
  723. package/dist/runtime-coordinator.d.ts +0 -98
  724. package/dist/runtime-coordinator.js +0 -1089
  725. package/dist/runtime-coordinator.js.map +0 -1
  726. package/dist/runtime-credential-profiles.d.ts +0 -78
  727. package/dist/runtime-credential-profiles.js +0 -280
  728. package/dist/runtime-credential-profiles.js.map +0 -1
  729. package/dist/runtime-general-protocol.d.ts +0 -22
  730. package/dist/runtime-general-protocol.js +0 -57
  731. package/dist/runtime-general-protocol.js.map +0 -1
  732. package/dist/runtime-general-workspace.d.ts +0 -17
  733. package/dist/runtime-general-workspace.js +0 -213
  734. package/dist/runtime-general-workspace.js.map +0 -1
  735. package/dist/runtime-install.d.ts +0 -50
  736. package/dist/runtime-install.js +0 -186
  737. package/dist/runtime-install.js.map +0 -1
  738. package/dist/runtime-pane-assets.d.ts +0 -17
  739. package/dist/runtime-pane-assets.js +0 -23
  740. package/dist/runtime-pane-assets.js.map +0 -1
  741. package/dist/runtime-pane-boot.d.ts +0 -9
  742. package/dist/runtime-pane-boot.js +0 -47
  743. package/dist/runtime-pane-boot.js.map +0 -1
  744. package/dist/runtime-pane-codex-index.d.ts +0 -10
  745. package/dist/runtime-pane-codex-index.js +0 -151
  746. package/dist/runtime-pane-codex-index.js.map +0 -1
  747. package/dist/runtime-pane-config.d.ts +0 -16
  748. package/dist/runtime-pane-config.js +0 -54
  749. package/dist/runtime-pane-config.js.map +0 -1
  750. package/dist/runtime-pane-host.d.ts +0 -63
  751. package/dist/runtime-pane-host.js +0 -467
  752. package/dist/runtime-pane-host.js.map +0 -1
  753. package/dist/runtime-pane-job-owner.d.ts +0 -1
  754. package/dist/runtime-pane-job-owner.js +0 -29
  755. package/dist/runtime-pane-job-owner.js.map +0 -1
  756. package/dist/runtime-pane-job.ps1 +0 -116
  757. package/dist/runtime-pane-link.d.ts +0 -47
  758. package/dist/runtime-pane-link.js +0 -337
  759. package/dist/runtime-pane-link.js.map +0 -1
  760. package/dist/runtime-pane-mcp-protocol.d.ts +0 -32
  761. package/dist/runtime-pane-mcp-protocol.js +0 -39
  762. package/dist/runtime-pane-mcp-protocol.js.map +0 -1
  763. package/dist/runtime-pane-mcp-relay.d.ts +0 -18
  764. package/dist/runtime-pane-mcp-relay.js +0 -80
  765. package/dist/runtime-pane-mcp-relay.js.map +0 -1
  766. package/dist/runtime-pane-mcp.d.ts +0 -55
  767. package/dist/runtime-pane-mcp.js +0 -153
  768. package/dist/runtime-pane-mcp.js.map +0 -1
  769. package/dist/runtime-pane-native.d.ts +0 -75
  770. package/dist/runtime-pane-native.js +0 -114
  771. package/dist/runtime-pane-native.js.map +0 -1
  772. package/dist/runtime-pane-output.d.ts +0 -19
  773. package/dist/runtime-pane-output.js +0 -53
  774. package/dist/runtime-pane-output.js.map +0 -1
  775. package/dist/runtime-pane-port.d.ts +0 -144
  776. package/dist/runtime-pane-port.js +0 -574
  777. package/dist/runtime-pane-port.js.map +0 -1
  778. package/dist/runtime-pane-private.d.ts +0 -14
  779. package/dist/runtime-pane-private.js +0 -51
  780. package/dist/runtime-pane-private.js.map +0 -1
  781. package/dist/runtime-pane-private.ps1 +0 -14
  782. package/dist/runtime-pane-process.d.ts +0 -4
  783. package/dist/runtime-pane-process.js +0 -117
  784. package/dist/runtime-pane-process.js.map +0 -1
  785. package/dist/runtime-pane-protocol.d.ts +0 -182
  786. package/dist/runtime-pane-protocol.js +0 -217
  787. package/dist/runtime-pane-protocol.js.map +0 -1
  788. package/dist/runtime-pane-quota-history.d.ts +0 -6
  789. package/dist/runtime-pane-quota-history.js +0 -44
  790. package/dist/runtime-pane-quota-history.js.map +0 -1
  791. package/dist/runtime-pane-screen.d.ts +0 -19
  792. package/dist/runtime-pane-screen.js +0 -76
  793. package/dist/runtime-pane-screen.js.map +0 -1
  794. package/dist/runtime-pane-service.d.ts +0 -16
  795. package/dist/runtime-pane-service.js +0 -256
  796. package/dist/runtime-pane-service.js.map +0 -1
  797. package/dist/runtime-pane-stdio-protocol.d.ts +0 -54
  798. package/dist/runtime-pane-stdio-protocol.js +0 -94
  799. package/dist/runtime-pane-stdio-protocol.js.map +0 -1
  800. package/dist/runtime-pane-stdio.d.ts +0 -3
  801. package/dist/runtime-pane-stdio.js +0 -123
  802. package/dist/runtime-pane-stdio.js.map +0 -1
  803. package/dist/runtime-pane-store.d.ts +0 -33
  804. package/dist/runtime-pane-store.js +0 -164
  805. package/dist/runtime-pane-store.js.map +0 -1
  806. package/dist/runtime-pane-transcript-protocol.d.ts +0 -43
  807. package/dist/runtime-pane-transcript-protocol.js +0 -58
  808. package/dist/runtime-pane-transcript-protocol.js.map +0 -1
  809. package/dist/runtime-pane-transcript.d.ts +0 -50
  810. package/dist/runtime-pane-transcript.js +0 -666
  811. package/dist/runtime-pane-transcript.js.map +0 -1
  812. package/dist/runtime-pane-worker.d.ts +0 -1
  813. package/dist/runtime-pane-worker.js +0 -167
  814. package/dist/runtime-pane-worker.js.map +0 -1
  815. package/dist/runtime-protocol.d.ts +0 -177
  816. package/dist/runtime-protocol.js +0 -49
  817. package/dist/runtime-protocol.js.map +0 -1
  818. package/dist/runtime-switches.d.ts +0 -79
  819. package/dist/runtime-switches.js +0 -90
  820. package/dist/runtime-switches.js.map +0 -1
  821. package/dist/runtime-transcript-delta-reader.d.ts +0 -23
  822. package/dist/runtime-transcript-delta-reader.js +0 -74
  823. package/dist/runtime-transcript-delta-reader.js.map +0 -1
  824. package/dist/runtime-transcript-source.d.ts +0 -36
  825. package/dist/runtime-transcript-source.js +0 -189
  826. package/dist/runtime-transcript-source.js.map +0 -1
  827. package/dist/runtime-update-activity.d.ts +0 -21
  828. package/dist/runtime-update-activity.js +0 -51
  829. package/dist/runtime-update-activity.js.map +0 -1
  830. package/dist/runtime-update-artifact.d.ts +0 -31
  831. package/dist/runtime-update-artifact.js +0 -252
  832. package/dist/runtime-update-artifact.js.map +0 -1
  833. package/dist/runtime-update-install.d.ts +0 -31
  834. package/dist/runtime-update-install.js +0 -205
  835. package/dist/runtime-update-install.js.map +0 -1
  836. package/dist/runtime-update-journal.d.ts +0 -44
  837. package/dist/runtime-update-journal.js +0 -121
  838. package/dist/runtime-update-journal.js.map +0 -1
  839. package/dist/runtime-update-lock.d.ts +0 -48
  840. package/dist/runtime-update-lock.js +0 -217
  841. package/dist/runtime-update-lock.js.map +0 -1
  842. package/dist/runtime-update-owners.d.ts +0 -29
  843. package/dist/runtime-update-owners.js +0 -240
  844. package/dist/runtime-update-owners.js.map +0 -1
  845. package/dist/runtime-update-protocol.d.ts +0 -15
  846. package/dist/runtime-update-protocol.js +0 -13
  847. package/dist/runtime-update-protocol.js.map +0 -1
  848. package/dist/runtime-windows-bridge.d.ts +0 -42
  849. package/dist/runtime-windows-bridge.js +0 -167
  850. package/dist/runtime-windows-bridge.js.map +0 -1
  851. package/dist/service-drain.d.ts +0 -19
  852. package/dist/service-drain.js +0 -64
  853. package/dist/service-drain.js.map +0 -1
  854. package/dist/settings-route-lifetime.d.ts +0 -14
  855. package/dist/settings-route-lifetime.js +0 -48
  856. package/dist/settings-route-lifetime.js.map +0 -1
  857. package/dist/tmux-binary.d.ts +0 -59
  858. package/dist/tmux-binary.js +0 -200
  859. package/dist/tmux-binary.js.map +0 -1
  860. package/dist/tmux-pane-host.d.ts +0 -26
  861. package/dist/tmux-pane-host.js +0 -25
  862. package/dist/tmux-pane-host.js.map +0 -1
  863. package/dist/transcript-needles.d.ts +0 -42
  864. package/dist/transcript-needles.js +0 -166
  865. package/dist/transcript-needles.js.map +0 -1
  866. package/dist/transcript-records.d.ts +0 -21
  867. package/dist/transcript-records.js +0 -141
  868. package/dist/transcript-records.js.map +0 -1
  869. package/dist/ui/account-identity.js +0 -27
  870. package/dist/ui/accounts-view.js +0 -214
  871. package/dist/ui/agent-proposals.js +0 -90
  872. package/dist/ui/agent-runtime-settings.js +0 -68
  873. package/dist/ui/agent-runtime.js +0 -124
  874. package/dist/ui/cli-picker.js +0 -42
  875. package/dist/ui/credential-profile-select.js +0 -54
  876. package/dist/ui/fleet-office-dialogue.d.ts +0 -30
  877. package/dist/ui/fleet-office-dialogue.js +0 -382
  878. package/dist/ui/fleet-task-menu.js +0 -188
  879. package/dist/ui/fleet-task-stats.js +0 -124
  880. package/dist/ui/fleet-task-view.js +0 -340
  881. package/dist/ui/general-location.js +0 -71
  882. package/dist/ui/hub-agent-copy.js +0 -23
  883. package/dist/ui/hub-button-actions.js +0 -65
  884. package/dist/ui/hub-chat-store.js +0 -158
  885. package/dist/ui/hub-chat-strings.js +0 -77
  886. package/dist/ui/hub-client.js +0 -329
  887. package/dist/ui/hub-owner-strings.js +0 -51
  888. package/dist/ui/hub-provider-guidance.js +0 -31
  889. package/dist/ui/hub-quota.js +0 -85
  890. package/dist/ui/hub-strings.js +0 -162
  891. package/dist/ui/hub-switcher.js +0 -27
  892. package/dist/ui/native-instance-settings.js +0 -44
  893. package/dist/ui/native-pane-recovery.js +0 -45
  894. package/dist/ui/panel-hub.js +0 -619
  895. package/dist/ui/panel-runtimes.js +0 -425
  896. package/dist/ui/panel-windows-agent.js +0 -86
  897. package/dist/ui/panel-windows-cli.js +0 -189
  898. package/dist/ui/provider-marks.js +0 -83
  899. package/dist/ui/runtime-catalog.js +0 -55
  900. package/dist/ui/runtime-commands.d.ts +0 -4
  901. package/dist/ui/runtime-commands.js +0 -59
  902. package/dist/ui/settings-access-strings.js +0 -42
  903. package/dist/ui/settings-agent-filters.js +0 -94
  904. package/dist/ui/settings-build-version.js +0 -35
  905. package/dist/ui/settings-devices.js +0 -253
  906. package/dist/ui/settings-hub-browser-certificate.js +0 -74
  907. package/dist/ui/settings-hub-membership.js +0 -72
  908. package/dist/ui/settings-hub-retention.js +0 -52
  909. package/dist/ui/settings-hub.js +0 -196
  910. package/dist/ui/settings-layout.js +0 -242
  911. package/dist/ui/settings-outside.js +0 -242
  912. package/dist/ui/settings-shared-strings.js +0 -143
  913. package/dist/ui/settings-shared.js +0 -345
  914. package/dist/ui/settings-shortcuts.js +0 -65
  915. package/dist/ui/shared/accounts.css +0 -15
  916. package/dist/ui/shared/chat-composer.js +0 -68
  917. package/dist/ui/shared/chat-md-strings.js +0 -9
  918. package/dist/ui/shared/chat-render.js +0 -682
  919. package/dist/ui/shared/chat-strings.js +0 -333
  920. package/dist/ui/shared/chat-thread.js +0 -969
  921. package/dist/ui/shared/chat-time.js +0 -80
  922. package/dist/ui/shared/html-attachment.js +0 -42
  923. package/dist/ui/shared/hub-chat.css +0 -85
  924. package/dist/ui/shared/hub-owner.css +0 -33
  925. package/dist/ui/shared/hub-quota.css +0 -8
  926. package/dist/ui/shared/hub.css +0 -71
  927. package/dist/ui/shared/machine-name.js +0 -13
  928. package/dist/ui/shared/page-head.js +0 -8
  929. package/dist/ui/shared/preview.js +0 -476
  930. package/dist/ui/shared/qrcode.module.js +0 -2237
  931. package/dist/ui/shared/runtime-install.css +0 -26
  932. package/dist/ui/shared/settings-width.js +0 -31
  933. package/dist/ui/shared/side-rail.js +0 -15
  934. package/dist/ui/shared/task-board.css +0 -95
  935. package/dist/ui/shared/vendor/qrcode-generator.LICENSE +0 -27
  936. package/dist/ui/shared/workspace.css +0 -20
  937. package/dist/ui/windows-agents-nav.js +0 -2
  938. package/dist/ui/windows-cli-catalog.js +0 -108
  939. package/dist/ui/workspace-panel.js +0 -189
  940. package/dist/ui/workspace-strings.js +0 -35
  941. package/dist/web-device-login.d.ts +0 -153
  942. package/dist/web-device-login.js +0 -278
  943. package/dist/web-device-login.js.map +0 -1
  944. package/dist/web-remote-access.d.ts +0 -152
  945. package/dist/web-remote-access.js +0 -368
  946. package/dist/web-remote-access.js.map +0 -1
  947. package/dist/windows-agents.d.ts +0 -127
  948. package/dist/windows-agents.js +0 -491
  949. package/dist/windows-agents.js.map +0 -1
  950. package/dist/windows-cli-api.d.ts +0 -34
  951. package/dist/windows-cli-api.js +0 -185
  952. package/dist/windows-cli-api.js.map +0 -1
  953. package/dist/windows-cli-providers.d.ts +0 -106
  954. package/dist/windows-cli-providers.js +0 -424
  955. package/dist/windows-cli-providers.js.map +0 -1
  956. package/dist/windows-cli-worker.d.ts +0 -83
  957. package/dist/windows-cli-worker.js +0 -570
  958. package/dist/windows-cli-worker.js.map +0 -1
  959. package/dist/windows-cli.d.ts +0 -126
  960. package/dist/windows-cli.js +0 -416
  961. package/dist/windows-cli.js.map +0 -1
  962. package/dist/windows-native-mcp.d.ts +0 -19
  963. package/dist/windows-native-mcp.js +0 -143
  964. package/dist/windows-native-mcp.js.map +0 -1
  965. package/dist/windows-pane-mcp.d.ts +0 -26
  966. package/dist/windows-pane-mcp.js +0 -187
  967. package/dist/windows-pane-mcp.js.map +0 -1
  968. package/launcher/launchd-session-type.cjs +0 -14
  969. package/launcher/tmux-bundle.cjs +0 -247
  970. package/templates/runtime-assets/conpty-LICENSE +0 -21
  971. package/templates/runtime-assets/conpty-NOTICE.md +0 -503
  972. package/templates/runtime-assets/local-pane-stage.ps1 +0 -101
  973. package/templates/runtime-assets/runtime-pane-job.ps1 +0 -116
  974. package/templates/runtime-assets/runtime-pane-private.ps1 +0 -14
  975. package/templates/runtime-assets/xterm-LICENSE +0 -21
  976. package/templates/runtime-install/install.ps1 +0 -270
@@ -1,528 +0,0 @@
1
- /**
2
- * Hub P1 representative agent (docs/design/hub-representative-agent.md): the member's only execution path. An admitted
3
- * Hub question goes to the existing fleet agent the owner published, through ordinary cross-instance delivery; the
4
- * agent answers with report_result on the Hub-issued correlation id. No sandbox, provider, view or per-asker session.
5
- *
6
- * The adapter is S1's journal outbox (the source row is written in the journal's own admission transaction) and the
7
- * driver after it: begin lease + input intent immediately before the IPC hand-off (FleetManager's beforeInput), delivery
8
- * evidence, the frozen answer under the exact release lease, and the receipts/answer frames back over the member link.
9
- * Never a resend: an interrupted or uncertain hand-off holds in Needs-you.
10
- */
11
- import { randomUUID } from "node:crypto";
12
- import { canonicalArguments, messageContentDigest, personKeyString } from "./identity.js";
13
- import { HubFileRefusal } from "./member/attachments.js";
14
- import { questionContextDigest } from "./member-journal.js";
15
- import { answerSchema, questionSchema } from "./protocol.js";
16
- import { buttonsDigest, prepareHubAnswerButtons } from "./buttons-model.js";
17
- import { HubProtocolError, plain, validated } from "./validation.js";
18
- /** The S3 agent tuple (one copy, S3c's): routing, readiness and the store can never disagree. */
19
- export { HUB_AGENT_MODE as HUB_AGENT_PROVIDER, agentPolicyDigest, isAgentDescriptor as isAgentTuple } from "./member/agent-mode.js";
20
- import { isAgentDescriptor as isAgentTuple } from "./member/agent-mode.js";
21
- /** The reserved report_result target for Hub answers. Only a live Hub-issued correlation id from its agent matches. */
22
- export { HUB_REPORT_TARGET } from "../hub-report-target.js";
23
- import { HUB_REPORT_TARGET } from "../hub-report-target.js";
24
- export const HUB_ANSWER_MAX = 128 * 1024;
25
- const HELD_MAX = 256;
26
- class HubButtonRefusal extends Error {
27
- }
28
- export function migrateHubRepresentative(db) {
29
- db.exec(`CREATE TABLE IF NOT EXISTS hub_representative_questions(
30
- source TEXT PRIMARY KEY, id TEXT NOT NULL UNIQUE, message_id TEXT NOT NULL UNIQUE, digest TEXT NOT NULL,
31
- exposure_id TEXT NOT NULL, revision INTEGER NOT NULL, consent_id TEXT NOT NULL, agent TEXT NOT NULL, token TEXT NOT NULL,
32
- state TEXT NOT NULL, cid TEXT UNIQUE, answer TEXT, reason TEXT, at INTEGER NOT NULL);
33
- CREATE TABLE IF NOT EXISTS hub_representative_consents(consent_id TEXT PRIMARY KEY, agent TEXT NOT NULL, token TEXT NOT NULL);`);
34
- }
35
- export const HUB_REPRESENTATIVE_MIGRATION = Object.freeze({ component: "s5-representative", version: 1, up: migrateHubRepresentative });
36
- const LIVE = ["queued", "dispatching", "input", "delivered", "answering"];
37
- /** A saved answer whose transmission or acknowledgement failed is held too (visible), never resent. */
38
- const HOLDABLE = [...LIVE, "answered"];
39
- export class HubRepresentativeExecution {
40
- options;
41
- closed = false;
42
- recovered = false;
43
- running = new Set();
44
- receiptsTail = Promise.resolve();
45
- constructor(options) {
46
- this.options = options;
47
- }
48
- now() { return this.options.now?.() ?? Date.now(); }
49
- row(where, value) {
50
- return this.options.db.prepare(`SELECT * FROM hub_representative_questions WHERE ${where}=?`).get(value) ?? null;
51
- }
52
- setState(row, state, from, extra = {}) {
53
- const db = this.options.db;
54
- const result = db.prepare(`UPDATE hub_representative_questions SET state=?, at=?${extra.reason !== undefined ? ", reason=@reason" : ""}${extra.cid !== undefined ? ", cid=@cid" : ""}${extra.answer !== undefined ? ", answer=@answer" : ""}
55
- WHERE id=@id AND state IN (${from.map(s => `'${s}'`).join(",")})`)
56
- .run(state, this.now(), { id: row.id, ...(extra.reason !== undefined ? { reason: extra.reason } : {}), ...(extra.cid !== undefined ? { cid: extra.cid } : {}), ...(extra.answer !== undefined ? { answer: extra.answer } : {}) });
57
- if (result.changes !== 1)
58
- return false;
59
- row.state = state;
60
- if (extra.cid !== undefined)
61
- row.cid = extra.cid;
62
- if (extra.reason !== undefined)
63
- row.reason = extra.reason;
64
- return true;
65
- }
66
- /** The exposure, consent and agent lifecycle the question was admitted under — all still exactly current. */
67
- currentFor(row) {
68
- if (this.closed)
69
- return false;
70
- const b = this.options.binding();
71
- if (!b.current())
72
- return false;
73
- const local = this.options.localExposure(row.exposure_id);
74
- if (!local || local.exposure.state !== "published" || local.exposure.revision !== row.revision || local.consentId !== row.consent_id
75
- || local.agent !== row.agent || !isAgentTuple(local) || local.exposure.fleetId !== b.fleetId || personKeyString(local.exposure.owner) !== personKeyString(b.owner))
76
- return false;
77
- return this.consentToken(row.consent_id) === row.token && this.options.agentToken(row.agent) === row.token;
78
- }
79
- consentToken(consentId) {
80
- return this.options.db.prepare("SELECT token FROM hub_representative_consents WHERE consent_id=?").get(consentId)?.token ?? null;
81
- }
82
- fenceOf(row) {
83
- const b = this.options.binding();
84
- return { current: () => b.current() && this.currentFor(row), linkEpoch: b.linkEpoch, revocationVersion: b.revocationVersion };
85
- }
86
- /** Readiness for a published mapping: the agent tuple, this owner/fleet, the agent deliverable now. */
87
- readiness(exposureId, expectedRevision) {
88
- const local = this.options.localExposure(exposureId);
89
- if (!local || local.exposure.state !== "published" || local.exposure.revision !== expectedRevision)
90
- return { ok: false, reasonCode: "stale" };
91
- return this.ready(local);
92
- }
93
- /**
94
- * Capability check for a candidate. S3c asks it again inside the atomic publish transaction: there (only), the agent's
95
- * current lifecycle token is recorded against the candidate's consent id, so a later replacement, retarget or mode
96
- * change no longer matches it and needs an explicit republish.
97
- */
98
- readinessCandidate(candidate) {
99
- if (candidate.exposure.state !== "withdrawn")
100
- return { ok: false, reasonCode: "policy-unavailable" };
101
- const ready = this.ready(candidate);
102
- if (ready.ok && this.options.db.inTransaction) {
103
- this.options.db.prepare("INSERT INTO hub_representative_consents VALUES(?,?,?) ON CONFLICT(consent_id) DO UPDATE SET agent=excluded.agent, token=excluded.token")
104
- .run(candidate.consentId, candidate.agent, this.options.agentToken(candidate.agent));
105
- }
106
- return ready;
107
- }
108
- ready(local) {
109
- if (!isAgentTuple(local))
110
- return { ok: false, reasonCode: "policy-unavailable" };
111
- const b = this.options.binding();
112
- if (local.exposure.fleetId !== b.fleetId || personKeyString(local.exposure.owner) !== personKeyString(b.owner))
113
- return { ok: false, reasonCode: "stale" };
114
- if (this.options.agentToken(local.agent) === null)
115
- return { ok: false, reasonCode: "provider-unavailable" };
116
- return { ok: true, policyDigest: local.exposure.policyDigest, exposureRevision: local.exposure.revision };
117
- }
118
- /** No provider exists in P1: nothing to explain. */
119
- providerReason() { return null; }
120
- /** S1's journal outbox: the unique source row, in the journal's own admission transaction. */
121
- restrictedOutbox() {
122
- const db = this.options.db;
123
- const checkSource = (q, source) => {
124
- if (source !== `hub:${q.identity.issuer}:${q.identity.messageId}`)
125
- throw new HubProtocolError("denied");
126
- };
127
- return {
128
- insert: (tx, question, source) => {
129
- if (this.closed || !this.recovered)
130
- throw new HubProtocolError("unavailable");
131
- if (tx !== db || !db.inTransaction)
132
- throw new HubProtocolError("denied");
133
- const q = validated(questionSchema, question);
134
- checkSource(q, source);
135
- const local = this.options.localExposure(q.identity.exposureId);
136
- if (!local || local.exposure.state !== "published" || local.exposure.revision !== q.identity.exposureRevision || !isAgentTuple(local))
137
- throw new HubProtocolError("denied");
138
- const token = this.options.agentToken(local.agent);
139
- if (token === null || this.consentToken(local.consentId) !== token)
140
- throw new HubProtocolError("denied");
141
- if (db.prepare("SELECT COUNT(*) AS n FROM hub_representative_questions WHERE state IN ('queued','dispatching','input','delivered','answering')").get().n >= 4096) {
142
- throw new HubProtocolError("backpressure");
143
- }
144
- const id = randomUUID();
145
- db.prepare("INSERT INTO hub_representative_questions(source,id,message_id,digest,exposure_id,revision,consent_id,agent,token,state,at) VALUES(?,?,?,?,?,?,?,?,?,'queued',?)")
146
- .run(source, id, q.identity.messageId, questionContextDigest(q), local.exposure.id, local.exposure.revision, local.consentId, local.agent, token, this.now());
147
- this.options.audit({ action: "representative.queued", result: "completed", messageId: q.identity.messageId, exposureId: local.exposure.id }, db);
148
- // Delivery starts only after the admission transaction commits (a rolled-back insert leaves no row to find).
149
- setImmediate(() => this.pump());
150
- return id;
151
- },
152
- lookup: (tx, question, source) => {
153
- if (tx !== db)
154
- throw new HubProtocolError("denied");
155
- checkSource(question, source);
156
- const row = this.row("source", source);
157
- if (row && row.digest !== questionContextDigest(question))
158
- throw new HubProtocolError("conflict");
159
- return row?.id ?? null;
160
- },
161
- };
162
- }
163
- /**
164
- * Startup. The journal's own recovery runs first (queued + input intent → uncertain). Then a row that was dispatching
165
- * goes back to the queue ONLY if the journal still has it queued with no input intent (a crash between the intent and
166
- * the representative's own transition is uncertain and held, never a fresh queue item); anything past it is held.
167
- */
168
- recover() {
169
- if (this.recovered)
170
- throw new HubProtocolError("conflict");
171
- const db = this.options.db;
172
- this.options.journal.recoverInterruptedInputs();
173
- for (const row of db.prepare("SELECT * FROM hub_representative_questions WHERE state IN ('dispatching','input','delivered','answering','answered')").all()) {
174
- let untouched = false;
175
- if (row.state === "dispatching") {
176
- try {
177
- this.question(row);
178
- untouched = true;
179
- }
180
- catch {
181
- untouched = false;
182
- }
183
- }
184
- if (untouched)
185
- db.prepare("UPDATE hub_representative_questions SET state='queued', cid=NULL WHERE id=? AND state='dispatching'").run(row.id);
186
- else
187
- this.hold(row, "uncertain");
188
- }
189
- this.recovered = true;
190
- this.options.attentionChanged();
191
- }
192
- /**
193
- * Deliver queued questions the link can authorize now (after commits, on each completed handshake, and again as each
194
- * dispatch settles, so a backlog larger than one page keeps draining). Input-bearing work is never picked up again.
195
- */
196
- pump() {
197
- if (this.closed || !this.recovered || !this.options.link())
198
- return;
199
- let rows;
200
- try {
201
- rows = this.options.db.prepare("SELECT * FROM hub_representative_questions WHERE state='queued' ORDER BY at LIMIT 64").all();
202
- }
203
- catch (err) {
204
- this.options.log("warn", "Hub question queue could not be read", { err: String(err) });
205
- return;
206
- }
207
- for (const row of rows) {
208
- if (this.running.has(row.id))
209
- continue;
210
- this.running.add(row.id);
211
- void this.dispatch(row).catch((err) => {
212
- this.options.log("warn", "Hub question delivery failed", { messageId: row.message_id, err: String(err) });
213
- this.uncertain(row, err);
214
- }).finally(() => {
215
- this.running.delete(row.id);
216
- if (!this.closed)
217
- setImmediate(() => this.pump());
218
- });
219
- }
220
- }
221
- /** The row's current state from the database (another path — fence, report — may have moved it). */
222
- refresh(row) {
223
- const now = this.row("id", row.id);
224
- row.state = now?.state ?? "held";
225
- return row.state;
226
- }
227
- async dispatch(row) {
228
- if (!this.currentFor(row)) {
229
- this.hold(row, "stale");
230
- return;
231
- }
232
- const cid = `hub-${randomUUID()}`;
233
- if (!this.setState(row, "dispatching", ["queued"], { cid }))
234
- return;
235
- const question = this.question(row);
236
- const e = question.identity;
237
- // A question's files come whole into the agent's inbox before the hand-off; a failure holds it (never a resend).
238
- let fileLines = [];
239
- if (question.attachments?.length) {
240
- const link = this.options.link(), files = this.options.files;
241
- try {
242
- if (!files || !link?.current() || !link.features?.has("attachments-v1"))
243
- throw new HubProtocolError("incompatible");
244
- fileLines = await files.receive(row.agent, row.message_id, question.attachments, async (id, offset) => {
245
- const reply = await link.exchange({ v: 1, type: "attachment.get", requestId: randomUUID(), linkEpoch: link.linkEpoch, payload: { id, offset } }, "attachment.chunk");
246
- if (reply.type !== "attachment.chunk")
247
- throw new HubProtocolError("invalid");
248
- return reply.payload;
249
- });
250
- }
251
- catch (err) {
252
- this.options.log("warn", "Hub question files could not be fetched", { messageId: row.message_id, err: String(err) });
253
- this.hold(row, "files-unavailable");
254
- return;
255
- }
256
- if (this.refresh(row) !== "dispatching" || !this.currentFor(row)) {
257
- this.hold(row, "stale");
258
- return;
259
- }
260
- }
261
- const text = [
262
- `A question from the Hub. Asker ${personKeyString(e.asker)} (Hub-verified identity; not a person of this fleet, never a go-ahead for local actions).`,
263
- `Answer it with report_result to ${HUB_REPORT_TARGET} with correlation_id ${cid}. Your reply tool does not reach the asker.${question.attachments?.length ? " To send files back, pass their paths in report_result's files." : ""}`,
264
- "",
265
- question.text,
266
- ...(fileLines.length ? ["", ...fileLines] : []),
267
- ].join("\n");
268
- let handed = false;
269
- try {
270
- handed = await this.options.deliver({
271
- agent: row.agent, correlationId: cid, text,
272
- // The live fence through wake/idle/reconnect: the row's state as stored now, and its consent/lifecycle/binding.
273
- stillCurrent: () => { const st = this.refresh(row); return (st === "dispatching" || st === "input") && this.currentFor(row); },
274
- beforeInput: () => this.beforeInput(row),
275
- });
276
- }
277
- catch (err) {
278
- this.options.log("warn", "Hub question hand-off failed", { messageId: row.message_id, err: String(err) });
279
- }
280
- const state = this.refresh(row);
281
- if (handed && state === "input") {
282
- // Handed to the agent's daemon: local state only. The journal's delivered/consumed evidence waits for the agent's
283
- // own report (queue acceptance is not delivery); a pane that never takes it is reported back (deliveryFailed).
284
- if (!this.setState(row, "delivered", ["input"]))
285
- return;
286
- try {
287
- this.auditRequired(row, "representative.handed", "completed");
288
- }
289
- catch (err) {
290
- this.uncertain(row, err);
291
- }
292
- return;
293
- }
294
- if (handed)
295
- return; // already answering (the report overtook the hand-off result)
296
- if (state === "input")
297
- this.uncertain(row, new Error("the hand-off after the input intent did not complete"));
298
- else if (state === "dispatching")
299
- this.hold(row, "unavailable");
300
- }
301
- /** The fleet's last step before input (at the connected hand-off): consent and lifecycle again, the begin lease, spent at once. */
302
- async beforeInput(row) {
303
- try {
304
- if (this.refresh(row) !== "dispatching" || !this.currentFor(row)) {
305
- this.hold(row, "stale");
306
- return false;
307
- }
308
- const request = { messageId: row.message_id, operationId: randomUUID(), exposureRevision: row.revision, phase: "begin" };
309
- const lease = await this.options.authorize(request);
310
- if (this.refresh(row) !== "dispatching" || !this.currentFor(row)) {
311
- this.hold(row, "stale");
312
- return false;
313
- }
314
- this.options.journal.markInputIntent(row.message_id, request, lease, this.fenceOf(row));
315
- if (!this.setState(row, "input", ["dispatching"]))
316
- throw new HubProtocolError("uncertain");
317
- return true;
318
- }
319
- catch (err) {
320
- // After the intent was written, a failed transition is uncertain (never re-queued); before it, a plain hold.
321
- let intent = false;
322
- try {
323
- this.question(row);
324
- }
325
- catch {
326
- intent = true;
327
- }
328
- if (intent)
329
- this.uncertain(row, err);
330
- else
331
- this.hold(row, "unavailable");
332
- this.options.log("warn", "Hub question held before input", { messageId: row.message_id, err: String(err) });
333
- return false;
334
- }
335
- }
336
- /**
337
- * The outbound hook: a report_result to HUB_REPORT_TARGET. Returns null when the correlation id is not a live Hub id
338
- * issued to this caller (the call then takes its ordinary route); otherwise consumes it once and releases the answer.
339
- * callerCurrent: the reporting daemon generation is still the agent's current one (asked again before every release step).
340
- */
341
- report(input) {
342
- if (this.closed || !input.correlationId.startsWith("hub-"))
343
- return null;
344
- const row = this.row("cid", input.correlationId);
345
- if (!row || row.agent !== input.caller)
346
- return null;
347
- const was = row.state;
348
- // Consume once, synchronously: a second report on the same id finds it no longer live.
349
- if (!this.setState(row, "answering", ["input", "delivered"]))
350
- return null;
351
- return this.release(row, was, input.text, input.callerCurrent ?? (() => true), input.extras ?? {});
352
- }
353
- async release(row, was, raw, callerCurrent, extras) {
354
- let saved = false, evidenced = false, disclosed = false;
355
- const live = () => {
356
- if (!callerCurrent() || this.refresh(row) !== (saved ? "answered" : "answering") || !this.currentFor(row))
357
- throw new HubProtocolError("stale");
358
- };
359
- try {
360
- const text = validated(plain(HUB_ANSWER_MAX), raw);
361
- if (!text.trim())
362
- throw new HubProtocolError("invalid");
363
- live();
364
- // Snapshot choices before any file or authorization await. They are part of the exact released answer.
365
- const buttons = prepareHubAnswerButtons(extras.buttons, extras.poll);
366
- const buttonLink = buttons ? this.options.link() : null;
367
- if (buttons && (!buttonLink?.current() || !buttonLink.features?.has("buttons-v1")))
368
- throw new HubButtonRefusal();
369
- // The agent's files (D): copied under the reply tool's rule, then pushed to the Hub before the answer names them.
370
- let attachments;
371
- if (extras.files?.length) {
372
- const link = this.options.link(), files = this.options.files;
373
- if (!files || !link?.current() || !link.features?.has("attachments-v1"))
374
- throw new HubFileRefusal("this Hub can't receive files yet; answer with text only");
375
- const prepared = await files.prepare(row.agent, extras.files);
376
- live();
377
- for (const file of prepared)
378
- await files.send(file, async (chunk) => {
379
- const ack = await link.exchange({ v: 1, type: "attachment.put", requestId: randomUUID(), linkEpoch: link.linkEpoch, payload: chunk }, "attachment.ack");
380
- if (ack.type !== "attachment.ack" || ack.payload.id !== chunk.id || ack.payload.offset !== chunk.offset)
381
- throw new HubProtocolError("uncertain");
382
- });
383
- attachments = prepared.map(f => f.ref);
384
- live();
385
- }
386
- if (buttons && (!buttonLink?.current() || this.options.link() !== buttonLink || !buttonLink.features?.has("buttons-v1")))
387
- throw new HubProtocolError("stale");
388
- evidenced = true;
389
- const journal = this.options.journal;
390
- // The agent's own report is the evidence that the question reached it and was taken up.
391
- journal.recordEvidence(row.message_id, "delivered");
392
- journal.recordEvidence(row.message_id, "consumed");
393
- // F: buttons/poll join here (their payload field and buttonsDigest into messageContentDigest).
394
- // Freeze the answer's id, bytes and digest before asking for the release lease for exactly them.
395
- const answerId = randomUUID(), contentDigest = messageContentDigest("answer", text, { attachments, buttonsDigest: buttonsDigest(buttons) });
396
- this.options.db.prepare("UPDATE hub_representative_questions SET answer=? WHERE id=?").run(JSON.stringify({ answerId, contentDigest }), row.id);
397
- live();
398
- const request = { messageId: row.message_id, operationId: randomUUID(), exposureRevision: row.revision, phase: "release-answer", answer: { answerId, contentDigest } };
399
- const releaseLease = await this.options.authorize(request);
400
- live();
401
- if (buttons && (!buttonLink?.current() || this.options.link() !== buttonLink || !buttonLink.features?.has("buttons-v1")))
402
- throw new HubProtocolError("stale");
403
- const answer = validated(answerSchema, { messageId: row.message_id, answerId, text, contentDigest, releaseLease,
404
- ...(attachments?.length ? { attachments } : {}), ...(buttons ? { buttons } : {}) });
405
- // Required audit BEFORE anything is saved or disclosed: its failure stops the release (held, nothing sent).
406
- this.auditRequired(row, "representative.release", "completed");
407
- journal.saveAnswer(answer, request, this.fenceOf(row));
408
- saved = true;
409
- if (!this.setState(row, "answered", ["answering"]))
410
- throw new HubProtocolError("stale");
411
- live();
412
- const link = this.options.link();
413
- if (!link || !link.current())
414
- throw new HubProtocolError("unavailable");
415
- disclosed = true;
416
- const reply = await link.exchange({ v: 1, type: "answer", requestId: randomUUID(), linkEpoch: link.linkEpoch, payload: answer }, "receipt");
417
- if (reply.type !== "receipt" || reply.payload.messageId !== row.message_id || reply.payload.stage !== "answered")
418
- throw new HubProtocolError("uncertain");
419
- // The answered state and its audit commit together; a failure leaves a visible hold, never a silent success.
420
- this.options.db.transaction(() => {
421
- if (!this.setState(row, "released", ["answered"]))
422
- throw new HubProtocolError("stale");
423
- this.options.audit({ action: "representative.answered", result: "completed", messageId: row.message_id, exposureId: row.exposure_id }, this.options.db);
424
- }).immediate();
425
- this.pushReceipts();
426
- return { ok: true, message: "Delivered to the Hub asker." };
427
- }
428
- catch (err) {
429
- const code = err instanceof HubProtocolError ? err.code : "uncertain";
430
- if (!saved && !evidenced && err instanceof HubButtonRefusal) {
431
- this.setState(row, was === "input" ? "delivered" : was, ["answering"]);
432
- return { ok: false, message: "Not sent: this Hub can't send buttons yet. Report text only with the same correlation_id." };
433
- }
434
- if (!saved && !evidenced && err instanceof HubFileRefusal) {
435
- // A file the agent can fix (a state-dir path, a refused type, too large): the question stays open on the same id.
436
- this.setState(row, was === "input" ? "delivered" : was, ["answering"]);
437
- return { ok: false, message: `Not sent: ${err.message}. Report again with the same correlation_id.` };
438
- }
439
- if (!saved && code === "invalid" && !evidenced) {
440
- // A malformed report (empty or oversized) is the agent's to fix: the question stays open on the same id.
441
- this.setState(row, was === "input" ? "delivered" : was, ["answering"]);
442
- return { ok: false, message: `Not sent: the answer must be 1 to ${HUB_ANSWER_MAX} bytes of plain text. Report again with the same correlation_id.` };
443
- }
444
- this.uncertain(row, err);
445
- return { ok: false, message: disclosed
446
- ? "Sent to the Hub, but its acknowledgement is uncertain; it is not sent again. The owner sees it in Needs you."
447
- : "Not delivered to the Hub asker: the question is no longer open (withdrawn, revoked, replaced, or the Hub is unreachable). The owner sees it in Needs you." };
448
- }
449
- finally {
450
- this.options.attentionChanged();
451
- }
452
- }
453
- /** Local evidence to the Hub, in order, each ACK recorded. A failure waits for the next handshake (it sends the rest). */
454
- pushReceipts() {
455
- this.receiptsTail = this.receiptsTail.then(async () => {
456
- const link = this.options.link();
457
- if (!link || !link.current())
458
- return;
459
- for (;;) {
460
- const page = this.options.journal.unackedReceipts({});
461
- if (!page.receipts.length)
462
- return;
463
- for (const receipt of page.receipts) {
464
- const reply = await link.exchange({ v: 1, type: "receipt", requestId: randomUUID(), linkEpoch: link.linkEpoch, payload: receipt }, "receipt");
465
- if (reply.type !== "receipt" || canonicalArguments(reply.payload) !== canonicalArguments(receipt))
466
- throw new HubProtocolError("conflict");
467
- this.options.journal.acknowledge(receipt);
468
- }
469
- }
470
- }).catch((err) => this.options.log("info", "Hub receipts wait for the next handshake", { err: String(err) }));
471
- }
472
- question(row) {
473
- // The journal's encrypted copy is the only question text this side keeps (readable only while queued, before input).
474
- const question = this.options.journal.queuedQuestion(row.message_id);
475
- if (questionContextDigest(question) !== row.digest)
476
- throw new HubProtocolError("uncertain");
477
- return question;
478
- }
479
- /** A required audit record (its own transaction): a failure throws to the caller. */
480
- auditRequired(row, action, result, reasonCode) {
481
- this.options.db.transaction(() => this.options.audit({ action, result, messageId: row.message_id, exposureId: row.exposure_id, ...(reasonCode ? { reasonCode } : {}) }, this.options.db)).immediate();
482
- }
483
- /** A hold always lands (state first); its audit record is attempted and a failure is logged. */
484
- hold(row, reason) {
485
- if (!this.setState(row, "held", HOLDABLE, { reason }))
486
- return;
487
- try {
488
- this.auditRequired(row, "representative.held", "held", reason);
489
- }
490
- catch (err) {
491
- this.options.log("warn", "Hub audit append failed", { action: "representative.held", err: String(err) });
492
- }
493
- this.options.attentionChanged();
494
- }
495
- uncertain(row, err) {
496
- this.options.log("warn", "Hub question uncertain", { messageId: row.message_id, err: String(err) });
497
- // The journal can mark uncertain only before an answer was saved; a saved-but-unacknowledged answer stays answered there.
498
- try {
499
- if (["dispatching", "input", "delivered", "answering"].includes(this.refresh(row)))
500
- this.options.journal.recordEvidence(row.message_id, "uncertain");
501
- }
502
- catch { /* already past the stages the journal can mark uncertain */ }
503
- this.hold(row, "uncertain");
504
- this.pushReceipts();
505
- }
506
- /** The agent's daemon could not get the question into its pane after accepting it: uncertain, never resent. */
507
- deliveryFailed(correlationId, agent) {
508
- const row = correlationId.startsWith("hub-") ? this.row("cid", correlationId) : null;
509
- if (!row || row.agent !== agent || !["input", "delivered"].includes(row.state))
510
- return;
511
- this.uncertain(row, new Error("the agent's pane did not take the question"));
512
- }
513
- /** Off / withdraw / revoke / link replacement for one message: its correlation id stops being live at once. */
514
- fence(messageId, reasonCode = "revoked") {
515
- const row = this.row("message_id", messageId);
516
- if (row)
517
- this.hold(row, reasonCode);
518
- }
519
- attentionItems() {
520
- const rows = this.options.db.prepare(`SELECT * FROM hub_representative_questions WHERE state='held' ORDER BY at DESC LIMIT ${HELD_MAX}`).all();
521
- return rows.map(r => ({ id: `hold:${r.id}`, kind: "hold", agent: r.agent, messageId: r.message_id, exposureId: r.exposure_id, since: r.at }));
522
- }
523
- async close() {
524
- this.closed = true;
525
- await this.receiptsTail;
526
- }
527
- }
528
- //# sourceMappingURL=representative.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"representative.js","sourceRoot":"","sources":["../../src/hub/representative.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,eAAe,EAAU,MAAM,eAAe,CAAC;AAClG,OAAO,EAAE,cAAc,EAAuB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAmD,MAAM,qBAAqB,CAAC;AAC7G,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAKrE,iGAAiG;AACjG,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACpI,OAAO,EAAE,iBAAiB,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3E,uHAAuH;AACvH,OAAO,EAAE,iBAAiB,EAAyB,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAA+C,MAAM,yBAAyB,CAAC;AACzG,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,GAAG,IAAI,CAAC;AACzC,MAAM,QAAQ,GAAG,GAAG,CAAC;AACrB,MAAM,gBAAiB,SAAQ,KAAK;CAAG;AAEvC,MAAM,UAAU,wBAAwB,CAAC,EAAqB;IAC5D,EAAE,CAAC,IAAI,CAAC;;;;mIAIyH,CAAC,CAAC;AACrI,CAAC;AACD,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,wBAAwB,EAAE,CAAC,CAAC;AAOxI,MAAM,IAAI,GAAqB,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAC5F,uGAAuG;AACvG,MAAM,QAAQ,GAAqB,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC;AAwCzD,MAAM,OAAO,0BAA0B;IAKR,OAAO;IAJ5B,MAAM,GAAG,KAAK,CAAC;IACf,SAAS,GAAG,KAAK,CAAC;IACT,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,YAAY,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IACxD,YAA6B,OAAiC;uBAAjC,OAAO;IAA6B,CAAC;IAE1D,GAAG,KAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC5D,GAAG,CAAC,KAA6C,EAAE,KAAa;QACtE,OAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,oDAAoD,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAqB,IAAI,IAAI,CAAC;IACxI,CAAC;IACO,QAAQ,CAAC,GAAQ,EAAE,KAAY,EAAE,IAAsB,EAAE,KAAK,GAAuD,EAAE;QAC7H,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,wDAAwD,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE;mCAC5M,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;aACjE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACpO,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACvC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;QAAC,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;YAAE,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QAAC,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;YAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC/H,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6GAA6G;IACrG,UAAU,CAAC,GAAQ;QACzB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE;YAAE,OAAO,KAAK,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,KAAK,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,IAAI,KAAK,CAAC,SAAS,KAAK,GAAG,CAAC,UAAU;eAC/H,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACnL,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC;IAC7G,CAAC;IACO,YAAY,CAAC,SAAiB;QACpC,OAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,kEAAkE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAmC,EAAE,KAAK,IAAI,IAAI,CAAC;IACtK,CAAC;IACO,OAAO,CAAC,GAAQ;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC;IAChI,CAAC;IAED,uGAAuG;IACvG,SAAS,CAAC,UAAkB,EAAE,gBAAwB;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,KAAK,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,KAAK,gBAAgB;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QAC9I,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IACD;;;;OAIG;IACH,kBAAkB,CAAC,SAA2B;QAC5C,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,KAAK,WAAW;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,CAAC;QACrG,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,wIAAwI,CAAC;iBAC9J,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACO,KAAK,CAAC,KAAuB;QACnC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,CAAC;QACjF,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QAC1J,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,CAAC;QAC5G,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC5G,CAAC;IACD,oDAAoD;IACpD,cAAc,KAAW,OAAO,IAAI,CAAC,CAAC,CAAC;IAEvC,8FAA8F;IAC9F,gBAAgB;QACd,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,CAAC,CAAc,EAAE,MAAc,EAAE,EAAE;YACrD,IAAI,MAAM,KAAK,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE;gBAAE,MAAM,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC1G,CAAC,CAAC;QACF,OAAO;YACL,MAAM,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;gBAC/B,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS;oBAAE,MAAM,IAAI,gBAAgB,CAAC,aAAa,CAAC,CAAC;gBAC9E,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa;oBAAE,MAAM,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBACzE,MAAM,CAAC,GAAG,SAAS,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;gBAAC,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBACtE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAChE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,KAAK,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,CAAC,gBAAgB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;oBAAE,MAAM,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBAC5K,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACnD,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,KAAK;oBAAE,MAAM,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBACzG,IAAK,EAAE,CAAC,OAAO,CAAC,gIAAgI,CAAC,CAAC,GAAG,EAAoB,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;oBACpL,MAAM,IAAI,gBAAgB,CAAC,cAAc,CAAC,CAAC;gBAC7C,CAAC;gBACD,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;gBACxB,EAAE,CAAC,OAAO,CAAC,iKAAiK,CAAC;qBAC1K,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBAChK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBACjJ,6GAA6G;gBAC7G,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAChC,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;gBAC/B,IAAI,EAAE,KAAK,EAAE;oBAAE,MAAM,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBACpD,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACvC,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,qBAAqB,CAAC,QAAQ,CAAC;oBAAE,MAAM,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;gBAClG,OAAO,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC;YACzB,CAAC;SACF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC3D,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC;QAChD,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC,sHAAsH,CAAC,CAAC,GAAG,EAAW,EAAE,CAAC;YACpK,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,IAAI,GAAG,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;gBAAC,IAAI,CAAC;oBAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAAC,SAAS,GAAG,IAAI,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC;oBAAC,SAAS,GAAG,KAAK,CAAC;gBAAC,CAAC;YAAC,CAAC;YAC/G,IAAI,SAAS;gBAAE,EAAE,CAAC,OAAO,CAAC,qGAAqG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;;gBACxI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAAE,OAAO;QACnE,IAAI,IAAW,CAAC;QAChB,IAAI,CAAC;YAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,sFAAsF,CAAC,CAAC,GAAG,EAAW,CAAC;QAAC,CAAC;QAC9I,OAAO,GAAG,EAAE,CAAC;YAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,sCAAsC,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC/G,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,SAAS;YACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzB,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,8BAA8B,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC1G,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,MAAM;oBAAE,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,oGAAoG;IAC5F,OAAO,CAAC,GAAQ;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,GAAG,CAAC,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,MAAM,CAAC;QACjC,OAAO,GAAG,CAAC,KAAK,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,GAAQ;QAC7B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC/D,MAAM,GAAG,GAAG,OAAO,UAAU,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,aAAa,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;YAAE,OAAO;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC5B,iHAAiH;QACjH,IAAI,SAAS,GAAa,EAAE,CAAC;QAC7B,IAAI,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC;gBACH,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,gBAAgB,CAAC;oBAAE,MAAM,IAAI,gBAAgB,CAAC,cAAc,CAAC,CAAC;gBACpH,SAAS,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;oBACpG,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,kBAAkB,CAAC,CAAC;oBACrK,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB;wBAAE,MAAM,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC;oBAC7E,OAAO,KAAK,CAAC,OAAO,CAAC;gBACvB,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,yCAAyC,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACrH,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;gBAAC,OAAO;YAC9C,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;QACxG,CAAC;QACD,MAAM,IAAI,GAAG;YACX,kCAAkC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,2FAA2F;YACrJ,mCAAmC,iBAAiB,wBAAwB,GAAG,8CAA8C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,iEAAiE,CAAC,CAAC,CAAC,EAAE,EAAE;YACpO,EAAE;YACF,QAAQ,CAAC,IAAI;YACb,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;gBAClC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI;gBAC1C,gHAAgH;gBAChH,YAAY,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,aAAa,IAAI,EAAE,KAAK,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC9H,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;aACzC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,8BAA8B,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5G,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,MAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YAChC,kHAAkH;YAClH,+GAA+G;YAC/G,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC;gBAAE,OAAO;YACxD,IAAI,CAAC;gBAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,uBAAuB,EAAE,WAAW,CAAC,CAAC;YAAC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAAC,CAAC;YAChH,OAAO;QACT,CAAC;QACD,IAAI,MAAM;YAAE,OAAO,CAAC,8DAA8D;QAClF,IAAI,KAAK,KAAK,OAAO;YAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC,CAAC;aACzG,IAAI,KAAK,KAAK,aAAa;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAClE,CAAC;IAED,mIAAmI;IAC3H,KAAK,CAAC,WAAW,CAAC,GAAQ;QAChC,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAAC,OAAO,KAAK,CAAC;YAAC,CAAC;YAC5G,MAAM,OAAO,GAA4B,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,gBAAgB,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YAClJ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACpD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAAC,OAAO,KAAK,CAAC;YAAC,CAAC;YAC5G,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACxF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,CAAC;gBAAE,MAAM,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAC3F,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,6GAA6G;YAC7G,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC;gBAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,IAAI,CAAC;YAAC,CAAC;YACpD,IAAI,MAAM;gBAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;;gBAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;YACzE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,gCAAgC,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5G,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAuH;QAC5H,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QACxE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;QACjD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACpD,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC;QACtB,uFAAuF;QACvF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1E,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,aAAa,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACrG,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,GAAQ,EAAE,GAAU,EAAE,GAAW,EAAE,aAA4B,EAAE,MAAuB;QAC5G,IAAI,KAAK,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK,CAAC;QACxD,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,MAAM,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACjJ,CAAC,CAAC;QACF,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,CAAC;YACnD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBAAE,MAAM,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC;YACxD,IAAI,EAAE,CAAC;YACP,uGAAuG;YACvG,MAAM,OAAO,GAAG,uBAAuB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACrE,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACxD,IAAI,OAAO,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;gBAAE,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACjH,kHAAkH;YAClH,IAAI,WAAqC,CAAC;YAC1C,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC7D,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,gBAAgB,CAAC;oBAAE,MAAM,IAAI,cAAc,CAAC,yDAAyD,CAAC,CAAC;gBAC7J,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9D,IAAI,EAAE,CAAC;gBACP,KAAK,MAAM,IAAI,IAAI,QAAQ;oBAAE,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;wBAClE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,gBAAgB,CAAC,CAAC;wBACxJ,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;4BAAE,MAAM,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;oBACnJ,CAAC,CAAC,CAAC;gBACH,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,EAAE,CAAC;YACT,CAAC;YACD,IAAI,OAAO,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;gBAAE,MAAM,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC9J,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACrC,wFAAwF;YACxF,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACpD,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACnD,+FAA+F;YAC/F,iGAAiG;YACjG,MAAM,QAAQ,GAAG,UAAU,EAAE,EAAE,aAAa,GAAG,oBAAoB,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC5I,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,6DAA6D,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAChJ,IAAI,EAAE,CAAC;YACP,MAAM,OAAO,GAA4B,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,gBAAgB,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,CAAC;YAChM,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC3D,IAAI,EAAE,CAAC;YACP,IAAI,OAAO,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;gBAAE,MAAM,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC9J,MAAM,MAAM,GAAc,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY;gBACxH,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACtF,4GAA4G;YAC5G,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,wBAAwB,EAAE,WAAW,CAAC,CAAC;YAC/D,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACvD,KAAK,GAAG,IAAI,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC;gBAAE,MAAM,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACxF,IAAI,EAAE,CAAC;YACP,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBAAE,MAAM,IAAI,gBAAgB,CAAC,aAAa,CAAC,CAAC;YACxE,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,CAAC;YAC5I,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,KAAK,GAAG,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,UAAU;gBAAE,MAAM,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAC1J,6GAA6G;YAC7G,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;gBAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC;oBAAE,MAAM,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBACvF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1J,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;QAC9D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,GAAG,YAAY,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;YACtE,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,GAAG,YAAY,gBAAgB,EAAE,CAAC;gBAC5D,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;gBACvE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,2FAA2F,EAAE,CAAC;YAC7H,CAAC;YACD,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;gBAC1D,kHAAkH;gBAClH,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;gBACvE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,GAAG,CAAC,OAAO,8CAA8C,EAAE,CAAC;YACxG,CAAC;YACD,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC/C,yGAAyG;gBACzG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;gBACvE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,qCAAqC,cAAc,kEAAkE,EAAE,CAAC;YACvJ,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACzB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS;oBACpC,CAAC,CAAC,8GAA8G;oBAChH,CAAC,CAAC,2JAA2J,EAAE,CAAC;QACpK,CAAC;gBAAS,CAAC;YAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAAC,CAAC;IAChD,CAAC;IAED,0HAA0H;IAClH,YAAY;QAClB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YACpD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBAAE,OAAO;YACrC,SAAS,CAAC;gBACR,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;gBACtD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM;oBAAE,OAAO;gBAClC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACpC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;oBAC9I,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,kBAAkB,CAAC,OAAO,CAAC;wBAAE,MAAM,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;oBAC1I,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,OAAqB,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,0CAA0C,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACzH,CAAC;IAEO,QAAQ,CAAC,GAAQ;QACvB,qHAAqH;QACrH,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrE,IAAI,qBAAqB,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,MAAM;YAAE,MAAM,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAC5F,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,qFAAqF;IAC7E,aAAa,CAAC,GAAQ,EAAE,MAAc,EAAE,MAAuC,EAAE,UAAmB;QAC1G,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IACxM,CAAC;IACD,gGAAgG;IACxF,IAAI,CAAC,GAAQ,EAAE,MAAc;QACnC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC;YAAE,OAAO;QAC9D,IAAI,CAAC;YAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,CAAC;QACvE,OAAO,GAAG,EAAE,CAAC;YAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,yBAAyB,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAAC,CAAC;QACzH,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAClC,CAAC;IACO,SAAS,CAAC,GAAQ,EAAE,GAAY;QACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,wBAAwB,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpG,0HAA0H;QAC1H,IAAI,CAAC;YAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAAC,CAAC;QAC7J,MAAM,CAAC,CAAC,4DAA4D,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,+GAA+G;IAC/G,cAAc,CAAC,aAAqB,EAAE,KAAa;QACjD,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrF,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO;QACvF,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,+GAA+G;IAC/G,KAAK,CAAC,SAAiB,EAAE,UAAU,GAAG,SAAS;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAC9C,IAAI,GAAG;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACtC,CAAC;IACD,cAAc;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,wFAAwF,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAW,CAAC;QACxJ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAe,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACzJ,CAAC;IACD,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,MAAM,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;CACF"}
@@ -1,17 +0,0 @@
1
- /** Owner Settings policy in the private Hub DB. The sealed config supplies the initial values only. */
2
- import type Database from "better-sqlite3";
3
- import { type HubRetentionPolicy, type HubRetentionView } from "../hub-retention-policy.js";
4
- import type { HubMigration } from "./db.js";
5
- import type { HubAuditStore } from "./audit/index.js";
6
- export interface HubRetentionControl {
7
- read(): HubRetentionView;
8
- update(input: unknown, current: () => boolean): HubRetentionView;
9
- }
10
- export declare function retentionMigration(hubId: string, initial: HubRetentionPolicy): HubMigration;
11
- export declare function createHubRetentionControl(options: {
12
- db: Database.Database;
13
- hubId: string;
14
- audit: Pick<HubAuditStore, "appendInTransaction">;
15
- current(): boolean;
16
- now(): number;
17
- }): HubRetentionControl;
@@ -1,45 +0,0 @@
1
- import { randomUUID } from "node:crypto";
2
- import { parseHubRetention } from "../hub-retention-policy.js";
3
- export function retentionMigration(hubId, initial) {
4
- const policy = parseHubRetention({ ...initial, revision: 1 });
5
- return { component: "s5-retention", version: 1, up(db) {
6
- db.exec(`CREATE TABLE hub_retention(singleton INTEGER PRIMARY KEY CHECK(singleton=1), hub_id TEXT NOT NULL,
7
- content_days INTEGER NOT NULL CHECK(content_days BETWEEN 1 AND 3650),
8
- event_days INTEGER NOT NULL CHECK(event_days BETWEEN 1 AND 3650), revision INTEGER NOT NULL CHECK(revision>=1));`);
9
- db.prepare("INSERT INTO hub_retention VALUES(1, ?, ?, ?, 1)").run(hubId, policy.contentDays, policy.eventDays);
10
- } };
11
- }
12
- export function createHubRetentionControl(options) {
13
- const { db } = options;
14
- const assert = (current = () => true) => { if (!options.current() || !current())
15
- throw Error("unavailable"); };
16
- const read = () => {
17
- assert();
18
- const row = db.prepare("SELECT hub_id, content_days, event_days, revision FROM hub_retention WHERE singleton=1").get();
19
- if (!row || row.hub_id !== options.hubId)
20
- throw Error("retention_unavailable");
21
- return parseHubRetention({ contentDays: row.content_days, eventDays: row.event_days, revision: row.revision });
22
- };
23
- read(); // Missing/corrupt state never resets to a longer initial retention.
24
- return { read, update(input, current) {
25
- const next = parseHubRetention(input);
26
- return db.transaction(() => {
27
- assert(current);
28
- const before = read();
29
- if (before.revision !== next.revision || before.revision >= Number.MAX_SAFE_INTEGER)
30
- throw Error("conflict");
31
- if (before.contentDays === next.contentDays && before.eventDays === next.eventDays)
32
- return before;
33
- const revision = before.revision + 1;
34
- const result = options.audit.appendInTransaction({ id: randomUUID(), sequence: revision, at: options.now(), requestId: randomUUID(),
35
- actor: { kind: "local-host" }, action: "retention.changed", result: "completed", policyVersion: revision,
36
- reasonCode: `content-${next.contentDays}-events-${next.eventDays}` }, db);
37
- if (result && typeof result.then === "function")
38
- throw Error("retention_audit_unavailable");
39
- assert(current);
40
- db.prepare("UPDATE hub_retention SET content_days=?, event_days=?, revision=? WHERE singleton=1").run(next.contentDays, next.eventDays, revision);
41
- return { contentDays: next.contentDays, eventDays: next.eventDays, revision };
42
- }).immediate();
43
- } };
44
- }
45
- //# sourceMappingURL=retention.js.map