@rubytech/create-maxy-code 0.1.482 → 0.1.484

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 (229) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/package-lock.json +271 -1
  3. package/payload/platform/plugins/admin/PLUGIN.md +1 -0
  4. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +54 -21
  5. package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +57 -0
  6. package/payload/platform/plugins/docs/references/admin-ui.md +25 -0
  7. package/payload/platform/plugins/docs/references/google-guide.md +27 -20
  8. package/payload/platform/plugins/docs/references/neo4j.md +1 -0
  9. package/payload/platform/plugins/email/mcp/dist/__tests__/email-draft-send.test.js +76 -2
  10. package/payload/platform/plugins/email/mcp/dist/__tests__/email-draft-send.test.js.map +1 -1
  11. package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts +1 -0
  12. package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts.map +1 -1
  13. package/payload/platform/plugins/email/mcp/dist/lib/imap.js +1 -0
  14. package/payload/platform/plugins/email/mcp/dist/lib/imap.js.map +1 -1
  15. package/payload/platform/plugins/email/mcp/dist/tools/email-draft-send.d.ts.map +1 -1
  16. package/payload/platform/plugins/email/mcp/dist/tools/email-draft-send.js +87 -6
  17. package/payload/platform/plugins/email/mcp/dist/tools/email-draft-send.js.map +1 -1
  18. package/payload/platform/plugins/google/.claude-plugin/plugin.json +1 -1
  19. package/payload/platform/plugins/google/PLUGIN.md +20 -1
  20. package/payload/platform/plugins/google/mcp/dist/__tests__/account-register.test.js +29 -1
  21. package/payload/platform/plugins/google/mcp/dist/__tests__/account-register.test.js.map +1 -1
  22. package/payload/platform/plugins/google/mcp/dist/__tests__/consent-open.test.d.ts +2 -0
  23. package/payload/platform/plugins/google/mcp/dist/__tests__/consent-open.test.d.ts.map +1 -0
  24. package/payload/platform/plugins/google/mcp/dist/__tests__/consent-open.test.js +92 -0
  25. package/payload/platform/plugins/google/mcp/dist/__tests__/consent-open.test.js.map +1 -0
  26. package/payload/platform/plugins/google/mcp/dist/auth/consent-open.d.ts +61 -0
  27. package/payload/platform/plugins/google/mcp/dist/auth/consent-open.d.ts.map +1 -0
  28. package/payload/platform/plugins/google/mcp/dist/auth/consent-open.js +184 -0
  29. package/payload/platform/plugins/google/mcp/dist/auth/consent-open.js.map +1 -0
  30. package/payload/platform/plugins/google/mcp/dist/index.js +65 -2
  31. package/payload/platform/plugins/google/mcp/dist/index.js.map +1 -1
  32. package/payload/platform/plugins/google/mcp/dist/tools/account-register.d.ts +14 -0
  33. package/payload/platform/plugins/google/mcp/dist/tools/account-register.d.ts.map +1 -1
  34. package/payload/platform/plugins/google/mcp/dist/tools/account-register.js +16 -0
  35. package/payload/platform/plugins/google/mcp/dist/tools/account-register.js.map +1 -1
  36. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/typed-edge-schema.test.js +8 -0
  37. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/typed-edge-schema.test.js.map +1 -1
  38. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-schema.d.ts.map +1 -1
  39. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-schema.js +5 -1
  40. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-schema.js.map +1 -1
  41. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.js +10 -0
  42. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.js.map +1 -1
  43. package/payload/platform/plugins/memory/references/schema-knowledge-work.md +2 -1
  44. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts +5 -0
  45. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  46. package/payload/platform/services/claude-session-manager/dist/http-server.js +18 -1
  47. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  48. package/payload/platform/services/claude-session-manager/dist/index.js +8 -0
  49. package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
  50. package/payload/platform/services/claude-session-manager/dist/subagent-injection-tail.d.ts +13 -0
  51. package/payload/platform/services/claude-session-manager/dist/subagent-injection-tail.d.ts.map +1 -0
  52. package/payload/platform/services/claude-session-manager/dist/subagent-injection-tail.js +149 -0
  53. package/payload/platform/services/claude-session-manager/dist/subagent-injection-tail.js.map +1 -0
  54. package/payload/platform/services/telegram-channel/dist/instructions.d.ts.map +1 -1
  55. package/payload/platform/services/telegram-channel/dist/instructions.js +17 -2
  56. package/payload/platform/services/telegram-channel/dist/instructions.js.map +1 -1
  57. package/payload/platform/services/webchat-channel/dist/instructions.d.ts.map +1 -1
  58. package/payload/platform/services/webchat-channel/dist/instructions.js +17 -2
  59. package/payload/platform/services/webchat-channel/dist/instructions.js.map +1 -1
  60. package/payload/platform/services/whatsapp-channel/dist/server.d.ts.map +1 -1
  61. package/payload/platform/services/whatsapp-channel/dist/server.js +16 -2
  62. package/payload/platform/services/whatsapp-channel/dist/server.js.map +1 -1
  63. package/payload/server/public/activity.html +6 -6
  64. package/payload/server/public/assets/{AdminLoginScreens-DXYJWXaX.js → AdminLoginScreens-DF9S5Rca.js} +1 -1
  65. package/payload/server/public/assets/AdminShell-B0PNDCAb.js +2 -0
  66. package/payload/server/public/assets/{Checkbox-C08Ulc_a.js → Checkbox-s5X6dso4.js} +1 -1
  67. package/payload/server/public/assets/activity-BRBsaalV.js +1 -0
  68. package/payload/server/public/assets/admin-rScqRq-R.js +1 -0
  69. package/payload/server/public/assets/{arc-BHXuzTwg.js → arc-D-QzyndF.js} +1 -1
  70. package/payload/server/public/assets/architecture-YZFGNWBL-CGvD4r9F.js +1 -0
  71. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-DsN_vxau.js → architectureDiagram-Q4EWVU46-W7f0Us4S.js} +1 -1
  72. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-CvNat1uB.js → blockDiagram-DXYQGD6D-CfPS4FXg.js} +1 -1
  73. package/payload/server/public/assets/bot-BVO9Uqr_.js +1 -0
  74. package/payload/server/public/assets/browser-BVW4FFii.js +1 -0
  75. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-E9yqTPTW.js → c4Diagram-AHTNJAMY-Dq60cLVI.js} +1 -1
  76. package/payload/server/public/assets/calendar-CWsD3uLk.js +1 -0
  77. package/payload/server/public/assets/channel-Bpg-ADC0.js +1 -0
  78. package/payload/server/public/assets/chat-DKGREuIO.js +1 -0
  79. package/payload/server/public/assets/chevron-down-m581tl1J.js +1 -0
  80. package/payload/server/public/assets/chevron-left-BAY0xfmR.js +1 -0
  81. package/payload/server/public/assets/chevron-right-Dy_REdYZ.js +1 -0
  82. package/payload/server/public/assets/{chunk-2KRD3SAO-DpzI_0EY.js → chunk-2KRD3SAO-CXDjuDN0.js} +1 -1
  83. package/payload/server/public/assets/{chunk-336JU56O-eR_I9Eu4.js → chunk-336JU56O-926ox0tj.js} +2 -2
  84. package/payload/server/public/assets/chunk-426QAEUC-1poG7Nd3.js +1 -0
  85. package/payload/server/public/assets/{chunk-4BX2VUAB-D-6xk1t8.js → chunk-4BX2VUAB-C2nrPCfN.js} +1 -1
  86. package/payload/server/public/assets/{chunk-4TB4RGXK-BkqUcFpL.js → chunk-4TB4RGXK-CuW3FOR6.js} +1 -1
  87. package/payload/server/public/assets/{chunk-55IACEB6-ChCl2pSP.js → chunk-55IACEB6-B4_-In90.js} +1 -1
  88. package/payload/server/public/assets/{chunk-5FUZZQ4R-DasGsg54.js → chunk-5FUZZQ4R-DnYGr9CP.js} +1 -1
  89. package/payload/server/public/assets/{chunk-5PVQY5BW-DXlHUX1h.js → chunk-5PVQY5BW-BYCOi9bf.js} +1 -1
  90. package/payload/server/public/assets/{chunk-67CJDMHE-BZfVpTsE.js → chunk-67CJDMHE-CBxsC4JP.js} +1 -1
  91. package/payload/server/public/assets/{chunk-7N4EOEYR-C6U5TIgT.js → chunk-7N4EOEYR-CAACaqFr.js} +1 -1
  92. package/payload/server/public/assets/{chunk-AA7GKIK3-CA7cVDmw.js → chunk-AA7GKIK3-BoamZdS6.js} +1 -1
  93. package/payload/server/public/assets/{chunk-BSJP7CBP-DxN2GC3p.js → chunk-BSJP7CBP-CHk82eFy.js} +1 -1
  94. package/payload/server/public/assets/{chunk-CIAEETIT-C0-4wA8y.js → chunk-CIAEETIT-DdeW9zxl.js} +1 -1
  95. package/payload/server/public/assets/{chunk-EDXVE4YY--kyb1rLc.js → chunk-EDXVE4YY-DJqSRv2w.js} +1 -1
  96. package/payload/server/public/assets/{chunk-ENJZ2VHE-FBN6hR7V.js → chunk-ENJZ2VHE-BRi4BwM5.js} +1 -1
  97. package/payload/server/public/assets/{chunk-FMBD7UC4-Lpge4M5g.js → chunk-FMBD7UC4-OJp2CtUE.js} +1 -1
  98. package/payload/server/public/assets/{chunk-FOC6F5B3-CM1rwOou.js → chunk-FOC6F5B3-BUAQ6spG.js} +1 -1
  99. package/payload/server/public/assets/{chunk-ICPOFSXX-JdYLY3yu.js → chunk-ICPOFSXX-DeRggD-Q.js} +2 -2
  100. package/payload/server/public/assets/{chunk-K5T4RW27-DCUblGBr.js → chunk-K5T4RW27-EHiXZ8Py.js} +1 -1
  101. package/payload/server/public/assets/{chunk-KGLVRYIC-BP_cide2.js → chunk-KGLVRYIC-tOajPcpn.js} +1 -1
  102. package/payload/server/public/assets/{chunk-LIHQZDEY-DjMa1lOl.js → chunk-LIHQZDEY-uwO6oHIU.js} +1 -1
  103. package/payload/server/public/assets/{chunk-ORNJ4GCN-D51eJAoV.js → chunk-ORNJ4GCN-Dpa1_BCA.js} +1 -1
  104. package/payload/server/public/assets/{chunk-OYMX7WX6-4hWIO544.js → chunk-OYMX7WX6-ChdDqaQL.js} +1 -1
  105. package/payload/server/public/assets/chunk-QZHKN3VN-GN1tIO8J.js +1 -0
  106. package/payload/server/public/assets/{chunk-U2HBQHQK-BwdQf9cS.js → chunk-U2HBQHQK-5JgWosPv.js} +1 -1
  107. package/payload/server/public/assets/{chunk-X2U36JSP-DmDxwLOg.js → chunk-X2U36JSP-BGJqysB2.js} +1 -1
  108. package/payload/server/public/assets/{chunk-XPW4576I-JQyAB7ND.js → chunk-XPW4576I-GERE2ekx.js} +1 -1
  109. package/payload/server/public/assets/{chunk-YZCP3GAM-BonLdCzI.js → chunk-YZCP3GAM-BskqX1V5.js} +1 -1
  110. package/payload/server/public/assets/{chunk-ZZ45TVLE-BXKB2wSk.js → chunk-ZZ45TVLE-DG1iY-L9.js} +1 -1
  111. package/payload/server/public/assets/classDiagram-6PBFFD2Q-DMGVq8Jv.js +1 -0
  112. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-DfddT8UV.js +1 -0
  113. package/payload/server/public/assets/clone-Cc9vFIEk.js +1 -0
  114. package/payload/server/public/assets/{cose-bilkent-S5V4N54A-BDnd4Blw.js → cose-bilkent-S5V4N54A-C8Rl4ykh.js} +1 -1
  115. package/payload/server/public/assets/{dagre-BmexzuER.js → dagre-DTlv-FFy.js} +1 -1
  116. package/payload/server/public/assets/{dagre-KV5264BT-D4WVuwPj.js → dagre-KV5264BT-C0YrJPF3.js} +1 -1
  117. package/payload/server/public/assets/data-TOWuhMFb.js +1 -0
  118. package/payload/server/public/assets/{diagram-5BDNPKRD-Bbf4mT8a.js → diagram-5BDNPKRD-Dfk5oepI.js} +1 -1
  119. package/payload/server/public/assets/{diagram-G4DWMVQ6-BpqVTUmx.js → diagram-G4DWMVQ6-QRj55DiB.js} +1 -1
  120. package/payload/server/public/assets/{diagram-MMDJMWI5-DY-k5k6r.js → diagram-MMDJMWI5-BAPKsohU.js} +1 -1
  121. package/payload/server/public/assets/{diagram-TYMM5635-CXHxwacS.js → diagram-TYMM5635-C3iZXPkC.js} +1 -1
  122. package/payload/server/public/assets/{erDiagram-SMLLAGMA-BNKEc3l8.js → erDiagram-SMLLAGMA-DIbI7g_5.js} +1 -1
  123. package/payload/server/public/assets/{flatten-jn8bZgcI.js → flatten-DlAJeN0L.js} +1 -1
  124. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-CbAeuJsi.js → flowDiagram-DWJPFMVM-l3eJJr8R.js} +1 -1
  125. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-CeeNnL4l.js → ganttDiagram-T4ZO3ILL-aaEzHxIq.js} +1 -1
  126. package/payload/server/public/assets/gitGraph-7Q5UKJZL-DtjXE0UI.js +1 -0
  127. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-DG8RCtfg.js → gitGraphDiagram-UUTBAWPF-Di-1eg_m.js} +1 -1
  128. package/payload/server/public/assets/graph-BEGs_P2m.js +51 -0
  129. package/payload/server/public/assets/{graph-labels-LeIhl7ZG.js → graph-labels-Axa04w8A.js} +1 -1
  130. package/payload/server/public/assets/{graphlib-BkDExPQi.js → graphlib-D5awC2yp.js} +1 -1
  131. package/payload/server/public/assets/info-OMHHGYJF-CmArhGYf.js +1 -0
  132. package/payload/server/public/assets/infoDiagram-42DDH7IO-utWz7oZy.js +2 -0
  133. package/payload/server/public/assets/{isEmpty-Dkk6_L-B.js → isEmpty-Dh1dF-tM.js} +1 -1
  134. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-D_iMHV64.js → ishikawaDiagram-UXIWVN3A-CLOd_cNf.js} +1 -1
  135. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-BvPRpulx.js → journeyDiagram-VCZTEJTY-cGyfW6Tg.js} +1 -1
  136. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-CkWaXWo2.js → kanban-definition-6JOO6SKY-CRTKWPlh.js} +1 -1
  137. package/payload/server/public/assets/{line-BGQT9unx.js → line-B8Brm0TD.js} +1 -1
  138. package/payload/server/public/assets/{linear-DzrYI8-8.js → linear-BHnSKXBe.js} +1 -1
  139. package/payload/server/public/assets/{maximize-2-2MgPSwlx.js → maximize-2-yucCepu_.js} +1 -1
  140. package/payload/server/public/assets/{mermaid-parser.core-DrMY7FMe.js → mermaid-parser.core-BtNpdQct.js} +2 -2
  141. package/payload/server/public/assets/{mermaid.core-BWdf6fZ7.js → mermaid.core-BY87anQZ.js} +3 -3
  142. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-CgqM9h97.js → mindmap-definition-QFDTVHPH-rUSv9qN1.js} +1 -1
  143. package/payload/server/public/assets/operator-911z_Fy_.js +1 -0
  144. package/payload/server/public/assets/{ordinal-DuJYM7p1.js → ordinal-Bnl5GL-x.js} +1 -1
  145. package/payload/server/public/assets/packet-4T2RLAQJ-BTfK0Zw4.js +1 -0
  146. package/payload/server/public/assets/page-6CZ8R57f.js +1 -0
  147. package/payload/server/public/assets/page-CgSgj8Cy.js +32 -0
  148. package/payload/server/public/assets/{pdf-render-riHufgrn.js → pdf-render-CrpAi4Ba.js} +1 -1
  149. package/payload/server/public/assets/pie-ZZUOXDRM-BvtPeMQY.js +1 -0
  150. package/payload/server/public/assets/{pieDiagram-DEJITSTG-BeUGoYS7.js → pieDiagram-DEJITSTG-Cjn9IP-C.js} +1 -1
  151. package/payload/server/public/assets/{public-VtmyYz8E.js → public-BzwveFwz.js} +1 -1
  152. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-CX82WgKy.js → quadrantDiagram-34T5L4WZ-BkSHkSsn.js} +1 -1
  153. package/payload/server/public/assets/radar-PYXPWWZC-D2UXvQgn.js +1 -0
  154. package/payload/server/public/assets/{reduce-COyotL2V.js → reduce-Bp5oNw1n.js} +1 -1
  155. package/payload/server/public/assets/{requirementDiagram-MS252O5E-CzqebQXj.js → requirementDiagram-MS252O5E-hLwgyB-F.js} +1 -1
  156. package/payload/server/public/assets/{rotate-ccw-DaZdB2cz.js → rotate-ccw-BH51cf2Q.js} +1 -1
  157. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-CaHi1yzU.js → sankeyDiagram-XADWPNL6-D6Dl1RIa.js} +1 -1
  158. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-BF2AeiKW.js → sequenceDiagram-FGHM5R23-j0QBqkbL.js} +1 -1
  159. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-DtUCA8Ih.js → stateDiagram-FHFEXIEX-TvEBNsuV.js} +1 -1
  160. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-Ur4eM6rb.js +1 -0
  161. package/payload/server/public/assets/tasks-21egY7A6.js +1 -0
  162. package/payload/server/public/assets/{time-entry-format-TD-PPEIu.js → time-entry-format-DPdGkp1C.js} +1 -1
  163. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-D3Q1YrKY.js → timeline-definition-GMOUNBTQ-BfivOP-j.js} +1 -1
  164. package/payload/server/public/assets/treeView-SZITEDCU-0dE7FvM2.js +1 -0
  165. package/payload/server/public/assets/treemap-W4RFUUIX-BrwlXpr5.js +1 -0
  166. package/payload/server/public/assets/{triangle-alert-BaLhVNnn.js → triangle-alert-DO2rjjfV.js} +1 -1
  167. package/payload/server/public/assets/useCopyFeedback-HMSM7-Ir.js +1 -0
  168. package/payload/server/public/assets/useSubAccountSwitcher-2ojOOYNo.css +1 -0
  169. package/payload/server/public/assets/{useSubAccountSwitcher-HEVLb6Z9.js → useSubAccountSwitcher-DLvqvfoc.js} +1 -1
  170. package/payload/server/public/assets/useVoiceRecorder-BcukQIza.js +2 -0
  171. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-DnjzQDGf.js → vennDiagram-DHZGUBPP-Bvfw9aFJ.js} +1 -1
  172. package/payload/server/public/assets/wardley-RL74JXVD-CO9HdfJ-.js +1 -0
  173. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-T3WHrUvi.js → wardleyDiagram-NUSXRM2D-C9h04G6b.js} +1 -1
  174. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-2Efyv4h2.js → xychartDiagram-5P7HB3ND-BMvi2m2q.js} +1 -1
  175. package/payload/server/public/brand-defaults.css +4 -0
  176. package/payload/server/public/browser.html +4 -4
  177. package/payload/server/public/calendar.html +6 -5
  178. package/payload/server/public/chat.html +14 -12
  179. package/payload/server/public/data.html +11 -11
  180. package/payload/server/public/graph.html +11 -10
  181. package/payload/server/public/index.html +17 -14
  182. package/payload/server/public/operator.html +16 -14
  183. package/payload/server/public/public.html +14 -12
  184. package/payload/server/public/tasks.html +6 -6
  185. package/payload/server/server.js +87 -0
  186. package/payload/server/public/assets/AdminShell-UDgNN4CA.js +0 -2
  187. package/payload/server/public/assets/activity-06gsRDVv.js +0 -1
  188. package/payload/server/public/assets/admin-BhiHyORH.js +0 -1
  189. package/payload/server/public/assets/architecture-YZFGNWBL-Ct5q6ks1.js +0 -1
  190. package/payload/server/public/assets/browser-Cz4IKS47.js +0 -1
  191. package/payload/server/public/assets/calendar-D0xtNqH8.js +0 -1
  192. package/payload/server/public/assets/channel-PE9vBKEQ.js +0 -1
  193. package/payload/server/public/assets/chat-DwLJ830n.js +0 -1
  194. package/payload/server/public/assets/chevron-left-Cv-TFuEf.js +0 -1
  195. package/payload/server/public/assets/chunk-426QAEUC-BDNZtJsz.js +0 -1
  196. package/payload/server/public/assets/chunk-QZHKN3VN-B_Hris8x.js +0 -1
  197. package/payload/server/public/assets/classDiagram-6PBFFD2Q-D8Q05iMI.js +0 -1
  198. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-Dm3hAxfm.js +0 -1
  199. package/payload/server/public/assets/clone-C-wOwvpY.js +0 -1
  200. package/payload/server/public/assets/data-DUDJfnjI.js +0 -1
  201. package/payload/server/public/assets/gitGraph-7Q5UKJZL-BBHsY16R.js +0 -1
  202. package/payload/server/public/assets/graph-BAoktBcx.js +0 -51
  203. package/payload/server/public/assets/info-OMHHGYJF-C1j5I_zx.js +0 -1
  204. package/payload/server/public/assets/infoDiagram-42DDH7IO-ZWkwHWEu.js +0 -2
  205. package/payload/server/public/assets/operator-CZifmNhp.js +0 -1
  206. package/payload/server/public/assets/packet-4T2RLAQJ-CGiTbe0N.js +0 -1
  207. package/payload/server/public/assets/page-B4kllGd_.js +0 -32
  208. package/payload/server/public/assets/page-DbfE7QwJ.js +0 -1
  209. package/payload/server/public/assets/pie-ZZUOXDRM-BrK023dE.js +0 -1
  210. package/payload/server/public/assets/radar-PYXPWWZC-p7NRamXX.js +0 -1
  211. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-a4FvB3L8.js +0 -1
  212. package/payload/server/public/assets/tasks-CvqVDbfO.js +0 -1
  213. package/payload/server/public/assets/treeView-SZITEDCU-CoWk8VoG.js +0 -1
  214. package/payload/server/public/assets/treemap-W4RFUUIX-BhWeGj8Y.js +0 -1
  215. package/payload/server/public/assets/useCopyFeedback-BhjPzRa3.js +0 -1
  216. package/payload/server/public/assets/useSubAccountSwitcher-CWRpVt1-.css +0 -1
  217. package/payload/server/public/assets/useVoiceRecorder-CfGgj3vm.js +0 -2
  218. package/payload/server/public/assets/wardley-RL74JXVD-C0q3Hqng.js +0 -1
  219. /package/payload/server/public/assets/{_baseFor-Bjj9It3Q.js → _baseFor-BBkmqPEk.js} +0 -0
  220. /package/payload/server/public/assets/{array-BrrxEo12.js → array-Bjtb2C_5.js} +0 -0
  221. /package/payload/server/public/assets/{cytoscape.esm-CTWJxUxo.js → cytoscape.esm-B1dQ664k.js} +0 -0
  222. /package/payload/server/public/assets/{defaultLocale-CFDbRV4k.js → defaultLocale-iwYA7ne8.js} +0 -0
  223. /package/payload/server/public/assets/{dist-BATfy7Sn.js → dist-CLmrZbY7.js} +0 -0
  224. /package/payload/server/public/assets/{init-dXCzGgLP.js → init-CxnBAgcf.js} +0 -0
  225. /package/payload/server/public/assets/{katex-CHA1JFYJ.js → katex-DojHoLIr.js} +0 -0
  226. /package/payload/server/public/assets/{path-CCRpdXhK.js → path-JZiojYzQ.js} +0 -0
  227. /package/payload/server/public/assets/{preload-helper-CH6UZRzu.js → preload-helper-CT1Z6Pdu.js} +0 -0
  228. /package/payload/server/public/assets/{rough.esm-Bud4g4fh.js → rough.esm-D5NinLFK.js} +0 -0
  229. /package/payload/server/public/assets/{src-DNdBRXXx.js → src-DQ0MSD6q.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"email-draft-send.js","sourceRoot":"","sources":["../../src/tools/email-draft-send.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"email-draft-send.js","sourceRoot":"","sources":["../../src/tools/email-draft-send.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "google",
3
- "description": "Live Google Calendar for one account via the Google Calendar API v3 — read plus control. Per-account OAuth authorization-code + PKCE against a Desktop client whose id and secret ship in brand config; the plugin mints the consent URL and exchanges the code in-process, and nothing in platform/ui participates. One account can connect several Google accounts; every operational tool takes an optional account selector (the email address) and refuses ambiguously when two or more are connected and none is named. There is deliberately no Gmail surface — mail runs on the `email` plugin's IMAP/SMTP path, and Gmail's restricted scopes would force Google's annual third-party security assessment, whereas Calendar is only a sensitive scope. Tools — google-account-register / google-account-register-submit / google-account-register-poll: connect a Google Calendar (returns a consent URL; approving on the install machine completes by itself and the browser confirms it, while approving on another device lands on a page that fails to load by design and the user pastes the address-bar URL back to submit); google-calendar-list: events in the next rangeDays days, recurring series expanded; google-calendar-event: one event by id; google-calendar-create / google-calendar-update / google-calendar-cancel: control events, attendees notified, update changes only the fields named; google-calendar-respond: accept, decline or tentatively accept an invitation, leaving other attendees' responses untouched; google-calendar-freebusy: busy blocks for this or named calendars; google-account-info: auth state for one connected Google account; google-account-list: every connected Google account with its own status.",
3
+ "description": "Live Google Calendar for one account via the Google Calendar API v3 — read plus control. Per-account OAuth authorization-code + PKCE against a Desktop client whose id and secret ship in brand config; the plugin mints the consent URL and exchanges the code in-process, and nothing in platform/ui participates. One account can connect several Google accounts; every operational tool takes an optional account selector (the email address) and refuses ambiguously when two or more are connected and none is named. There is deliberately no Gmail surface — mail runs on the `email` plugin's IMAP/SMTP path, and Gmail's restricted scopes would force Google's annual third-party security assessment, whereas Calendar is only a sensitive scope. Tools — google-account-register / google-account-register-submit / google-account-register-poll: connect a Google Calendar (the result carries one resolved instruction for this install, sign-in auto-opened on the host or paste-the-address-bar-back off it, plus a readback directive; relay the instruction and confirm the connection from google-account-register-poll); google-calendar-list: events in the next rangeDays days, recurring series expanded; google-calendar-event: one event by id; google-calendar-create / google-calendar-update / google-calendar-cancel: control events, attendees notified, update changes only the fields named; google-calendar-respond: accept, decline or tentatively accept an invitation, leaving other attendees' responses untouched; google-calendar-freebusy: busy blocks for this or named calendars; google-account-info: auth state for one connected Google account; google-account-list: every connected Google account with its own status.",
4
4
  "version": "0.1.0",
5
5
  "author": {
6
6
  "name": "Rubytech LLC"
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: google
3
- description: Live Google Calendar for one account via the Google Calendar API v3 — read plus control. Per-account OAuth authorization-code + PKCE against a Desktop client whose id and secret ship in brand config; the plugin mints the consent URL and exchanges the code in-process, and nothing in platform/ui participates. One account can connect several Google accounts; every operational tool takes an optional account selector (the email address) and refuses ambiguously when two or more are connected and none is named. There is deliberately no Gmail surface — mail runs on the `email` plugin's IMAP/SMTP path, and Gmail's restricted scopes would force Google's annual third-party security assessment, whereas Calendar is only a sensitive scope. Tools — google-account-register / google-account-register-submit / google-account-register-poll: connect a Google Calendar (returns a consent URL; approving on the install machine completes by itself and the browser confirms it, while approving on another device lands on a page that fails to load by design and the user pastes the address-bar URL back to submit); google-calendar-list: events in the next rangeDays days, recurring series expanded; google-calendar-event: one event by id; google-calendar-create / google-calendar-update / google-calendar-cancel: control events, attendees notified, update changes only the fields named; google-calendar-respond: accept, decline or tentatively accept an invitation, leaving other attendees' responses untouched; google-calendar-freebusy: busy blocks for this or named calendars; google-account-info: auth state for one connected Google account; google-account-list: every connected Google account with its own status.
3
+ description: Live Google Calendar for one account via the Google Calendar API v3 — read plus control. Per-account OAuth authorization-code + PKCE against a Desktop client whose id and secret ship in brand config; the plugin mints the consent URL and exchanges the code in-process, and nothing in platform/ui participates. One account can connect several Google accounts; every operational tool takes an optional account selector (the email address) and refuses ambiguously when two or more are connected and none is named. There is deliberately no Gmail surface — mail runs on the `email` plugin's IMAP/SMTP path, and Gmail's restricted scopes would force Google's annual third-party security assessment, whereas Calendar is only a sensitive scope. Tools — google-account-register / google-account-register-submit / google-account-register-poll: connect a Google Calendar (the result carries one resolved instruction for this install, sign-in auto-opened on the host or paste-the-address-bar-back off it, plus a readback directive; relay the instruction and confirm the connection from google-account-register-poll); google-calendar-list: events in the next rangeDays days, recurring series expanded; google-calendar-event: one event by id; google-calendar-create / google-calendar-update / google-calendar-cancel: control events, attendees notified, update changes only the fields named; google-calendar-respond: accept, decline or tentatively accept an invitation, leaving other attendees' responses untouched; google-calendar-freebusy: busy blocks for this or named calendars; google-account-info: auth state for one connected Google account; google-account-list: every connected Google account with its own status.
4
4
  tools:
5
5
  - name: google-account-register
6
6
  publicAllowlist: false
@@ -51,6 +51,7 @@ mcp:
51
51
  SESSION_ID: ${SESSION_ID}
52
52
  GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID}
53
53
  GOOGLE_CLIENT_SECRET: ${GOOGLE_CLIENT_SECRET}
54
+ CDP_PORT: ${CDP_PORT}
54
55
  mcp-manifest: auto
55
56
  ---
56
57
 
@@ -83,6 +84,23 @@ from `brand.json` and are stamped by the installer together or not at all.
83
84
  port. The host is always the IP literal, never `localhost` — Google's
84
85
  port-agnostic loopback matching applies only to the literal.
85
86
 
87
+ When the device's own Chromium is reachable over the Chrome DevTools Protocol
88
+ (`CDP_PORT`, the same browser the `browser` plugin drives), register opens the
89
+ consent URL in it directly, so the same-host listener completes with nobody
90
+ opening a link. The operator is told the sign-in opened on this machine, with
91
+ the URL kept as a backup. Where no on-host browser is reachable — a browserless
92
+ brand, or a native install with no running Chromium — register returns the URL
93
+ exactly as before and the paste path is unchanged; that fallback is a
94
+ first-class state, not an error. One `op=consent-open` line records which route
95
+ each register took: `surface=cdp` opened it on-host, `surface=url` returned the
96
+ link, and `surface=cdp outcome=error` is a reachable browser that refused the
97
+ navigation (its CDP body preserved, the URL still returned). The result stamps
98
+ the resolved route as `path` (`auto-open` or `paste`) with its single
99
+ instruction and a readback directive, and one `op=register-path reg= path=` line
100
+ records that route on every register, including a failed bind that never reaches
101
+ consent-open. Completion is read back from `google-account-register-poll`, never
102
+ asserted from the chat.
103
+
86
104
  Consent on the install's own machine reaches that listener, which verifies
87
105
  `state`, completes the exchange, and renders a page naming the account. Consent
88
106
  on another device cannot reach it, so the redirect fails to load and the user
@@ -112,6 +130,7 @@ requesting `openid`/`email`/`profile`, so consent stays minimal.
112
130
  |---|---|---|
113
131
  | `GOOGLE_CLIENT_ID` | `brand.json#googleClientId` | Plugin inert; register refuses with an actionable message |
114
132
  | `GOOGLE_CLIENT_SECRET` | `brand.json#googleClientSecret` | Plugin inert; register refuses. Stamped with `GOOGLE_CLIENT_ID` or not at all |
133
+ | `CDP_PORT` | brand's device Chromium debug port | Register does not auto-open; it returns the consent URL for the paste path (first-class fallback, not an error) |
115
134
 
116
135
  Both reach this process by env inheritance from the session-manager unit, which
117
136
  is why they are declared in the self-named `${FOO}` form (see
@@ -4,7 +4,7 @@ import { createHash } from "node:crypto";
4
4
  import { mkdtempSync } from "node:fs";
5
5
  import { tmpdir } from "node:os";
6
6
  import { join } from "node:path";
7
- import { newPkce, newState, buildConsentUrl, runAccountRegisterStart, runAccountRegisterPoll, listConnected, CALENDAR_SCOPE, LOOPBACK_REDIRECT_URI, normalisePastedCode, runAccountRegisterSubmit, } from "../tools/account-register.js";
7
+ import { newPkce, newState, buildConsentUrl, runAccountRegisterStart, runAccountRegisterPoll, listConnected, CALENDAR_SCOPE, LOOPBACK_REDIRECT_URI, normalisePastedCode, runAccountRegisterSubmit, registerInstruction, registerReadback, } from "../tools/account-register.js";
8
8
  import { TokenStore } from "../auth/token-store.js";
9
9
  import { PendingStore } from "../auth/pending-store.js";
10
10
  function newDir() {
@@ -147,4 +147,32 @@ test("submit preserves the Google error body on a failed exchange", async () =>
147
147
  accountId: "a", accountsDir: dir, clientId: "c", clientSecret: "s", code: "4/0x", fetchImpl: fake,
148
148
  }), /invalid_grant/);
149
149
  });
