@wirecat/zoom-cli 0.60.1 → 0.62.0

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 (182) hide show
  1. package/README.md +3 -3
  2. package/dist/answers.d.ts +16 -0
  3. package/dist/answers.d.ts.map +1 -1
  4. package/dist/bin/zm.js +2 -2
  5. package/dist/bundle/{chunk-3R437ICM.js → all-profiles-CGGNBINU.js} +11 -7
  6. package/dist/bundle/answer-policy-D46SGQ35.js +96 -0
  7. package/dist/bundle/{anthropic-CSLAACWX.js → anthropic-KVWPIHFG.js} +4 -4
  8. package/dist/bundle/{app-server-RYYXX6QV.js → app-server-NKKFBTQN.js} +50 -50
  9. package/dist/bundle/{bun-JVDJVDHL.js → bun-XRO6XJHQ.js} +2 -2
  10. package/dist/bundle/{bun-sqlite-B5CZHAV4.js → bun-sqlite-FWNCLOAR.js} +3 -3
  11. package/dist/bundle/{chunk-HAUAEGGI.js → chunk-2DPMYUWQ.js} +10 -10
  12. package/dist/bundle/{chunk-HBYE4EP2.js → chunk-2LLNPNMB.js} +1 -1
  13. package/dist/bundle/{chunk-WB7MQHUI.js → chunk-2NAM2XQG.js} +2 -2
  14. package/dist/bundle/{chunk-PAEBFJUC.js → chunk-2T7MUSDB.js} +118 -95
  15. package/dist/bundle/{chunk-LPY2ISJK.js → chunk-3YBDRVOG.js} +6 -6
  16. package/dist/bundle/{chunk-WEUXLXOZ.js → chunk-4OQVRDTG.js} +31 -21
  17. package/dist/bundle/{chunk-Q7U627RY.js → chunk-4OTXE6CF.js} +79 -59
  18. package/dist/bundle/{chunk-LPDYI5GR.js → chunk-4UUQEQ5D.js} +1 -1
  19. package/dist/bundle/{chunk-FWJ3Q7NO.js → chunk-5LMQTEU5.js} +5 -5
  20. package/dist/bundle/{chunk-6BJQBVMN.js → chunk-5MYLM6SU.js} +45 -27
  21. package/dist/bundle/{chunk-Z5H47R4G.js → chunk-5NLFQ644.js} +1034 -870
  22. package/dist/bundle/{chunk-XS72YFPV.js → chunk-6R3GMSLR.js} +2 -2
  23. package/dist/bundle/{chunk-AZZPMHP2.js → chunk-6SK5SHCR.js} +2 -2
  24. package/dist/bundle/{chunk-TY5PBEH2.js → chunk-6SPWQCJF.js} +11 -11
  25. package/dist/bundle/{chunk-EUHQ5D4K.js → chunk-6URISMGR.js} +26 -26
  26. package/dist/bundle/{chunk-43BX56ZI.js → chunk-72S5TXFN.js} +9 -9
  27. package/dist/bundle/{chunk-OBUKZ2ZM.js → chunk-73BAQ7PH.js} +31 -211
  28. package/dist/bundle/{chunk-3LBA63D5.js → chunk-7AY3ADNV.js} +22 -5
  29. package/dist/bundle/{chunk-RACSKYNX.js → chunk-7CNRZSAV.js} +7 -5
  30. package/dist/bundle/{chunk-IQENQXUJ.js → chunk-7LQLJ7LW.js} +2 -2
  31. package/dist/bundle/{chunk-EN5DBDKW.js → chunk-AMIIU3UZ.js} +4 -4
  32. package/dist/bundle/{chunk-RUEPZTNA.js → chunk-BJPFWPKH.js} +2 -2
  33. package/dist/bundle/{chunk-KNAS4VEA.js → chunk-BNTAQADF.js} +2 -2
  34. package/dist/bundle/{chunk-PEMLI3T7.js → chunk-BPMKLWHV.js} +6 -4
  35. package/dist/bundle/chunk-CXPHUOJR.js +380 -0
  36. package/dist/bundle/{chunk-LVHZQCP4.js → chunk-D6FTCPXA.js} +14 -10
  37. package/dist/bundle/{chunk-IRX2YVAH.js → chunk-DIXC56OU.js} +4 -4
  38. package/dist/bundle/{chunk-WFT2GGFH.js → chunk-ECXRRW7J.js} +25 -22
  39. package/dist/bundle/{chunk-KXEC5FVT.js → chunk-EG7HC4EC.js} +2 -2
  40. package/dist/bundle/{chunk-GEVHI226.js → chunk-EJFSS65P.js} +6 -6
  41. package/dist/bundle/{chunk-HIAO4MPA.js → chunk-EOEDICIE.js} +1 -1
  42. package/dist/bundle/{chunk-BO7J5Z3T.js → chunk-FAOLCUKV.js} +17 -17
  43. package/dist/bundle/{chunk-ZK7Y5K63.js → chunk-FDCGTODC.js} +1 -1
  44. package/dist/bundle/{chunk-IQSBMAYB.js → chunk-GOESXUJQ.js} +3 -3
  45. package/dist/bundle/{chunk-AOZGGGUK.js → chunk-HIZQYFY3.js} +3 -3
  46. package/dist/bundle/{chunk-YLATWUE7.js → chunk-IK2OSV5C.js} +6 -6
  47. package/dist/bundle/{chunk-46R2JTGO.js → chunk-IOCS5FXW.js} +2 -2
  48. package/dist/bundle/{chunk-Y3YURIZF.js → chunk-IOUPXUFH.js} +52 -38
  49. package/dist/bundle/{chunk-ZXQCA3ZW.js → chunk-IR73ZZY6.js} +8 -8
  50. package/dist/bundle/{chunk-EF2RCQ3L.js → chunk-JBBZCTTF.js} +1 -1
  51. package/dist/bundle/{chunk-OEEMCNAO.js → chunk-JDJDVYGS.js} +6 -6
  52. package/dist/bundle/{chunk-PATM7JGR.js → chunk-JYVFFUIX.js} +1 -1
  53. package/dist/bundle/{chunk-W5EUHV3J.js → chunk-KM7Q67Z3.js} +1 -1
  54. package/dist/bundle/{chunk-FZMRHNOP.js → chunk-KMQUZ4YM.js} +3 -3
  55. package/dist/bundle/{chunk-VLE3FWE3.js → chunk-LXYC75D3.js} +120 -32
  56. package/dist/bundle/{chunk-V53IB5AU.js → chunk-M2WQWF3I.js} +47 -47
  57. package/dist/bundle/{chunk-X7YPTYM4.js → chunk-M6FCCVYZ.js} +16 -3
  58. package/dist/bundle/{chunk-4TCQT57W.js → chunk-M7YNOK4D.js} +408 -420
  59. package/dist/bundle/chunk-MI3JK6MW.js +335 -0
  60. package/dist/bundle/{chunk-ES6UWVTM.js → chunk-MIUPH3WA.js} +6 -6
  61. package/dist/bundle/{chunk-VJBVNDFR.js → chunk-MLNC5N7H.js} +3 -3
  62. package/dist/bundle/{chunk-UWVNY5CA.js → chunk-N3KQ7XND.js} +2 -2
  63. package/dist/bundle/{chunk-VKUS2V4L.js → chunk-NQCFUYC2.js} +8 -8
  64. package/dist/bundle/{chunk-KYUIU5UR.js → chunk-Q4ZE2LXE.js} +2 -2
  65. package/dist/bundle/{chunk-VVKHF6VJ.js → chunk-QLQ7VVLK.js} +49 -24
  66. package/dist/bundle/{chunk-K6NPOZUP.js → chunk-QUWMFBMS.js} +7 -7
  67. package/dist/bundle/{chunk-WWNZS7ZY.js → chunk-RWG44LQD.js} +16 -4
  68. package/dist/bundle/{chunk-R4SRXI7M.js → chunk-SB47UAW2.js} +187 -113
  69. package/dist/bundle/{chunk-N27LOY3D.js → chunk-SEH7DBAM.js} +7 -7
  70. package/dist/bundle/{chunk-YEZQ7SD7.js → chunk-SPJJCD2A.js} +13 -13
  71. package/dist/bundle/{chunk-CGCJ6P3A.js → chunk-TILW3EJY.js} +696 -418
  72. package/dist/bundle/{chunk-XLJV3ZOH.js → chunk-TQFCPUIM.js} +1 -1
  73. package/dist/bundle/{chunk-ZDRDCANC.js → chunk-TZE6WXID.js} +693 -336
  74. package/dist/bundle/{chunk-XX7KVQIG.js → chunk-UD4FKICZ.js} +4 -4
  75. package/dist/bundle/{chunk-MFS52LTZ.js → chunk-UIPT6IAU.js} +1 -1
  76. package/dist/bundle/{chunk-QKSCDALS.js → chunk-URJZK4GX.js} +1 -1
  77. package/dist/bundle/{decode-CTQJQYNU.js → chunk-VFJ3MOIR.js} +21 -18
  78. package/dist/bundle/{chunk-REC3AZP6.js → chunk-XAXXEZZ5.js} +2 -2
  79. package/dist/bundle/{chunk-Z4D6M62I.js → chunk-YBMOFCY5.js} +2 -2
  80. package/dist/bundle/{chunk-PPHUBORC.js → chunk-YF2PT5KA.js} +32 -34
  81. package/dist/bundle/chunk-YFIUXE25.js +217 -0
  82. package/dist/bundle/{chunk-7IDNHVJS.js → chunk-YI6ZNDPC.js} +22 -12
  83. package/dist/bundle/{chunk-HYZ545ON.js → chunk-YJN4XYNA.js} +2 -2
  84. package/dist/bundle/{cli-CYKEKT5P.js → cli-AHPIESAC.js} +70 -54
  85. package/dist/bundle/command-contract-HVLI3OKU.js +38 -0
  86. package/dist/bundle/config-UW6W34I2.js +78 -0
  87. package/dist/bundle/decode-ZU7WLMMV.js +20 -0
  88. package/dist/bundle/{dist-YLSQKPPY.js → dist-LTS7VI3S.js} +14 -14
  89. package/dist/bundle/{echarts-4OQHS575.js → echarts-YNGCOYHW.js} +2 -2
  90. package/dist/bundle/{embed-P2BKRRJD.js → embed-VWWOW7PP.js} +4 -4
  91. package/dist/bundle/{embedder-HC6ZARP5.js → embedder-T5GJC7M2.js} +7 -7
  92. package/dist/bundle/{first-run-UERFFXBV.js → first-run-PX3SHPUU.js} +8 -8
  93. package/dist/bundle/first-screen-RAPEZG57.js +36 -0
  94. package/dist/bundle/{folders-RSLPTZLJ.js → folders-VXMDFC2D.js} +2 -2
  95. package/dist/bundle/{instructions-3QZBKKPF.js → instructions-GJHHFV64.js} +1 -1
  96. package/dist/bundle/{main-2T6D77JC.js → main-IYCD6MBH.js} +16 -16
  97. package/dist/bundle/{mcp-OQBZXELQ.js → mcp-EMNFFY4N.js} +2 -2
  98. package/dist/bundle/{meetings-ZIDSQZBJ.js → meetings-GHYNIOHG.js} +4 -4
  99. package/dist/bundle/{node-R2BLYUSB.js → node-GFOH6FKP.js} +2 -2
  100. package/dist/bundle/{node-sqlite-7CGHAHIS.js → node-sqlite-QXKSPHTP.js} +3 -3
  101. package/dist/bundle/{oauth-UBCYXTWV.js → oauth-A6I2OMDD.js} +5 -5
  102. package/dist/bundle/{open-AWUB4Q7Z.js → open-TQKCU447.js} +2 -2
  103. package/dist/bundle/openai-XE3BJXOI.js +22 -0
  104. package/dist/bundle/{output-file-SN22HAVL.js → output-file-FQNFCUKE.js} +3 -3
  105. package/dist/bundle/{process-IX5YWGDP.js → process-XVDX4SPD.js} +1 -1
  106. package/dist/bundle/{program-STYPTNT3.js → program-UYK4AD2W.js} +415 -428
  107. package/dist/bundle/{prompt-MAYUHEGN.js → prompt-ISYG5RWM.js} +3 -3
  108. package/dist/bundle/{recognize-FVTNXRTF.js → recognize-KENPECLZ.js} +4 -2
  109. package/dist/bundle/{remote-WCPRU73L.js → remote-ZP5XTDCC.js} +5 -5
  110. package/dist/bundle/{rerank-6CBLZBCV.js → rerank-SG653RHT.js} +5 -5
  111. package/dist/bundle/{run-log-G4WZTOBW.js → run-log-HYKGQ42E.js} +53 -53
  112. package/dist/bundle/{chunk-XNUFDYR6.js → serve-6UJCZD7Z.js} +8 -6
  113. package/dist/bundle/server-AXE37E6Q.js +66 -0
  114. package/dist/bundle/{chunk-INARC5O7.js → server-ZAYEDPFR.js} +43 -10
  115. package/dist/bundle/{services-326Z3TNE.js → services-KMH7XZPY.js} +37 -26
  116. package/dist/bundle/{speech-KSZ7RKM3.js → speech-LINBLG5E.js} +28 -5
  117. package/dist/bundle/{state-EPB3L2JM.js → state-4RKZNHE7.js} +4 -4
  118. package/dist/bundle/{store-7WX7SW2R.js → store-253N7NUC.js} +15 -15
  119. package/dist/bundle/{store-KO242JBK.js → store-JTBHRQZK.js} +13 -13
  120. package/dist/bundle/store-connection-PWLUMCP7.js +76 -0
  121. package/dist/bundle/store-maintenance-command-XRNECVDU.js +55 -0
  122. package/dist/bundle/{streaming-M6VDKBBH.js → streaming-YW64OKKQ.js} +4 -4
  123. package/dist/bundle/{tokens-BTNXHR7T.js → tokens-DPBC2P3I.js} +4 -4
  124. package/dist/bundle/zm.js +1 -1
  125. package/dist/commands.d.ts +1 -2
  126. package/dist/commands.d.ts.map +1 -1
  127. package/dist/commands.js +3 -16
  128. package/dist/commands.js.map +1 -1
  129. package/dist/contract-overrides.d.ts +0 -2
  130. package/dist/contract-overrides.d.ts.map +1 -1
  131. package/dist/contract-overrides.js +0 -158
  132. package/dist/contract-overrides.js.map +1 -1
  133. package/dist/program-bindings.d.ts +1 -1
  134. package/dist/program-bindings.d.ts.map +1 -1
  135. package/dist/program-bindings.js +16 -18
  136. package/dist/program-bindings.js.map +1 -1
  137. package/dist/program.d.ts +2 -4
  138. package/dist/program.d.ts.map +1 -1
  139. package/dist/program.js.map +1 -1
  140. package/dist/read-only.d.ts.map +1 -1
  141. package/dist/read-only.js +3 -0
  142. package/dist/read-only.js.map +1 -1
  143. package/dist/run.d.ts.map +1 -1
  144. package/dist/run.js +82 -32
  145. package/dist/run.js.map +1 -1
  146. package/dist/setup-commands.d.ts.map +1 -1
  147. package/dist/setup-commands.js +8 -46
  148. package/dist/setup-commands.js.map +1 -1
  149. package/dist/store-commands.d.ts.map +1 -1
  150. package/dist/store-commands.js +4 -1
  151. package/dist/store-commands.js.map +1 -1
  152. package/dist/tokens.d.ts +6 -1
  153. package/dist/tokens.d.ts.map +1 -1
  154. package/dist/tokens.js +21 -10
  155. package/dist/tokens.js.map +1 -1
  156. package/dist/version.d.ts +1 -1
  157. package/dist/version.js +1 -1
  158. package/package.json +3 -3
  159. package/dist/bundle/all-profiles-E6KXASLY.js +0 -25
  160. package/dist/bundle/answer-policy-YWCC55NB.js +0 -96
  161. package/dist/bundle/chunk-DBSWVZES.js +0 -48
  162. package/dist/bundle/chunk-WYRYLBST.js +0 -390
  163. package/dist/bundle/chunk-YLBNPI7H.js +0 -2
  164. package/dist/bundle/command-contract-P45QCCXM.js +0 -38
  165. package/dist/bundle/config-JYKTLEA3.js +0 -79
  166. package/dist/bundle/first-screen-VFIS7FX3.js +0 -36
  167. package/dist/bundle/mcp-4VHVUMCR.js +0 -92
  168. package/dist/bundle/mcp-6CLW2IZM.js +0 -189
  169. package/dist/bundle/serve-3IDUVTZL.js +0 -19
  170. package/dist/bundle/server-7GU36TER.js +0 -66
  171. package/dist/bundle/server-VHRS5UAL.js +0 -53
  172. package/dist/bundle/store-connection-K3MNDCQQ.js +0 -76
  173. package/dist/bundle/store-maintenance-command-GJDJYI2U.js +0 -54
  174. package/dist/mcp-command.d.ts +0 -33
  175. package/dist/mcp-command.d.ts.map +0 -1
  176. package/dist/mcp-command.js +0 -143
  177. package/dist/mcp-command.js.map +0 -1
  178. package/dist/mcp.d.ts +0 -30
  179. package/dist/mcp.d.ts.map +0 -1
  180. package/dist/mcp.js +0 -110
  181. package/dist/mcp.js.map +0 -1
  182. /package/dist/bundle/{chunk-O5EHUB2V.js → chunk-NPGVOZVK.js} +0 -0
