uxnan-bridge 0.0.1-alpha.20260621

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 (255) hide show
  1. package/README.md +150 -0
  2. package/dist/src/account-status.d.ts +13 -0
  3. package/dist/src/account-status.js +78 -0
  4. package/dist/src/account-status.js.map +1 -0
  5. package/dist/src/adapters/base-adapter.d.ts +18 -0
  6. package/dist/src/adapters/base-adapter.js +15 -0
  7. package/dist/src/adapters/base-adapter.js.map +1 -0
  8. package/dist/src/adapters/claude-adapter.d.ts +102 -0
  9. package/dist/src/adapters/claude-adapter.js +486 -0
  10. package/dist/src/adapters/claude-adapter.js.map +1 -0
  11. package/dist/src/adapters/claude-tools.d.ts +25 -0
  12. package/dist/src/adapters/claude-tools.js +146 -0
  13. package/dist/src/adapters/claude-tools.js.map +1 -0
  14. package/dist/src/adapters/codex-adapter.d.ts +116 -0
  15. package/dist/src/adapters/codex-adapter.js +912 -0
  16. package/dist/src/adapters/codex-adapter.js.map +1 -0
  17. package/dist/src/adapters/codex-app-server.d.ts +74 -0
  18. package/dist/src/adapters/codex-app-server.js +225 -0
  19. package/dist/src/adapters/codex-app-server.js.map +1 -0
  20. package/dist/src/adapters/codex-approval.d.ts +88 -0
  21. package/dist/src/adapters/codex-approval.js +160 -0
  22. package/dist/src/adapters/codex-approval.js.map +1 -0
  23. package/dist/src/adapters/codex-tools.d.ts +18 -0
  24. package/dist/src/adapters/codex-tools.js +106 -0
  25. package/dist/src/adapters/codex-tools.js.map +1 -0
  26. package/dist/src/adapters/content-blocks.d.ts +68 -0
  27. package/dist/src/adapters/content-blocks.js +205 -0
  28. package/dist/src/adapters/content-blocks.js.map +1 -0
  29. package/dist/src/adapters/echo-agent-adapter.d.ts +23 -0
  30. package/dist/src/adapters/echo-agent-adapter.js +72 -0
  31. package/dist/src/adapters/echo-agent-adapter.js.map +1 -0
  32. package/dist/src/adapters/gemini-adapter.d.ts +87 -0
  33. package/dist/src/adapters/gemini-adapter.js +594 -0
  34. package/dist/src/adapters/gemini-adapter.js.map +1 -0
  35. package/dist/src/adapters/gemini-tools.d.ts +4 -0
  36. package/dist/src/adapters/gemini-tools.js +48 -0
  37. package/dist/src/adapters/gemini-tools.js.map +1 -0
  38. package/dist/src/adapters/opencode-adapter.d.ts +74 -0
  39. package/dist/src/adapters/opencode-adapter.js +418 -0
  40. package/dist/src/adapters/opencode-adapter.js.map +1 -0
  41. package/dist/src/adapters/opencode-tools.d.ts +2 -0
  42. package/dist/src/adapters/opencode-tools.js +41 -0
  43. package/dist/src/adapters/opencode-tools.js.map +1 -0
  44. package/dist/src/adapters/pi-adapter.d.ts +92 -0
  45. package/dist/src/adapters/pi-adapter.js +467 -0
  46. package/dist/src/adapters/pi-adapter.js.map +1 -0
  47. package/dist/src/adapters/pi-tools.d.ts +10 -0
  48. package/dist/src/adapters/pi-tools.js +72 -0
  49. package/dist/src/adapters/pi-tools.js.map +1 -0
  50. package/dist/src/adapters/process-agent-adapter.d.ts +24 -0
  51. package/dist/src/adapters/process-agent-adapter.js +111 -0
  52. package/dist/src/adapters/process-agent-adapter.js.map +1 -0
  53. package/dist/src/adapters/resolve-claude.d.ts +13 -0
  54. package/dist/src/adapters/resolve-claude.js +57 -0
  55. package/dist/src/adapters/resolve-claude.js.map +1 -0
  56. package/dist/src/adapters/resolve-codex.d.ts +13 -0
  57. package/dist/src/adapters/resolve-codex.js +48 -0
  58. package/dist/src/adapters/resolve-codex.js.map +1 -0
  59. package/dist/src/adapters/resolve-gemini.d.ts +13 -0
  60. package/dist/src/adapters/resolve-gemini.js +47 -0
  61. package/dist/src/adapters/resolve-gemini.js.map +1 -0
  62. package/dist/src/adapters/resolve-opencode.d.ts +11 -0
  63. package/dist/src/adapters/resolve-opencode.js +49 -0
  64. package/dist/src/adapters/resolve-opencode.js.map +1 -0
  65. package/dist/src/adapters/resolve-pi.d.ts +13 -0
  66. package/dist/src/adapters/resolve-pi.js +46 -0
  67. package/dist/src/adapters/resolve-pi.js.map +1 -0
  68. package/dist/src/adapters/run-options.d.ts +22 -0
  69. package/dist/src/adapters/run-options.js +48 -0
  70. package/dist/src/adapters/run-options.js.map +1 -0
  71. package/dist/src/adapters/spawn.d.ts +20 -0
  72. package/dist/src/adapters/spawn.js +16 -0
  73. package/dist/src/adapters/spawn.js.map +1 -0
  74. package/dist/src/agents/agent-manager.d.ts +98 -0
  75. package/dist/src/agents/agent-manager.js +433 -0
  76. package/dist/src/agents/agent-manager.js.map +1 -0
  77. package/dist/src/agents/attachments.d.ts +28 -0
  78. package/dist/src/agents/attachments.js +121 -0
  79. package/dist/src/agents/attachments.js.map +1 -0
  80. package/dist/src/bridge-context.d.ts +45 -0
  81. package/dist/src/bridge-context.js +2 -0
  82. package/dist/src/bridge-context.js.map +1 -0
  83. package/dist/src/bridge-status.d.ts +12 -0
  84. package/dist/src/bridge-status.js +17 -0
  85. package/dist/src/bridge-status.js.map +1 -0
  86. package/dist/src/bridge.d.ts +37 -0
  87. package/dist/src/bridge.js +446 -0
  88. package/dist/src/bridge.js.map +1 -0
  89. package/dist/src/cli.d.ts +2 -0
  90. package/dist/src/cli.js +194 -0
  91. package/dist/src/cli.js.map +1 -0
  92. package/dist/src/conversation/session-history.d.ts +27 -0
  93. package/dist/src/conversation/session-history.js +1082 -0
  94. package/dist/src/conversation/session-history.js.map +1 -0
  95. package/dist/src/conversation/thread-store.d.ts +74 -0
  96. package/dist/src/conversation/thread-store.js +366 -0
  97. package/dist/src/conversation/thread-store.js.map +1 -0
  98. package/dist/src/daemon-config.d.ts +123 -0
  99. package/dist/src/daemon-config.js +64 -0
  100. package/dist/src/daemon-config.js.map +1 -0
  101. package/dist/src/daemon-state.d.ts +27 -0
  102. package/dist/src/daemon-state.js +76 -0
  103. package/dist/src/daemon-state.js.map +1 -0
  104. package/dist/src/git/git-runner.d.ts +24 -0
  105. package/dist/src/git/git-runner.js +63 -0
  106. package/dist/src/git/git-runner.js.map +1 -0
  107. package/dist/src/git/git-service.d.ts +76 -0
  108. package/dist/src/git/git-service.js +435 -0
  109. package/dist/src/git/git-service.js.map +1 -0
  110. package/dist/src/handler-router.d.ts +34 -0
  111. package/dist/src/handler-router.js +67 -0
  112. package/dist/src/handler-router.js.map +1 -0
  113. package/dist/src/handlers/account-handler.d.ts +4 -0
  114. package/dist/src/handlers/account-handler.js +27 -0
  115. package/dist/src/handlers/account-handler.js.map +1 -0
  116. package/dist/src/handlers/agent-handler.d.ts +2 -0
  117. package/dist/src/handlers/agent-handler.js +8 -0
  118. package/dist/src/handlers/agent-handler.js.map +1 -0
  119. package/dist/src/handlers/bridge-control-handler.d.ts +2 -0
  120. package/dist/src/handlers/bridge-control-handler.js +64 -0
  121. package/dist/src/handlers/bridge-control-handler.js.map +1 -0
  122. package/dist/src/handlers/desktop-handler.d.ts +12 -0
  123. package/dist/src/handlers/desktop-handler.js +5 -0
  124. package/dist/src/handlers/desktop-handler.js.map +1 -0
  125. package/dist/src/handlers/git-handler.d.ts +2 -0
  126. package/dist/src/handlers/git-handler.js +82 -0
  127. package/dist/src/handlers/git-handler.js.map +1 -0
  128. package/dist/src/handlers/index.d.ts +8 -0
  129. package/dist/src/handlers/index.js +22 -0
  130. package/dist/src/handlers/index.js.map +1 -0
  131. package/dist/src/handlers/not-implemented.d.ts +10 -0
  132. package/dist/src/handlers/not-implemented.js +21 -0
  133. package/dist/src/handlers/not-implemented.js.map +1 -0
  134. package/dist/src/handlers/notifications-handler.d.ts +2 -0
  135. package/dist/src/handlers/notifications-handler.js +62 -0
  136. package/dist/src/handlers/notifications-handler.js.map +1 -0
  137. package/dist/src/handlers/params.d.ts +11 -0
  138. package/dist/src/handlers/params.js +72 -0
  139. package/dist/src/handlers/params.js.map +1 -0
  140. package/dist/src/handlers/project-handler.d.ts +2 -0
  141. package/dist/src/handlers/project-handler.js +6 -0
  142. package/dist/src/handlers/project-handler.js.map +1 -0
  143. package/dist/src/handlers/thread-context-handler.d.ts +2 -0
  144. package/dist/src/handlers/thread-context-handler.js +211 -0
  145. package/dist/src/handlers/thread-context-handler.js.map +1 -0
  146. package/dist/src/handlers/workspace-handler.d.ts +2 -0
  147. package/dist/src/handlers/workspace-handler.js +101 -0
  148. package/dist/src/handlers/workspace-handler.js.map +1 -0
  149. package/dist/src/hooks/claude-approval-hook.d.ts +7 -0
  150. package/dist/src/hooks/claude-approval-hook.js +95 -0
  151. package/dist/src/hooks/claude-approval-hook.js.map +1 -0
  152. package/dist/src/hooks/gemini-approval-hook.d.ts +7 -0
  153. package/dist/src/hooks/gemini-approval-hook.js +113 -0
  154. package/dist/src/hooks/gemini-approval-hook.js.map +1 -0
  155. package/dist/src/index.d.ts +62 -0
  156. package/dist/src/index.js +65 -0
  157. package/dist/src/index.js.map +1 -0
  158. package/dist/src/keyring-secret-store.d.ts +36 -0
  159. package/dist/src/keyring-secret-store.js +70 -0
  160. package/dist/src/keyring-secret-store.js.map +1 -0
  161. package/dist/src/lock-file.d.ts +18 -0
  162. package/dist/src/lock-file.js +60 -0
  163. package/dist/src/lock-file.js.map +1 -0
  164. package/dist/src/logger.d.ts +28 -0
  165. package/dist/src/logger.js +99 -0
  166. package/dist/src/logger.js.map +1 -0
  167. package/dist/src/pairing/pairing-code-service.d.ts +45 -0
  168. package/dist/src/pairing/pairing-code-service.js +183 -0
  169. package/dist/src/pairing/pairing-code-service.js.map +1 -0
  170. package/dist/src/projects/project-registry.d.ts +14 -0
  171. package/dist/src/projects/project-registry.js +60 -0
  172. package/dist/src/projects/project-registry.js.map +1 -0
  173. package/dist/src/push/push-sender.d.ts +21 -0
  174. package/dist/src/push/push-sender.js +96 -0
  175. package/dist/src/push/push-sender.js.map +1 -0
  176. package/dist/src/push/push-service.d.ts +122 -0
  177. package/dist/src/push/push-service.js +260 -0
  178. package/dist/src/push/push-service.js.map +1 -0
  179. package/dist/src/qr.d.ts +17 -0
  180. package/dist/src/qr.js +31 -0
  181. package/dist/src/qr.js.map +1 -0
  182. package/dist/src/secret-store.d.ts +23 -0
  183. package/dist/src/secret-store.js +27 -0
  184. package/dist/src/secret-store.js.map +1 -0
  185. package/dist/src/secure-device-state.d.ts +16 -0
  186. package/dist/src/secure-device-state.js +63 -0
  187. package/dist/src/secure-device-state.js.map +1 -0
  188. package/dist/src/service-installer.d.ts +57 -0
  189. package/dist/src/service-installer.js +254 -0
  190. package/dist/src/service-installer.js.map +1 -0
  191. package/dist/src/session-state.d.ts +14 -0
  192. package/dist/src/session-state.js +19 -0
  193. package/dist/src/session-state.js.map +1 -0
  194. package/dist/src/transport/crypto.d.ts +43 -0
  195. package/dist/src/transport/crypto.js +78 -0
  196. package/dist/src/transport/crypto.js.map +1 -0
  197. package/dist/src/transport/lan-server.d.ts +33 -0
  198. package/dist/src/transport/lan-server.js +105 -0
  199. package/dist/src/transport/lan-server.js.map +1 -0
  200. package/dist/src/transport/local-hosts.d.ts +17 -0
  201. package/dist/src/transport/local-hosts.js +30 -0
  202. package/dist/src/transport/local-hosts.js.map +1 -0
  203. package/dist/src/transport/mdns-advertiser.d.ts +83 -0
  204. package/dist/src/transport/mdns-advertiser.js +282 -0
  205. package/dist/src/transport/mdns-advertiser.js.map +1 -0
  206. package/dist/src/transport/message-io.d.ts +33 -0
  207. package/dist/src/transport/message-io.js +87 -0
  208. package/dist/src/transport/message-io.js.map +1 -0
  209. package/dist/src/transport/outbound-log.d.ts +24 -0
  210. package/dist/src/transport/outbound-log.js +78 -0
  211. package/dist/src/transport/outbound-log.js.map +1 -0
  212. package/dist/src/transport/relay-client.d.ts +19 -0
  213. package/dist/src/transport/relay-client.js +27 -0
  214. package/dist/src/transport/relay-client.js.map +1 -0
  215. package/dist/src/transport/secure-channel.d.ts +33 -0
  216. package/dist/src/transport/secure-channel.js +81 -0
  217. package/dist/src/transport/secure-channel.js.map +1 -0
  218. package/dist/src/transport/server-handshake.d.ts +49 -0
  219. package/dist/src/transport/server-handshake.js +137 -0
  220. package/dist/src/transport/server-handshake.js.map +1 -0
  221. package/dist/src/transport/session-handler.d.ts +19 -0
  222. package/dist/src/transport/session-handler.js +134 -0
  223. package/dist/src/transport/session-handler.js.map +1 -0
  224. package/dist/src/transport/session-registry.d.ts +58 -0
  225. package/dist/src/transport/session-registry.js +91 -0
  226. package/dist/src/transport/session-registry.js.map +1 -0
  227. package/dist/src/transport/trust-store.d.ts +23 -0
  228. package/dist/src/transport/trust-store.js +33 -0
  229. package/dist/src/transport/trust-store.js.map +1 -0
  230. package/dist/src/transport/ws-adapter.d.ts +7 -0
  231. package/dist/src/transport/ws-adapter.js +16 -0
  232. package/dist/src/transport/ws-adapter.js.map +1 -0
  233. package/dist/src/version.d.ts +1 -0
  234. package/dist/src/version.js +13 -0
  235. package/dist/src/version.js.map +1 -0
  236. package/dist/src/workspace/browse-service.d.ts +10 -0
  237. package/dist/src/workspace/browse-service.js +97 -0
  238. package/dist/src/workspace/browse-service.js.map +1 -0
  239. package/dist/src/workspace/checkpoint-service.d.ts +21 -0
  240. package/dist/src/workspace/checkpoint-service.js +219 -0
  241. package/dist/src/workspace/checkpoint-service.js.map +1 -0
  242. package/dist/src/workspace/path-guard.d.ts +7 -0
  243. package/dist/src/workspace/path-guard.js +51 -0
  244. package/dist/src/workspace/path-guard.js.map +1 -0
  245. package/dist/src/workspace/workspace-service.d.ts +8 -0
  246. package/dist/src/workspace/workspace-service.js +111 -0
  247. package/dist/src/workspace/workspace-service.js.map +1 -0
  248. package/package.json +46 -0
  249. package/scripts/extract-gemini-hook.mjs +16 -0
  250. package/scripts/fake-approval-bridge.mjs +23 -0
  251. package/scripts/install-service-linux.sh +38 -0
  252. package/scripts/install-service-macos.sh +38 -0
  253. package/scripts/install-service-windows.ps1 +26 -0
  254. package/scripts/test-gemini-hook-e2e.mjs +168 -0
  255. package/scripts/write-gemini-settings.mjs +31 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-adapter.js","sourceRoot":"","sources":["../../../src/adapters/codex-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAU3C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,GAGhB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAwB,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EACL,YAAY,EACZ,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE9F,MAAM,kBAAkB,GAAsB;IAC5C,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,IAAI;IACZ,mBAAmB,EAAE,IAAI;CAC1B,CAAC;AAmBF;;;;;;GAMG;AACH,SAAS,oBAAoB,CAAC,IAAyB;IAIrD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS;YACZ,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QAC/D,KAAK,aAAa;YAChB,8DAA8D;YAC9D,4DAA4D;YAC5D,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;QACjE,KAAK,mBAAmB;YACtB,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;QACpE,KAAK,aAAa;YAChB,8DAA8D;YAC9D,gDAAgD;YAChD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;IACxE,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAEnC,uFAAuF;AACvF,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,wBAAwB,GAAqB,eAAe,CAChE,YAAY,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CACjD,CAAC;AAuEF;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,MAAM,KAAK,GAAG,CAAC,GAAW,EAAU,EAAE,CACpC,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,KAAK,CAAC,GAAG,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAChG,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAAC,UAAkB,EAAE,WAAqB;IACtE,OAAO,GAAG,EAAE;QACV,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,GAAG,WAAW,EAAE,YAAY,CAAC,EAAE;YAC9D,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QACD,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,CAAC,EAAiC,EAAE,EAAE;gBAC7C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACxB,CAAC;YACD,IAAI,EAAE,GAAG,EAAE;gBACT,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,YAAa,SAAQ,gBAAgB;IACvC,OAAO,GAAY,OAAO,CAAC;IAC3B,YAAY,GAAG,kBAAkB,CAAC;IAElC,WAAW,CAAS;IACpB,YAAY,CAAW;IACvB,aAAa,CAAqB;IAClC,eAAe,CAAsB;IACrC,kBAAkB,CAA2C;IAC7D,eAAe,CAAyB;IACjD,qFAAqF;IAC5E,qBAAqB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3D,yDAAyD;IAChD,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;IAChD,2EAA2E;IAClE,qBAAqB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3D,cAAc,GAAG,KAAK,CAAC;IACvB,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC5B,qEAAqE;IACrE,IAAI,GAA6B,IAAI,CAAC;IACtC,cAAc,GAAsC,IAAI,CAAC;IACzD;kFAC8E;IAC9E,iBAAiB,GAAG,IAAI,GAAG,EAAoE,CAAC;IAChG,YAAY,GAAG,CAAC,CAAC;IAEjB,8EAA8E;IAC9E,eAAe,CAAC,QAAgB;QAC9B,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,YAAY,UAA+B,EAAE;QAC3C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC;QACjD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;QAC1C,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,cAAc,IAAI,aAAa,CAAC;QAC/D,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACpD,IAAI,CAAC,eAAe;YAClB,OAAO,CAAC,cAAc,IAAI,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACzF,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,MAAmB;QACvB,IAAI,MAAM,CAAC,GAAG;YAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC;QAC9C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACP,iBAAiB;YACnB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAwB;QACrC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC;QAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC;QACpD,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAE/E,uEAAuE;QACvE,yEAAyE;QACzE,IAAI,GAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,YAAY;gBAClB,QAAQ;gBACR,MAAM;gBACN,IAAI,EAAE,EAAE,IAAI,EAAE,qCAAqC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE;aACzE,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,0EAA0E;QAC1E,wCAAwC;QACxC,IAAI,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAC/B,cAAc,EACd;oBACE,KAAK;oBACL,GAAG;oBACH,cAAc;oBACd,OAAO;oBACP,GAAG,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAClD,CACF,CAAC;gBACF,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;YAC1D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,YAAY;oBAClB,QAAQ;oBACR,MAAM;oBACN,IAAI,EAAE,EAAE,IAAI,EAAE,8BAA8B,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE;iBAClE,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,gCAAgC;QAChC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE;YACvB,YAAY,EAAE,MAAM;YACpB,WAAW,EAAE,IAAI;YACjB,QAAQ;YACR,aAAa,EAAE,EAAE;YACjB,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,CAAC,CAAC;QACH,0EAA0E;QAC1E,sCAAsC;QACtC,KAAK,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAEtD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,OAAO,CAA2B,YAAY,EAAE;gBACzE,QAAQ,EAAE,aAAa;gBACvB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBAC/B,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/C,GAAG,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAClD,CAAC,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,GAAG;gBAAE,GAAG,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,YAAY;gBAClB,QAAQ;gBACR,MAAM;gBACN,IAAI,EAAE,EAAE,IAAI,EAAE,4BAA4B,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE;aAChE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,MAAc;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAc;QACjC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO;QACvB,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACrB,mEAAmE;YACnE,iEAAiE;YACjE,8BAA8B;YAC9B,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;YACtF,OAAO;QACT,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;gBACxC,QAAQ,EAAE,aAAa;gBACvB,MAAM,EAAE,GAAG,CAAC,WAAW;aACxB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,+DAA+D;QACjE,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,6EAA6E;IAC7E,gBAAgB;QACd,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC,cAAc,CAAC;QACpD,IAAI,CAAC,cAAc,GAAG,CAAC,KAAK,IAAI,EAAE;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAC/B;gBACE,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE;aAC5C,EACD;gBACE,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC;gBACxE,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC;aAC3E,CACF,CAAC;YACF,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACvB,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE;oBAC9B,UAAU,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;iBACpE,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,KAAK,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;YAChB,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,MAAM,GAAG,CAAC;QACZ,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,8EAA8E;IAC9E,qBAAqB;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,MAAM,EAAE,GAAG,CAAC,YAAY;gBACxB,IAAI,EAAE,EAAE,IAAI,EAAE,8CAA8C,EAAE;aAC/D,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,KAAK,MAAM,UAAU,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC5D,oEAAoE;YACpE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,MAAe;QACnD,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,cAAc;gBACjB,8DAA8D;gBAC9D,mEAAmE;gBACnE,4BAA4B;gBAC5B,OAAO;YACT,KAAK,yBAAyB,CAAC,CAAC,CAAC;gBAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,IAAI,KAAK;oBAAE,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBACrC,OAAO;YACT,CAAC;YACD,KAAK,iCAAiC,CAAC;YACvC,KAAK,0BAA0B,CAAC,CAAC,CAAC;gBAChC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,IAAI,KAAK;oBAAE,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBACxC,OAAO;YACT,CAAC;YACD,KAAK,mCAAmC;gBACtC,kEAAkE;gBAClE,qEAAqE;gBACrE,8CAA8C;gBAC9C,OAAO;YACT,KAAK,cAAc;gBACjB,+DAA+D;gBAC/D,qCAAqC;gBACrC,OAAO;YACT,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACzD,IAAI,IAAI;oBAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAC5C,OAAO;YACT,CAAC;YACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACzD,IAAI,IAAI;oBAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAC5C,OAAO;YACT,CAAC;YACD,KAAK,mBAAmB;gBACtB,mEAAmE;gBACnE,4DAA4D;gBAC5D,mEAAmE;gBACnE,iBAAiB;gBACjB,OAAO;YACT,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,+DAA+D;gBAC/D,gEAAgE;gBAChE,0BAA0B;gBAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC;gBAC3F,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;gBACtC,OAAO;YACT,CAAC;YACD;gBACE,iEAAiE;gBACjE,2CAA2C;gBAC3C,OAAO;QACX,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,KAAK,CAAC,gBAAgB,CAAC,IAA6B;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,oEAAoE;gBACpE,kDAAkD;gBAClD,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAI,CAAC,MAAM,CAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9E,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;gBACzB,OAAO;YACT,CAAC;YACD,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,qEAAqE;gBACrE,gEAAgE;gBAChE,YAAY;gBACZ,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBACtC,IAAI,IAAI;oBACN,IAAI,CAAC,IAAI,CAAC;wBACR,IAAI,EAAE,UAAU;wBAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,MAAM,EAAE,GAAG,CAAC,YAAY;wBACxB,IAAI,EAAE,EAAE,IAAI,EAAE;qBACf,CAAC,CAAC;gBACL,OAAO;YACT,CAAC;YACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,IAAI,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC;gBACxF,MAAM,MAAM,GACV,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAI,CAAC,kBAAkB,CAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3F,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAI,CAAC,SAAS,CAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvF,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC,IAAI,CAAC;wBACR,IAAI,EAAE,OAAO;wBACb,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,MAAM,EAAE,GAAG,CAAC,YAAY;wBACxB,IAAI,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;qBAC1D,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO;YACT,CAAC;YACD,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC5C,CAAC,CAAE,IAAI,CAAC,SAAS,CAA+B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACzD,IAAI,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,MAAM,CAAY,CAAC,CAAC,CAAC,EAAE;wBAChE,IAAI,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,MAAM,CAAY,CAAC,CAAC,CAAC,EAAE;wBAChE,IAAI,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,MAAM,CAAY,CAAC,CAAC,CAAC,EAAE;qBACjE,CAAC,CAAC;oBACL,CAAC,CAAC,EAAE,CAAC;gBACP,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;wBACtC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI;wBACxD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;oBAChB,+DAA+D;oBAC/D,mEAAmE;oBACnE,oDAAoD;oBACpD,IAAI,OAA4C,CAAC;oBACjD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtE,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBAChD,CAAC;yBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBACpC,IAAI,CAAC;4BACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE;gCAChD,MAAM;gCACN,MAAM;gCACN,IAAI;gCACJ,MAAM,CAAC,IAAI;6BACZ,CAAC,CAAC;4BACH,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;gCAAE,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;wBACzE,CAAC;wBAAC,MAAM,CAAC;4BACP,8BAA8B;wBAChC,CAAC;wBACD,IAAI,CAAC,OAAO,EAAE,CAAC;4BACb,IAAI,CAAC;gCACH,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;4BACvE,CAAC;4BAAC,MAAM,CAAC;gCACP,gBAAgB;4BAClB,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,OAAO,KAAK,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACzC,IAAI,CAAC,IAAI,CAAC;wBACR,IAAI,EAAE,OAAO;wBACb,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,MAAM,EAAE,GAAG,CAAC,YAAY;wBACxB,IAAI,EAAE,EAAE,OAAO,EAAE;qBAClB,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO;YACT,CAAC;YACD,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAI,CAAC,MAAM,CAAY,CAAC,CAAC,CAAC,MAAM,CAAC;gBAClF,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAI,CAAC,QAAQ,CAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpF,IAAI,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,MAAM,EAAE,GAAG,CAAC,YAAY;oBACxB,IAAI,EAAE;wBACJ,OAAO,EAAE,SAAS,CAChB,IAAI,EACJ,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAI,CAAC,IAAI,CAAY,CAAC,CAAC,CAAC,EAAE,EAC5D,EAAE,EACF,MAAM,EACN,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAC5B;qBACF;iBACF,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,KAAK,WAAW,CAAC;YACjB,KAAK,mBAAmB,CAAC;YACzB,KAAK,MAAM,CAAC;YACZ,KAAK,aAAa,CAAC;YACnB,KAAK,mBAAmB,CAAC;YACzB,KAAK,kBAAkB;gBACrB,mEAAmE;gBACnE,gEAAgE;gBAChE,+DAA+D;gBAC/D,kBAAkB;gBAClB,OAAO;YACT;gBACE,OAAO;QACX,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,KAAK,CAAC,gBAAgB,CAAC,IAA6B;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAI,CAAC,QAAQ,CAAY,CAAC,CAAC,CAAC,WAAW,CAAC;QAC7F,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACtC,IAAI,MAAM,KAAK,QAAQ,IAAI,KAAK,EAAE,CAAC;YACjC,MAAM,OAAO,GACX,KAAK,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ;gBAC3C,CAAC,CAAE,KAAK,CAAC,SAAS,CAAY;gBAC9B,CAAC,CAAC,mBAAmB,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,MAAM,EAAE,GAAG,CAAC,YAAY;gBACxB,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;aACxB,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,aAAa,GACjB,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClF,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,MAAM,EAAE,GAAG,CAAC,YAAY;YACxB,IAAI,EAAE;gBACJ,IAAI,EAAE,GAAG,CAAC,aAAa;gBACvB,GAAG,CAAC,MAAM,KAAK,SAAS;oBACtB,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBAClF,CAAC,CAAC,EAAE,CAAC;aACR;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,UAAU;QACR,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YAAE,OAAO,GAAG,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uEAAuE;IACvE,WAAW;QACT,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,sEAAsE;YACtE,mEAAmE;YACnE,OAAO;gBACL,MAAM,EAAE,GAAG,CAAC,YAAY;gBACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,GAAG,EAAE,IAAI,CAAC,WAAW;gBACrB,aAAa,EAAE,GAAG,CAAC,aAAa;aACjC,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,EAA2B,EAAE,KAAa;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/B,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAClG,CAAC;IAED,aAAa,CAAC,EAA2B,EAAE,KAAa;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/B,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,uBAAuB,CAAC,OAAe;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/B,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;SACxB,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAAc,EAAE,MAAe;QACpD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,mEAAmE;YACnE,uDAAuD;YACvD,MAAM,IAAI,QAAQ,CAAC,CAAC,KAAK,EAAE,oCAAoC,MAAM,mBAAmB,CAAC,CAAC;QAC5F,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,cAAc,CAClB,KAA2F;QAE3F,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,oEAAoE;YACpE,yDAAyD;YACzD,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,UAAU,GAAG,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC;QACrE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE;YACrC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,eAAe,EAAE,KAAK,CAAC,eAAe;SACvC,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;gBAClC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC;gBACvD,IAAI,OAAO,CAAmB,CAAC,OAAO,EAAE,EAAE,CACxC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC,CACzD;aACF,CAAC,CAAC;YACH,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjE,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,UAAU;QACR,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,KAAgD,CAAC;YACrD,MAAM,MAAM,GAAG,CAAC,MAAoB,EAAQ,EAAE;gBAC5C,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,IAAI,KAAK;oBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC/B,IAAI,CAAC;oBACH,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,CAAC;gBAAC,MAAM,CAAC;oBACP,kBAAkB;gBACpB,CAAC;gBACD,mEAAmE;gBACnE,qEAAqE;gBACrE,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;YACjE,CAAC,CAAC;YAEF,IAAI,OAAyB,CAAC;YAC9B,IAAI,CAAC;gBACH,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACnC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;gBAClC,OAAO;YACT,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAC/B,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EAChD,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAChE,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,CAC5C,CAAC;YACF,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YAE7C,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,qBAAqB,CAAC,CAAC;YAC5D,GAAG;iBACA,OAAO,CAAC,YAAY,EAAE;gBACrB,UAAU,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;aACpE,CAAC;iBACD,IAAI,CAAC,GAAG,EAAE,CACT,GAAG,CAAC,OAAO,CAAoB,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC5D,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACxC,CAAC,CAAC,CACH;iBACA,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qEAAqE;IACrE,iBAAiB;QACf,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;YACtD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO,EAAE,CAAC;YACjC,OAAO,WAAW,CAAC,sBAAsB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE;gBACtE,wBAAwB;aACzB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,mBAAmB;QACjB,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAClD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;YAC5D,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,sBAAsB,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;oBAC9E,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,mDAAmD;QACrD,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3F,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QAC/B,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,MAAM,MAAM,GACV,OAAO,KAAK,CAAC,gBAAgB,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,IAAI,IAAI,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,cAAc,CAAC,CAAS;IAC/B,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAa;IAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,GAAG,GAAiB,EAAE,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QAC/B,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI;YAAE,SAAS;QACvC,MAAM,EAAE,GACN,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ;YAC7B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YACb,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ;gBAClC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;gBAChB,CAAC,CAAC,SAAS,CAAC;QAClB,IAAI,CAAC,EAAE;YAAE,SAAS;QAClB,MAAM,WAAW,GACf,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC;YACzE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;YACtB,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,WAAW,GACf,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC;YACzE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;YACtB,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,OAAO,GAAG,mBAAmB,CACjC,KAAK,CAAC,2BAA2B,CAAC,EAClC,KAAK,CAAC,wBAAwB,CAAC,CAChC,CAAC;QACF,GAAG,CAAC,IAAI,CAAC;YACP,EAAE;YACF,WAAW;YACX,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI;YACtC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3C,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAY,EAAE,aAAsB;IACtE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,MAAM,KAAK,GACT,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,iBAAiB,CAAC,KAAK,QAAQ;YAC7D,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;YAC1B,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,GAAG,GACP,OAAO,aAAa,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,eAAmC,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,MAAM,EAAE,GAAG,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,IAAI,OAAO,KAAK,EAAE,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YACjE,IAAI,KAAK,EAAE,CAAC;gBACV,eAAe,GAAG,KAAK,CAAC;gBACxB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,KAAK,4BAA4B,EAAE,CAAC;YACpD,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CACjB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,eAAe,EAAE,CAAsB,CAC1F,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,GAAY;IAChC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,74 @@