150
+ test("auto-open instruction names the on-host open and not the paste path", () => {
151
+ const s = registerInstruction("auto-open");
152
+ assert.match(s, /opened in the browser on this machine/i);
153
+ assert.doesNotMatch(s, /address bar/i);
154
+ assert.doesNotMatch(s, /google-account-register-submit/);
155
+ });
156
+ test("paste instruction names the address-bar copy into submit and not an auto-open", () => {
157
+ const s = registerInstruction("paste");
158
+ assert.match(s, /address bar/i);
159
+ assert.match(s, /google-account-register-submit/);
160
+ assert.doesNotMatch(s, /opened in the browser on this machine/i);
161
+ });
162
+ test("readback binds confirmation to poll and forbids reporting success early", () => {
163
+ const s = registerReadback();
164
+ assert.match(s, /google-account-register-poll/);
165
+ assert.match(s, /registered/);
166
+ assert.match(s, /do not report success before/i);
167
+ });
168
+ test("poll reports registered with the connected email and no pending", async () => {
169
+ const dir = newDir();
170
+ new TokenStore("acct-r", dir, "u@e.com").store("at", "rt", 3600, {
171
+ email: "u@e.com",
172
+ scopes: [CALENDAR_SCOPE],
173
+ });
174
+ const res = await runAccountRegisterPoll({ accountId: "acct-r", accountsDir: dir });
175
+ assert.equal(res.status, "registered");
176
+ assert.equal(res.accounts[0].email, "u@e.com");
177
+ });
150
178
  //# sourceMappingURL=account-register.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"account-register.test.js","sourceRoot":"","sources":["../../src/__tests__/account-register.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account-register.test.js","sourceRoot":"","sources":["../../src/__tests__/account-register.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,OAAO,EACP,QAAQ,EACR,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,SAAS,MAAM;IACb,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,IAAI,CAAC,yDAAyD,EAAE,GAAG,EAAE;IACnE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC;IAC1C,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IACnF,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4EAA4E,EAAE,GAAG,EAAE;IACtF,MAAM,GAAG,GAAG,IAAI,GAAG,CACjB,eAAe,CAAC;QACd,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,qBAAqB;KACnC,CAAC,CACH,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;IAC7D,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;IACxD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC;IAC5D,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC,CAAC;IACpE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;IAClD,8EAA8E;IAC9E,kEAAkE;IAClE,+DAA+D;IAC/D,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,qBAAqB,CAAC,CAAC;AAC5E,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;IACvD,MAAM,GAAG,GAAG,IAAI,GAAG,CACjB,eAAe,CAAC;QACd,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,OAAO;QACd,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,qBAAqB;KACnC,CAAC,CACH,CAAC;IACF,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAE,CAAC;IACvD,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,oCAAoC,QAAQ,EAAE,CAAC,CAAC;IACnF,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,2CAA2C,CAAC,CAAC;AACzF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;IACnF,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,GAAG,GAAG,MAAM,uBAAuB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAC5J,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,UAAW,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;IACjE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;IACtE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,yCAAyC,CAAC,CAAC;IAClG,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,uCAAuC,CAAC,CAAC;AAC9E,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;IAC/E,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,IAAI,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;IAC9H,MAAM,KAAK,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5B,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;IAC9E,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IACxF,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;IACzE,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,uBAAuB,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAC1I,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/E,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;IAC3D,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACtF,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAClC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC5C,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uEAAuE,EAAE,GAAG,EAAE;IACjF,MAAM,GAAG,GAAG,IAAI,GAAG,CACjB,eAAe,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC,CAC1G,CAAC;IACF,MAAM,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAE,CAAC;IAChD,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;IACvC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC;IACzC,mEAAmE;IACnE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,qCAAqC,CAAC,CAAC;IAC3E,mDAAmD;IACnD,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC;IACvD,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,sDAAsD,CAAC,CAAC;AACtF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gEAAgE,EAAE,GAAG,EAAE;IAC1E,cAAc;IACd,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;IACxD,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;IAC5D,8EAA8E;IAC9E,4EAA4E;IAC5E,MAAM,CAAC,KAAK,CACV,mBAAmB,CAAC,8FAA8F,CAAC,EACnH,SAAS,CACV,CAAC;IACF,uDAAuD;IACvD,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,oCAAoC,CAAC,EAAE,SAAS,CAAC,CAAC;IACnF,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,EAAE,SAAS,CAAC,CAAC;IACtE,0CAA0C;IAC1C,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,CAAC;IAC7D,2EAA2E;IAC3E,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gEAAgE,EAAE,GAAG,EAAE;IAC1E,6EAA6E;IAC7E,4EAA4E;IAC5E,qEAAqE;IACrE,iEAAiE;IACjE,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;IAC7D,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,CAAC;IAC9D,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;IAC5F,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,uBAAuB,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAC5I,MAAM,KAAK,GAAyC,EAAE,CAAC;IACvD,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,GAAY,EAAE,OAA2B,EAAE,EAAE,EAAE;QAClE,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAChE,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EACpG,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACnF,CAAC,CAA4B,CAAC;IAC9B,MAAM,GAAG,GAAG,MAAM,wBAAwB,CAAC;QACzC,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI;KACzG,CAAC,CAAC;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAC5C,qEAAqE;IACrE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACvD,MAAM,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,oCAAoC,CAAC,CAAC;AAC9F,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;IAChE,MAAM,MAAM,CAAC,OAAO,CAClB,GAAG,EAAE,CAAC,wBAAwB,CAAC;QAC7B,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM;KACtF,CAAC,EACF,8BAA8B,CAC/B,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;IAC7E,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,uBAAuB,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAC5I,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC,2BAA2B,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAA4B,CAAC;IACjH,MAAM,MAAM,CAAC,OAAO,CAClB,GAAG,EAAE,CAAC,wBAAwB,CAAC;QAC7B,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI;KAClG,CAAC,EACF,eAAe,CAChB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qEAAqE,EAAE,GAAG,EAAE;IAC/E,MAAM,CAAC,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,wCAAwC,CAAC,CAAC;IAC1D,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;IACvC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,gCAAgC,CAAC,CAAC;AAC3D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+EAA+E,EAAE,GAAG,EAAE;IACzF,MAAM,CAAC,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;IAChC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,gCAAgC,CAAC,CAAC;IAClD,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,wCAAwC,CAAC,CAAC;AACnE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yEAAyE,EAAE,GAAG,EAAE;IACnF,MAAM,CAAC,GAAG,gBAAgB,EAAE,CAAC;IAC7B,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,8BAA8B,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,+BAA+B,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;IACjF,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,IAAI,UAAU,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;QAC/D,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,CAAC,cAAc,CAAC;KACzB,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;IACpF,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACvC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=consent-open.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent-open.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/consent-open.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,92 @@
