@keystrokehq/cli 0.1.147 → 0.1.149

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 (179) hide show
  1. package/README.md +35 -42
  2. package/dist/{alias-RTYYYW3D-CLFgrowj.mjs → alias-RTYYYW3D-BDy5K94v.mjs} +2 -2
  3. package/dist/{alias-RTYYYW3D-CLFgrowj.mjs.map → alias-RTYYYW3D-BDy5K94v.mjs.map} +1 -1
  4. package/dist/{awk2-LA3USKJP-BbsfXVlR.mjs → awk2-LA3USKJP-bQiQEw4P.mjs} +8 -8
  5. package/dist/{awk2-LA3USKJP-BbsfXVlR.mjs.map → awk2-LA3USKJP-bQiQEw4P.mjs.map} +1 -1
  6. package/dist/{base64-C2AIWVNC-C0WIgu5V.mjs → base64-C2AIWVNC-DMnyEdfa.mjs} +2 -2
  7. package/dist/{base64-C2AIWVNC-C0WIgu5V.mjs.map → base64-C2AIWVNC-DMnyEdfa.mjs.map} +1 -1
  8. package/dist/{basename-UB3CIYNI-BgNN3bGm.mjs → basename-UB3CIYNI-DOxZLtwj.mjs} +2 -2
  9. package/dist/{basename-UB3CIYNI-BgNN3bGm.mjs.map → basename-UB3CIYNI-DOxZLtwj.mjs.map} +1 -1
  10. package/dist/{bash-YZ33HQZQ-N6YyKtUH.mjs → bash-YZ33HQZQ-D4vRBW1d.mjs} +2 -2
  11. package/dist/{bash-YZ33HQZQ-N6YyKtUH.mjs.map → bash-YZ33HQZQ-D4vRBW1d.mjs.map} +1 -1
  12. package/dist/{cat-TSFMZVYS-Dz3-oHsV.mjs → cat-TSFMZVYS-D8QgnfyP.mjs} +3 -3
  13. package/dist/{cat-TSFMZVYS-Dz3-oHsV.mjs.map → cat-TSFMZVYS-D8QgnfyP.mjs.map} +1 -1
  14. package/dist/{chmod-TFEPA42X-YF02QJUv.mjs → chmod-TFEPA42X-CRWIslQq.mjs} +2 -2
  15. package/dist/{chmod-TFEPA42X-YF02QJUv.mjs.map → chmod-TFEPA42X-CRWIslQq.mjs.map} +1 -1
  16. package/dist/{chunk-5H5SCKJM-BvfXlL01.mjs → chunk-5H5SCKJM-BaNr0aSJ.mjs} +4 -4
  17. package/dist/{chunk-5H5SCKJM-BvfXlL01.mjs.map → chunk-5H5SCKJM-BaNr0aSJ.mjs.map} +1 -1
  18. package/dist/{chunk-EBAPSGAO-Ctfslw2R.mjs → chunk-EBAPSGAO-BRba1GMs.mjs} +2 -2
  19. package/dist/{chunk-EBAPSGAO-Ctfslw2R.mjs.map → chunk-EBAPSGAO-BRba1GMs.mjs.map} +1 -1
  20. package/dist/{chunk-LEKBROJD-CJMrAyu9.mjs → chunk-LEKBROJD-D1fMh3yQ.mjs} +3 -3
  21. package/dist/{chunk-LEKBROJD-CJMrAyu9.mjs.map → chunk-LEKBROJD-D1fMh3yQ.mjs.map} +1 -1
  22. package/dist/{clear-HKGFEOF6-CekN2x-O.mjs → clear-HKGFEOF6-Cy0E2H3t.mjs} +2 -2
  23. package/dist/{clear-HKGFEOF6-CekN2x-O.mjs.map → clear-HKGFEOF6-Cy0E2H3t.mjs.map} +1 -1
  24. package/dist/{column-XT6UFXNQ-DHENV9D2.mjs → column-XT6UFXNQ-czPN0bKF.mjs} +2 -2
  25. package/dist/{column-XT6UFXNQ-DHENV9D2.mjs.map → column-XT6UFXNQ-czPN0bKF.mjs.map} +1 -1
  26. package/dist/{comm-VV2LDX2J-ppxDJFkY.mjs → comm-VV2LDX2J-nTDBS00q.mjs} +2 -2
  27. package/dist/{comm-VV2LDX2J-ppxDJFkY.mjs.map → comm-VV2LDX2J-nTDBS00q.mjs.map} +1 -1
  28. package/dist/{cp-BISAAS7A-CMWayU4n.mjs → cp-BISAAS7A-CXqDGSmH.mjs} +3 -3
  29. package/dist/{cp-BISAAS7A-CMWayU4n.mjs.map → cp-BISAAS7A-CXqDGSmH.mjs.map} +1 -1
  30. package/dist/{cut-OKARJCCV-Bt8b58eI.mjs → cut-OKARJCCV-8_v90N99.mjs} +3 -3
  31. package/dist/{cut-OKARJCCV-Bt8b58eI.mjs.map → cut-OKARJCCV-8_v90N99.mjs.map} +1 -1
  32. package/dist/{date-UUUPW43J-B7T5OTZZ.mjs → date-UUUPW43J-BiJvTWWs.mjs} +2 -2
  33. package/dist/{date-UUUPW43J-B7T5OTZZ.mjs.map → date-UUUPW43J-BiJvTWWs.mjs.map} +1 -1
  34. package/dist/{diff-MWJFIG7X-DhnPc_5r.mjs → diff-MWJFIG7X-D5by0o7Y.mjs} +2 -2
  35. package/dist/{diff-MWJFIG7X-DhnPc_5r.mjs.map → diff-MWJFIG7X-D5by0o7Y.mjs.map} +1 -1
  36. package/dist/{dirname-MPHRFUTI-Dkb3S4OX.mjs → dirname-MPHRFUTI-VCKXiC16.mjs} +2 -2
  37. package/dist/{dirname-MPHRFUTI-Dkb3S4OX.mjs.map → dirname-MPHRFUTI-VCKXiC16.mjs.map} +1 -1
  38. package/dist/dist-BlsDG7kb.mjs +3 -0
  39. package/dist/{dist-E6dh6qXe.mjs → dist-C6adeAws.mjs} +1006 -138
  40. package/dist/dist-C6adeAws.mjs.map +1 -0
  41. package/dist/dist-DJQnugPi.mjs +1829 -0
  42. package/dist/dist-DJQnugPi.mjs.map +1 -0
  43. package/dist/{dist-B72RPrho.mjs → dist-DSkS8uEB.mjs} +43888 -28664
  44. package/dist/dist-DSkS8uEB.mjs.map +1 -0
  45. package/dist/dist-Dq1kkbLy.mjs +4 -0
  46. package/dist/{du-572XNP42-ClP4jXB1.mjs → du-572XNP42-C_zifijt.mjs} +3 -3
  47. package/dist/{du-572XNP42-ClP4jXB1.mjs.map → du-572XNP42-C_zifijt.mjs.map} +1 -1
  48. package/dist/{env-36M5BO7M-CsP_aiWr.mjs → env-36M5BO7M-CEbFSWHW.mjs} +6 -6
  49. package/dist/{env-36M5BO7M-CsP_aiWr.mjs.map → env-36M5BO7M-CEbFSWHW.mjs.map} +1 -1
  50. package/dist/{expand-JSPG6VOP-B-YUvYpu.mjs → expand-JSPG6VOP-CxlV2zRG.mjs} +2 -2
  51. package/dist/{expand-JSPG6VOP-B-YUvYpu.mjs.map → expand-JSPG6VOP-CxlV2zRG.mjs.map} +1 -1
  52. package/dist/{expr-5JAACS4X-1TBq84gG.mjs → expr-5JAACS4X-CM1VDr6S.mjs} +2 -2
  53. package/dist/{expr-5JAACS4X-1TBq84gG.mjs.map → expr-5JAACS4X-CM1VDr6S.mjs.map} +1 -1
  54. package/dist/{file-IPZJC3FQ-DcZNOWyY.mjs → file-IPZJC3FQ-DYa9X4WH.mjs} +17 -17
  55. package/dist/file-IPZJC3FQ-DYa9X4WH.mjs.map +1 -0
  56. package/dist/{find-INTH3OLC-6p47KeeT.mjs → find-INTH3OLC-CPiHWE9r.mjs} +4 -4
  57. package/dist/{find-INTH3OLC-6p47KeeT.mjs.map → find-INTH3OLC-CPiHWE9r.mjs.map} +1 -1
  58. package/dist/{fold-4TQNYMSW-C54bHzLd.mjs → fold-4TQNYMSW-B4tfWHg3.mjs} +2 -2
  59. package/dist/{fold-4TQNYMSW-C54bHzLd.mjs.map → fold-4TQNYMSW-B4tfWHg3.mjs.map} +1 -1
  60. package/dist/{grep-V3LQVMRQ-D99Bq7Kj.mjs → grep-V3LQVMRQ-BbRYJxzz.mjs} +3 -3
  61. package/dist/{grep-V3LQVMRQ-D99Bq7Kj.mjs.map → grep-V3LQVMRQ-BbRYJxzz.mjs.map} +1 -1
  62. package/dist/{gzip-O5ASJAFY-CZDRROqP.mjs → gzip-O5ASJAFY-rKFFXJyd.mjs} +2 -2
  63. package/dist/{gzip-O5ASJAFY-CZDRROqP.mjs.map → gzip-O5ASJAFY-rKFFXJyd.mjs.map} +1 -1
  64. package/dist/{head-442HYESI-D96RMdki.mjs → head-442HYESI-sl2UFkqV.mjs} +2 -2
  65. package/dist/{head-442HYESI-D96RMdki.mjs.map → head-442HYESI-sl2UFkqV.mjs.map} +1 -1
  66. package/dist/{history-WYYKSLSZ-ACNQVupn.mjs → history-WYYKSLSZ-BQO1BlWh.mjs} +2 -2
  67. package/dist/{history-WYYKSLSZ-ACNQVupn.mjs.map → history-WYYKSLSZ-BQO1BlWh.mjs.map} +1 -1
  68. package/dist/{html-to-markdown-JW4MSQZO-DQOxFIvF.mjs → html-to-markdown-JW4MSQZO-CJGwkgpQ.mjs} +2 -2
  69. package/dist/{html-to-markdown-JW4MSQZO-DQOxFIvF.mjs.map → html-to-markdown-JW4MSQZO-CJGwkgpQ.mjs.map} +1 -1
  70. package/dist/index.mjs +9 -1
  71. package/dist/index.mjs.map +1 -1
  72. package/dist/{join-TBRGI3LQ-B8I9tkJ5.mjs → join-TBRGI3LQ-BAeS4llp.mjs} +2 -2
  73. package/dist/{join-TBRGI3LQ-B8I9tkJ5.mjs.map → join-TBRGI3LQ-BAeS4llp.mjs.map} +1 -1
  74. package/dist/{jq-4XLYLOS5-wFZYfsfJ.mjs → jq-4XLYLOS5-BqwoG7Hj.mjs} +7 -7
  75. package/dist/{jq-4XLYLOS5-wFZYfsfJ.mjs.map → jq-4XLYLOS5-BqwoG7Hj.mjs.map} +1 -1
  76. package/dist/{js-exec-N5KEZBH7-CoRL1IOd.mjs → js-exec-N5KEZBH7-DbXmMwbQ.mjs} +13 -13
  77. package/dist/{js-exec-N5KEZBH7-CoRL1IOd.mjs.map → js-exec-N5KEZBH7-DbXmMwbQ.mjs.map} +1 -1
  78. package/dist/{ln-4LGSXXGD-Dg0R9i5G.mjs → ln-4LGSXXGD-CpN9ORGB.mjs} +2 -2
  79. package/dist/{ln-4LGSXXGD-Dg0R9i5G.mjs.map → ln-4LGSXXGD-CpN9ORGB.mjs.map} +1 -1
  80. package/dist/{ls-ZJGQER7M-DLDSfI4x.mjs → ls-ZJGQER7M-B0J6G8Ao.mjs} +3 -3
  81. package/dist/{ls-ZJGQER7M-DLDSfI4x.mjs.map → ls-ZJGQER7M-B0J6G8Ao.mjs.map} +1 -1
  82. package/dist/{maybe-auto-update-CKoJBwJ_.mjs → maybe-auto-update-dzy8lzxn.mjs} +13 -8
  83. package/dist/maybe-auto-update-dzy8lzxn.mjs.map +1 -0
  84. package/dist/{md5sum-SPU24VSG-DQc8sqXO.mjs → md5sum-SPU24VSG-CETB591F.mjs} +3 -3
  85. package/dist/{md5sum-SPU24VSG-DQc8sqXO.mjs.map → md5sum-SPU24VSG-CETB591F.mjs.map} +1 -1
  86. package/dist/{mkdir-MEPGZOB6-BjUKzhdL.mjs → mkdir-MEPGZOB6-B5bpLWTB.mjs} +6 -6
  87. package/dist/{mkdir-MEPGZOB6-BjUKzhdL.mjs.map → mkdir-MEPGZOB6-B5bpLWTB.mjs.map} +1 -1
  88. package/dist/{mv-W5BIQ646-CdSIyY-U.mjs → mv-W5BIQ646-7tYLVIVw.mjs} +3 -3
  89. package/dist/{mv-W5BIQ646-CdSIyY-U.mjs.map → mv-W5BIQ646-7tYLVIVw.mjs.map} +1 -1
  90. package/dist/{nl-WSDW7I4O-DmtCnyKU.mjs → nl-WSDW7I4O-CHnycLPl.mjs} +2 -2
  91. package/dist/{nl-WSDW7I4O-DmtCnyKU.mjs.map → nl-WSDW7I4O-CHnycLPl.mjs.map} +1 -1
  92. package/dist/{paste-7JC6S4DX-CtmM5Qy8.mjs → paste-7JC6S4DX-CKUaf7iE.mjs} +2 -2
  93. package/dist/{paste-7JC6S4DX-CtmM5Qy8.mjs.map → paste-7JC6S4DX-CKUaf7iE.mjs.map} +1 -1
  94. package/dist/{printf-TWGXF445-B7cTysaa.mjs → printf-TWGXF445-Byg8yI9x.mjs} +3 -3
  95. package/dist/{printf-TWGXF445-B7cTysaa.mjs.map → printf-TWGXF445-Byg8yI9x.mjs.map} +1 -1
  96. package/dist/{program-OcNo9lRF.mjs → program-CyirDIA2.mjs} +4538 -1013
  97. package/dist/program-CyirDIA2.mjs.map +1 -0
  98. package/dist/{python3-POMOR4OA-CKy80mpF.mjs → python3-POMOR4OA-D-6P4EKs.mjs} +17 -17
  99. package/dist/python3-POMOR4OA-D-6P4EKs.mjs.map +1 -0
  100. package/dist/{readlink-OPJF4DL5-Rc1Mz_Xx.mjs → readlink-OPJF4DL5-CGS-PxkH.mjs} +2 -2
  101. package/dist/{readlink-OPJF4DL5-Rc1Mz_Xx.mjs.map → readlink-OPJF4DL5-CGS-PxkH.mjs.map} +1 -1
  102. package/dist/{rev-5EHFX4EJ-3dd9vwHW.mjs → rev-5EHFX4EJ-BLJdSt1D.mjs} +2 -2
  103. package/dist/{rev-5EHFX4EJ-3dd9vwHW.mjs.map → rev-5EHFX4EJ-BLJdSt1D.mjs.map} +1 -1
  104. package/dist/{rg-S4FXYXWB-BbXVo6JX.mjs → rg-S4FXYXWB-Ekm2aMrv.mjs} +14 -14
  105. package/dist/{rg-S4FXYXWB-BbXVo6JX.mjs.map → rg-S4FXYXWB-Ekm2aMrv.mjs.map} +1 -1
  106. package/dist/{rm-SSGETQVQ-Ch53Rmrr.mjs → rm-SSGETQVQ-DV-525hw.mjs} +6 -6
  107. package/dist/{rm-SSGETQVQ-Ch53Rmrr.mjs.map → rm-SSGETQVQ-DV-525hw.mjs.map} +1 -1
  108. package/dist/{rmdir-OC4ZLPYA-D3QCHlIB.mjs → rmdir-OC4ZLPYA-BGOrZMUa.mjs} +3 -3
  109. package/dist/{rmdir-OC4ZLPYA-D3QCHlIB.mjs.map → rmdir-OC4ZLPYA-BGOrZMUa.mjs.map} +1 -1
  110. package/dist/{run-package-manager-update-DgeSZuUc.mjs → run-package-manager-update-C4uA6xWB.mjs} +281 -66
  111. package/dist/run-package-manager-update-C4uA6xWB.mjs.map +1 -0
  112. package/dist/{sed-S5UIK574-DE1KeTk3.mjs → sed-S5UIK574-C3nurgzc.mjs} +4 -4
  113. package/dist/{sed-S5UIK574-DE1KeTk3.mjs.map → sed-S5UIK574-C3nurgzc.mjs.map} +1 -1
  114. package/dist/{sha1sum-2PTOAFR6-DNjSNcYK.mjs → sha1sum-2PTOAFR6-GDQNigjA.mjs} +3 -3
  115. package/dist/{sha1sum-2PTOAFR6-DNjSNcYK.mjs.map → sha1sum-2PTOAFR6-GDQNigjA.mjs.map} +1 -1
  116. package/dist/{sha256sum-NS7D3IXX-BMaCKkT5.mjs → sha256sum-NS7D3IXX-bI78J2Ek.mjs} +3 -3
  117. package/dist/{sha256sum-NS7D3IXX-BMaCKkT5.mjs.map → sha256sum-NS7D3IXX-bI78J2Ek.mjs.map} +1 -1
  118. package/dist/skills-bundle/_AGENTS.mcp.md +9 -9
  119. package/dist/skills-bundle/_AGENTS.md +88 -47
  120. package/dist/{sleep-X22JJINO-Do5hEQQW.mjs → sleep-X22JJINO-gsrMSr5k.mjs} +2 -2
  121. package/dist/{sleep-X22JJINO-Do5hEQQW.mjs.map → sleep-X22JJINO-gsrMSr5k.mjs.map} +1 -1
  122. package/dist/{sort-SW2YEO5B-B7j1zw8k.mjs → sort-SW2YEO5B-D5UsbJuA.mjs} +3 -3
  123. package/dist/{sort-SW2YEO5B-B7j1zw8k.mjs.map → sort-SW2YEO5B-D5UsbJuA.mjs.map} +1 -1
  124. package/dist/{split-4KKZZXXE-h8GD4HP4.mjs → split-4KKZZXXE-D_eM0wGE.mjs} +2 -2
  125. package/dist/{split-4KKZZXXE-h8GD4HP4.mjs.map → split-4KKZZXXE-D_eM0wGE.mjs.map} +1 -1
  126. package/dist/{sqlite3-CGOEFJAO-DvzzghDg.mjs → sqlite3-CGOEFJAO-Eu-N4sPa.mjs} +3 -3
  127. package/dist/{sqlite3-CGOEFJAO-DvzzghDg.mjs.map → sqlite3-CGOEFJAO-Eu-N4sPa.mjs.map} +1 -1
  128. package/dist/{stat-CD34IZ4P-B5ZOJh4J.mjs → stat-CD34IZ4P-BS1XgX8K.mjs} +2 -2
  129. package/dist/{stat-CD34IZ4P-B5ZOJh4J.mjs.map → stat-CD34IZ4P-BS1XgX8K.mjs.map} +1 -1
  130. package/dist/{strings-6WDHLGMX-DdiEdoL-.mjs → strings-6WDHLGMX-BGTuHTcR.mjs} +2 -2
  131. package/dist/{strings-6WDHLGMX-DdiEdoL-.mjs.map → strings-6WDHLGMX-BGTuHTcR.mjs.map} +1 -1
  132. package/dist/{tail-R4PCA2C4-CUfroNeu.mjs → tail-R4PCA2C4-CfCvDsXY.mjs} +2 -2
  133. package/dist/{tail-R4PCA2C4-CUfroNeu.mjs.map → tail-R4PCA2C4-CfCvDsXY.mjs.map} +1 -1
  134. package/dist/{tar-STHHZTZ6-DRf60e-G.mjs → tar-STHHZTZ6-CzlFhy51.mjs} +3 -3
  135. package/dist/{tar-STHHZTZ6-DRf60e-G.mjs.map → tar-STHHZTZ6-CzlFhy51.mjs.map} +1 -1
  136. package/dist/{tee-YUZ2FKCJ-po_dfyc_.mjs → tee-YUZ2FKCJ-rZEvi44P.mjs} +2 -2
  137. package/dist/{tee-YUZ2FKCJ-po_dfyc_.mjs.map → tee-YUZ2FKCJ-rZEvi44P.mjs.map} +1 -1
  138. package/dist/templates/hello-world/README.md +1 -1
  139. package/dist/templates/hello-world/package.json +2 -3
  140. package/dist/{time-D4LNBSWX-DVWhAldK.mjs → time-D4LNBSWX-D_2r6q9s.mjs} +6 -6
  141. package/dist/{time-D4LNBSWX-DVWhAldK.mjs.map → time-D4LNBSWX-D_2r6q9s.mjs.map} +1 -1
  142. package/dist/{timeout-YDCRSLPQ-B_yntmXU.mjs → timeout-YDCRSLPQ-BCyope7T.mjs} +7 -7
  143. package/dist/{timeout-YDCRSLPQ-B_yntmXU.mjs.map → timeout-YDCRSLPQ-BCyope7T.mjs.map} +1 -1
  144. package/dist/{touch-UA33VN3N-oW1SBT1r.mjs → touch-UA33VN3N-NfG_nyJw.mjs} +2 -2
  145. package/dist/{touch-UA33VN3N-oW1SBT1r.mjs.map → touch-UA33VN3N-NfG_nyJw.mjs.map} +1 -1
  146. package/dist/{tr-36LHWFRQ-CTq3z6wq.mjs → tr-36LHWFRQ-BqtCYOhC.mjs} +3 -3
  147. package/dist/{tr-36LHWFRQ-CTq3z6wq.mjs.map → tr-36LHWFRQ-BqtCYOhC.mjs.map} +1 -1
  148. package/dist/{tree-YLD52CNT-CIozNsLQ.mjs → tree-YLD52CNT-BjNKvvwq.mjs} +3 -3
  149. package/dist/{tree-YLD52CNT-CIozNsLQ.mjs.map → tree-YLD52CNT-BjNKvvwq.mjs.map} +1 -1
  150. package/dist/{unexpand-CADSA4VO-Cq9DTcUg.mjs → unexpand-CADSA4VO-BRBq66Ny.mjs} +2 -2
  151. package/dist/{unexpand-CADSA4VO-Cq9DTcUg.mjs.map → unexpand-CADSA4VO-BRBq66Ny.mjs.map} +1 -1
  152. package/dist/{uniq-XSIZR6PB-D5lt-IXF.mjs → uniq-XSIZR6PB-CEAOHvgb.mjs} +3 -3
  153. package/dist/{uniq-XSIZR6PB-D5lt-IXF.mjs.map → uniq-XSIZR6PB-CEAOHvgb.mjs.map} +1 -1
  154. package/dist/{wc-LF7NU4LA-BFPabrwD.mjs → wc-LF7NU4LA-DQsmzFSM.mjs} +3 -3
  155. package/dist/{wc-LF7NU4LA-BFPabrwD.mjs.map → wc-LF7NU4LA-DQsmzFSM.mjs.map} +1 -1
  156. package/dist/{which-XEM24D5D-2LvlkpUo.mjs → which-XEM24D5D-ClMwNewh.mjs} +2 -2
  157. package/dist/{which-XEM24D5D-2LvlkpUo.mjs.map → which-XEM24D5D-ClMwNewh.mjs.map} +1 -1
  158. package/dist/{xan-Y6WF3IRG-DjKO96Pj.mjs → xan-Y6WF3IRG-CvZAKNm2.mjs} +7 -7
  159. package/dist/{xan-Y6WF3IRG-DjKO96Pj.mjs.map → xan-Y6WF3IRG-CvZAKNm2.mjs.map} +1 -1
  160. package/dist/{xargs-MGZPH7AX-D2bIgrdg.mjs → xargs-MGZPH7AX-DaERa6_Q.mjs} +6 -6
  161. package/dist/{xargs-MGZPH7AX-D2bIgrdg.mjs.map → xargs-MGZPH7AX-DaERa6_Q.mjs.map} +1 -1
  162. package/dist/{yq-4QJW3EQG-XhB3aACo.mjs → yq-4QJW3EQG-DABmi_in.mjs} +88 -88
  163. package/dist/yq-4QJW3EQG-DABmi_in.mjs.map +1 -0
  164. package/package.json +3 -6
  165. package/dist/dist-B72RPrho.mjs.map +0 -1
  166. package/dist/dist-CBVf3SwI.mjs +0 -11661
  167. package/dist/dist-CBVf3SwI.mjs.map +0 -1
  168. package/dist/dist-CyKcvwuI.mjs +0 -816
  169. package/dist/dist-CyKcvwuI.mjs.map +0 -1
  170. package/dist/dist-Duu6X1Sh.mjs +0 -4
  171. package/dist/dist-E6dh6qXe.mjs.map +0 -1
  172. package/dist/file-IPZJC3FQ-DcZNOWyY.mjs.map +0 -1
  173. package/dist/maybe-auto-update-CKoJBwJ_.mjs.map +0 -1
  174. package/dist/program-OcNo9lRF.mjs.map +0 -1
  175. package/dist/python3-POMOR4OA-CKy80mpF.mjs.map +0 -1
  176. package/dist/run-package-manager-update-DgeSZuUc.mjs.map +0 -1
  177. package/dist/watch-app-DTIeKrbl-CSpsNzVG.mjs +0 -100
  178. package/dist/watch-app-DTIeKrbl-CSpsNzVG.mjs.map +0 -1
  179. package/dist/yq-4QJW3EQG-XhB3aACo.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"rm-SSGETQVQ-Ch53Rmrr.mjs","names":["m","n","u","p"],"sources":["../../../node_modules/.pnpm/just-bash@3.0.1/node_modules/just-bash/dist/bundle/chunks/chunk-LPJEKUCB.js","../../../node_modules/.pnpm/just-bash@3.0.1/node_modules/just-bash/dist/bundle/chunks/rm-SSGETQVQ.js"],"sourcesContent":["import{createRequire} from\"node:module\";const require=createRequire(import.meta.url);\nimport{a as p}from\"./chunk-FOCWZZDE.js\";import{a as m}from\"./chunk-QIQMJJZ4.js\";import{a as u}from\"./chunk-W5DWRFSU.js\";var v={recursive:{short:\"r\",long:\"recursive\",type:\"boolean\"},recursiveUpper:{short:\"R\",type:\"boolean\"},force:{short:\"f\",long:\"force\",type:\"boolean\"},verbose:{short:\"v\",long:\"verbose\",type:\"boolean\"}},E={name:\"rm\",async execute(g,s){let e=m(\"rm\",g,v);if(!e.ok)return e.error;let i=e.result.flags.recursive||e.result.flags.recursiveUpper,a=e.result.flags.force,d=e.result.flags.verbose,c=e.result.positional;if(c.length===0)return a?{stdout:\"\",stderr:\"\",exitCode:0}:{stdout:\"\",stderr:`rm: missing operand\n`,exitCode:1};let f=\"\",t=\"\",l=0;for(let r of c)try{let n=s.fs.resolvePath(s.cwd,r);if((await s.fs.stat(n)).isDirectory&&!i){t+=`rm: cannot remove '${r}': Is a directory\n`,l=1;continue}await s.fs.rm(n,{recursive:i,force:a}),d&&(f+=`removed '${r}'\n`)}catch(n){if(!a){let o=u(n);o.includes(\"ENOENT\")||o.includes(\"no such file\")?t+=`rm: cannot remove '${r}': No such file or directory\n`:o.includes(\"ENOTEMPTY\")||o.includes(\"not empty\")?t+=`rm: cannot remove '${r}': Directory not empty\n`:t+=`rm: cannot remove '${r}': ${p(o)}\n`,l=1}}return{stdout:f,stderr:t,exitCode:l}}},$={name:\"rm\",flags:[{flag:\"-r\",type:\"boolean\"},{flag:\"-R\",type:\"boolean\"},{flag:\"-f\",type:\"boolean\"},{flag:\"-v\",type:\"boolean\"}],needsArgs:!0};export{E as a,$ as b};\n","import{createRequire} from\"node:module\";const require=createRequire(import.meta.url);\nimport{a,b}from\"./chunk-LPJEKUCB.js\";import\"./chunk-FOCWZZDE.js\";import\"./chunk-QIQMJJZ4.js\";import\"./chunk-W5DWRFSU.js\";import\"./chunk-QAYAQNCG.js\";import\"./chunk-BZUGFHVS.js\";export{b as flagsForFuzzing,a as rmCommand};\n"],"x_google_ignoreList":[0,1],"mappings":";;;;;;;;AAAsD,cAAc,OAAO,KAAK,GAAG;AACqC,IAAI,IAAE;CAAC,WAAU;EAAC,OAAM;EAAI,MAAK;EAAY,MAAK;CAAS;CAAE,gBAAe;EAAC,OAAM;EAAI,MAAK;CAAS;CAAE,OAAM;EAAC,OAAM;EAAI,MAAK;EAAQ,MAAK;CAAS;CAAE,SAAQ;EAAC,OAAM;EAAI,MAAK;EAAU,MAAK;CAAS;AAAC,GAAE,IAAE;CAAC,MAAK;CAAK,MAAM,QAAQ,GAAE,GAAE;EAAC,IAAI,IAAEA,EAAE,MAAK,GAAE,CAAC;EAAE,IAAG,CAAC,EAAE,IAAG,OAAO,EAAE;EAAM,IAAI,IAAE,EAAE,OAAO,MAAM,aAAW,EAAE,OAAO,MAAM,gBAAe,IAAE,EAAE,OAAO,MAAM,OAAM,IAAE,EAAE,OAAO,MAAM,SAAQ,IAAE,EAAE,OAAO;EAAW,IAAG,EAAE,WAAS,GAAE,OAAO,IAAE;GAAC,QAAO;GAAG,QAAO;GAAG,UAAS;EAAC,IAAE;GAAC,QAAO;GAAG,QAAO;;GACxlB,UAAS;EAAC;EAAE,IAAI,IAAE,IAAG,IAAE,IAAG,IAAE;EAAE,KAAI,IAAI,KAAK,GAAE,IAAG;GAAC,IAAI,IAAE,EAAE,GAAG,YAAY,EAAE,KAAI,CAAC;GAAE,KAAI,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,eAAa,CAAC,GAAE;IAAC,KAAG,sBAAsB,EAAE;GACrJ,IAAE;IAAE;GAAQ;GAAC,MAAM,EAAE,GAAG,GAAG,GAAE;IAAC,WAAU;IAAE,OAAM;GAAC,CAAC,GAAE,MAAI,KAAG,YAAY,EAAE;;EACzE,SAAOC,KAAE;GAAC,IAAG,CAAC,GAAE;IAAC,IAAI,IAAEC,EAAED,GAAC;IAAE,EAAE,SAAS,QAAQ,KAAG,EAAE,SAAS,cAAc,IAAE,KAAG,sBAAsB,EAAE;IACxG,EAAE,SAAS,WAAW,KAAG,EAAE,SAAS,WAAW,IAAE,KAAG,sBAAsB,EAAE;IAC5E,KAAG,sBAAsB,EAAE,KAAKE,IAAE,CAAC,EAAE;GACrC,IAAE;GAAC;EAAC;EAAC,OAAM;GAAC,QAAO;GAAE,QAAO;GAAE,UAAS;EAAC;CAAC;AAAC;;;ACPU,cAAc,OAAO,KAAK,GAAG"}
