@kaitranntt/ccs 8.1.4-dev.8 → 8.2.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/dist/cliproxy/quota/quota-fetcher-claude.d.ts +9 -0
  2. package/dist/cliproxy/quota/quota-fetcher-claude.d.ts.map +1 -1
  3. package/dist/cliproxy/quota/quota-fetcher-claude.js +53 -16
  4. package/dist/cliproxy/quota/quota-fetcher-claude.js.map +1 -1
  5. package/dist/cliproxy/quota/quota-fetcher.d.ts.map +1 -1
  6. package/dist/cliproxy/quota/quota-fetcher.js +4 -0
  7. package/dist/cliproxy/quota/quota-fetcher.js.map +1 -1
  8. package/dist/cliproxy/quota/quota-manager.d.ts.map +1 -1
  9. package/dist/cliproxy/quota/quota-manager.js +32 -1
  10. package/dist/cliproxy/quota/quota-manager.js.map +1 -1
  11. package/dist/cliproxy/services/stats-fetcher.d.ts +13 -0
  12. package/dist/cliproxy/services/stats-fetcher.d.ts.map +1 -1
  13. package/dist/cliproxy/services/stats-fetcher.js +25 -1
  14. package/dist/cliproxy/services/stats-fetcher.js.map +1 -1
  15. package/dist/commands/bar/index.d.ts +8 -0
  16. package/dist/commands/bar/index.d.ts.map +1 -0
  17. package/dist/commands/bar/index.js +69 -0
  18. package/dist/commands/bar/index.js.map +1 -0
  19. package/dist/commands/bar/install-subcommand.d.ts +50 -0
  20. package/dist/commands/bar/install-subcommand.d.ts.map +1 -0
  21. package/dist/commands/bar/install-subcommand.js +383 -0
  22. package/dist/commands/bar/install-subcommand.js.map +1 -0
  23. package/dist/commands/bar/launch-subcommand.d.ts +38 -0
  24. package/dist/commands/bar/launch-subcommand.d.ts.map +1 -0
  25. package/dist/commands/bar/launch-subcommand.js +141 -0
  26. package/dist/commands/bar/launch-subcommand.js.map +1 -0
  27. package/dist/commands/bar/uninstall-subcommand.d.ts +13 -0
  28. package/dist/commands/bar/uninstall-subcommand.d.ts.map +1 -0
  29. package/dist/commands/bar/uninstall-subcommand.js +78 -0
  30. package/dist/commands/bar/uninstall-subcommand.js.map +1 -0
  31. package/dist/commands/bar/version-subcommand.d.ts +8 -0
  32. package/dist/commands/bar/version-subcommand.d.ts.map +1 -0
  33. package/dist/commands/bar/version-subcommand.js +62 -0
  34. package/dist/commands/bar/version-subcommand.js.map +1 -0
  35. package/dist/commands/command-catalog.d.ts.map +1 -1
  36. package/dist/commands/command-catalog.js +6 -0
  37. package/dist/commands/command-catalog.js.map +1 -1
  38. package/dist/commands/root-command-router.d.ts.map +1 -1
  39. package/dist/commands/root-command-router.js +7 -0
  40. package/dist/commands/root-command-router.js.map +1 -1
  41. package/dist/config/loader/yaml-serializer.d.ts.map +1 -1
  42. package/dist/config/loader/yaml-serializer.js +13 -0
  43. package/dist/config/loader/yaml-serializer.js.map +1 -1
  44. package/dist/config/schemas/quota.d.ts +26 -2
  45. package/dist/config/schemas/quota.d.ts.map +1 -1
  46. package/dist/config/schemas/quota.js +20 -1
  47. package/dist/config/schemas/quota.js.map +1 -1
  48. package/dist/ui/assets/{Trans-DsGR5Bhb.js → Trans-BkttMZOY.js} +1 -1
  49. package/dist/ui/assets/{accounts-DHBmHeH-.js → accounts-CMnafyvZ.js} +1 -1
  50. package/dist/ui/assets/{alert-dialog-Do0XfN46.js → alert-dialog-Dgbg5gJ1.js} +1 -1
  51. package/dist/ui/assets/api-VhuWZte1.js +4 -0
  52. package/dist/ui/assets/{auth-section-BmTeNetL.js → auth-section-DV1ImDLn.js} +1 -1
  53. package/dist/ui/assets/{backups-section-COawLfTr.js → backups-section-D7r-Huo_.js} +1 -1
  54. package/dist/ui/assets/{channels-C9LVYmNJ.js → channels-CKUk3W1L.js} +1 -1
  55. package/dist/ui/assets/{checkbox-BkFzg8C-.js → checkbox-B6j6PA4N.js} +1 -1
  56. package/dist/ui/assets/{claude-extension-Ch7L4lTF.js → claude-extension-B9phgEGW.js} +1 -1
  57. package/dist/ui/assets/{cliproxy-B3uWt6gn.js → cliproxy-CjZiufaQ.js} +1 -1
  58. package/dist/ui/assets/{cliproxy-ai-providers-Bn1_AdKD.js → cliproxy-ai-providers-J_8Tg44E.js} +1 -1
  59. package/dist/ui/assets/{cliproxy-control-panel-DC4pOOfY.js → cliproxy-control-panel-DOxGnabX.js} +1 -1
  60. package/dist/ui/assets/{codex-CcODhykP.js → codex-BJuDLXfe.js} +1 -1
  61. package/dist/ui/assets/{confirm-dialog-4rb-E8-R.js → confirm-dialog-CjwyQ3AU.js} +1 -1
  62. package/dist/ui/assets/{copilot-zgPXNkMw.js → copilot-Nhs4PdOq.js} +2 -2
  63. package/dist/ui/assets/{cursor-lRPpppk-.js → cursor-DqFROSqy.js} +1 -1
  64. package/dist/ui/assets/{droid-koOj34SB.js → droid-CBwAiZcv.js} +1 -1
  65. package/dist/ui/assets/{globalenv-section-jOkPVwvN.js → globalenv-section-D9WhcK3S.js} +1 -1
  66. package/dist/ui/assets/{health-CxHauE3Y.js → health-CE3lFqFV.js} +1 -1
  67. package/dist/ui/assets/icons-gI6odJjU.js +1 -0
  68. package/dist/ui/assets/{index-De3yNJ94.js → index-Bssd99Pa.js} +1 -1
  69. package/dist/ui/assets/{index-I_ek1xyD.js → index-C6D81JHk.js} +1 -1
  70. package/dist/ui/assets/{index-BLC5PyZn.js → index-D--xE6Kq.js} +1 -1
  71. package/dist/ui/assets/{index-D7crOfea.js → index-DFYK4jw3.js} +4 -4
  72. package/dist/ui/assets/{index-DUGnoURR.js → index-DGsfFqiO.js} +1 -1
  73. package/dist/ui/assets/index-UEdhhar4.css +1 -0
  74. package/dist/ui/assets/{index-CRhKyfnS.js → index-bJvDY0e2.js} +1 -1
  75. package/dist/ui/assets/{index-BK-PSsqi.js → index-vK0cF4_0.js} +1 -1
  76. package/dist/ui/assets/{logs-BplpQHRb.js → logs-BUA9GCN2.js} +1 -1
  77. package/dist/ui/assets/{masked-input-DuLL3EwS.js → masked-input-BZdCgWmH.js} +1 -1
  78. package/dist/ui/assets/{proxy-status-widget-BruRPTSl.js → proxy-status-widget-I35xB9u9.js} +1 -1
  79. package/dist/ui/assets/{raw-json-settings-editor-panel-ClPqZ6iZ.js → raw-json-settings-editor-panel-DuL_4ncA.js} +1 -1
  80. package/dist/ui/assets/{searchable-select-BH1b065u.js → searchable-select-BleLprBy.js} +1 -1
  81. package/dist/ui/assets/{separator-BOiJ0l4s.js → separator-De5-VTtx.js} +1 -1
  82. package/dist/ui/assets/{shared-CunXigZu.js → shared-Bu81YVUK.js} +1 -1
  83. package/dist/ui/assets/{table-C7ysR1Xz.js → table-DsXaM2jg.js} +1 -1
  84. package/dist/ui/assets/{updates-BtBCV2xk.js → updates-C2bOO3Fo.js} +1 -1
  85. package/dist/ui/assets/{use-accounts-CwRU3ln9.js → use-accounts-C2OmaTJU.js} +1 -1
  86. package/dist/ui/index.html +3 -3
  87. package/dist/web-server/routes/account-routes.d.ts.map +1 -1
  88. package/dist/web-server/routes/account-routes.js +116 -0
  89. package/dist/web-server/routes/account-routes.js.map +1 -1
  90. package/dist/web-server/routes/bar-routes.d.ts +149 -0
  91. package/dist/web-server/routes/bar-routes.d.ts.map +1 -0
  92. package/dist/web-server/routes/bar-routes.js +415 -0
  93. package/dist/web-server/routes/bar-routes.js.map +1 -0
  94. package/dist/web-server/routes/index.d.ts.map +1 -1
  95. package/dist/web-server/routes/index.js +18 -0
  96. package/dist/web-server/routes/index.js.map +1 -1
  97. package/dist/web-server/usage/bar-analytics.d.ts +101 -0
  98. package/dist/web-server/usage/bar-analytics.d.ts.map +1 -0
  99. package/dist/web-server/usage/bar-analytics.js +315 -0
  100. package/dist/web-server/usage/bar-analytics.js.map +1 -0
  101. package/dist/web-server/usage/claude-native-credentials.d.ts +56 -0
  102. package/dist/web-server/usage/claude-native-credentials.d.ts.map +1 -0
  103. package/dist/web-server/usage/claude-native-credentials.js +140 -0
  104. package/dist/web-server/usage/claude-native-credentials.js.map +1 -0
  105. package/dist/web-server/usage/cliproxy-snapshot-reader.d.ts +24 -0
  106. package/dist/web-server/usage/cliproxy-snapshot-reader.d.ts.map +1 -0
  107. package/dist/web-server/usage/cliproxy-snapshot-reader.js +82 -0
  108. package/dist/web-server/usage/cliproxy-snapshot-reader.js.map +1 -0
  109. package/dist/web-server/usage/cliproxy-usage-syncer.d.ts +3 -2
  110. package/dist/web-server/usage/cliproxy-usage-syncer.d.ts.map +1 -1
  111. package/dist/web-server/usage/cliproxy-usage-syncer.js +14 -2
  112. package/dist/web-server/usage/cliproxy-usage-syncer.js.map +1 -1
  113. package/dist/web-server/usage/cliproxy-usage-transformer.d.ts +8 -1
  114. package/dist/web-server/usage/cliproxy-usage-transformer.d.ts.map +1 -1
  115. package/dist/web-server/usage/cliproxy-usage-transformer.js +31 -4
  116. package/dist/web-server/usage/cliproxy-usage-transformer.js.map +1 -1
  117. package/dist/web-server/usage/codex-local-quota-collector.d.ts +74 -0
  118. package/dist/web-server/usage/codex-local-quota-collector.d.ts.map +1 -0
  119. package/dist/web-server/usage/codex-local-quota-collector.js +248 -0
  120. package/dist/web-server/usage/codex-local-quota-collector.js.map +1 -0
  121. package/dist/web-server/usage/data-aggregator.d.ts +11 -0
  122. package/dist/web-server/usage/data-aggregator.d.ts.map +1 -1
  123. package/dist/web-server/usage/data-aggregator.js +29 -1
  124. package/dist/web-server/usage/data-aggregator.js.map +1 -1
  125. package/dist/web-server/usage/native-quota-collector.d.ts +44 -0
  126. package/dist/web-server/usage/native-quota-collector.d.ts.map +1 -0
  127. package/dist/web-server/usage/native-quota-collector.js +378 -0
  128. package/dist/web-server/usage/native-quota-collector.js.map +1 -0
  129. package/dist/web-server/usage/types.d.ts +2 -0
  130. package/dist/web-server/usage/types.d.ts.map +1 -1
  131. package/package.json +1 -1
  132. package/dist/ui/assets/api-B7OYas_V.js +0 -4
  133. package/dist/ui/assets/icons-DzKUh8vG.js +0 -1
  134. package/dist/ui/assets/index-DOfPoKe_.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"stats-fetcher.js","sourceRoot":"","sources":["../../../src/cliproxy/services/stats-fetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stats-fetcher.js","sourceRoot":"","sources":["../../../src/cliproxy/services/stats-fetcher.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,mEAA8F;AAC9F,0EAKwC;AACxC,2DAA0E;AAC1E,+EAAsF;AACtF,uFAO2C;AA4G3C,MAAM,yBAAyB,GAAG,IAAI,GAAG,EAAoC,CAAC;AAC9E,MAAM,sBAAsB,GAAG,IAAI,CAAC;AACpC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AACpC,MAAM,4BAA4B,GAAG,KAAM,CAAC;AAE5C;;;;GAIG;AACI,KAAK,UAAU,kBAAkB,CAAC,IAAa;IACpD,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC1C,qBAAqB,CAAC,IAAI,CAAC;YAC3B,sBAAsB,CAAC,IAAI,CAAC;SAC7B,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAA,uDAAmC,EAAC,IAAI,EAAE,EAAE,SAAS,EAAE,SAAS,IAAI,EAAE,EAAE,CAAC,CAAC;IACnF,CAAC;IAAC,MAAM,CAAC;QACP,0DAA0D;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAhBD,gDAgBC;AAED;;;GAGG;AACI,KAAK,UAAU,qBAAqB,CACzC,IAAa;IAEb,IAAI,aAA0D,CAAC;IAC/D,MAAM,gBAAgB,GAAG,GAAoC,EAAE;QAC7D,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,aAAa,GAAG,IAAA,sCAAc,GAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,mEAAqC,GAAE,CAAC;QAC3F,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,CAAC,QAAkC,EAA4B,EAAE,CAC1F,IAAA,sEAAoC,EAAC,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACrE,MAAM,yBAAyB,GAAG,CAChC,SAAmC,EACnC,OAAiC,EACP,EAAE,CAC5B,IAAA,sEAAoC,EAAC,SAAS,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;IAE1F,IAAI,oBAAoB,GAAoC,IAAI,CAAC;IACjE,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAC3C,sBAAsB,EACtB,IAAI,CACL,CAAC;IACF,IAAI,WAAW,EAAE,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,IAAA,iDAAe,EAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,OAAO,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;QACD,oBAAoB,GAAG,WAAW,CAAC,IAAI,CAAC;IAC1C,CAAC;IAED,IAAI,wBAA8D,CAAC;IACnE,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,UAAU,EAAE,QAAQ,EAAE,CAAC;QACzB,wBAAwB,GAAG,yBAAyB,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,aAAa,GAAG,IAAA,oEAAkC,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1E,IAAI,IAAA,iDAAe,EAAC,aAAa,CAAC,EAAE,CAAC;YACnC,MAAM,wBAAwB,GAAG,wBAAwB;gBACvD,CAAC,CAAC,IAAA,qDAAmB,EAAC,wBAAwB,EAAE,aAAa,CAAC;gBAC9D,CAAC,CAAC,aAAa,CAAC;YAClB,yBAAyB,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;YAC7E,wBAAwB,GAAG,wBAAwB,CAAC;YACpD,IAAI,UAAU,CAAC,EAAE,EAAE,CAAC;gBAClB,MAAM,QAAQ,GAAG,oBAAoB;oBACnC,CAAC,CAAC,yBAAyB,CAAC,oBAAoB,EAAE,wBAAwB,CAAC;oBAC3E,CAAC,CAAC,wBAAwB,CAAC;gBAC7B,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,oBAAoB,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,wBAAwB;YACvC,CAAC,CAAC,yBAAyB,CAAC,oBAAoB,EAAE,wBAAwB,CAAC;YAC3E,CAAC,CAAC,oBAAoB,CAAC;QACzB,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAU,8BAA8B,EAAE,IAAI,CAAC,CAAC;IAC7F,IAAI,WAAW,EAAE,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,+BAA+B,GAAG,wBAAwB;YAC9D,CAAC,CAAC,yBAAyB,CACvB,IAAA,mEAAiC,EAAC,WAAW,CAAC,IAAI,CAAC,EACnD,wBAAwB,CACzB;YACH,CAAC,CAAC,IAAA,mEAAiC,EAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,cAAc,GAAG,kBAAkB,CAAC,+BAA+B,CAAC,CAAC;QAC3E,IAAI,IAAA,gDAAc,EAAC,cAAc,CAAC,EAAE,CAAC;YACnC,OAAO,cAAc,CAAC;QACxB,CAAC;IACH,CAAC;IAED,IAAI,wBAAwB,EAAE,CAAC;QAC7B,OAAO,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,IAAI,QAAQ,IAAI,IAAA,iDAAe,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,UAAU,EAAE,EAAE,EAAE,CAAC;QACnB,OAAO,IAAA,oEAAkC,EAAC,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AA3FD,sDA2FC;AAED,KAAK,UAAU,sBAAsB,CACnC,IAAa;IAEb,MAAM,OAAO,GAAc,EAAE,CAAC;IAC9B,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAU,CAAC;IAClD,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAElC,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,uBAAuB,EAAE,UAAU,EAAE,EAAE,CAAC;QAC5E,MAAM,MAAM,GAAG,MAAM,mBAAmB,CACtC,oCAAoC,sBAAsB,EAAE,EAC5D,IAAI,CACL,CAAC;QACF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACpF,CAAC;QAED,QAAQ,KAAR,QAAQ,GAAK,MAAM,CAAC,QAAQ,EAAC;QAC7B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QACtF,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,sBAAsB,EAAE,CAAC;YAClD,MAAM,cAAc,GAAG,8BAA8B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACnE,IAAI,uBAAuB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;gBAChD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;YACxD,CAAC;YACD,uBAAuB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;YAChD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QACvD,CAAC;QAED,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,IAAI,4BAA4B,EAAE,CAAC;YAChE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QACxD,CAAC;IACH,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,8BAA8B,CAAC,OAAkB;IACxD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,YAAoB,EACpB,IAAa,EACb,SAAS,GAAG,IAAI;IAEhB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAElE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,sCAAc,GAAE,CAAC;QAChC,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,MAAM,GAAG,GAAG,IAAA,qCAAa,EAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ;YAC7B,CAAC,CAAC,IAAA,8CAAsB,EAAC,MAAM,CAAC;YAChC,CAAC,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,aAAa,EAAE,UAAU,IAAA,iDAA4B,GAAE,EAAE,EAAE,CAAC;QAE9F,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO;SACR,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QAC3E,CAAC;QAED,OAAO;YACL,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,IAAI,EAAE,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM;YAClC,QAAQ,EAAE,GAAG;SACd,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,sBAAsB,CAC1C,IAAa;IAEb,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,mBAAmB,CACtC,2BAA2B,EAC3B,IAAI,CACL,CAAC;QACF,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAjBD,wDAiBC;AAEY,QAAA,aAAa,GAAG;IAC3B,6BAA6B;QAC3B,yBAAyB,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;CACF,CAAC;AAEF;;;;;;;;;;GAUG;AACH,SAAgB,0BAA0B,CACxC,SAAuC;IAEvC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI;YAAE,SAAS;QACxE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAC5D,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAVD,gEAUC;AAuBD;;;;GAIG;AACI,KAAK,UAAU,mBAAmB,CAAC,IAAa;IACrD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;QAE7D,4BAA4B;QAC5B,MAAM,MAAM,GAAG,IAAA,sCAAc,GAAE,CAAC;QAChC,6CAA6C;QAC7C,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,MAAM,GAAG,GAAG,IAAA,qCAAa,EAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAEhD,mFAAmF;QACnF,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ;YAC7B,CAAC,CAAC,IAAA,yCAAiB,EAAC,MAAM,CAAC;YAC3B,CAAC,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,aAAa,EAAE,UAAU,IAAA,uCAAkB,GAAE,EAAE,EAAE,CAAC;QAEpF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO;SACR,CAAC,CAAC;QAEH,YAAY,CAAC,SAAS,CAAC,CAAC;QAExB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAsB,CAAC;QAE1D,iCAAiC;QACjC,MAAM,UAAU,GAAoC,EAAE,CAAC;QACvD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YAC5B,CAAC;YACD,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QAED,kDAAkD;QAClD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/C,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;QAED,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,IAAI;YACjB,UAAU;YACV,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;SAC7B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAtDD,kDAsDC;AAuBD;;;;GAIG;AACI,KAAK,UAAU,sBAAsB,CAAC,IAAa;IACxD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;QAE7D,4BAA4B;QAC5B,MAAM,MAAM,GAAG,IAAA,sCAAc,GAAE,CAAC;QAChC,6CAA6C;QAC7C,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,MAAM,GAAG,GAAG,IAAA,qCAAa,EAAC,MAAM,EAAE,mCAAmC,CAAC,CAAC;QAEvE,6FAA6F;QAC7F,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ;YAC7B,CAAC,CAAC,IAAA,8CAAsB,EAAC,MAAM,CAAC;YAChC,CAAC,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,aAAa,EAAE,UAAU,IAAA,iDAA4B,GAAE,EAAE,EAAE,CAAC;QAE9F,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO;SACR,CAAC,CAAC;QAEH,YAAY,CAAC,SAAS,CAAC,CAAC;QAExB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAyB,CAAC;QAC7D,OAAO,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAlCD,wDAkCC;AAED;;;;;GAKG;AACI,KAAK,UAAU,4BAA4B,CAChD,IAAY,EACZ,IAAa;IAEb,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;QAE7D,4BAA4B;QAC5B,MAAM,MAAM,GAAG,IAAA,sCAAc,GAAE,CAAC;QAChC,6CAA6C;QAC7C,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,MAAM,GAAG,GAAG,IAAA,qCAAa,EACvB,MAAM,EACN,qCAAqC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAChE,CAAC;QAEF,6FAA6F;QAC7F,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ;YAC7B,CAAC,CAAC,IAAA,8CAAsB,EAAC,MAAM,CAAC;YAChC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,IAAA,iDAA4B,GAAE,EAAE,EAAE,CAAC;QAElE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO;SACR,CAAC,CAAC;QAEH,YAAY,CAAC,SAAS,CAAC,CAAC;QAExB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAvCD,oEAuCC;AAED;;;;GAIG;AACI,KAAK,UAAU,iBAAiB,CAAC,IAAa;IACnD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa;QAE3E,4BAA4B;QAC5B,MAAM,MAAM,GAAG,IAAA,sCAAc,GAAE,CAAC;QAChC,6CAA6C;QAC7C,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,MAAM,GAAG,GAAG,IAAA,qCAAa,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAEvC,kDAAkD;QAClD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QAEH,YAAY,CAAC,SAAS,CAAC,CAAC;QACxB,OAAO,QAAQ,CAAC,EAAE,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAvBD,8CAuBC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * `ccs bar` command dispatcher
3
+ *
4
+ * Mirrors the pattern in src/commands/docker/index.ts.
5
+ * Subcommands: launch (default), install, uninstall, version / --version.
6
+ */
7
+ export declare function handleBarCommand(args: string[]): Promise<void>;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/bar/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuCpE"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ /**
3
+ * `ccs bar` command dispatcher
4
+ *
5
+ * Mirrors the pattern in src/commands/docker/index.ts.
6
+ * Subcommands: launch (default), install, uninstall, version / --version.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.handleBarCommand = void 0;
33
+ async function handleBarCommand(args) {
34
+ const subcommand = args[0];
35
+ // --version / version are aliases for the version subcommand
36
+ if (subcommand === '--version' || subcommand === 'version') {
37
+ const { handleBarVersion } = await Promise.resolve().then(() => __importStar(require('./version-subcommand')));
38
+ await handleBarVersion();
39
+ return;
40
+ }
41
+ const commandHandlers = {
42
+ launch: async (subArgs) => {
43
+ const { handleBarLaunch } = await Promise.resolve().then(() => __importStar(require('./launch-subcommand')));
44
+ await handleBarLaunch(subArgs);
45
+ },
46
+ install: async (subArgs) => {
47
+ const { handleBarInstall } = await Promise.resolve().then(() => __importStar(require('./install-subcommand')));
48
+ await handleBarInstall(subArgs);
49
+ },
50
+ uninstall: async (subArgs) => {
51
+ const { handleBarUninstall } = await Promise.resolve().then(() => __importStar(require('./uninstall-subcommand')));
52
+ await handleBarUninstall(subArgs);
53
+ },
54
+ };
55
+ // Bare `ccs bar` → launch
56
+ if (!subcommand || subcommand === 'launch') {
57
+ await commandHandlers.launch(subcommand ? args.slice(1) : []);
58
+ return;
59
+ }
60
+ const handler = commandHandlers[subcommand];
61
+ if (!handler) {
62
+ console.error(`[X] Unknown bar subcommand: ${subcommand}`);
63
+ console.error('[i] Usage: ccs bar [launch|install|uninstall|--version]');
64
+ return;
65
+ }
66
+ await handler(args.slice(1));
67
+ }
68
+ exports.handleBarCommand = handleBarCommand;
69
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/bar/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEI,KAAK,UAAU,gBAAgB,CAAC,IAAc;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAE3B,6DAA6D;IAC7D,IAAI,UAAU,KAAK,WAAW,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3D,MAAM,EAAE,gBAAgB,EAAE,GAAG,wDAAa,sBAAsB,GAAC,CAAC;QAClE,MAAM,gBAAgB,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IAED,MAAM,eAAe,GAAyD;QAC5E,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACxB,MAAM,EAAE,eAAe,EAAE,GAAG,wDAAa,qBAAqB,GAAC,CAAC;YAChE,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACzB,MAAM,EAAE,gBAAgB,EAAE,GAAG,wDAAa,sBAAsB,GAAC,CAAC;YAClE,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QACD,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAC3B,MAAM,EAAE,kBAAkB,EAAE,GAAG,wDAAa,wBAAwB,GAAC,CAAC;YACtE,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;KACF,CAAC;IAEF,0BAA0B;IAC1B,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC3C,MAAM,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,UAAU,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACzE,OAAO;IACT,CAAC;IAED,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC;AAvCD,4CAuCC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * `ccs bar install` — download the CCS Bar app from the floating
3
+ * `ccs-bar-latest` GitHub release tag and install to ~/Applications.
4
+ *
5
+ * Intentionally uses a FLOATING tag (not the exact CLI version) so the
6
+ * Swift app can be rebuilt and published independently. After install the
7
+ * handler calls GET /api/overview to verify version compatibility and warns
8
+ * (but does not hard-fail) on mismatch.
9
+ *
10
+ * Mirrors the download/version-pin pattern in src/cliproxy/binary-manager.ts.
11
+ */
12
+ export interface ReleaseAssetResult {
13
+ downloadUrl: string;
14
+ version: string;
15
+ }
16
+ export interface CompatResult {
17
+ version: string;
18
+ compatible: boolean;
19
+ }
20
+ export interface InstallDeps {
21
+ /**
22
+ * Resolve the asset download URL + version string from a GitHub release tag.
23
+ * Production: calls GitHub API releases/tags/{tag}.
24
+ * Test: mock that returns a fake URL + version.
25
+ */
26
+ fetchReleaseAsset: (tag: string, asset: string) => Promise<ReleaseAssetResult>;
27
+ /**
28
+ * Download the zip archive and extract the .app bundle into dest/.
29
+ * Production: uses undici to stream + extract (with redirect + status check).
30
+ */
31
+ downloadAndExtract: (url: string, dest: string) => Promise<void>;
32
+ /**
33
+ * Call GET {baseUrl}/api/overview and return { version, compatible }.
34
+ * compatible = server version major === installed app version major.
35
+ * Returns compatible:false (never true) when versions cannot be compared.
36
+ */
37
+ verifyCompat: (baseUrl: string, installedVersion: string) => Promise<CompatResult>;
38
+ /** Returns path to ~/.ccs (respects CCS_HOME). */
39
+ getCcsDir: () => string;
40
+ /** Destination directory for the .app bundle (~/Applications by default). */
41
+ getAppsDir: () => string;
42
+ }
43
+ /**
44
+ * Validate that a download URL is https and its hostname is in the allowlist
45
+ * (exact match or *.githubusercontent.com wildcard).
46
+ * Throws a descriptive Error if validation fails.
47
+ */
48
+ export declare function validateDownloadUrl(url: string): void;
49
+ export declare function handleBarInstall(_args: string[], deps?: Partial<InstallDeps>): Promise<void>;
50
+ //# sourceMappingURL=install-subcommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-subcommand.d.ts","sourceRoot":"","sources":["../../../src/commands/bar/install-subcommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAmCH,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC/E;;;OAGG;IACH,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE;;;;OAIG;IACH,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACnF,kDAAkD;IAClD,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,6EAA6E;IAC7E,UAAU,EAAE,MAAM,MAAM,CAAC;CAC1B;AAMD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAuBrD;AAiPD,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EAAE,EACf,IAAI,GAAE,OAAO,CAAC,WAAW,CAAM,GAC9B,OAAO,CAAC,IAAI,CAAC,CA+Ff"}
@@ -0,0 +1,383 @@
1
+ "use strict";
2
+ /**
3
+ * `ccs bar install` — download the CCS Bar app from the floating
4
+ * `ccs-bar-latest` GitHub release tag and install to ~/Applications.
5
+ *
6
+ * Intentionally uses a FLOATING tag (not the exact CLI version) so the
7
+ * Swift app can be rebuilt and published independently. After install the
8
+ * handler calls GET /api/overview to verify version compatibility and warns
9
+ * (but does not hard-fail) on mismatch.
10
+ *
11
+ * Mirrors the download/version-pin pattern in src/cliproxy/binary-manager.ts.
12
+ */
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.handleBarInstall = exports.validateDownloadUrl = void 0;
38
+ const fs = __importStar(require("fs"));
39
+ const os = __importStar(require("os"));
40
+ const path = __importStar(require("path"));
41
+ const config_loader_facade_1 = require("../../config/config-loader-facade");
42
+ // ---------------------------------------------------------------------------
43
+ // Constants
44
+ // ---------------------------------------------------------------------------
45
+ /** Floating release tag — never pin to exact CLI semver. */
46
+ const BAR_RELEASE_TAG = 'ccs-bar-latest';
47
+ const BAR_APP_NAME = 'CCS Bar.app';
48
+ const BAR_ASSET_NAME = 'CCS-Bar.app.zip';
49
+ const BAR_GITHUB_REPO = 'kaitranntt/ccs';
50
+ /**
51
+ * Allowlist of hostnames from which we will accept asset downloads.
52
+ * GitHub releases redirect from github.com to objects.githubusercontent.com.
53
+ *
54
+ * TODO(checksum-v2): once release assets ship a checksums.txt/.sha256 file,
55
+ * wire SHA-256 verification here. The download URL is already validated for
56
+ * host+HTTPS as a v1 minimum guard. The verifier hook below is the intended
57
+ * extension point.
58
+ */
59
+ const DOWNLOAD_HOST_ALLOWLIST = [
60
+ 'github.com',
61
+ 'objects.githubusercontent.com',
62
+ ];
63
+ // ---------------------------------------------------------------------------
64
+ // Host allowlist validation (Finding #9)
65
+ // ---------------------------------------------------------------------------
66
+ /**
67
+ * Validate that a download URL is https and its hostname is in the allowlist
68
+ * (exact match or *.githubusercontent.com wildcard).
69
+ * Throws a descriptive Error if validation fails.
70
+ */
71
+ function validateDownloadUrl(url) {
72
+ let parsed;
73
+ try {
74
+ parsed = new URL(url);
75
+ }
76
+ catch {
77
+ throw new Error(`Download URL is not a valid URL: ${url}`);
78
+ }
79
+ if (parsed.protocol !== 'https:') {
80
+ throw new Error(`Download URL must use HTTPS, got: ${parsed.protocol} for ${url}`);
81
+ }
82
+ const host = parsed.hostname.toLowerCase();
83
+ const allowed = DOWNLOAD_HOST_ALLOWLIST.includes(host) || host.endsWith('.githubusercontent.com');
84
+ if (!allowed) {
85
+ throw new Error(`Download URL hostname "${host}" is not in the trusted allowlist ` +
86
+ `(${DOWNLOAD_HOST_ALLOWLIST.join(', ')}, *.githubusercontent.com). ` +
87
+ `Refusing to download from untrusted host.`);
88
+ }
89
+ }
90
+ exports.validateDownloadUrl = validateDownloadUrl;
91
+ // ---------------------------------------------------------------------------
92
+ // Production implementation helpers
93
+ // ---------------------------------------------------------------------------
94
+ async function defaultFetchReleaseAsset(tag, asset) {
95
+ const { request } = await Promise.resolve().then(() => __importStar(require('undici')));
96
+ const apiUrl = `https://api.github.com/repos/${BAR_GITHUB_REPO}/releases/tags/${tag}`;
97
+ const { statusCode, body } = await request(apiUrl, {
98
+ headers: {
99
+ 'User-Agent': 'ccs-cli',
100
+ Accept: 'application/vnd.github+json',
101
+ },
102
+ });
103
+ if (statusCode !== 200) {
104
+ throw new Error(`GitHub API returned ${statusCode} for tag ${tag}`);
105
+ }
106
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
107
+ const release = (await body.json());
108
+ const tagName = release.tag_name ?? tag;
109
+ // Strip leading 'v' for the version pin file.
110
+ const version = tagName.replace(/^v/, '');
111
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
112
+ const found = release.assets.find((a) => a.name === asset);
113
+ if (!found) {
114
+ throw new Error(`Asset "${asset}" not found in release ${tag}`);
115
+ }
116
+ return { downloadUrl: found.browser_download_url, version };
117
+ }
118
+ /**
119
+ * Download a zip from `url` (following up to 5 GitHub 302 redirects, re-validating
120
+ * each hop's Location hostname) and extract its contents into `dest`.
121
+ *
122
+ * Fixes applied:
123
+ * - Fix #6: maxRedirections:0 + manual redirect following so every hop's Location
124
+ * header is passed through validateDownloadUrl before following it.
125
+ * The previous maxRedirections:5 let undici follow redirects to ANY host unchecked.
126
+ * - Fix #14: list zip entries with `unzip -l` before extracting; reject the archive
127
+ * if any entry path contains ".." or starts with "/" (zip-slip guard).
128
+ * - Finding #11: check `statusCode` and throw a descriptive error before streaming.
129
+ * - Finding #9: validate host+HTTPS before making the first request.
130
+ */
131
+ async function defaultDownloadAndExtract(url, dest) {
132
+ const { request } = await Promise.resolve().then(() => __importStar(require('undici')));
133
+ const { createWriteStream, mkdirSync } = fs;
134
+ const { promisify } = await Promise.resolve().then(() => __importStar(require('util')));
135
+ const { pipeline } = await Promise.resolve().then(() => __importStar(require('stream')));
136
+ const streamPipeline = promisify(pipeline);
137
+ const { execFile } = await Promise.resolve().then(() => __importStar(require('child_process')));
138
+ const execFileAsync = promisify(execFile);
139
+ // Validate initial URL (Finding #9)
140
+ validateDownloadUrl(url);
141
+ mkdirSync(dest, { recursive: true });
142
+ // Fix #6: follow redirects manually so each hop is re-validated.
143
+ const MAX_REDIRECTS = 5;
144
+ let currentUrl = url;
145
+ let redirectsFollowed = 0;
146
+ while (true) {
147
+ const { statusCode, headers, body } = await request(currentUrl, {
148
+ maxRedirections: 0, // disable undici's auto-follow; we follow manually
149
+ });
150
+ if (statusCode >= 300 && statusCode < 400) {
151
+ const location = Array.isArray(headers['location'])
152
+ ? headers['location'][0]
153
+ : headers['location'];
154
+ if (!location) {
155
+ throw new Error(`Redirect (HTTP ${statusCode}) from ${currentUrl} has no Location header`);
156
+ }
157
+ // Resolve relative redirects against the current URL
158
+ const resolved = new URL(location, currentUrl).toString();
159
+ // Re-validate the redirect target — this is the key fix for #6
160
+ validateDownloadUrl(resolved);
161
+ if (redirectsFollowed >= MAX_REDIRECTS) {
162
+ throw new Error(`Too many redirects (>${MAX_REDIRECTS}) while downloading ${url}`);
163
+ }
164
+ // Drain the body to free the socket before following the redirect
165
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
166
+ await body.dump?.();
167
+ currentUrl = resolved;
168
+ redirectsFollowed++;
169
+ continue;
170
+ }
171
+ if (statusCode !== 200) {
172
+ throw new Error(`Download failed: HTTP ${statusCode} for ${currentUrl}`);
173
+ }
174
+ const tmpZip = path.join(os.tmpdir(), `ccs-bar-${Date.now()}.zip`);
175
+ // Stream body to tmpZip
176
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
177
+ await streamPipeline(body, createWriteStream(tmpZip));
178
+ // Fix #14: zip-slip guard — inspect entries before extraction.
179
+ // `unzip -l` lists entries in a machine-readable format; we scan for ".." or
180
+ // absolute paths that would escape the destination directory.
181
+ try {
182
+ const { stdout: listing } = await execFileAsync('unzip', ['-l', tmpZip]);
183
+ const lines = listing.split('\n');
184
+ for (const line of lines) {
185
+ // Entry lines look like: " <size> <date> <time> <path>"
186
+ // We extract the path from the last whitespace-delimited field.
187
+ const match = /^\s+\d+\s+[\d-]+\s+[\d:]+\s+(.+)$/.exec(line);
188
+ if (!match || !match[1])
189
+ continue;
190
+ const entryPath = match[1].trim();
191
+ if (!entryPath || entryPath.endsWith('/'))
192
+ continue; // skip directory entries
193
+ // Reject absolute paths and paths with traversal components
194
+ if (path.isAbsolute(entryPath) || entryPath.includes('..')) {
195
+ try {
196
+ fs.unlinkSync(tmpZip);
197
+ }
198
+ catch {
199
+ /* ignore */
200
+ }
201
+ throw new Error(`Zip-slip detected: archive entry "${entryPath}" contains a path traversal ` +
202
+ `component. Refusing to extract.`);
203
+ }
204
+ }
205
+ }
206
+ catch (err) {
207
+ // If the guard itself throws (e.g. zip-slip detected above), propagate it.
208
+ // If it's a system error (unzip not available), let extraction proceed and
209
+ // surface the issue then.
210
+ if (err.message?.includes('Zip-slip'))
211
+ throw err;
212
+ // Warn but continue — extraction will likely also fail if unzip is missing
213
+ console.error(`[!] Zip entry scan failed (will attempt extraction): ${err.message}`);
214
+ }
215
+ // Extract the zip into dest
216
+ await execFileAsync('unzip', ['-o', tmpZip, '-d', dest]);
217
+ // Clean up the temp archive
218
+ try {
219
+ fs.unlinkSync(tmpZip);
220
+ }
221
+ catch {
222
+ /* ignore */
223
+ }
224
+ break;
225
+ }
226
+ }
227
+ /**
228
+ * Call GET {baseUrl}/api/overview and compare server version against the
229
+ * installed bar version. Returns compat=false whenever the comparison cannot
230
+ * be made (server unreachable, version strings unparseable, etc.).
231
+ *
232
+ * Fix for Finding #10: replaces the phantom check that always returned true.
233
+ * Compatible is defined as same semver major (0 vs 0, 1 vs 1, etc.).
234
+ */
235
+ async function defaultVerifyCompat(baseUrl, installedVersion) {
236
+ try {
237
+ const { request } = await Promise.resolve().then(() => __importStar(require('undici')));
238
+ const { statusCode, body } = await request(`${baseUrl}/api/overview`, {
239
+ headers: { 'User-Agent': 'ccs-cli' },
240
+ });
241
+ if (statusCode !== 200) {
242
+ console.log(`[!] Version compatibility check failed: /api/overview returned HTTP ${statusCode}.`);
243
+ return { version: 'unknown', compatible: false };
244
+ }
245
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
246
+ const data = (await body.json());
247
+ const serverVersion = data.version ?? 'unknown';
248
+ if (serverVersion === 'unknown') {
249
+ console.log('[!] Version compatibility: server did not report a version.');
250
+ return { version: serverVersion, compatible: false };
251
+ }
252
+ // Parse installed version major from the pinned version string.
253
+ const installedMajorRaw = installedVersion.split('.')[0];
254
+ const serverMajorRaw = serverVersion.split('.')[0];
255
+ const installedMajor = parseInt(installedMajorRaw ?? '', 10);
256
+ const serverMajor = parseInt(serverMajorRaw ?? '', 10);
257
+ if (isNaN(installedMajor) || isNaN(serverMajor)) {
258
+ console.log(`[!] Version compatibility: cannot parse major versions ` +
259
+ `(installed="${installedVersion}", server="${serverVersion}").`);
260
+ return { version: serverVersion, compatible: false };
261
+ }
262
+ const compatible = installedMajor === serverMajor;
263
+ return { version: serverVersion, compatible };
264
+ }
265
+ catch {
266
+ // Server unreachable — warn but do not claim compatible.
267
+ return { version: 'unknown', compatible: false };
268
+ }
269
+ }
270
+ function defaultGetCcsDir() {
271
+ return (0, config_loader_facade_1.getCcsDir)();
272
+ }
273
+ function defaultGetAppsDir() {
274
+ return path.join(os.homedir(), 'Applications');
275
+ }
276
+ // ---------------------------------------------------------------------------
277
+ // Version pin helpers
278
+ // ---------------------------------------------------------------------------
279
+ function getBarVersionFilePath(ccsDir) {
280
+ return path.join(ccsDir, 'bar', '.version');
281
+ }
282
+ function pinBarVersion(ccsDir, version) {
283
+ const versionFile = getBarVersionFilePath(ccsDir);
284
+ fs.mkdirSync(path.dirname(versionFile), { recursive: true });
285
+ fs.writeFileSync(versionFile, version);
286
+ }
287
+ // ---------------------------------------------------------------------------
288
+ // Implementation
289
+ // ---------------------------------------------------------------------------
290
+ async function handleBarInstall(_args, deps = {}) {
291
+ const fetchReleaseAsset = deps.fetchReleaseAsset ?? defaultFetchReleaseAsset;
292
+ const downloadAndExtract = deps.downloadAndExtract ?? defaultDownloadAndExtract;
293
+ const verifyCompat = deps.verifyCompat ?? defaultVerifyCompat;
294
+ const ccsDir = (deps.getCcsDir ?? defaultGetCcsDir)();
295
+ const appsDir = (deps.getAppsDir ?? defaultGetAppsDir)();
296
+ console.log('[i] Fetching CCS Bar release info...');
297
+ // 1. Resolve the floating tag → download URL + version.
298
+ let releaseInfo;
299
+ try {
300
+ releaseInfo = await fetchReleaseAsset(BAR_RELEASE_TAG, BAR_ASSET_NAME);
301
+ }
302
+ catch (err) {
303
+ const msg = err instanceof Error ? err.message : String(err);
304
+ console.error(`[X] Failed to fetch release asset: ${msg}`);
305
+ console.error('[i] Check your network connection and try again.');
306
+ return;
307
+ }
308
+ const { downloadUrl, version } = releaseInfo;
309
+ console.log(`[i] Installing CCS Bar v${version} from ${BAR_RELEASE_TAG}...`);
310
+ // 2. Download and extract into ~/Applications.
311
+ try {
312
+ await downloadAndExtract(downloadUrl, appsDir);
313
+ }
314
+ catch (err) {
315
+ const msg = err instanceof Error ? err.message : String(err);
316
+ console.error(`[X] Download or extraction failed: ${msg}`);
317
+ return;
318
+ }
319
+ // 3. Finding #12: assert that the expected .app bundle was actually extracted
320
+ // before reporting success.
321
+ const appPath = path.join(appsDir, BAR_APP_NAME);
322
+ if (!fs.existsSync(appPath)) {
323
+ // Report what was actually extracted to help diagnose archive issues.
324
+ let extracted = [];
325
+ try {
326
+ extracted = fs.readdirSync(appsDir);
327
+ }
328
+ catch {
329
+ /* ignore */
330
+ }
331
+ const found = extracted.length > 0 ? extracted.join(', ') : '(none)';
332
+ console.error(`[X] Extraction succeeded but "${BAR_APP_NAME}" was not found in ${appsDir}.`);
333
+ console.error(`[i] Files found in ${appsDir}: ${found}`);
334
+ return;
335
+ }
336
+ // 4. Pin the installed version to ~/.ccs/bar/.version.
337
+ try {
338
+ pinBarVersion(ccsDir, version);
339
+ }
340
+ catch (err) {
341
+ const msg = err instanceof Error ? err.message : String(err);
342
+ console.error(`[!] Could not write version pin: ${msg}`);
343
+ // Non-fatal — continue.
344
+ }
345
+ console.log(`[OK] CCS Bar v${version} installed to ${appsDir}/${BAR_APP_NAME}`);
346
+ // 5. Version-compat handshake via /api/overview.
347
+ // Read bar.json for baseUrl if present; otherwise fall back to localhost:3000.
348
+ const barJsonPath = path.join(ccsDir, 'bar.json');
349
+ let baseUrl = 'http://127.0.0.1:3000';
350
+ try {
351
+ const raw = fs.readFileSync(barJsonPath, 'utf8');
352
+ const parsed = JSON.parse(raw);
353
+ if (parsed.baseUrl)
354
+ baseUrl = parsed.baseUrl;
355
+ }
356
+ catch {
357
+ /* bar.json absent — use fallback */
358
+ }
359
+ try {
360
+ // Pass the pinned version so verifyCompat can do a real major-version comparison.
361
+ const compat = await verifyCompat(baseUrl, version);
362
+ if (!compat.compatible) {
363
+ console.log(`[!] Version mismatch: CCS server reports v${compat.version}, ` +
364
+ `app is v${version}. Some features may not work until you restart ` +
365
+ '`ccs bar` or update CCS.');
366
+ }
367
+ else {
368
+ console.log(`[OK] Version compatibility confirmed (server: v${compat.version}).`);
369
+ }
370
+ }
371
+ catch {
372
+ console.log('[!] Could not verify version compatibility (server may not be running).');
373
+ console.log('[i] Run `ccs bar` to start the server and recheck.');
374
+ }
375
+ // 6. Print Gatekeeper guidance for ad-hoc/unsigned builds.
376
+ console.log('');
377
+ console.log('[i] Gatekeeper note (ad-hoc build):');
378
+ console.log(' If macOS says the app is "damaged" or "unverified", run:');
379
+ console.log(` xattr -dr com.apple.quarantine "${path.join(appsDir, BAR_APP_NAME)}"`);
380
+ console.log(' Or right-click the app and select Open.');
381
+ }
382
+ exports.handleBarInstall = handleBarInstall;
383
+ //# sourceMappingURL=install-subcommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-subcommand.js","sourceRoot":"","sources":["../../../src/commands/bar/install-subcommand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * `ccs bar launch` — ensure web-server is up, write ~/.ccs/bar.json, open the app.
3
+ *
4
+ * bar.json shape (v1):
5
+ * { baseUrl: string, port: number, authMode: "loopback" }
6
+ *
7
+ * authMode is always "loopback" for v1 (auth-enabled unsupported until v1.1).
8
+ */
9
+ export interface BarDiscoveryJson {
10
+ baseUrl: string;
11
+ port: number;
12
+ authMode: 'loopback';
13
+ }
14
+ export interface DashboardInfo {
15
+ port: number;
16
+ baseUrl: string;
17
+ }
18
+ export interface LaunchDeps {
19
+ /**
20
+ * Ensure the CCS web-server / dashboard is running.
21
+ * Returns { port, baseUrl } of the running server.
22
+ * Throws if the server cannot be started (degraded path).
23
+ */
24
+ ensureDashboard: () => Promise<DashboardInfo>;
25
+ /** Open the installed .app bundle. Throws if the app is not found. */
26
+ openApp: (appPath: string) => Promise<void>;
27
+ /** Returns path to ~/.ccs (respects CCS_HOME for test isolation). */
28
+ getCcsDir: () => string;
29
+ /** Full path where the .app should be installed, e.g. ~/Applications/CCS Bar.app */
30
+ appInstallPath: string;
31
+ }
32
+ /**
33
+ * Read the port recorded in an existing bar.json.
34
+ * Returns null when the file is absent or malformed.
35
+ */
36
+ export declare function resolveBarPort(ccsDir: string): number | null;
37
+ export declare function handleBarLaunch(_args: string[], deps?: Partial<LaunchDeps>): Promise<void>;
38
+ //# sourceMappingURL=launch-subcommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch-subcommand.d.ts","sourceRoot":"","sources":["../../../src/commands/bar/launch-subcommand.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,eAAe,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9C,sEAAsE;IACtE,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,qEAAqE;IACrE,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,oFAAoF;IACpF,cAAc,EAAE,MAAM,CAAC;CACxB;AAMD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS5D;AAyCD,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EAAE,EACf,IAAI,GAAE,OAAO,CAAC,UAAU,CAAM,GAC7B,OAAO,CAAC,IAAI,CAAC,CAmDf"}