1
+ import { test } from "node:test";
2
+ import assert from "node:assert/strict";
3
+ import { openConsentUrl } from "../auth/consent-open.js";
4
+ const TARGET_WS = "ws://127.0.0.1:9222/devtools/page/ABC";
5
+ /** A fetch that answers PUT /json/new with a target, and records every call so a
6
+ * test can assert the tab was created and never closed. */
7
+ function fakeFetch(record) {
8
+ return async (input, init) => {
9
+ const url = String(input);
10
+ record.push(`${init?.method ?? "GET"} ${url}`);
11
+ if (url.includes("/json/new")) {
12
+ return new Response(JSON.stringify({ id: "ABC", webSocketDebuggerUrl: TARGET_WS }), {
13
+ status: 200,
14
+ headers: { "content-type": "application/json" },
15
+ });
16
+ }
17
+ return new Response("{}", { status: 200 });
18
+ };
19
+ }
20
+ /** A WebSocket fake that opens on the next tick and answers Page.navigate with a
21
+ * result carrying the requested frameId. `navResult` lets a test force an
22
+ * errorText, and `sent` captures every frame the code under test transmitted. */
23
+ function fakeWs(sent, navResult) {
24
+ return class {
25
+ handlers = {};
26
+ constructor(_url) {
27
+ queueMicrotask(() => this.fire("open", undefined));
28
+ }
29
+ send(data) {
30
+ sent.push(data);
31
+ const msg = JSON.parse(data);
32
+ queueMicrotask(() => this.fire("message", { data: JSON.stringify({ id: msg.id, result: navResult(msg.params) }) }));
33
+ }
34
+ close() { }
35
+ addEventListener(type, l) {
36
+ (this.handlers[type] ??= []).push(l);
37
+ }
38
+ fire(type, ev) {
39
+ for (const h of this.handlers[type] ?? [])
40
+ h(ev);
41
+ }
42
+ };
43
+ }
44
+ test("opens the exact URL in the on-host browser and leaves the tab alive", async () => {
45
+ const consentUrl = "https://accounts.google.com/o/oauth2/v2/auth?client_id=cid&redirect_uri=http%3A%2F%2F127.0.0.1%3A54321&state=abc123";
46
+ const fetchCalls = [];
47
+ const sent = [];
48
+ const res = await openConsentUrl(consentUrl, "127.0.0.1", 9222, {
49
+ fetchImpl: fakeFetch(fetchCalls),
50
+ WebSocketImpl: fakeWs(sent, () => ({ frameId: "F1" })),
51
+ });
52
+ assert.deepEqual(res, { opened: true });
53
+ // A tab was created and NEVER closed — the user must interact with it.
54
+ assert.ok(fetchCalls.some((c) => c.includes("/json/new")));
55
+ assert.ok(!fetchCalls.some((c) => c.includes("/json/close")));
56
+ // Byte-for-byte: the navigate frame carries the consent URL unchanged.
57
+ const nav = JSON.parse(sent[0]);
58
+ assert.equal(nav.method, "Page.navigate");
59
+ assert.equal(nav.params.url, consentUrl);
60
+ });
61
+ test("an unset CDP port is a first-class fallback, not an error, and never touches the network", async () => {
62
+ const fetchCalls = [];
63
+ const res = await openConsentUrl("https://x", "127.0.0.1", 0, {
64
+ fetchImpl: fakeFetch(fetchCalls),
65
+ WebSocketImpl: fakeWs([], () => ({ frameId: "F1" })),
66
+ });
67
+ assert.equal(res.opened, false);
68
+ assert.equal(res.reachable, false);
69
+ assert.equal(fetchCalls.length, 0);
70
+ });
71
+ test("a refused connection reports unreachable so register returns the URL", async () => {
72
+ const refuse = async () => {
73
+ throw new Error("connect ECONNREFUSED 127.0.0.1:9222");
74
+ };
75
+ const res = await openConsentUrl("https://x", "127.0.0.1", 9222, {
76
+ fetchImpl: refuse,
77
+ WebSocketImpl: fakeWs([], () => ({ frameId: "F1" })),
78
+ });
79
+ assert.equal(res.opened, false);
80
+ assert.equal(res.reachable, false);
81
+ });
82
+ test("a reachable browser whose navigation errors is surfaced as reachable, not silent", async () => {
83
+ const fetchCalls = [];
84
+ const res = await openConsentUrl("https://x", "127.0.0.1", 9222, {
85
+ fetchImpl: fakeFetch(fetchCalls),
86
+ WebSocketImpl: fakeWs([], () => ({ errorText: "net::ERR_ABORTED" })),
87
+ });
88
+ assert.equal(res.opened, false);
89
+ assert.equal(res.reachable, true);
90
+ assert.match(res.detail, /net::ERR_ABORTED/);
91
+ });
92
+ //# sourceMappingURL=consent-open.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent-open.test.js","sourceRoot":"","sources":["../../src/__tests__/consent-open.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Open the consent URL in the install host's OWN Chromium over the Chrome
3
+ * DevTools Protocol.
4
+ *
5
+ * 1799's loopback listener binds this host, so the redirect only completes when
6
+ * the consenting browser is also on this host. When the operator opens the URL
7
+ * in a browser on some other machine (their laptop), that browser cannot reach
8
+ * the listener's port and the success path never fires. So when a CDP-reachable
9
+ * on-host Chromium exists, register opens the consent URL in it directly and the
10
+ * same-host listener finishes with nobody opening a link.
11
+ *
12
+ * Where no browser is reachable — a browserless brand, or a native install with
13
+ * no running Chromium — this reports `reachable:false` and register falls back
14
+ * to returning the URL for the paste path. That is a first-class fallback state,
15
+ * not an error (Task 1862).
16
+ *
17
+ * The URL is transmitted as a `Page.navigate` JSON string, so Chrome receives it
18
+ * byte-for-byte. A normalised redirect port would fail Google's exact-match
19
+ * token exchange, which is why this never routes the URL through WHATWG parsing.
20
+ *
21
+ * The device Chromium is launched by platform/scripts/vnc.sh with
22
+ * `--remote-debugging-port=${CDP_PORT}`; this attaches to it and never launches
23
+ * its own. `fetch`/`WebSocket` are injected so the whole surface is unit-tested
24
+ * against fakes with no real browser.
25
+ */
26
+ /** The browser-style WebSocket shape this module needs. The Node 22 global and
27
+ * the test fake both satisfy it. */
28
+ export interface MinimalWs {
29
+ send(data: string): void;
30
+ close(): void;
31
+ addEventListener(type: "open", listener: () => void): void;
32
+ addEventListener(type: "message", listener: (ev: {
33
+ data: unknown;
34
+ }) => void): void;
35
+ addEventListener(type: "error", listener: (ev: unknown) => void): void;
36
+ addEventListener(type: "close", listener: () => void): void;
37
+ }
38
+ export type WebSocketCtor = new (url: string) => MinimalWs;
39
+ /** `reachable` divides the two non-open outcomes the caller logs differently:
40
+ * `false` means no browser answered (surface=url fallback), `true` means one
41
+ * answered but the navigation itself failed (surface=cdp outcome=error). */
42
+ export type ConsentOpenResult = {
43
+ opened: true;
44
+ } | {
45
+ opened: false;
46
+ reachable: boolean;
47
+ detail: string;
48
+ };
49
+ export interface ConsentOpenDeps {
50
+ fetchImpl?: typeof fetch;
51
+ WebSocketImpl?: WebSocketCtor;
52
+ /** Cap on each network step. Kept short: register must not block. */
53
+ timeoutMs?: number;
54
+ }
55
+ /**
56
+ * Open `url` in the on-host Chromium. Never throws; always returns a structured
57
+ * outcome. On success the tab is LEFT OPEN — the user must sign in and approve
58
+ * there — and only our websocket handle is closed.
59
+ */
60
+ export declare function openConsentUrl(url: string, cdpHost: string, cdpPort: number, deps?: ConsentOpenDeps): Promise<ConsentOpenResult>;
61
+ //# sourceMappingURL=consent-open.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent-open.d.ts","sourceRoot":"","sources":["../../src/auth/consent-open.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;qCACqC;AACrC,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,IAAI,IAAI,CAAC;IACd,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAC3D,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACnF,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IACvE,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CAC7D;AAED,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,EAAE,MAAM,KAAK,SAAS,CAAC;AAE3D;;6EAE6E;AAC7E,MAAM,MAAM,iBAAiB,GACzB;IAAE,MAAM,EAAE,IAAI,CAAA;CAAE,GAChB;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA4HD;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,iBAAiB,CAAC,CA6B5B"}
@@ -0,0 +1,184 @@
1
+ /**
2
+ * Open the consent URL in the install host's OWN Chromium over the Chrome
3
+ * DevTools Protocol.
4
+ *
5
+ * 1799's loopback listener binds this host, so the redirect only completes when
6
+ * the consenting browser is also on this host. When the operator opens the URL
7
+ * in a browser on some other machine (their laptop), that browser cannot reach
8
+ * the listener's port and the success path never fires. So when a CDP-reachable
9
+ * on-host Chromium exists, register opens the consent URL in it directly and the
10
+ * same-host listener finishes with nobody opening a link.
11
+ *
12
+ * Where no browser is reachable — a browserless brand, or a native install with
13
+ * no running Chromium — this reports `reachable:false` and register falls back
14
+ * to returning the URL for the paste path. That is a first-class fallback state,
15
+ * not an error (Task 1862).
16
+ *
17
+ * The URL is transmitted as a `Page.navigate` JSON string, so Chrome receives it
18
+ * byte-for-byte. A normalised redirect port would fail Google's exact-match
19
+ * token exchange, which is why this never routes the URL through WHATWG parsing.
20
+ *
21
+ * The device Chromium is launched by platform/scripts/vnc.sh with
22
+ * `--remote-debugging-port=${CDP_PORT}`; this attaches to it and never launches
23
+ * its own. `fetch`/`WebSocket` are injected so the whole surface is unit-tested
24
+ * against fakes with no real browser.
25
+ */
26
+ /** Per-step cap. Kept short because register awaits this before returning and
27
+ * must not block: a live Chromium answers each step sub-second, so this only
28
+ * bounds the wait on a browser that answers TCP but then wedges. */
29
+ const DEFAULT_TIMEOUT_MS = 5_000;
30
+ /** A transport error means the browser is not there; any HTTP response — even an
31
+ * error status — means it is. */
32
+ function isConnectionError(msg) {
33
+ return (msg.includes("ECONNREFUSED") ||
34
+ msg.includes("fetch failed") ||
35
+ msg.includes("ENOTFOUND") ||
36
+ msg.includes("ECONNRESET") ||
37
+ msg.includes("timed out"));
38
+ }
39
+ function resolveWebSocket(explicit) {
40
+ if (explicit)
41
+ return explicit;
42
+ return typeof WebSocket !== "undefined" ? WebSocket : undefined;
43
+ }
44
+ /** Create a blank target on the running Chromium. Returns its id + ws URL, or a
45
+ * classified failure. */
46
+ async function createTarget(fetchImpl, host, port, timeoutMs) {
47
+ let res;
48
+ try {
49
+ res = await fetchImpl(`http://${host}:${port}/json/new`, {
50
+ method: "PUT",
51
+ signal: AbortSignal.timeout(timeoutMs),
52
+ });
53
+ }
54
+ catch (err) {
55
+ const detail = err instanceof Error ? err.message : String(err);
56
+ return { reachable: !isConnectionError(detail), detail };
57
+ }
58
+ if (!res.ok) {
59
+ const body = await res.text().catch(() => "<unreadable>");
60
+ return { reachable: true, detail: `CDP /json/new returned ${res.status}: ${body.slice(0, 200)}` };
61
+ }
62
+ let parsed;
63
+ try {
64
+ parsed = (await res.json());
65
+ }
66
+ catch (err) {
67
+ return { reachable: true, detail: `CDP /json/new not JSON: ${err instanceof Error ? err.message : String(err)}` };
68
+ }
69
+ if (!parsed.id || !parsed.webSocketDebuggerUrl) {
70
+ return { reachable: true, detail: `CDP /json/new missing id/wsUrl: ${JSON.stringify(parsed).slice(0, 200)}` };
71
+ }
72
+ return { id: parsed.id, wsUrl: parsed.webSocketDebuggerUrl };
73
+ }
74
+ function openSocket(WebSocketImpl, url, timeoutMs) {
75
+ return new Promise((resolve) => {
76
+ let settled = false;
77
+ let ws;
78
+ try {
79
+ ws = new WebSocketImpl(url);
80
+ }
81
+ catch (err) {
82
+ resolve({ error: err instanceof Error ? err.message : String(err) });
83
+ return;
84
+ }
85
+ const timer = setTimeout(() => {
86
+ if (settled)
87
+ return;
88
+ settled = true;
89
+ try {
90
+ ws.close();
91
+ }
92
+ catch { /* ignore */ }
93
+ resolve({ error: `websocket open timed out after ${timeoutMs}ms` });
94
+ }, timeoutMs);
95
+ ws.addEventListener("open", () => {
96
+ if (settled)
97
+ return;
98
+ settled = true;
99
+ clearTimeout(timer);
100
+ resolve({ ws });
101
+ });
102
+ ws.addEventListener("error", () => {
103
+ if (settled)
104
+ return;
105
+ settled = true;
106
+ clearTimeout(timer);
107
+ resolve({ error: "websocket error" });
108
+ });
109
+ });
110
+ }
111
+ /** Send one Page.navigate and await its ack. A `result.errorText` is Chrome
112
+ * refusing the navigation up front (bad scheme, blocked host) — surfaced, not
113
+ * swallowed. */
114
+ function sendNavigate(ws, url, timeoutMs) {
115
+ return new Promise((resolve) => {
116
+ let settled = false;
117
+ const done = (r) => {
118
+ if (settled)
119
+ return;
120
+ settled = true;
121
+ clearTimeout(timer);
122
+ resolve(r);
123
+ };
124
+ const timer = setTimeout(() => done({ ok: false, detail: `Page.navigate timed out after ${timeoutMs}ms` }), timeoutMs);
125
+ ws.addEventListener("message", (ev) => {
126
+ if (typeof ev.data !== "string")
127
+ return;
128
+ let msg;
129
+ try {
130
+ msg = JSON.parse(ev.data);
131
+ }
132
+ catch {
133
+ return;
134
+ }
135
+ if (msg.id !== 1)
136
+ return;
137
+ if (msg.error)
138
+ return done({ ok: false, detail: msg.error.message ?? "CDP command error" });
139
+ if (msg.result?.errorText)
140
+ return done({ ok: false, detail: msg.result.errorText });
141
+ done({ ok: true });
142
+ });
143
+ ws.addEventListener("close", () => done({ ok: false, detail: "websocket closed before navigate acked" }));
144
+ ws.send(JSON.stringify({ id: 1, method: "Page.navigate", params: { url } }));
145
+ });
146
+ }
147
+ /**
148
+ * Open `url` in the on-host Chromium. Never throws; always returns a structured
149
+ * outcome. On success the tab is LEFT OPEN — the user must sign in and approve
150
+ * there — and only our websocket handle is closed.
151
+ */
152
+ export async function openConsentUrl(url, cdpHost, cdpPort, deps = {}) {
153
+ const timeoutMs = deps.timeoutMs ?? DEFAULT_TIMEOUT_MS;
154
+ const WebSocketImpl = resolveWebSocket(deps.WebSocketImpl);
155
+ const fetchImpl = deps.fetchImpl ?? fetch;
156
+ if (!cdpPort || Number.isNaN(cdpPort)) {
157
+ return { opened: false, reachable: false, detail: `CDP_PORT not set or invalid (got ${JSON.stringify(cdpPort)})` };
158
+ }
159
+ if (!WebSocketImpl) {
160
+ return { opened: false, reachable: false, detail: "global WebSocket unavailable (Node < 22.4)" };
161
+ }
162
+ const created = await createTarget(fetchImpl, cdpHost, cdpPort, timeoutMs);
163
+ if ("reachable" in created)
164
+ return { opened: false, reachable: created.reachable, detail: created.detail };
165
+ const opened = await openSocket(WebSocketImpl, created.wsUrl, timeoutMs);
166
+ if ("error" in opened) {
167
+ // The HTTP surface answered but the debugger socket did not — the browser is
168
+ // there, so this is a reachable-but-failed navigation, not a fallback.
169
+ return { opened: false, reachable: true, detail: `websocket connect failed: ${opened.error}` };
170
+ }
171
+ try {
172
+ const nav = await sendNavigate(opened.ws, url, timeoutMs);
173
+ if (!nav.ok)
174
+ return { opened: false, reachable: true, detail: nav.detail };
175
+ return { opened: true };
176
+ }
177
+ finally {
178
+ try {
179
+ opened.ws.close();
180
+ }
181
+ catch { /* ignore */ }
182
+ }
183
+ }
184
+ //# sourceMappingURL=consent-open.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent-open.js","sourceRoot":"","sources":["../../src/auth/consent-open.ts"],"names":[],"mappings":"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"}