1
+ {"version":3,"file":"rm-SSGETQVQ-DV-525hw.mjs","names":["m","n","u","p"],"sources":["../../../node_modules/.pnpm/just-bash@3.0.1/node_modules/just-bash/dist/bundle/chunks/chunk-LPJEKUCB.js","../../../node_modules/.pnpm/just-bash@3.0.1/node_modules/just-bash/dist/bundle/chunks/rm-SSGETQVQ.js"],"sourcesContent":["import{createRequire} from\"node:module\";const require=createRequire(import.meta.url);\nimport{a as p}from\"./chunk-FOCWZZDE.js\";import{a as m}from\"./chunk-QIQMJJZ4.js\";import{a as u}from\"./chunk-W5DWRFSU.js\";var v={recursive:{short:\"r\",long:\"recursive\",type:\"boolean\"},recursiveUpper:{short:\"R\",type:\"boolean\"},force:{short:\"f\",long:\"force\",type:\"boolean\"},verbose:{short:\"v\",long:\"verbose\",type:\"boolean\"}},E={name:\"rm\",async execute(g,s){let e=m(\"rm\",g,v);if(!e.ok)return e.error;let i=e.result.flags.recursive||e.result.flags.recursiveUpper,a=e.result.flags.force,d=e.result.flags.verbose,c=e.result.positional;if(c.length===0)return a?{stdout:\"\",stderr:\"\",exitCode:0}:{stdout:\"\",stderr:`rm: missing operand\n`,exitCode:1};let f=\"\",t=\"\",l=0;for(let r of c)try{let n=s.fs.resolvePath(s.cwd,r);if((await s.fs.stat(n)).isDirectory&&!i){t+=`rm: cannot remove '${r}': Is a directory\n`,l=1;continue}await s.fs.rm(n,{recursive:i,force:a}),d&&(f+=`removed '${r}'\n`)}catch(n){if(!a){let o=u(n);o.includes(\"ENOENT\")||o.includes(\"no such file\")?t+=`rm: cannot remove '${r}': No such file or directory\n`:o.includes(\"ENOTEMPTY\")||o.includes(\"not empty\")?t+=`rm: cannot remove '${r}': Directory not empty\n`:t+=`rm: cannot remove '${r}': ${p(o)}\n`,l=1}}return{stdout:f,stderr:t,exitCode:l}}},$={name:\"rm\",flags:[{flag:\"-r\",type:\"boolean\"},{flag:\"-R\",type:\"boolean\"},{flag:\"-f\",type:\"boolean\"},{flag:\"-v\",type:\"boolean\"}],needsArgs:!0};export{E as a,$ as b};\n","import{createRequire} from\"node:module\";const require=createRequire(import.meta.url);\nimport{a,b}from\"./chunk-LPJEKUCB.js\";import\"./chunk-FOCWZZDE.js\";import\"./chunk-QIQMJJZ4.js\";import\"./chunk-W5DWRFSU.js\";import\"./chunk-QAYAQNCG.js\";import\"./chunk-BZUGFHVS.js\";export{b as flagsForFuzzing,a as rmCommand};\n"],"x_google_ignoreList":[0,1],"mappings":";;;;;;;;AAAsD,cAAc,OAAO,KAAK,GAAG;AACqC,IAAI,IAAE;CAAC,WAAU;EAAC,OAAM;EAAI,MAAK;EAAY,MAAK;CAAS;CAAE,gBAAe;EAAC,OAAM;EAAI,MAAK;CAAS;CAAE,OAAM;EAAC,OAAM;EAAI,MAAK;EAAQ,MAAK;CAAS;CAAE,SAAQ;EAAC,OAAM;EAAI,MAAK;EAAU,MAAK;CAAS;AAAC,GAAE,IAAE;CAAC,MAAK;CAAK,MAAM,QAAQ,GAAE,GAAE;EAAC,IAAI,IAAEA,EAAE,MAAK,GAAE,CAAC;EAAE,IAAG,CAAC,EAAE,IAAG,OAAO,EAAE;EAAM,IAAI,IAAE,EAAE,OAAO,MAAM,aAAW,EAAE,OAAO,MAAM,gBAAe,IAAE,EAAE,OAAO,MAAM,OAAM,IAAE,EAAE,OAAO,MAAM,SAAQ,IAAE,EAAE,OAAO;EAAW,IAAG,EAAE,WAAS,GAAE,OAAO,IAAE;GAAC,QAAO;GAAG,QAAO;GAAG,UAAS;EAAC,IAAE;GAAC,QAAO;GAAG,QAAO;;GACxlB,UAAS;EAAC;EAAE,IAAI,IAAE,IAAG,IAAE,IAAG,IAAE;EAAE,KAAI,IAAI,KAAK,GAAE,IAAG;GAAC,IAAI,IAAE,EAAE,GAAG,YAAY,EAAE,KAAI,CAAC;GAAE,KAAI,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,eAAa,CAAC,GAAE;IAAC,KAAG,sBAAsB,EAAE;GACrJ,IAAE;IAAE;GAAQ;GAAC,MAAM,EAAE,GAAG,GAAG,GAAE;IAAC,WAAU;IAAE,OAAM;GAAC,CAAC,GAAE,MAAI,KAAG,YAAY,EAAE;;EACzE,SAAOC,KAAE;GAAC,IAAG,CAAC,GAAE;IAAC,IAAI,IAAEC,IAAED,GAAC;IAAE,EAAE,SAAS,QAAQ,KAAG,EAAE,SAAS,cAAc,IAAE,KAAG,sBAAsB,EAAE;IACxG,EAAE,SAAS,WAAW,KAAG,EAAE,SAAS,WAAW,IAAE,KAAG,sBAAsB,EAAE;IAC5E,KAAG,sBAAsB,EAAE,KAAKE,EAAE,CAAC,EAAE;GACrC,IAAE;GAAC;EAAC;EAAC,OAAM;GAAC,QAAO;GAAE,QAAO;GAAE,UAAS;EAAC;CAAC;AAAC;;;ACPU,cAAc,OAAO,KAAK,GAAG"}
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
- import "./chunk-QAYAQNCG-Bl0Kbd53.mjs";
3
2
  import "./chunk-BZUGFHVS-CPWRFwK8.mjs";