@@ -1872,7 +1872,7 @@ var require_cli_table3 = __commonJS({
1872
1872
  }
1873
1873
  });
1874
1874
 
1875
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/errors.js
1875
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/errors.js
1876
1876
  var errorCodes = [
1877
1877
  "validation_error",
1878
1878
  "configuration_error",
@@ -1906,30 +1906,6 @@ var CliError = class extends Error {
1906
1906
  };
1907
1907
  var isCliError = /* @__PURE__ */ __name((value) => typeof value === "object" && value !== null && value[BRAND] === true, "isCliError");
1908
1908
 
1909
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/sanitize.js
1910
- var CONTROL = (
1911
- // biome-ignore lint/suspicious/noControlCharactersInRegex: matching them is the whole point
1912
- /[\u0000-\u0008\u000B-\u001F\u007F-\u009F\u200B\u200E\u200F\u202A-\u202E\u2066-\u2069\uFEFF\u{E0000}-\u{E007F}]/gu
1913
- );
1914
- var SUBDIVISION_FLAG = /\u{1F3F4}[\u{E0061}-\u{E007A}]{2}[\u{E0030}-\u{E0039}\u{E0061}-\u{E007A}]{1,3}\u{E007F}/gu;
1915
- var LINE_BREAKS = /[\t\n\u2028\u2029]/g;
1916
- var escaped = /* @__PURE__ */ __name((c) => {
1917
- const code = c.codePointAt(0) ?? 0;
1918
- if (code > 65535)
1919
- return `\\u{${code.toString(16)}}`;
1920
- return code > 255 ? `\\u${code.toString(16).padStart(4, "0")}` : `\\x${code.toString(16).padStart(2, "0")}`;
1921
- }, "escaped");
1922
- var visibleControls = /* @__PURE__ */ __name((text2) => {
1923
- let at = 0;
1924
- let result = "";
1925
- for (const flag of text2.matchAll(SUBDIVISION_FLAG)) {
1926
- result += text2.slice(at, flag.index).replace(CONTROL, escaped) + flag[0];
1927
- at = flag.index + flag[0].length;
1928
- }
1929
- return result + text2.slice(at).replace(CONTROL, escaped);
1930
- }, "visibleControls");
1931
- var singleLine = /* @__PURE__ */ __name((text2) => visibleControls(text2).replace(LINE_BREAKS, escaped), "singleLine");
1932
-
1933
1909
  // node_modules/.pnpm/valibot@1.5.0_typescript@7.0.2/node_modules/valibot/dist/index.mjs
1934
1910
  var store$4;
1935
1911
  var DEFAULT_CONFIG = {
@@ -3793,7 +3769,7 @@ function toStandardJsonSchema(schema) {
3793
3769
  }
3794
3770
  __name(toStandardJsonSchema, "toStandardJsonSchema");
3795
3771
 
3796
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/standards/registry.js
3772
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/standards/registry.js
3797
3773
  var word = pipe(string(), regex(/^[a-z][a-z0-9]*(-[a-z0-9]+)*$/, "a lower-case word, words joined by -"));
3798
3774
  var SNAKE_CASE = /^[a-z][a-z0-9]*(_[a-z0-9]+)*$/;
3799
3775
  var text = pipe(string(), regex(/\S/, "must not be empty"));
@@ -3835,7 +3811,7 @@ var fill = /* @__PURE__ */ __name((template, values) => template.replace(PLACEHO
3835
3811
  return String(value);
3836
3812
  }), "fill");
3837
3813
 
3838
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/exit-codes.js
3814
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/exit-codes.js
3839
3815
  var EXIT_CODES = {
3840
3816
  validation_error: 2,
3841
3817
  configuration_error: 3,
@@ -3855,7 +3831,31 @@ var EXIT_CODES = {
3855
3831
  var exitCodeFor = /* @__PURE__ */ __name((code) => EXIT_CODES[code], "exitCodeFor");
3856
3832
  var GENERIC_FAILURE = 1;
3857
3833
 
3858
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/standards/effects.js
3834
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/sanitize.js
3835
+ var CONTROL = (
3836
+ // biome-ignore lint/suspicious/noControlCharactersInRegex: matching them is the whole point
3837
+ /[\u0000-\u0008\u000B-\u001F\u007F-\u009F\u200B\u200E\u200F\u202A-\u202E\u2066-\u2069\uFEFF\u{E0000}-\u{E007F}]/gu
3838
+ );
3839
+ var SUBDIVISION_FLAG = /\u{1F3F4}[\u{E0061}-\u{E007A}]{2}[\u{E0030}-\u{E0039}\u{E0061}-\u{E007A}]{1,3}\u{E007F}/gu;
3840
+ var LINE_BREAKS = /[\t\n\u2028\u2029]/g;
3841
+ var escaped = /* @__PURE__ */ __name((c) => {
3842
+ const code = c.codePointAt(0) ?? 0;
3843
+ if (code > 65535)
3844
+ return `\\u{${code.toString(16)}}`;
3845
+ return code > 255 ? `\\u${code.toString(16).padStart(4, "0")}` : `\\x${code.toString(16).padStart(2, "0")}`;
3846
+ }, "escaped");
3847
+ var visibleControls = /* @__PURE__ */ __name((text2) => {
3848
+ let at = 0;
3849
+ let result = "";
3850
+ for (const flag of text2.matchAll(SUBDIVISION_FLAG)) {
3851
+ result += text2.slice(at, flag.index).replace(CONTROL, escaped) + flag[0];
3852
+ at = flag.index + flag[0].length;
3853
+ }
3854
+ return result + text2.slice(at).replace(CONTROL, escaped);
3855
+ }, "visibleControls");
3856
+ var singleLine = /* @__PURE__ */ __name((text2) => visibleControls(text2).replace(LINE_BREAKS, escaped), "singleLine");
3857
+
3858
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/standards/effects.js
3859
3859
  var EFFECT_LEVELS = ["none", "read", "write"];
3860
3860
  var effectsSchema = strictObject({
3861
3861
  remote: picklist(EFFECT_LEVELS),
@@ -3863,7 +3863,7 @@ var effectsSchema = strictObject({
3863
3863
  });
3864
3864
  var writes = /* @__PURE__ */ __name((effects) => effects === void 0 || effects.remote === "write" || effects.local === "write", "writes");
3865
3865
 
3866
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/standards/output.js
3866
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/standards/output.js
3867
3867
  var MAX_NEXT_STEPS = 2;
3868
3868
  var isoTime = pipe(string(), isoTimestamp("an ISO 8601 time in UTC"), endsWith("Z", "an ISO 8601 time in UTC, ending in `Z`"));
3869
3869
  var reference = pipe(string(), regex(/^[a-z]+:\S+$/, "a reference such as `note:42`"));
@@ -3898,14 +3898,25 @@ var missingSchema = strictObject({
3898
3898
  step: optional(dottedId)
3899
3899
  });
3900
3900
  var limit = pipe(number(), integer(), minValue(1));
3901
+ var totalSchema = strictObject({
3902
+ value: pipe(number(), integer(), minValue(0)),
3903
+ relation: picklist(["eq", "gte"])
3904
+ });
3901
3905
  var pageSchema = variant("mode", [
3902
3906
  strictObject({
3903
3907
  mode: literal("page"),
3904
3908
  limit,
3905
3909
  has_more: boolean(),
3906
- next_page: optional(pipe(number(), integer(), minValue(2)))
3910
+ next_page: optional(pipe(number(), integer(), minValue(2))),
3911
+ total: optional(totalSchema)
3907
3912
  }),
3908
- strictObject({ mode: literal("cursor"), limit, has_more: boolean(), next_cursor: optional(text) })
3913
+ strictObject({
3914
+ mode: literal("cursor"),
3915
+ limit,
3916
+ has_more: boolean(),
3917
+ next_cursor: optional(text),
3918
+ total: optional(totalSchema)
3919
+ })
3909
3920
  ]);
3910
3921
  var issueSchema = strictObject({
3911
3922
  code: picklist(errorCodes),
@@ -3948,7 +3959,7 @@ var jsonlOf = /* @__PURE__ */ __name(({ items, page, meta }) => [
3948
3959
  JSON.stringify({ type: "end", complete: meta.complete, ...meta.issues ? { issues: meta.issues } : {}, page })
3949
3960
  ].join("\n"), "jsonlOf");
3950
3961
 
3951
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/standards/errors.js
3962
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/standards/errors.js
3952
3963
  var CRASH_CODE = "internal_error";
3953
3964
  var CRASH_REASON = "command.crashed";
3954
3965
  var errorObjectSchema = strictObject({
@@ -3995,6 +4006,12 @@ var BASE_REASONS = defineReasons([
3995
4006
  { reason: "auth.failed", code: "authentication_error", message: "the sign-in did not work", details: [] },
3996
4007
  { reason: "access.denied", code: "permission_error", message: "this account may not do that", details: [] },
3997
4008
  { reason: "item.not-found", code: "not_found", message: "nothing found by that name", details: [] },
4009
+ {
4010
+ reason: "tool.not-installed",
4011
+ code: "not_found",
4012
+ message: "no wcat-<name> program by that name is on PATH",
4013
+ details: ["tool", "installed"]
4014
+ },
3998
4015
  {
3999
4016
  reason: "confirmation.required",
4000
4017
  code: "confirmation_required",
@@ -4029,7 +4046,7 @@ var BASE_REASONS = defineReasons([
4029
4046
  { reason: CRASH_REASON, code: CRASH_CODE, message: "the command failed; this is a bug", details: [] }
4030
4047
  ]);
4031
4048
 
4032
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/standards/steps.js
4049
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/standards/steps.js
4033
4050
  var SAME_COMMAND = "*";
4034
4051
  var commandPath = pipe(string(), regex(/^[a-z][a-z0-9-]*( [a-z][a-z0-9-]*)*$/, "a command path such as `messages sync`"));
4035
4052
  var stepSchema = union([
@@ -4108,7 +4125,7 @@ var STEPS = defineSteps([
4108
4125
  }
4109
4126
  ]);
4110
4127
 
4111
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/failure.js
4128
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/failure.js
4112
4129
  var recognise = /* @__PURE__ */ __name((failure) => {
4113
4130
  if (isCliError(failure))
4114
4131
  return failure;
@@ -4255,7 +4272,7 @@ var catchCrashes = /* @__PURE__ */ __name((options) => {
4255
4272
  };
4256
4273
  }, "catchCrashes");
4257
4274
 
4258
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/result-fields.js
4275
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/result-fields.js
4259
4276
  var forbidden = /* @__PURE__ */ new Set(["__proto__", "prototype", "constructor"]);
4260
4277
  var validate = /* @__PURE__ */ __name((paths) => {
4261
4278
  if (paths.length === 0 || paths.length > 128 || paths.some((path) => path.length > 256 || !/^[A-Za-z][A-Za-z0-9_]*(?:\.[A-Za-z][A-Za-z0-9_]*)*$/.test(path) || path.split(".").some((part) => forbidden.has(part))))
@@ -4320,7 +4337,7 @@ var projectFields = /* @__PURE__ */ __name((value, fields) => {
4320
4337
  return project(value, fields);
4321
4338
  }, "projectFields");
4322
4339
 
4323
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/batch.js
4340
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/batch.js
4324
4341
  var BATCH_LIMITS = Object.freeze({
4325
4342
  requests: 32,
4326
4343
  input_bytes: 262144,
@@ -4467,7 +4484,7 @@ var runBatch = /* @__PURE__ */ __name(async (requests, options = {}) => {
4467
4484
  };
4468
4485
  }, "runBatch");
4469
4486
 
4470
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/config.js
4487
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/config.js
4471
4488
  import { randomBytes } from "node:crypto";
4472
4489
  import { mkdirSync, readFileSync, renameSync, rmSync, writeFileSync } from "node:fs";
4473
4490
  import { dirname, join } from "node:path";
@@ -4511,7 +4528,7 @@ var saveConfigFile = /* @__PURE__ */ __name((path, config) => {
4511
4528
  `, 384);
4512
4529
  }, "saveConfigFile");
4513
4530
 
4514
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/keyring.js
4531
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/keyring.js
4515
4532
  import { createRequire } from "node:module";
4516
4533
  var ENTRY_OPTIONS = { linux: { store: "secret-service" } };
4517
4534
  var require2 = createRequire(new URL("keyring.js", import.meta.resolve("@wirecat/cli-base")).href);
@@ -4531,10 +4548,62 @@ var systemKeyring = {
4531
4548
  delete: /* @__PURE__ */ __name((service, account) => entry(service, account).deletePassword(), "delete")
4532
4549
  };
4533
4550
 
4534
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/credentials.js
4551
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/paths.js
4552
+ import { homedir, userInfo } from "node:os";
4553
+ import { join as join2, posix, win32 } from "node:path";
4554
+ var PATH_KINDS = ["config", "state", "cache"];
4555
+ var OVERRIDES = { config: "CONFIG_DIR", state: "STATE_DIR", cache: "CACHE_DIR" };
4556
+ var overrideName = /* @__PURE__ */ __name((appName, prefix, kind) => `${prefix ?? appName.toUpperCase().replace(/[^A-Z0-9]/g, "_")}_${OVERRIDES[kind]}`, "overrideName");
4557
+ var defaultPaths = /* @__PURE__ */ __name(({ appName, env = process.env, platform = process.platform }) => {
4558
+ if (platform === "win32") {
4559
+ const home2 = env.USERPROFILE || homedir();
4560
+ const roaming = env.APPDATA || win32.join(home2, "AppData", "Roaming");
4561
+ const local = env.LOCALAPPDATA || win32.join(home2, "AppData", "Local");
4562
+ return {
4563
+ config: win32.join(roaming, appName, "Config"),
4564
+ state: win32.join(local, appName, "Data"),
4565
+ cache: win32.join(local, appName, "Cache")
4566
+ };
4567
+ }
4568
+ const home = env.HOME || homedir();
4569
+ return {
4570
+ config: posix.join(env.XDG_CONFIG_HOME || posix.join(home, ".config"), appName),
4571
+ state: posix.join(env.XDG_DATA_HOME || posix.join(home, ".local", "share"), appName),
4572
+ cache: posix.join(env.XDG_CACHE_HOME || posix.join(home, ".cache"), appName)
4573
+ };
4574
+ }, "defaultPaths");
4575
+ var resolvePaths = /* @__PURE__ */ __name((options) => {
4576
+ const { appName, prefix, env = process.env } = options;
4577
+ const base = defaultPaths(options);
4578
+ return {
4579
+ config: env[overrideName(appName, prefix, "config")] ?? base.config,
4580
+ state: env[overrideName(appName, prefix, "state")] ?? base.state,
4581
+ cache: env[overrideName(appName, prefix, "cache")] ?? base.cache
4582
+ };
4583
+ }, "resolvePaths");
4584
+ var pathsAreOverridden = /* @__PURE__ */ __name(({ appName, prefix, env = process.env }) => PATH_KINDS.some((kind) => env[overrideName(appName, prefix, kind)] !== void 0), "pathsAreOverridden");
4585
+ var accountHome = /* @__PURE__ */ __name(() => {
4586
+ try {
4587
+ return userInfo().homedir;
4588
+ } catch {
4589
+ return void 0;
4590
+ }
4591
+ }, "accountHome");
4592
+ var homeIsMoved = /* @__PURE__ */ __name(({ env = process.env, platform = process.platform, home = accountHome() } = {}) => {
4593
+ if (home === void 0)
4594
+ return true;
4595
+ const appName = "app";
4596
+ const actual = defaultPaths({ appName, env, platform });
4597
+ const owners = defaultPaths({ appName, env: { HOME: home, USERPROFILE: home }, platform });
4598
+ return PATH_KINDS.some((kind) => actual[kind] !== owners[kind]);
4599
+ }, "homeIsMoved");
4600
+ var configFilePath = /* @__PURE__ */ __name((configDir, fileName = "config.json") => join2(configDir, fileName), "configFilePath");
4601
+
4602
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/credentials.js
4535
4603
  import { readFileSync as readFileSync2 } from "node:fs";
4536
- import { join as join2 } from "node:path";
4537
- var keyringService = /* @__PURE__ */ __name((service, configDir, isolated = false) => isolated ? `${service}:${configDir}` : service, "keyringService");
4604
+ import { join as join3, resolve } from "node:path";
4605
+ var movedRunService = /* @__PURE__ */ __name((service, configDir) => `${service}:${resolve(configDir)}`, "movedRunService");
4606
+ var warnedRuns = /* @__PURE__ */ new WeakSet();
4538
4607
  var Credentials = class {
4539
4608
  static {
4540
4609
  __name(this, "Credentials");
@@ -4547,7 +4616,8 @@ var Credentials = class {
4547
4616
  #envVar;
4548
4617
  #fileName;
4549
4618
  #warn;
4550
- #warned = false;
4619
+ /** Set only for a moved run with the system keyring. */
4620
+ #temporaryService;
4551
4621
  constructor(options) {
4552
4622
  this.#configDir = options.configDir;
4553
4623
  this.#storage = options.storage ?? "auto";
@@ -4557,28 +4627,37 @@ var Credentials = class {
4557
4627
  this.#fileName = options.fileName ?? "credentials.json";
4558
4628
  this.#warn = options.warn ?? ((message) => process.stderr.write(`${message}
4559
4629
  `));
4560
- this.#service = keyringService(options.service, options.configDir, options.isolated);
4630
+ this.#service = options.service;
4631
+ const moved = this.#keyring === systemKeyring && (options.isolated === true || homeIsMoved({ env: this.#env }));
4632
+ this.#temporaryService = moved ? movedRunService(options.service, options.configDir) : void 0;
4561
4633
  }
4562
4634
  read(account) {
4563
4635
  const fromEnv = this.#envVar ? this.#env[this.#envVar]?.trim() : void 0;
4564
4636
  if (fromEnv)
4565
4637
  return { secret: fromEnv, source: "environment" };
4638
+ const fromFile = this.#storage === "keyring" ? void 0 : this.#readFile()?.[account]?.secret;
4639
+ if (fromFile)
4640
+ return { secret: fromFile, source: "file" };
4566
4641
  if (this.#storage !== "file") {
4567
- const fromKeyring = this.#tryKeyring(() => this.#keyring.get(this.#service, account));
4642
+ const temporary = this.#temporaryService;
4643
+ const fromKeyring = this.#tryKeyring(() => temporary && this.#keyring.get(temporary, account) || this.#keyring.get(this.#service, account));
4568
4644
  if (fromKeyring)
4569
4645
  return { secret: fromKeyring, source: "keyring" };
4570
4646
  }
4571
- const fromFile = this.#readFile()?.[account]?.secret;
4572
- return fromFile ? { secret: fromFile, source: "file" } : void 0;
4647
+ return void 0;
4573
4648
  }
4574
- write(account, secret) {
4575
- if (this.#storage !== "file") {
4649
+ write(account, secret, options = {}) {
4650
+ const inFile = this.#storage === "auto" && this.#readFile()?.[account] !== void 0;
4651
+ if (this.#storage === "keyring" || this.#storage === "auto" && (options.signIn || !inFile)) {
4576
4652
  const stored = this.#tryKeyring(() => {
4577
- this.#keyring.set(this.#service, account, secret);
4653
+ this.#keyring.set(this.#temporaryService ?? this.#service, account, secret);
4578
4654
  return true;
4579
4655
  });
4580
- if (stored)
4656
+ if (stored) {
4657
+ if (inFile)
4658
+ this.#removeFromFile(account);
4581
4659
  return "keyring";
4660
+ }
4582
4661
  }
4583
4662
  const store2 = this.#readFile();
4584
4663
  if (!store2) {
@@ -4590,19 +4669,36 @@ var Credentials = class {
4590
4669
  }
4591
4670
  remove(account) {
4592
4671
  const removed = [];
4593
- if (this.#storage !== "file" && this.#tryKeyring(() => this.#keyring.delete(this.#service, account))) {
4594
- removed.push("keyring");
4672
+ if (this.#storage !== "file") {
4673
+ if (this.#tryKeyring(() => this.#keyring.delete(this.#temporaryService ?? this.#service, account))) {
4674
+ removed.push("keyring");
4675
+ }
4676
+ if (this.#temporaryService && this.#ownersEntryExists(account)) {
4677
+ this.#warn(removed.includes("keyring") ? `removed this run's own sign-in of ${account} from the OS keyring and kept the owner's: a run with moved folders never removes it` : `kept ${account} in the OS keyring: it is the owner's sign-in, shared with every run, and a run with moved folders never removes it`);
4678
+ }
4595
4679
  }
4596
- const store2 = this.#readFile();
4597
- if (store2?.[account] !== void 0) {
4598
- delete store2[account];
4599
- this.#writeFile(store2);
4680
+ if (this.#storage !== "keyring" && this.#removeFromFile(account))
4600
4681
  removed.push("file");
4601
- }
4602
4682
  return removed;
4603
4683
  }
4684
+ #removeFromFile(account) {
4685
+ const store2 = this.#readFile();
4686
+ if (store2?.[account] === void 0)
4687
+ return false;
4688
+ delete store2[account];
4689
+ this.#writeFile(store2);
4690
+ return true;
4691
+ }
4692
+ /** Only for the warning: a keyring that fails here must not fail a removal that already happened. */
4693
+ #ownersEntryExists(account) {
4694
+ try {
4695
+ return this.#keyring.get(this.#service, account) !== null;
4696
+ } catch {
4697
+ return false;
4698
+ }
4699
+ }
4604
4700
  #path() {
4605
- return join2(this.#configDir, this.#fileName);
4701
+ return join3(this.#configDir, this.#fileName);
4606
4702
  }
4607
4703
  /** `undefined` when the file exists but is not a store: writing would replace what it holds. */
4608
4704
  #readFile() {
@@ -4631,8 +4727,8 @@ var Credentials = class {
4631
4727
  try {
4632
4728
  return operation();
4633
4729
  } catch (error) {
4634
- if (!this.#warned) {
4635
- this.#warned = true;
4730
+ if (!warnedRuns.has(this.#env)) {
4731
+ warnedRuns.add(this.#env);
4636
4732
  this.#warn(`could not reach the OS keyring \u2014 it may be locked, or no keyring service is running (${error instanceof Error ? error.message : String(error)}); using ${this.#path()} instead, readable only by you`);
4637
4733
  }
4638
4734
  return void 0;
@@ -4640,10 +4736,10 @@ var Credentials = class {
4640
4736
  }
4641
4737
  };
4642
4738
 
4643
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/logging.js
4739
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/logging.js
4644
4740
  import { appendFileSync } from "node:fs";
4645
4741
 
4646
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/standards/log.js
4742
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/standards/log.js
4647
4743
  var LOG_SEVERITIES = ["trace", "debug", "info", "warn", "error", "fatal"];
4648
4744
  var logRecordSchema = strictObject({
4649
4745
  time: isoTime,
@@ -4721,7 +4817,7 @@ var traceIdOf = /* @__PURE__ */ __name((traceparent) => {
4721
4817
  return traceId;
4722
4818
  }, "traceIdOf");
4723
4819
 
4724
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/logging.js
4820
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/logging.js
4725
4821
  var REDACTED_FIELDS = [
4726
4822
  "authorization",
4727
4823
  "Authorization",
@@ -4815,7 +4911,7 @@ var silent = {
4815
4911
  }, "error")
4816
4912
  };
4817
4913
 
4818
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/output-buffer.js
4914
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/output-buffer.js
4819
4915
  var createOutputBuffer = /* @__PURE__ */ __name(({ maxOutputBytes = 4 * 1024 * 1024, fields, format } = {}) => {
4820
4916
  if (!Number.isSafeInteger(maxOutputBytes) || maxOutputBytes < 0)
4821
4917
  throw new CliError("validation_error", "maxOutputBytes must be a nonnegative whole byte count");
@@ -4876,57 +4972,33 @@ var createOutputBuffer = /* @__PURE__ */ __name(({ maxOutputBytes = 4 * 1024 * 1
4876
4972
  };
4877
4973
  }, "createOutputBuffer");
4878
4974
 
4879
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/paths.js
4880
- import { homedir } from "node:os";
4881
- import { join as join3, posix, win32 } from "node:path";
4882
- var PATH_KINDS = ["config", "state", "cache"];
4883
- var OVERRIDES = { config: "CONFIG_DIR", state: "STATE_DIR", cache: "CACHE_DIR" };
4884
- var overrideName = /* @__PURE__ */ __name((appName, prefix, kind) => `${prefix ?? appName.toUpperCase().replace(/[^A-Z0-9]/g, "_")}_${OVERRIDES[kind]}`, "overrideName");
4885
- var defaultPaths = /* @__PURE__ */ __name(({ appName, env = process.env, platform = process.platform }) => {
4886
- if (platform === "win32") {
4887
- const home2 = env.USERPROFILE || homedir();
4888
- const roaming = env.APPDATA || win32.join(home2, "AppData", "Roaming");
4889
- const local = env.LOCALAPPDATA || win32.join(home2, "AppData", "Local");
4890
- return {
4891
- config: win32.join(roaming, appName, "Config"),
4892
- state: win32.join(local, appName, "Data"),
4893
- cache: win32.join(local, appName, "Cache")
4894
- };
4895
- }
4896
- const home = env.HOME || homedir();
4897
- return {
4898
- config: posix.join(env.XDG_CONFIG_HOME || posix.join(home, ".config"), appName),
4899
- state: posix.join(env.XDG_DATA_HOME || posix.join(home, ".local", "share"), appName),
4900
- cache: posix.join(env.XDG_CACHE_HOME || posix.join(home, ".cache"), appName)
4901
- };
4902
- }, "defaultPaths");
4903
- var resolvePaths = /* @__PURE__ */ __name((options) => {
4904
- const { appName, prefix, env = process.env } = options;
4905
- const base = defaultPaths(options);
4906
- return {
4907
- config: env[overrideName(appName, prefix, "config")] ?? base.config,
4908
- state: env[overrideName(appName, prefix, "state")] ?? base.state,
4909
- cache: env[overrideName(appName, prefix, "cache")] ?? base.cache
4910
- };
4911
- }, "resolvePaths");
4912
- var pathsAreOverridden = /* @__PURE__ */ __name(({ appName, prefix, env = process.env }) => PATH_KINDS.some((kind) => env[overrideName(appName, prefix, kind)] !== void 0), "pathsAreOverridden");
4913
- var configFilePath = /* @__PURE__ */ __name((configDir, fileName = "config.json") => join3(configDir, fileName), "configFilePath");
4975
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/retry.js
4976
+ var DEFAULT_RETRY = {
4977
+ retries: 1,
4978
+ baseDelayMs: 250,
4979
+ maxDelayMs: 1e4,
4980
+ maxRetryAfterMs: 3e4
4981
+ };
4982
+ var backoffMs = /* @__PURE__ */ __name((attempt, config, random) => {
4983
+ const ceiling = Math.min(config.maxDelayMs, config.baseDelayMs * 2 ** (attempt - 1));
4984
+ return Math.round(random() * ceiling);
4985
+ }, "backoffMs");
4914
4986
 
4915
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/time.js
4987
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/time.js
4916
4988
  var abortError = /* @__PURE__ */ __name(() => new DOMException("The operation was aborted.", "AbortError"), "abortError");
4917
- var realSleep = /* @__PURE__ */ __name((ms, signal) => new Promise((resolve, reject) => {
4989
+ var realSleep = /* @__PURE__ */ __name((ms, signal) => new Promise((resolve2, reject) => {
4918
4990
  if (signal?.aborted) {
4919
4991
  reject(abortError());
4920
4992
  return;
4921
4993
  }
4922
- const timer = setTimeout(resolve, ms);
4994
+ const timer = setTimeout(resolve2, ms);
4923
4995
  signal?.addEventListener("abort", () => {
4924
4996
  clearTimeout(timer);
4925
4997
  reject(abortError());
4926
4998
  }, { once: true });
4927
4999
  }), "realSleep");
4928
5000
 
4929
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/deadline.js
5001
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/deadline.js
4930
5002
  var createDeadline = /* @__PURE__ */ __name(({ timeoutMs, signal, sleep = realSleep } = {}) => {
4931
5003
  if (timeoutMs !== void 0 && (!Number.isSafeInteger(timeoutMs) || timeoutMs < 0 || timeoutMs > 2147483647))
4932
5004
  throw new CliError("validation_error", "timeoutMs must be an integer from zero through 2147483647");
@@ -5010,7 +5082,7 @@ var createDeadline = /* @__PURE__ */ __name(({ timeoutMs, signal, sleep = realSl
5010
5082
  };
5011
5083
  }, "createDeadline");
5012
5084
 
5013
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/pretty.js
5085
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/pretty.js
5014
5086
  var import_cli_table3 = __toESM(require_cli_table3(), 1);
5015
5087
  import { styleText } from "node:util";
5016
5088
  var renderPretty = /* @__PURE__ */ __name((value, options) => {
@@ -5085,7 +5157,7 @@ var BORDERLESS = {
5085
5157
  middle: ""
5086
5158
  };
5087
5159
 
5088
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/drain.js
5160
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/drain.js
5089
5161
  var waitForDrain = /* @__PURE__ */ __name((stream, signal) => {
5090
5162
  if (signal?.aborted)
5091
5163
  return Promise.reject(signal.reason);
@@ -5093,14 +5165,14 @@ var waitForDrain = /* @__PURE__ */ __name((stream, signal) => {
5093
5165
  return Promise.reject(new Error("output stream closed"));
5094
5166
  if (!stream.writableNeedDrain)
5095
5167
  return Promise.resolve();
5096
- return new Promise((resolve, reject) => {
5168
+ return new Promise((resolve2, reject) => {
5097
5169
  const cleanup = /* @__PURE__ */ __name(() => {
5098
5170
  stream.off("drain", drained).off("error", failed).off("close", closed);
5099
5171
  signal?.removeEventListener("abort", aborted);
5100
5172
  }, "cleanup");
5101
5173
  const drained = /* @__PURE__ */ __name(() => {
5102
5174
  cleanup();
5103
- resolve();
5175
+ resolve2();
5104
5176
  }, "drained");
5105
5177
  const failed = /* @__PURE__ */ __name((error) => {
5106
5178
  cleanup();
@@ -5113,7 +5185,7 @@ var waitForDrain = /* @__PURE__ */ __name((stream, signal) => {
5113
5185
  });
5114
5186
  }, "waitForDrain");
5115
5187
 
5116
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/streams.js
5188
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/streams.js
5117
5189
  var processStreams = {
5118
5190
  drain: /* @__PURE__ */ __name(async (signal) => {
5119
5191
  await Promise.all([waitForDrain(process.stdout, signal), waitForDrain(process.stderr, signal)]);
@@ -5142,7 +5214,7 @@ var captureStreams = /* @__PURE__ */ __name(() => {
5142
5214
  };
5143
5215
  }, "captureStreams");
5144
5216
 
5145
- // node_modules/.pnpm/@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/renderer.js
5217
+ // node_modules/.pnpm/@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/renderer.js
5146
5218
  var createRenderer = /* @__PURE__ */ __name(({ format, color, streams = processStreams, quiet = false }) => {
5147
5219
  const mark = /* @__PURE__ */ __name((symbol, message) => format === "pretty" ? `${symbol} ${visibleControls(message)}` : visibleControls(message), "mark");
5148
5220
  const say = /* @__PURE__ */ __name((symbol) => (message) => {
@@ -5273,6 +5345,9 @@ export {
5273
5345
  loadConfigFile,
5274
5346
  saveConfigFile,
5275
5347
  systemKeyring,
5348
+ resolvePaths,
5349
+ pathsAreOverridden,
5350
+ configFilePath,
5276
5351
  Credentials,
5277
5352
  realSleep,
5278
5353
  createDeadline,
@@ -5282,11 +5357,10 @@ export {
5282
5357
  logRecordOf,
5283
5358
  createRecordLog,
5284
5359
  createOutputBuffer,
5285
- resolvePaths,
5286
- pathsAreOverridden,
5287
- configFilePath,
5288
5360
  indent,
5289
5361
  processStreams,
5290
5362
  captureStreams,
5291
- createRenderer
5363
+ createRenderer,
5364
+ DEFAULT_RETRY,
5365
+ backoffMs
5292
5366
  };
@@ -4,7 +4,7 @@ import {
4
4
  commandPathOf,
5
5
  findCommand,
6
6
  outputOf
7
- } from "./chunk-OEEMCNAO.js";
7
+ } from "./chunk-JDJDVYGS.js";
8
8
  import {
9
9
  Command,
10
10
  Help,
@@ -15,19 +15,19 @@ import {
15
15
  environmentOf,
16
16
  metaOf,
17
17
  takesProfile
18
- } from "./chunk-Y3YURIZF.js";
18
+ } from "./chunk-IOUPXUFH.js";
19
19
  import {
20
20
  wrapAnsi
21
21
  } from "./chunk-HTQTIKWP.js";
22
22
  import {
23
23
  CliError,
24
24
  writes
25
- } from "./chunk-R4SRXI7M.js";
25
+ } from "./chunk-SB47UAW2.js";
26
26
  import {
27
27
  __name
28
28
  } from "./chunk-ZVVMGPBJ.js";
29
29
 
30
- // node_modules/.pnpm/@wirecat+cli-core@0.491.0_@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_type_1193098e908042dfe6f4070222ac0245/node_modules/@wirecat/cli-core/dist/cli/help/sections.js
30
+ // node_modules/.pnpm/@wirecat+cli-core@0.507.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_d5beb0101c7a90701cc33879a5be8d28/node_modules/@wirecat/cli-core/dist/cli/help/sections.js
31
31
  var SECTIONS = {
32
32
  read: "Read",
33
33
  write: "Write",
@@ -92,7 +92,7 @@ var CORE_SECTIONS = {
92
92
  upgrade: "setup"
93
93
  };
94
94
 
95
- // node_modules/.pnpm/@wirecat+cli-core@0.491.0_@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_type_1193098e908042dfe6f4070222ac0245/node_modules/@wirecat/cli-core/dist/cli/help/commands-text.js
95
+ // node_modules/.pnpm/@wirecat+cli-core@0.507.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_d5beb0101c7a90701cc33879a5be8d28/node_modules/@wirecat/cli-core/dist/cli/help/commands-text.js
96
96
  var DESCRIPTION = 90;
97
97
  var COLUMN = 52;
98
98
  var short = /* @__PURE__ */ __name((text) => {
@@ -131,7 +131,7 @@ var commandsText = /* @__PURE__ */ __name((root, commands, scope) => {
131
131
  `;
132
132
  }, "commandsText");
133
133
 
134
- // node_modules/.pnpm/@wirecat+cli-core@0.491.0_@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_type_1193098e908042dfe6f4070222ac0245/node_modules/@wirecat/cli-core/dist/cli/help/command-help.js
134
+ // node_modules/.pnpm/@wirecat+cli-core@0.507.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_d5beb0101c7a90701cc33879a5be8d28/node_modules/@wirecat/cli-core/dist/cli/help/command-help.js
135
135
  var ARGUMENT_KINDS = {
136
136
  chat: "chat",
137
137
  chats: "chat",
@@ -352,7 +352,7 @@ var exampleReport = /* @__PURE__ */ __name((program) => {
352
352
  return { written, generated, text };
353
353
  }, "exampleReport");
354
354
 
355
- // node_modules/.pnpm/@wirecat+cli-core@0.491.0_@wirecat+cli-base@0.65.0_commander@15.0.0_esbuild@0.28.2_type_1193098e908042dfe6f4070222ac0245/node_modules/@wirecat/cli-core/dist/cli/help/first-screen.js
355
+ // node_modules/.pnpm/@wirecat+cli-core@0.507.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_d5beb0101c7a90701cc33879a5be8d28/node_modules/@wirecat/cli-core/dist/cli/help/first-screen.js
356
356
  var WIRECAT_TOOLS = [
357
357
  {
358
358
  command: "tg",