1
+ import type { Readable, Writable } from 'node:stream';
2
+ export type RpcId = number | string;
3
+ export interface JsonRpcRequest {
4
+ jsonrpc: '2.0';
5
+ id: RpcId;
6
+ method: string;
7
+ params?: unknown;
8
+ }
9
+ export interface JsonRpcNotification {
10
+ jsonrpc: '2.0';
11
+ method: string;
12
+ params?: unknown;
13
+ }
14
+ export interface JsonRpcResponseSuccess {
15
+ jsonrpc: '2.0';
16
+ id: RpcId;
17
+ result: unknown;
18
+ }
19
+ export interface JsonRpcResponseError {
20
+ jsonrpc: '2.0';
21
+ id: RpcId;
22
+ error: {
23
+ code: number;
24
+ message: string;
25
+ data?: unknown;
26
+ };
27
+ }
28
+ export type JsonRpcResponse = JsonRpcResponseSuccess | JsonRpcResponseError;
29
+ /** A one-way notification from the server (no `id`, no reply expected). */
30
+ export type ServerNotificationHandler = (method: string, params: unknown) => void;
31
+ /**
32
+ * A server-initiated REQUEST (has `id` + `method`) — we MUST reply. The handler
33
+ * returns the `result` payload (or throws an `RpcError`, see below).
34
+ */
35
+ export type ServerRequestHandler = (method: string, params: unknown) => Promise<unknown> | unknown;
36
+ export declare class RpcError extends Error {
37
+ readonly code: number;
38
+ readonly data: unknown;
39
+ constructor(code: number, message: string, data?: unknown);
40
+ }
41
+ export interface CodexAppServerRpcOptions {
42
+ /** Per-request timeout in ms (default 60s). Pass 0 to disable. */
43
+ requestTimeoutMs?: number;
44
+ /** Extra `id` offset so multiple clients in the same process don't collide. */
45
+ idStart?: number;
46
+ }
47
+ /**
48
+ * Thin NDJSON JSON-RPC 2.0 client bound to a single child process's stdio.
49
+ * Not thread-safe; intended for use from a single async context (one adapter).
50
+ */
51
+ export declare class CodexAppServerRpc {
52
+ #private;
53
+ constructor(streams: {
54
+ stdin: Writable;
55
+ stdout: Readable;
56
+ onClose?: (code: number | null) => void;
57
+ }, handlers: {
58
+ onNotification: ServerNotificationHandler;
59
+ onServerRequest: ServerRequestHandler;
60
+ }, options?: CodexAppServerRpcOptions);
61
+ /** Send a request and await the server's response. Throws on timeout / error. */
62
+ request<T = unknown>(method: string, params?: unknown, timeoutMs?: number): Promise<T>;
63
+ /** Send a one-way notification (no `id`, no reply). */
64
+ notify(method: string, params?: unknown): void;
65
+ /** Send a reply to a server-initiated request. */
66
+ reply(id: RpcId, result: unknown): void;
67
+ /** Send an error reply to a server-initiated request. */
68
+ replyError(id: RpcId, code: number, message: string, data?: unknown): void;
69
+ /** Reject every pending request and stop reading. Idempotent. */
70
+ close(): void;
71
+ get closed(): boolean;
72
+ /** Called by the owner when the child process emits `close`. */
73
+ onProcessClose(code: number | null): void;
74
+ }
@@ -0,0 +1,225 @@
1
+ /**
2
+ * Minimal JSON-RPC 2.0 client over newline-delimited stdio, used to talk to
3
+ * `codex app-server`.
4
+ *
5
+ * Why a custom client (no deps): the bridge already has a one-line
6
+ * `createInterface({ input })` reader per adapter and only needs request
7
+ * correlation, server-request routing, and clean shutdown. The protocol
8
+ * surface is small and stable.
9
+ *
10
+ * Lifecycle:
11
+ * const proc = spawn(...);
12
+ * const rpc = new CodexAppServerRpc(proc, handlers);
13
+ * await rpc.request('initialize', { ... }); // request → response
14
+ * rpc.onNotification((notif) => { ... }); // one-way server→client
15
+ * rpc.onServerRequest(async (method, params, id) => …)// server requests a reply
16
+ * await rpc.close(); // graceful shutdown
17
+ *
18
+ * Resilience:
19
+ * - A pending request is rejected when the process closes (so callers can fail
20
+ * fast instead of hanging on a 60s timeout).
21
+ * - A default per-request timeout (60s) catches hung requests; model listing
22
+ * uses its own shorter timeout because it's known to be fast.
23
+ * - Late responses (after the caller already moved on) are dropped, not
24
+ * surfaced.
25
+ */
26
+ import { createInterface } from 'node:readline';
27
+ export class RpcError extends Error {
28
+ code;
29
+ data;
30
+ constructor(code, message, data) {
31
+ super(message);
32
+ this.name = 'RpcError';
33
+ this.code = code;
34
+ this.data = data;
35
+ }
36
+ }
37
+ /**
38
+ * Thin NDJSON JSON-RPC 2.0 client bound to a single child process's stdio.
39
+ * Not thread-safe; intended for use from a single async context (one adapter).
40
+ */
41
+ export class CodexAppServerRpc {
42
+ #stdin;
43
+ #stdout;
44
+ #requestTimeoutMs;
45
+ #reader;
46
+ #pending = new Map();
47
+ #onNotification;
48
+ #onServerRequest;
49
+ #nextId;
50
+ /** Closed by `close()` or an EOF on stdout — rejects pending requests. */
51
+ #closed = false;
52
+ #onClose;
53
+ constructor(streams, handlers, options = {}) {
54
+ this.#stdin = streams.stdin;
55
+ this.#stdout = streams.stdout;
56
+ this.#requestTimeoutMs = options.requestTimeoutMs ?? 60_000;
57
+ this.#nextId = options.idStart ?? 1;
58
+ this.#onNotification = handlers.onNotification;
59
+ this.#onServerRequest = handlers.onServerRequest;
60
+ this.#onClose = streams.onClose;
61
+ this.#reader = createInterface({ input: this.#stdout, crlfDelay: Infinity });
62
+ this.#reader.on('line', (line) => {
63
+ void this.#handleLine(line);
64
+ });
65
+ }
66
+ /** Send a request and await the server's response. Throws on timeout / error. */
67
+ request(method, params, timeoutMs) {
68
+ if (this.#closed) {
69
+ return Promise.reject(new Error('rpc: client is closed'));
70
+ }
71
+ const id = this.#nextId++;
72
+ const effectiveTimeout = timeoutMs ?? this.#requestTimeoutMs;
73
+ return new Promise((resolve, reject) => {
74
+ const entry = {
75
+ resolve: (v) => resolve(v),
76
+ reject,
77
+ timer: undefined,
78
+ method,
79
+ };
80
+ if (effectiveTimeout > 0) {
81
+ entry.timer = setTimeout(() => {
82
+ this.#pending.delete(id);
83
+ reject(new RpcError(-32010, `rpc: request '${method}' (id=${id}) timed out after ${effectiveTimeout}ms`));
84
+ }, effectiveTimeout);
85
+ }
86
+ this.#pending.set(id, entry);
87
+ const msg = {
88
+ jsonrpc: '2.0',
89
+ id,
90
+ method,
91
+ ...(params !== undefined ? { params } : {}),
92
+ };
93
+ try {
94
+ this.#stdin.write(`${JSON.stringify(msg)}\n`);
95
+ }
96
+ catch (err) {
97
+ clearTimeout(entry.timer);
98
+ this.#pending.delete(id);
99
+ reject(err);
100
+ }
101
+ });
102
+ }
103
+ /** Send a one-way notification (no `id`, no reply). */
104
+ notify(method, params) {
105
+ if (this.#closed)
106
+ return;
107
+ const msg = {
108
+ jsonrpc: '2.0',
109
+ method,
110
+ ...(params !== undefined ? { params } : {}),
111
+ };
112
+ try {
113
+ this.#stdin.write(`${JSON.stringify(msg)}\n`);
114
+ }
115
+ catch {
116
+ /* pipe closed mid-flight; onClose handler will fire */
117
+ }
118
+ }
119
+ /** Send a reply to a server-initiated request. */
120
+ reply(id, result) {
121
+ this.#write({ jsonrpc: '2.0', id, result });
122
+ }
123
+ /** Send an error reply to a server-initiated request. */
124
+ replyError(id, code, message, data) {
125
+ this.#write({
126
+ jsonrpc: '2.0',
127
+ id,
128
+ error: { code, message, ...(data !== undefined ? { data } : {}) },
129
+ });
130
+ }
131
+ /** Reject every pending request and stop reading. Idempotent. */
132
+ close() {
133
+ if (this.#closed)
134
+ return;
135
+ this.#closed = true;
136
+ for (const [, entry] of this.#pending) {
137
+ if (entry.timer)
138
+ clearTimeout(entry.timer);
139
+ entry.reject(new Error('rpc: client closed'));
140
+ }
141
+ this.#pending.clear();
142
+ try {
143
+ this.#reader.close();
144
+ }
145
+ catch {
146
+ /* already closed */
147
+ }
148
+ }
149
+ get closed() {
150
+ return this.#closed;
151
+ }
152
+ /** Called by the owner when the child process emits `close`. */
153
+ onProcessClose(code) {
154
+ this.#onClose?.(code);
155
+ }
156
+ #write(msg) {
157
+ if (this.#closed)
158
+ return;
159
+ try {
160
+ this.#stdin.write(`${JSON.stringify(msg)}\n`);
161
+ }
162
+ catch {
163
+ /* pipe closed */
164
+ }
165
+ }
166
+ async #handleLine(line) {
167
+ const trimmed = line.trim();
168
+ if (!trimmed)
169
+ return;
170
+ let parsed;
171
+ try {
172
+ parsed = JSON.parse(trimmed);
173
+ }
174
+ catch {
175
+ return;
176
+ }
177
+ if (!isRecord(parsed))
178
+ return;
179
+ // Response (has `id`, no `method`) → resolve a pending request.
180
+ if (parsed['id'] !== undefined && parsed['method'] === undefined) {
181
+ const id = parsed['id'];
182
+ const entry = this.#pending.get(id);
183
+ if (!entry)
184
+ return; // late response
185
+ this.#pending.delete(id);
186
+ if (entry.timer)
187
+ clearTimeout(entry.timer);
188
+ if (isRecord(parsed['error'])) {
189
+ const errObj = parsed['error'];
190
+ entry.reject(new RpcError(typeof errObj['code'] === 'number' ? errObj['code'] : -32000, typeof errObj['message'] === 'string' ? errObj['message'] : 'rpc error', errObj['data']));
191
+ }
192
+ else {
193
+ entry.resolve(parsed['result']);
194
+ }
195
+ return;
196
+ }
197
+ // Server request (has both `id` and `method`) → must reply.
198
+ if (parsed['id'] !== undefined && typeof parsed['method'] === 'string') {
199
+ const id = parsed['id'];
200
+ const method = parsed['method'];
201
+ const params = parsed['params'];
202
+ try {
203
+ const result = await this.#onServerRequest(method, params);
204
+ this.reply(id, result ?? null);
205
+ }
206
+ catch (err) {
207
+ if (err instanceof RpcError) {
208
+ this.replyError(id, err.code, err.message, err.data);
209
+ }
210
+ else {
211
+ this.replyError(id, -32000, err instanceof Error ? err.message : String(err));
212
+ }
213
+ }
214
+ return;
215
+ }
216
+ // Notification (has `method`, no `id`) → one-way.
217
+ if (parsed['method'] === undefined)
218
+ return;
219
+ this.#onNotification(parsed['method'], parsed['params']);
220
+ }
221
+ }
222
+ function isRecord(value) {
223
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
224
+ }
225
+ //# sourceMappingURL=codex-app-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-app-server.js","sourceRoot":"","sources":["../../../src/adapters/codex-app-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Maps the various Codex app-server approval-elicitation shapes onto the
3
+ * bridge's generic approval tool descriptor (`{ toolName, input }`), so the
4
+ * caller can use a single `agentManager.requestApproval(...)` call regardless
5
+ * of which approval type the server sent.
6
+ *
7
+ * Codex has accumulated several approval channel names over the codebasex-cli
8
+ * versions, and the app-server protocol surfaces BOTH the new `v2` names and
9
+ * the legacy ones. Every one of them is routed through this module:
10
+ *
11
+ * v2 (current):
12
+ * - `item/commandExecution/requestApproval` (params: { command, parsedCmd, ... })
13
+ * - `item/fileChange/requestApproval` (params: { fileChanges, grantRoot?, reason? })
14
+ * - `item/permissions/requestApproval` (params: { reason, permissions })
15
+ * - `mcpServer/elicitation/request` (params: { serverName, message, ... })
16
+ * - `item/tool/requestUserInput` (params: { toolName, question, ... })
17
+ *
18
+ * v1 (legacy, still emitted by older `codex-cli` releases):
19
+ * - `execCommandApproval` (params: { command, parsedCmd, ... })
20
+ * - `applyPatchApproval` (params: { fileChanges, grantRoot?, reason? })
21
+ *
22
+ * See `/tmp/codex-schema/ServerRequest.json` for the full schema. The bridge
23
+ * treats them all as a tool to gate; the user replies with one of
24
+ * `approve | reject | approveSession` and the caller maps it back to the
25
+ * right JSON-RPC decision shape for THIS method.
26
+ */
27
+ import type { ApprovalDecision } from '@uxnan/shared';
28
+ /** The bridge's tool descriptor for `AgentManager.requestApproval`. */
29
+ export interface ApprovalDescriptor {
30
+ toolName: string;
31
+ input: Record<string, unknown>;
32
+ /** Optional human-readable one-liner shown as the card's "action" subtitle. */
33
+ detail?: string;
34
+ }
35
+ /** Identify the elicitation shape so the reply can be shaped correctly. */
36
+ export type ApprovalKind =
37
+ /** `item/commandExecution/requestApproval` (v2). */
38
+ 'commandExecution'
39
+ /** `item/fileChange/requestApproval` (v2). */
40
+ | 'fileChange'
41
+ /** `item/permissions/requestApproval` (v2). */
42
+ | 'permissions'
43
+ /** `mcpServer/elicitation/request` (v2 MCP server). */
44
+ | 'mcpElicitation'
45
+ /** `item/tool/requestUserInput` (v2, EXPERIMENTAL — treat as approval). */
46
+ | 'toolUserInput'
47
+ /** Legacy `execCommandApproval` (v1). */
48
+ | 'legacyExecCommand'
49
+ /** Legacy `applyPatchApproval` (v1). */
50
+ | 'legacyApplyPatch';
51
+ /** A pending approval extracted from one server request. */
52
+ export interface PendingCodexApproval {
53
+ kind: ApprovalKind;
54
+ serverRequestId: number | string;
55
+ descriptor: ApprovalDescriptor;
56
+ }
57
+ /** A JSON-RPC reply shape for a given approval kind. */
58
+ export type ApprovalReply = {
59
+ kind: 'approved';
60
+ } | {
61
+ kind: 'approved_for_session';
62
+ } | {
63
+ kind: 'denied';
64
+ } | {
65
+ kind: 'abort';
66
+ } | {
67
+ kind: 'timed_out';
68
+ };
69
+ /**
70
+ * Map a user-facing decision onto the wire reply. `approveSession` becomes
71
+ * `approved_for_session` (Codex caches the approval for the rest of the
72
+ * session), `approve` → `approved`, `reject` → `denied`.
73
+ */
74
+ export declare function decisionToReply(decision: ApprovalDecision): ApprovalReply;
75
+ /**
76
+ * Inspect a server request and pull out the kind + descriptor. Returns
77
+ * `undefined` for methods the bridge does not treat as a gateable approval
78
+ * (e.g. `account/chatgptAuthTokens/refresh` — handled separately).
79
+ */
80
+ export declare function describeServerRequest(method: string, params: unknown, id: number | string): PendingCodexApproval | undefined;
81
+ /**
82
+ * Build the JSON-RPC `result` payload for a given kind + reply. The shape
83
+ * differs per method: the v2 names use `{ decision: ... }` with a
84
+ * `ReviewDecision` oneOf; the v1 names use the SAME `ReviewDecision` oneOf
85
+ * directly. The bridge keeps it simple and only emits the string forms it
86
+ * understands (Codex ignores unknown forms).
87
+ */
88
+ export declare function buildReplyResult(_kind: ApprovalKind, reply: ApprovalReply): Record<string, unknown>;
@@ -0,0 +1,160 @@
1
+ /**
2
+ * Map a user-facing decision onto the wire reply. `approveSession` becomes
3
+ * `approved_for_session` (Codex caches the approval for the rest of the
4
+ * session), `approve` → `approved`, `reject` → `denied`.
5
+ */
6
+ export function decisionToReply(decision) {
7
+ if (decision === 'approveSession')
8
+ return { kind: 'approved_for_session' };
9
+ if (decision === 'reject')
10
+ return { kind: 'denied' };
11
+ return { kind: 'approved' };
12
+ }
13
+ /**
14
+ * Inspect a server request and pull out the kind + descriptor. Returns
15
+ * `undefined` for methods the bridge does not treat as a gateable approval
16
+ * (e.g. `account/chatgptAuthTokens/refresh` — handled separately).
17
+ */
18
+ export function describeServerRequest(method, params, id) {
19
+ switch (method) {
20
+ case 'item/commandExecution/requestApproval':
21
+ return describeCommandExecution(params, id);
22
+ case 'item/fileChange/requestApproval':
23
+ return describeFileChange(params, id);
24
+ case 'item/permissions/requestApproval':
25
+ return describePermissions(params, id);
26
+ case 'mcpServer/elicitation/request':
27
+ return describeMcpElicitation(params, id);
28
+ case 'item/tool/requestUserInput':
29
+ return describeToolUserInput(params, id);
30
+ case 'execCommandApproval':
31
+ return describeLegacyExecCommand(params, id);
32
+ case 'applyPatchApproval':
33
+ return describeLegacyApplyPatch(params, id);
34
+ default:
35
+ return undefined;
36
+ }
37
+ }
38
+ /**
39
+ * Build the JSON-RPC `result` payload for a given kind + reply. The shape
40
+ * differs per method: the v2 names use `{ decision: ... }` with a
41
+ * `ReviewDecision` oneOf; the v1 names use the SAME `ReviewDecision` oneOf
42
+ * directly. The bridge keeps it simple and only emits the string forms it
43
+ * understands (Codex ignores unknown forms).
44
+ */
45
+ export function buildReplyResult(_kind, reply) {
46
+ return { decision: reply.kind };
47
+ }
48
+ function describeCommandExecution(params, id) {
49
+ const p = asRecord(params) ?? {};
50
+ // `command` is a string[] (argv); `parsedCmd` is a best-effort parse.
51
+ const command = Array.isArray(p['command'])
52
+ ? p['command'].filter((c) => typeof c === 'string').join(' ')
53
+ : '';
54
+ const detail = command ||
55
+ (typeof p['reason'] === 'string' ? p['reason'] : 'codex wants to run a command');
56
+ return {
57
+ kind: 'commandExecution',
58
+ serverRequestId: id,
59
+ descriptor: {
60
+ toolName: 'codex.command',
61
+ input: {
62
+ command,
63
+ ...(Array.isArray(p['parsedCmd']) ? { parsedCmd: p['parsedCmd'] } : {}),
64
+ ...(typeof p['cwd'] === 'string' ? { cwd: p['cwd'] } : {}),
65
+ },
66
+ detail,
67
+ },
68
+ };
69
+ }
70
+ function describeFileChange(params, id) {
71
+ const p = asRecord(params) ?? {};
72
+ const fileChanges = asRecord(p['fileChanges']) ?? {};
73
+ const paths = Object.keys(fileChanges);
74
+ const detail = paths.length > 0 ? paths.join(', ') : 'codex wants to edit files';
75
+ return {
76
+ kind: 'fileChange',
77
+ serverRequestId: id,
78
+ descriptor: {
79
+ toolName: 'codex.applyPatch',
80
+ input: { fileChanges, ...(typeof p['reason'] === 'string' ? { reason: p['reason'] } : {}) },
81
+ detail,
82
+ },
83
+ };
84
+ }
85
+ function describePermissions(params, id) {
86
+ const p = asRecord(params) ?? {};
87
+ const reason = typeof p['reason'] === 'string' ? p['reason'] : 'codex wants extra permissions';
88
+ return {
89
+ kind: 'permissions',
90
+ serverRequestId: id,
91
+ descriptor: {
92
+ toolName: 'codex.permissions',
93
+ input: { reason, permissions: p['permissions'] },
94
+ detail: reason,
95
+ },
96
+ };
97
+ }
98
+ function describeMcpElicitation(params, id) {
99
+ const p = asRecord(params) ?? {};
100
+ const serverName = typeof p['serverName'] === 'string' ? p['serverName'] : 'mcp';
101
+ const message = typeof p['message'] === 'string' ? p['message'] : 'mcp server needs input';
102
+ return {
103
+ kind: 'mcpElicitation',
104
+ serverRequestId: id,
105
+ descriptor: {
106
+ toolName: `mcp.${serverName}`,
107
+ input: p,
108
+ detail: message,
109
+ },
110
+ };
111
+ }
112
+ function describeToolUserInput(params, id) {
113
+ const p = asRecord(params) ?? {};
114
+ const toolName = typeof p['toolName'] === 'string' ? p['toolName'] : 'codex tool';
115
+ const question = typeof p['question'] === 'string' ? p['question'] : 'codex needs input';
116
+ return {
117
+ kind: 'toolUserInput',
118
+ serverRequestId: id,
119
+ descriptor: {
120
+ toolName: `codex.${toolName}`,
121
+ input: p,
122
+ detail: question,
123
+ },
124
+ };
125
+ }
126
+ function describeLegacyExecCommand(params, id) {
127
+ const p = asRecord(params) ?? {};
128
+ const command = Array.isArray(p['command'])
129
+ ? p['command'].filter((c) => typeof c === 'string').join(' ')
130
+ : '';
131
+ return {
132
+ kind: 'legacyExecCommand',
133
+ serverRequestId: id,
134
+ descriptor: {
135
+ toolName: 'codex.command',
136
+ input: { command, ...(typeof p['cwd'] === 'string' ? { cwd: p['cwd'] } : {}) },
137
+ detail: command || 'codex wants to run a command',
138
+ },
139
+ };
140
+ }
141
+ function describeLegacyApplyPatch(params, id) {
142
+ const p = asRecord(params) ?? {};
143
+ const fileChanges = asRecord(p['fileChanges']) ?? {};
144
+ const paths = Object.keys(fileChanges);
145
+ return {
146
+ kind: 'legacyApplyPatch',
147
+ serverRequestId: id,
148
+ descriptor: {
149
+ toolName: 'codex.applyPatch',
150
+ input: { fileChanges, ...(typeof p['reason'] === 'string' ? { reason: p['reason'] } : {}) },
151
+ detail: paths.length > 0 ? paths.join(', ') : 'codex wants to edit files',
152
+ },
153
+ };
154
+ }
155
+ function asRecord(value) {
156
+ return typeof value === 'object' && value !== null && !Array.isArray(value)
157
+ ? value
158
+ : undefined;
159
+ }
160
+ //# sourceMappingURL=codex-approval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-approval.js","sourceRoot":"","sources":["../../../src/adapters/codex-approval.ts"],"names":[],"mappings":"AAoEA;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,QAA0B;IACxD,IAAI,QAAQ,KAAK,gBAAgB;QAAE,OAAO,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC;IAC3E,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACrD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAc,EACd,MAAe,EACf,EAAmB;IAEnB,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,uCAAuC;YAC1C,OAAO,wBAAwB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC9C,KAAK,iCAAiC;YACpC,OAAO,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACxC,KAAK,kCAAkC;YACrC,OAAO,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACzC,KAAK,+BAA+B;YAClC,OAAO,sBAAsB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5C,KAAK,4BAA4B;YAC/B,OAAO,qBAAqB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3C,KAAK,qBAAqB;YACxB,OAAO,yBAAyB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC/C,KAAK,oBAAoB;YACvB,OAAO,wBAAwB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC9C;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAmB,EACnB,KAAoB;IAEpB,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAe,EAAE,EAAmB;IACpE,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACjC,sEAAsE;IACtE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC,CAAE,CAAC,CAAC,SAAS,CAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACzF,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,MAAM,GACV,OAAO;QACP,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,QAAQ,CAAY,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC;IAC/F,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,eAAe,EAAE,EAAE;QACnB,UAAU,EAAE;YACV,QAAQ,EAAE,eAAe;YACzB,KAAK,EAAE;gBACL,OAAO;gBACP,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvE,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3D;YACD,MAAM;SACP;KACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAe,EAAE,EAAmB;IAC9D,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACjC,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC;IACjF,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,eAAe,EAAE,EAAE;QACnB,UAAU,EAAE;YACV,QAAQ,EAAE,kBAAkB;YAC5B,KAAK,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;YAC3F,MAAM;SACP;KACF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAe,EAAE,EAAmB;IAC/D,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACjC,MAAM,MAAM,GACV,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,QAAQ,CAAY,CAAC,CAAC,CAAC,+BAA+B,CAAC;IAC9F,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,eAAe,EAAE,EAAE;QACnB,UAAU,EAAE;YACV,QAAQ,EAAE,mBAAmB;YAC7B,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE;YAChD,MAAM,EAAE,MAAM;SACf;KACF,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAe,EAAE,EAAmB;IAClE,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,YAAY,CAAY,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7F,MAAM,OAAO,GACX,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,SAAS,CAAY,CAAC,CAAC,CAAC,wBAAwB,CAAC;IACzF,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,eAAe,EAAE,EAAE;QACnB,UAAU,EAAE;YACV,QAAQ,EAAE,OAAO,UAAU,EAAE;YAC7B,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,OAAO;SAChB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAe,EAAE,EAAmB;IACjE,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,UAAU,CAAY,CAAC,CAAC,CAAC,YAAY,CAAC;IAC9F,MAAM,QAAQ,GACZ,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,UAAU,CAAY,CAAC,CAAC,CAAC,mBAAmB,CAAC;IACtF,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,eAAe,EAAE,EAAE;QACnB,UAAU,EAAE;YACV,QAAQ,EAAE,SAAS,QAAQ,EAAE;YAC7B,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,QAAQ;SACjB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAe,EAAE,EAAmB;IACrE,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC,CAAE,CAAC,CAAC,SAAS,CAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACzF,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,eAAe,EAAE,EAAE;QACnB,UAAU,EAAE;YACV,QAAQ,EAAE,eAAe;YACzB,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;YAC9E,MAAM,EAAE,OAAO,IAAI,8BAA8B;SAClD;KACF,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAe,EAAE,EAAmB;IACpE,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACjC,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvC,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,eAAe,EAAE,EAAE;QACnB,UAAU,EAAE;YACV,QAAQ,EAAE,kBAAkB;YAC5B,KAAK,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;YAC3F,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,2BAA2B;SAC1E;KACF,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzE,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC"}
@@ -0,0 +1,18 @@
1
+ /** The reasoning text of a Codex `reasoning` item (`text` or a `summary` list). */
2
+ export declare function codexReasoningText(item: Record<string, unknown>): string;
3
+ /** A changed path + kind from a Codex `file_change` item. */
4
+ export interface CodexFileChange {
5
+ path: string;
6
+ kind: string;
7
+ }
8
+ /**
9
+ * The changed paths/kinds of a `file_change` item — the adapter reads the files
10
+ * to synthesize a diff (Codex reports only path + kind, not the hunk text).
11
+ */
12
+ export declare function codexFileChanges(item: Record<string, unknown>): CodexFileChange[];
13
+ /**
14
+ * The structured block(s) for a Codex `command_execution` / `mcp_tool_call`
15
+ * item (`file_change` is handled by the adapter so it can read the file
16
+ * content), or `[]` otherwise.
17
+ */
18
+ export declare function codexItemBlocks(item: Record<string, unknown>): Record<string, unknown>[];