4
- import { t as x$1 } from "./chunk-QIQMJJZ4-BwKdslXs.mjs";
5
3
  import { t as n } from "./chunk-W5DWRFSU-lCyWk0ph.mjs";
4
+ import "./chunk-QAYAQNCG-Bl0Kbd53.mjs";
5
+ import { t as x$1 } from "./chunk-QIQMJJZ4-BwKdslXs.mjs";
6
6
  import { createRequire } from "node:module";
7
7
  //#region ../../node_modules/.pnpm/just-bash@3.0.1/node_modules/just-bash/dist/bundle/chunks/chunk-SJYEXC2Z.js
8
8
  createRequire(import.meta.url);
@@ -129,4 +129,4 @@ createRequire(import.meta.url);
129
129
  //#endregion
130
130
  export { D as rmdirCommand };
131
131
 
132
- //# sourceMappingURL=rmdir-OC4ZLPYA-D3QCHlIB.mjs.map
132
+ //# sourceMappingURL=rmdir-OC4ZLPYA-BGOrZMUa.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"rmdir-OC4ZLPYA-D3QCHlIB.mjs","names":["p","g"],"sources":["../../../node_modules/.pnpm/just-bash@3.0.1/node_modules/just-bash/dist/bundle/chunks/chunk-SJYEXC2Z.js","../../../node_modules/.pnpm/just-bash@3.0.1/node_modules/just-bash/dist/bundle/chunks/rmdir-OC4ZLPYA.js"],"sourcesContent":["import{createRequire} from\"node:module\";const require=createRequire(import.meta.url);\nimport{a as p}from\"./chunk-QIQMJJZ4.js\";import{a as g}from\"./chunk-W5DWRFSU.js\";var x=`Usage: rmdir [-pv] DIRECTORY...\nRemove empty directories.\n\nOptions:\n -p, --parents Remove DIRECTORY and its ancestors\n -v, --verbose Output a diagnostic for every directory processed`,y={parents:{short:\"p\",long:\"parents\",type:\"boolean\"},verbose:{short:\"v\",long:\"verbose\",type:\"boolean\"},help:{long:\"help\",type:\"boolean\"}},D={name:\"rmdir\",async execute(t,r){let e=p(\"rmdir\",t,y);if(!e.ok)return e.error;if(e.result.flags.help)return{stdout:`${x}\n`,stderr:\"\",exitCode:0};let a=e.result.flags.parents,o=e.result.flags.verbose,s=e.result.positional;if(s.length===0)return{stdout:\"\",stderr:`rmdir: missing operand\n`,exitCode:1};let c=\"\",n=\"\",i=0;for(let u of s){let d=await b(r,u,a,o);c+=d.stdout,n+=d.stderr,d.exitCode!==0&&(i=d.exitCode)}return{stdout:c,stderr:n,exitCode:i}}};async function b(t,r,e,a){let o=\"\",s=\"\",n=t.fs.resolvePath(t.cwd,r),i=await v(t,n,r,a);if(o+=i.stdout,s+=i.stderr,i.exitCode!==0)return{stdout:o,stderr:s,exitCode:i.exitCode};if(e){let u=n,d=r;for(;;){let l=C(u),f=C(d);if(l===u||l===\"/\"||l===\".\"||f===\".\"||f===\"\")break;let m=await v(t,l,f,a);if(o+=m.stdout,m.exitCode!==0)break;u=l,d=f}}return{stdout:o,stderr:s,exitCode:0}}async function v(t,r,e,a){try{if(!await t.fs.exists(r))return{stdout:\"\",stderr:`rmdir: failed to remove '${e}': No such file or directory\n`,exitCode:1};if(!(await t.fs.stat(r)).isDirectory)return{stdout:\"\",stderr:`rmdir: failed to remove '${e}': Not a directory\n`,exitCode:1};if((await t.fs.readdir(r)).length>0)return{stdout:\"\",stderr:`rmdir: failed to remove '${e}': Directory not empty\n`,exitCode:1};await t.fs.rm(r,{recursive:!1,force:!1});let n=\"\";return a&&(n=`rmdir: removing directory, '${e}'\n`),{stdout:n,stderr:\"\",exitCode:0}}catch(o){let s=g(o);return{stdout:\"\",stderr:`rmdir: failed to remove '${e}': ${s}\n`,exitCode:1}}}function C(t){let r=t.replace(/\\/+$/,\"\"),e=r.lastIndexOf(\"/\");return e===-1?\".\":e===0?\"/\":r.substring(0,e)}var $={name:\"rmdir\",flags:[{flag:\"-p\",type:\"boolean\"},{flag:\"-v\",type:\"boolean\"}],needsArgs:!0};export{D as a,$ as b};\n","import{createRequire} from\"node:module\";const require=createRequire(import.meta.url);\nimport{a,b}from\"./chunk-SJYEXC2Z.js\";import\"./chunk-QIQMJJZ4.js\";import\"./chunk-W5DWRFSU.js\";import\"./chunk-QAYAQNCG.js\";import\"./chunk-BZUGFHVS.js\";export{b as flagsForFuzzing,a as rmdirCommand};\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
1
+ {"version":3,"file":"rmdir-OC4ZLPYA-BGOrZMUa.mjs","names":["p","g"],"sources":["../../../node_modules/.pnpm/just-bash@3.0.1/node_modules/just-bash/dist/bundle/chunks/chunk-SJYEXC2Z.js","../../../node_modules/.pnpm/just-bash@3.0.1/node_modules/just-bash/dist/bundle/chunks/rmdir-OC4ZLPYA.js"],"sourcesContent":["import{createRequire} from\"node:module\";const require=createRequire(import.meta.url);\nimport{a as p}from\"./chunk-QIQMJJZ4.js\";import{a as g}from\"./chunk-W5DWRFSU.js\";var x=`Usage: rmdir [-pv] DIRECTORY...\nRemove empty directories.\n\nOptions:\n -p, --parents Remove DIRECTORY and its ancestors\n -v, --verbose Output a diagnostic for every directory processed`,y={parents:{short:\"p\",long:\"parents\",type:\"boolean\"},verbose:{short:\"v\",long:\"verbose\",type:\"boolean\"},help:{long:\"help\",type:\"boolean\"}},D={name:\"rmdir\",async execute(t,r){let e=p(\"rmdir\",t,y);if(!e.ok)return e.error;if(e.result.flags.help)return{stdout:`${x}\n`,stderr:\"\",exitCode:0};let a=e.result.flags.parents,o=e.result.flags.verbose,s=e.result.positional;if(s.length===0)return{stdout:\"\",stderr:`rmdir: missing operand\n`,exitCode:1};let c=\"\",n=\"\",i=0;for(let u of s){let d=await b(r,u,a,o);c+=d.stdout,n+=d.stderr,d.exitCode!==0&&(i=d.exitCode)}return{stdout:c,stderr:n,exitCode:i}}};async function b(t,r,e,a){let o=\"\",s=\"\",n=t.fs.resolvePath(t.cwd,r),i=await v(t,n,r,a);if(o+=i.stdout,s+=i.stderr,i.exitCode!==0)return{stdout:o,stderr:s,exitCode:i.exitCode};if(e){let u=n,d=r;for(;;){let l=C(u),f=C(d);if(l===u||l===\"/\"||l===\".\"||f===\".\"||f===\"\")break;let m=await v(t,l,f,a);if(o+=m.stdout,m.exitCode!==0)break;u=l,d=f}}return{stdout:o,stderr:s,exitCode:0}}async function v(t,r,e,a){try{if(!await t.fs.exists(r))return{stdout:\"\",stderr:`rmdir: failed to remove '${e}': No such file or directory\n`,exitCode:1};if(!(await t.fs.stat(r)).isDirectory)return{stdout:\"\",stderr:`rmdir: failed to remove '${e}': Not a directory\n`,exitCode:1};if((await t.fs.readdir(r)).length>0)return{stdout:\"\",stderr:`rmdir: failed to remove '${e}': Directory not empty\n`,exitCode:1};await t.fs.rm(r,{recursive:!1,force:!1});let n=\"\";return a&&(n=`rmdir: removing directory, '${e}'\n`),{stdout:n,stderr:\"\",exitCode:0}}catch(o){let s=g(o);return{stdout:\"\",stderr:`rmdir: failed to remove '${e}': ${s}\n`,exitCode:1}}}function C(t){let r=t.replace(/\\/+$/,\"\"),e=r.lastIndexOf(\"/\");return e===-1?\".\":e===0?\"/\":r.substring(0,e)}var $={name:\"rmdir\",flags:[{flag:\"-p\",type:\"boolean\"},{flag:\"-v\",type:\"boolean\"}],needsArgs:!0};export{D as a,$ as b};\n","import{createRequire} from\"node:module\";const require=createRequire(import.meta.url);\nimport{a,b}from\"./chunk-SJYEXC2Z.js\";import\"./chunk-QIQMJJZ4.js\";import\"./chunk-W5DWRFSU.js\";import\"./chunk-QAYAQNCG.js\";import\"./chunk-BZUGFHVS.js\";export{b as flagsForFuzzing,a as rmdirCommand};\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
- import { Mr as LOCAL_PLATFORM_ORIGIN, fr as originFromPublicUrl } from "./dist-E6dh6qXe.mjs";
2
+ import { Ri as LOCAL_PLATFORM_ORIGIN, gi as originFromPublicUrl } from "./dist-C6adeAws.mjs";
3
3
  import Conf from "conf";
4
4
  import { homedir } from "node:os";
5
5
  import { dirname, join } from "node:path";
6
- import { existsSync, readFileSync, realpathSync } from "node:fs";
6
+ import { existsSync, readFileSync, realpathSync, writeFileSync } from "node:fs";
7
7
  import { spawnSync } from "node:child_process";
8
8
  import { fileURLToPath } from "node:url";
9
9
  //#region src/errors/expected-cli-error.ts
@@ -54,15 +54,6 @@ function resolvePlatformUrlForWebUrl(webUrl, options = {}) {
54
54
  function getCliConfigDir(cwd = join(homedir(), ".keystroke")) {
55
55
  return cwd;
56
56
  }
57
- function getConfigDir(config) {
58
- return dirname(config.path);
59
- }
60
- function getEffectiveApiTarget(config) {
61
- const explicit = config.get("apiTarget");
62
- if (explicit === "local" || explicit === "platform") return explicit;
63
- if (process.env.KEYSTROKE_API_KEY?.trim()) return "platform";
64
- return "local";
65
- }
66
57
  function syncPlatformUrlWithWebUrl(config) {
67
58
  const known = knownPlatformUrlForWebUrl(config.get("webUrl"));
68
59
  if (!known) return;
@@ -81,10 +72,6 @@ function createCliConfig(cwd = getCliConfigDir()) {
81
72
  type: "string",
82
73
  default: DEFAULT_PLATFORM_URL
83
74
  },
84
- apiTarget: {
85
- type: "string",
86
- enum: ["local", "platform"]
87
- },
88
75
  credentialStorage: {
89
76
  type: "string",
90
77
  enum: ["keychain", "file"]
@@ -130,7 +117,33 @@ function readCliVersion() {
130
117
  return JSON.parse(readFileSync(packageJsonPath, "utf8")).version ?? "0.0.0";
131
118
  }
132
119
  //#endregion
133
- //#region src/update/compare-version.ts
120
+ //#region ../../packages/shared/dist/cli-release.mjs
121
+ const STAGING_PLATFORM_HOST = "staging-api.keystroke.ai";
122
+ const CLI_PACKAGE_NAME$1 = "@keystrokehq/cli";
123
+ const REGISTRY_URL = "https://registry.npmjs.org/@keystrokehq%2Fcli";
124
+ const REQUEST_TIMEOUT_MS = 3e3;
125
+ /**
126
+ * npm dist-tag for `@keystrokehq/cli` auto-update / explicit update.
127
+ *
128
+ * Priority: KEYSTROKE_CLI_DIST_TAG → KEYSTROKE_ENVIRONMENT=staging →
129
+ * staging platform URL → latest.
130
+ */
131
+ function resolveCliDistTag(env = process.env) {
132
+ const explicit = env.KEYSTROKE_CLI_DIST_TAG?.trim();
133
+ if (explicit) return explicit;
134
+ if (env.KEYSTROKE_ENVIRONMENT?.trim() === "staging") return "staging";
135
+ for (const key of ["KEYSTROKE_PLATFORM_URL", "PUBLIC_PLATFORM_URL"]) {
136
+ const raw = env[key]?.trim();
137
+ if (!raw) continue;
138
+ try {
139
+ if (new URL(raw).hostname === STAGING_PLATFORM_HOST) return "staging";
140
+ } catch {}
141
+ }
142
+ return "latest";
143
+ }
144
+ function cliPackageSpec(distTagOrVersion = resolveCliDistTag()) {
145
+ return `${CLI_PACKAGE_NAME$1}@${distTagOrVersion}`;
146
+ }
134
147
  function parseVersion(version) {
135
148
  const [major = 0, minor = 0, patch = 0] = (version.trim().replace(/^v/, "").split("-")[0] ?? "").split(".").map((part) => {
136
149
  const value = Number.parseInt(part, 10);
@@ -142,13 +155,160 @@ function parseVersion(version) {
142
155
  patch
143
156
  ];
144
157
  }
158
+ /** `0.0.0-staging.<timestamp>` → timestamp, else undefined. */
159
+ function stagingSnapshotTimestamp(version) {
160
+ const match = version.trim().replace(/^v/, "").match(/^0\.0\.0-staging\.(\d+)$/);
161
+ if (!match?.[1]) return;
162
+ const value = Number.parseInt(match[1], 10);
163
+ return Number.isFinite(value) ? value : void 0;
164
+ }
165
+ function isStagingSnapshotVersion(version) {
166
+ return stagingSnapshotTimestamp(version) !== void 0;
167
+ }
145
168
  function isNewerVersion(latest, current) {
169
+ const latestStaging = stagingSnapshotTimestamp(latest);
170
+ const currentStaging = stagingSnapshotTimestamp(current);
171
+ if (latestStaging !== void 0 && currentStaging !== void 0) return latestStaging > currentStaging;
146
172
  const [latestMajor, latestMinor, latestPatch] = parseVersion(latest);
147
173
  const [currentMajor, currentMinor, currentPatch] = parseVersion(current);
148
174
  if (latestMajor !== currentMajor) return latestMajor > currentMajor;
149
175
  if (latestMinor !== currentMinor) return latestMinor > currentMinor;
150
176
  return latestPatch > currentPatch;
151
177
  }
178
+ /**
179
+ * Whether auto-update / `keystroke update` should install `registryVersion`.
180
+ * Handles channel switches (prod ↔ staging) where semver alone would refuse.
181
+ */
182
+ function shouldUpdateCliVersion(input) {
183
+ const { registryVersion, currentVersion, distTag } = input;
184
+ if (registryVersion.trim() === currentVersion.trim()) return false;
185
+ const currentIsStaging = isStagingSnapshotVersion(currentVersion);
186
+ const registryIsStaging = isStagingSnapshotVersion(registryVersion);
187
+ if (distTag === "staging") {
188
+ if (!currentIsStaging) return true;
189
+ return isNewerVersion(registryVersion, currentVersion);
190
+ }
191
+ if (currentIsStaging && !registryIsStaging) return true;
192
+ return isNewerVersion(registryVersion, currentVersion);
193
+ }
194
+ async function fetchLatestCliRelease(distTag = resolveCliDistTag(), options) {
195
+ const timeoutMs = options?.timeoutMs ?? REQUEST_TIMEOUT_MS;
196
+ const fetchImpl = options?.fetchImpl ?? fetch;
197
+ const controller = new AbortController();
198
+ const timeout = setTimeout(() => controller.abort(), timeoutMs);
199
+ try {
200
+ const response = await fetchImpl(REGISTRY_URL, {
201
+ signal: controller.signal,
202
+ headers: { Accept: "application/json" }
203
+ });
204
+ if (!response.ok) return;
205
+ const payload = await response.json();
206
+ const version = payload["dist-tags"]?.[distTag]?.trim();
207
+ if (!version) return;
208
+ return {
209
+ version,
210
+ publishedAt: payload.time?.[version],
211
+ distTag
212
+ };
213
+ } catch {
214
+ return;
215
+ } finally {
216
+ clearTimeout(timeout);
217
+ }
218
+ }
219
+ //#endregion
220
+ //#region src/update/ensure-sdk-current.ts
221
+ const CLI_PACKAGE_NAME = "@keystrokehq/cli";
222
+ const KEYSTROKE_SCOPE = "@keystrokehq/";
223
+ const REGISTRY_TIMEOUT_MS = 3e3;
224
+ function shouldSkip() {
225
+ return Boolean(process.env.KEYSTROKE_SKIP_UPDATE || process.env.CI === "true" || process.env.CI === "1");
226
+ }
227
+ function readPackageJson(root) {
228
+ const path = join(root, "package.json");
229
+ if (!existsSync(path)) return;
230
+ try {
231
+ return JSON.parse(readFileSync(path, "utf8"));
232
+ } catch {
233
+ return;
234
+ }
235
+ }
236
+ /** Local/workspace specs are left alone; everything else (ranges and exact pins) must stay current. */
237
+ function isLocalSdkSpec(spec) {
238
+ if (!spec) return true;
239
+ const trimmed = spec.trim();
240
+ return trimmed.startsWith("workspace:") || trimmed.startsWith("link:") || trimmed.startsWith("file:");
241
+ }
242
+ function listManagedKeystrokePackages(root) {
243
+ const pkg = readPackageJson(root);
244
+ if (!pkg) return [];
245
+ const packages = [];
246
+ for (const [name, spec] of Object.entries({
247
+ ...pkg.dependencies,
248
+ ...pkg.devDependencies
249
+ })) {
250
+ if (name === "@keystrokehq/cli") continue;
251
+ if (name.startsWith(KEYSTROKE_SCOPE) && !isLocalSdkSpec(spec)) packages.push({ name });
252
+ }
253
+ return packages;
254
+ }
255
+ function readInstalledVersion(root, packageName) {
256
+ const path = join(root, "node_modules", ...packageName.split("/"), "package.json");
257
+ if (!existsSync(path)) return;
258
+ try {
259
+ return JSON.parse(readFileSync(path, "utf8")).version?.trim() || void 0;
260
+ } catch {
261
+ return;
262
+ }
263
+ }
264
+ async function fetchLatestPackageVersion(packageName) {
265
+ const controller = new AbortController();
266
+ const timeout = setTimeout(() => controller.abort(), REGISTRY_TIMEOUT_MS);
267
+ try {
268
+ const response = await fetch(`https://registry.npmjs.org/${encodeURIComponent(packageName)}`, {
269
+ signal: controller.signal,
270
+ headers: { Accept: "application/json" }
271
+ });
272
+ if (!response.ok) return;
273
+ return (await response.json())["dist-tags"]?.latest?.trim() || void 0;
274
+ } catch {
275
+ return;
276
+ } finally {
277
+ clearTimeout(timeout);
278
+ }
279
+ }
280
+ function formatOutdatedLine(pkg) {
281
+ if (pkg.installed && pkg.latest) return `- ${pkg.name} (${pkg.installed} → ${pkg.latest})`;
282
+ if (pkg.latest) return `- ${pkg.name} (not installed → ${pkg.latest})`;
283
+ return `- ${pkg.name}`;
284
+ }
285
+ async function packagesNeedingUpdate(root, packages) {
286
+ return (await Promise.all(packages.map(async (pkg) => {
287
+ const installed = readInstalledVersion(root, pkg.name);
288
+ const latest = await fetchLatestPackageVersion(pkg.name);
289
+ if (!latest) return installed ? void 0 : {
290
+ name: pkg.name,
291
+ installed
292
+ };
293
+ if (!installed || isNewerVersion(latest, installed)) return {
294
+ name: pkg.name,
295
+ installed,
296
+ latest
297
+ };
298
+ }))).flatMap((pkg) => pkg ? [pkg] : []);
299
+ }
300
+ /**
301
+ * Require @keystrokehq/* project dependencies to be on latest before build/deploy.
302
+ * Skips `@keystrokehq/cli` (global + self-updating). Throws instead of auto-installing.
303
+ */
304
+ async function ensureSdkCurrent(root) {
305
+ if (shouldSkip()) return;
306
+ const packages = listManagedKeystrokePackages(root);
307
+ if (packages.length === 0) return;
308
+ const outdated = await packagesNeedingUpdate(root, packages);
309
+ if (outdated.length === 0) return;
310
+ throw new ExpectedCliError(`@keystrokehq packages are behind npm latest:\n${outdated.map(formatOutdatedLine).join("\n")}\n\nRun \`keystroke update\`, then retry.`);
311
+ }
152
312
  //#endregion
153
313
  //#region src/init/package-manager.ts
154
314
  const MANAGERS = [
@@ -202,7 +362,7 @@ function installPlaygroundDependencies(cwd) {
202
362
  }
203
363
  /**
204
364
  * Build every workspace package so the playground's `link:` deps resolve to
205
- * compiled `dist/`. Without this, `keystroke dev` fails with
365
+ * compiled `dist/`. Without this, local imports fail with
206
366
  * `ERR_MODULE_NOT_FOUND` against whichever package was never built. Turbo
207
367
  * caches, so this is only slow on the first run.
208
368
  */
@@ -223,6 +383,14 @@ function realpathSafe(path) {
223
383
  return path;
224
384
  }
225
385
  }
386
+ /**
387
+ * Resolve an npm `--prefix` root from a global package path.
388
+ * Layout: `<prefix>/lib/node_modules/@keystrokehq/cli`.
389
+ */
390
+ function resolveNpmInstallPrefix(packageRoot) {
391
+ const prefix = packageRoot.replace(/\\/g, "/").replace(/\/+$/, "").match(/^(.*)\/lib\/node_modules\/@keystrokehq\/cli$/)?.[1]?.trim();
392
+ return prefix && prefix.length > 0 ? prefix : void 0;
393
+ }
226
394
  function detectManagerFromLockfile(dir) {
227
395
  if (existsSync(join(dir, "pnpm-lock.yaml"))) return "pnpm";
228
396
  if (existsSync(join(dir, "bun.lockb")) || existsSync(join(dir, "bun.lock"))) return "bun";
@@ -286,6 +454,13 @@ function detectCliInstall(packageRoot) {
286
454
  packageRoot: normalizedRoot,
287
455
  projectRoot
288
456
  };
457
+ const npmPrefix = resolveNpmInstallPrefix(normalizedRoot);
458
+ if (npmPrefix) return {
459
+ kind: "global",
460
+ packageManager: "npm",
461
+ packageRoot: normalizedRoot,
462
+ npmPrefix
463
+ };
289
464
  return {
290
465
  kind: "global",
291
466
  packageManager: detectGlobalManager(normalizedRoot),
@@ -306,33 +481,7 @@ function isReleaseAgeBlock(output) {
306
481
  }
307
482
  function formatReleaseAgeBlockMessage(options) {
308
483
  const retry = options.retryAfter !== void 0 ? ` Retry after ${options.retryAfter.toLocaleString()}.` : "";
309
- return `@keystrokehq/cli ${options.availableVersion} is available but blocked by your minimum-release-age setting. You're on ${options.currentVersion}.${retry} Add @keystrokehq/cli to minimumReleaseAgeExclude to install immediately.`;
310
- }
311
- //#endregion
312
- //#region src/update/fetch-latest-version.ts
313
- const REGISTRY_URL = "https://registry.npmjs.org/@keystrokehq%2Fcli";
314
- const REQUEST_TIMEOUT_MS = 3e3;
315
- async function fetchLatestCliRelease() {
316
- const controller = new AbortController();
317
- const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);
318
- try {
319
- const response = await fetch(REGISTRY_URL, {
320
- signal: controller.signal,
321
- headers: { Accept: "application/json" }
322
- });
323
- if (!response.ok) return;
324
- const payload = await response.json();
325
- const version = payload["dist-tags"]?.latest?.trim();
326
- if (!version) return;
327
- return {
328
- version,
329
- publishedAt: payload.time?.[version]
330
- };
331
- } catch {
332
- return;
333
- } finally {
334
- clearTimeout(timeout);
335
- }
484
+ return `@keystrokehq/cli ${options.availableVersion} is available but blocked by your minimum-release-age setting. You're on ${options.currentVersion}.${retry} Run \`keystroke update\` again — it bypasses minimum-release-age for @keystrokehq packages and retries.`;
336
485
  }
337
486
  //#endregion
338
487
  //#region src/update/read-pnpm-release-age-minutes.ts
@@ -362,16 +511,16 @@ function resolveGlobalPnpmRoot(packageRoot) {
362
511
  }
363
512
  //#endregion
364
513
  //#region src/update/build-update-command.ts
365
- const PACKAGE_NAME = "@keystrokehq/cli@latest";
366
- function buildUpdateCommand(install) {
514
+ function buildUpdateCommand(install, distTag = resolveCliDistTag()) {
367
515
  const { kind, packageManager } = install;
516
+ const packageName = cliPackageSpec(distTag);
368
517
  if (kind === "global") switch (packageManager) {
369
518
  case "pnpm": return {
370
519
  command: "pnpm",
371
520
  args: [
372
521
  "add",
373
522
  "-g",
374
- PACKAGE_NAME
523
+ packageName
375
524
  ],
376
525
  cwd: resolveGlobalPnpmRoot(install.packageRoot)
377
526
  };
@@ -380,7 +529,7 @@ function buildUpdateCommand(install) {
380
529
  args: [
381
530
  "global",
382
531
  "add",
383
- PACKAGE_NAME
532
+ packageName
384
533
  ]
385
534
  };
386
535
  case "bun": return {
@@ -388,17 +537,28 @@ function buildUpdateCommand(install) {
388
537
  args: [
389
538
  "add",
390
539
  "-g",
391
- PACKAGE_NAME
392
- ]
393
- };
394
- default: return {
395
- command: "npm",
396
- args: [
397
- "install",
398
- "-g",
399
- PACKAGE_NAME
540
+ packageName
400
541
  ]
401
542
  };
543
+ default:
544
+ if (install.npmPrefix) return {
545
+ command: "npm",
546
+ args: [
547
+ "install",
548
+ "-g",
549
+ "--prefix",
550
+ install.npmPrefix,
551
+ packageName
552
+ ]
553
+ };
554
+ return {
555
+ command: "npm",
556
+ args: [
557
+ "install",
558
+ "-g",
559
+ packageName
560
+ ]
561
+ };
402
562
  }
403
563
  const cwd = install.projectRoot;
404
564
  switch (packageManager) {
@@ -407,7 +567,7 @@ function buildUpdateCommand(install) {
407
567
  args: [
408
568
  "add",
409
569
  "-D",
410
- PACKAGE_NAME
570
+ packageName
411
571
  ],
412
572
  cwd
413
573
  };
@@ -416,7 +576,7 @@ function buildUpdateCommand(install) {
416
576
  args: [
417
577
  "add",
418
578
  "-D",
419
- PACKAGE_NAME
579
+ packageName
420
580
  ],
421
581
  cwd
422
582
  };
@@ -425,7 +585,7 @@ function buildUpdateCommand(install) {
425
585
  args: [
426
586
  "add",
427
587
  "-D",
428
- PACKAGE_NAME
588
+ packageName
429
589
  ],
430
590
  cwd
431
591
  };
@@ -434,13 +594,53 @@ function buildUpdateCommand(install) {
434
594
  args: [
435
595
  "install",
436
596
  "-D",
437
- PACKAGE_NAME
597
+ packageName
438
598
  ],
439
599
  cwd
440
600
  };
441
601
  }
442
602
  }
443
603
  //#endregion
604
+ //#region src/update/ensure-release-age-exclude.ts
605
+ const EXCLUDE_PREFIX = "minimum-release-age-exclude[]=";
606
+ function npmrcPath(root) {
607
+ return join(root, ".npmrc");
608
+ }
609
+ /** Package names already listed as `minimum-release-age-exclude[]=` in an .npmrc body. */
610
+ function parseMinimumReleaseAgeExcludes(contents) {
611
+ const found = [];
612
+ for (const rawLine of contents.split(/\r?\n/)) {
613
+ const line = rawLine.trim();
614
+ if (!line.startsWith(EXCLUDE_PREFIX)) continue;
615
+ const value = line.slice(30).trim();
616
+ if (value) found.push(value);
617
+ }
618
+ return found;
619
+ }
620
+ /**
621
+ * Ensure each package is listed in the project `.npmrc` as
622
+ * `minimum-release-age-exclude[]=<name>` so `pnpm add pkg@latest` is not held
623
+ * back by minimum-release-age. Creates `.npmrc` when missing.
624
+ *
625
+ * Returns the packages that were newly added (empty when already present).
626
+ */
627
+ function ensureMinimumReleaseAgeExclude(root, packageNames) {
628
+ const unique = [...new Set(packageNames.map((name) => name.trim()).filter(Boolean))].sort();
629
+ if (unique.length === 0) return [];
630
+ const path = npmrcPath(root);
631
+ const existing = existsSync(path) ? readFileSync(path, "utf8") : "";
632
+ const already = new Set(parseMinimumReleaseAgeExcludes(existing));
633
+ const added = unique.filter((name) => !already.has(name));
634
+ if (added.length === 0) return [];
635
+ const trimmed = existing.replace(/\s+$/, "");
636
+ writeFileSync(path, [
637
+ ...trimmed.length > 0 ? [trimmed] : [],
638
+ ...added.map((name) => `${EXCLUDE_PREFIX}${name}`),
639
+ ""
640
+ ].join("\n"), "utf8");
641
+ return added;
642
+ }
643
+ //#endregion
444
644
  //#region src/update/run-package-manager-update.ts
445
645
  function updateSpawnEnv() {
446
646
  const env = { ...process.env };
@@ -475,16 +675,31 @@ function migratePnpmGlobal(cwd) {
475
675
  }
476
676
  }).status === 0;
477
677
  }
478
- function runPackageManagerUpdate(install) {
479
- const { command, args, cwd } = buildUpdateCommand(install);
678
+ /** Bypass minimum-release-age for this one CLI install without editing user config. */
679
+ function withCliReleaseAgeExclude(args) {
680
+ return [...args, `--config.minimum-release-age-exclude[]=${CLI_PACKAGE_NAME}`];
681
+ }
682
+ function runPackageManagerUpdate(install, distTag) {
683
+ const { command, args, cwd } = buildUpdateCommand(install, distTag);
480
684
  const firstAttempt = runPackageManager(command, args, cwd);
481
685
  if (firstAttempt.ok) return firstAttempt;
482
686
  if (install.kind === "global" && install.packageManager === "pnpm" && cwd) {
483
- if (migratePnpmGlobal(cwd)) return runPackageManager(command, args, cwd);
687
+ if (migratePnpmGlobal(cwd)) {
688
+ const migrated = runPackageManager(command, args, cwd);
689
+ if (migrated.ok) return migrated;
690
+ }
691
+ }
692
+ if (install.packageManager === "pnpm" && isReleaseAgeBlock(firstAttempt.output)) {
693
+ if (install.kind === "local" && install.projectRoot) {
694
+ if (ensureMinimumReleaseAgeExclude(install.projectRoot, ["@keystrokehq/cli"]).length > 0) process.stderr.write(`Added ${CLI_PACKAGE_NAME} to .npmrc minimum-release-age-exclude; retrying CLI update...\n`);
695
+ return runPackageManager(command, args, cwd);
696
+ }
697
+ process.stderr.write(`Retrying CLI update with temporary minimum-release-age-exclude for ${CLI_PACKAGE_NAME}...\n`);
698
+ return runPackageManager(command, withCliReleaseAgeExclude(args), cwd);
484
699
  }
485
700
  return firstAttempt;
486
701
  }
487
702
  //#endregion
488
- export { isExpectedCliError as A, getPlatformUrl as C, resolvePlatformUrlForWebUrl as D, DEFAULT_WEB_URL as E, parseCredentialStorage as O, getEffectiveApiTarget as S, DEFAULT_PLATFORM_URL as T, resolveCliRoot as _, formatReleaseAgeBlockMessage as a, getConfigDir as b, detectManagerFromLockfile as c, installDependencies as d, installPlaygroundDependencies as f, readCliVersion as g, isNewerVersion as h, fetchLatestCliRelease as i, ExpectedCliError as k, buildPlaygroundWorkspace as l, resolvePackageManager as m, computeReleaseAgeRetryAfter as n, isReleaseAgeBlock as o, resolveGithubPackagesToken as p, readPnpmMinimumReleaseAgeMinutes as r, detectCliInstall as s, runPackageManagerUpdate as t, detectPackageManager as u, createCliConfig as v, getWebUrl as w, getCredentialStorage as x, getCliConfigDir as y };
703
+ export { resolvePlatformUrlForWebUrl as A, createCliConfig as C, getWebUrl as D, getPlatformUrl as E, ExpectedCliError as M, isExpectedCliError as N, DEFAULT_PLATFORM_URL as O, resolveCliRoot as S, getCredentialStorage as T, isLocalSdkSpec as _, formatReleaseAgeBlockMessage as a, shouldUpdateCliVersion as b, detectManagerFromLockfile as c, installDependencies as d, installPlaygroundDependencies as f, ensureSdkCurrent as g, CLI_PACKAGE_NAME as h, readPnpmMinimumReleaseAgeMinutes as i, parseCredentialStorage as j, DEFAULT_WEB_URL as k, buildPlaygroundWorkspace as l, resolvePackageManager as m, ensureMinimumReleaseAgeExclude as n, isReleaseAgeBlock as o, resolveGithubPackagesToken as p, computeReleaseAgeRetryAfter as r, detectCliInstall as s, runPackageManagerUpdate as t, detectPackageManager as u, fetchLatestCliRelease as v, getCliConfigDir as w, readCliVersion as x, resolveCliDistTag as y };
489
704
 
490
- //# sourceMappingURL=run-package-manager-update-DgeSZuUc.mjs.map
705
+ //# sourceMappingURL=run-package-manager-update-C4uA6xWB.mjs.map