@vm0/cli 9.249.1 → 9.249.2

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 (141) hide show
  1. package/{agent-PMWDKCSZ.js → agent-TOFXTWYP.js} +11 -10
  2. package/{agent-PMWDKCSZ.js.map → agent-TOFXTWYP.js.map} +1 -1
  3. package/{banking-S5RH46G5.js → banking-U7I6EJUO.js} +8 -7
  4. package/{banking-S5RH46G5.js.map → banking-U7I6EJUO.js.map} +1 -1
  5. package/{chat-2ZTZUIWC.js → chat-77EDGFMS.js} +9 -8
  6. package/{chat-2ZTZUIWC.js.map → chat-77EDGFMS.js.map} +1 -1
  7. package/{chunk-DIRAZ3YX.js → chunk-3VVCUQPB.js} +3 -3
  8. package/{chunk-DIRAZ3YX.js.map → chunk-3VVCUQPB.js.map} +1 -1
  9. package/{chunk-PLOJYRFL.js → chunk-4HN7U3JF.js} +40 -564
  10. package/chunk-4HN7U3JF.js.map +1 -0
  11. package/{chunk-FF5L22OE.js → chunk-5CZNUTFF.js} +3 -3
  12. package/chunk-A2NKQGRI.js +491 -0
  13. package/chunk-A2NKQGRI.js.map +1 -0
  14. package/{chunk-J2I5GYLR.js → chunk-AFNSFKAH.js} +5 -5
  15. package/{chunk-L63QVTYZ.js → chunk-BQOOTJNB.js} +27 -672
  16. package/chunk-BQOOTJNB.js.map +1 -0
  17. package/{chunk-KLIW3XK7.js → chunk-GPF7NSX7.js} +2 -2
  18. package/{chunk-HUMR2SA3.js → chunk-HSGQT7LT.js} +3 -3
  19. package/{chunk-SAW74AR6.js → chunk-JCLLQRCI.js} +3 -3
  20. package/{chunk-B3W2RUBP.js → chunk-LD4ZVU4O.js} +2 -2
  21. package/chunk-N6TDQYGF.js +678 -0
  22. package/chunk-N6TDQYGF.js.map +1 -0
  23. package/{chunk-KQN5YZZP.js → chunk-ROB3OE37.js} +10 -113
  24. package/chunk-ROB3OE37.js.map +1 -0
  25. package/{chunk-LTDQISD7.js → chunk-SB7EZ2ZO.js} +2 -2
  26. package/{chunk-RTYT3CSZ.js → chunk-UG5XA6KU.js} +2 -2
  27. package/{chunk-LKDE4AUC.js → chunk-UNQJRTJQ.js} +3 -3
  28. package/chunk-W75R7EZF.js +17 -0
  29. package/chunk-W75R7EZF.js.map +1 -0
  30. package/chunk-WDDZJGWL.js +32 -0
  31. package/chunk-WDDZJGWL.js.map +1 -0
  32. package/{chunk-JFY6GK7Y.js → chunk-X2545RBX.js} +2 -2
  33. package/{chunk-ZE2VIESK.js → chunk-X4DBCBU4.js} +2 -2
  34. package/{computer-use-GRK4TZYN.js → computer-use-BCGPVGWS.js} +7 -6
  35. package/{computer-use-GRK4TZYN.js.map → computer-use-BCGPVGWS.js.map} +1 -1
  36. package/{connector-2SVH4F2N.js → connector-CHZSI2LW.js} +14 -13
  37. package/{connector-2SVH4F2N.js.map → connector-CHZSI2LW.js.map} +1 -1
  38. package/credit-RWFBPKOS.js +166 -0
  39. package/credit-RWFBPKOS.js.map +1 -0
  40. package/{developer-support-RYTLIFUN.js → developer-support-IVR3HIP7.js} +8 -7
  41. package/{developer-support-RYTLIFUN.js.map → developer-support-IVR3HIP7.js.map} +1 -1
  42. package/{doctor-CS5TFE6A.js → doctor-KGWTXW2Q.js} +39 -13
  43. package/doctor-KGWTXW2Q.js.map +1 -0
  44. package/{esm-PZKPCIYJ.js → esm-GOCEMHJO.js} +3 -3
  45. package/{feishu-HFQIJDBU.js → feishu-PLF4P5OG.js} +8 -7
  46. package/{feishu-HFQIJDBU.js.map → feishu-PLF4P5OG.js.map} +1 -1
  47. package/{finance-56HIRALT.js → finance-LVFG3WWP.js} +8 -7
  48. package/{finance-56HIRALT.js.map → finance-LVFG3WWP.js.map} +1 -1
  49. package/{generate-4FEC4YVM.js → generate-4FIBMMJO.js} +77 -22
  50. package/generate-4FIBMMJO.js.map +1 -0
  51. package/{getMachineId-bsd-L73QENVB.js → getMachineId-bsd-SB7C44VX.js} +4 -4
  52. package/{getMachineId-darwin-TCCWKQ2S.js → getMachineId-darwin-R4BWY3CQ.js} +4 -4
  53. package/{getMachineId-linux-TJYYUZVM.js → getMachineId-linux-BR4HVNPW.js} +3 -3
  54. package/{getMachineId-unsupported-DPRVLH4Y.js → getMachineId-unsupported-FPGM635L.js} +3 -3
  55. package/{getMachineId-win-7EE436CJ.js → getMachineId-win-RB4JMF33.js} +4 -4
  56. package/{github-AALJ7IEM.js → github-WHNAVVG3.js} +8 -7
  57. package/{github-AALJ7IEM.js.map → github-WHNAVVG3.js.map} +1 -1
  58. package/{goal-CFSXEKHU.js → goal-G4J2BQ5Z.js} +8 -7
  59. package/{goal-CFSXEKHU.js.map → goal-G4J2BQ5Z.js.map} +1 -1
  60. package/{host-6NKXFQCO.js → host-3W6U2ZUP.js} +8 -7
  61. package/{host-6NKXFQCO.js.map → host-3W6U2ZUP.js.map} +1 -1
  62. package/{intro-MIVVJG7M.js → intro-PMHOBGDL.js} +3 -3
  63. package/{logs-F4KPELTF.js → logs-P7JLTGXY.js} +10 -9
  64. package/{logs-F4KPELTF.js.map → logs-P7JLTGXY.js.map} +1 -1
  65. package/{mail-RZTLZU3I.js → mail-LIAOXDD4.js} +12 -11
  66. package/{mail-RZTLZU3I.js.map → mail-LIAOXDD4.js.map} +1 -1
  67. package/{maps-QRHGR33R.js → maps-C4NOXSE7.js} +8 -7
  68. package/{maps-QRHGR33R.js.map → maps-C4NOXSE7.js.map} +1 -1
  69. package/{model-6N5VPIS5.js → model-I2MNQ5KC.js} +9 -8
  70. package/{model-6N5VPIS5.js.map → model-I2MNQ5KC.js.map} +1 -1
  71. package/{model-provider-UZO32ZTC.js → model-provider-AOCCHEMP.js} +9 -8
  72. package/{model-provider-UZO32ZTC.js.map → model-provider-AOCCHEMP.js.map} +1 -1
  73. package/{org-26ZL2W2U.js → org-MVBG3WXZ.js} +9 -8
  74. package/{org-26ZL2W2U.js.map → org-MVBG3WXZ.js.map} +1 -1
  75. package/package.json +1 -1
  76. package/{phone-QTRZLYIG.js → phone-4OZQFYHU.js} +8 -7
  77. package/{phone-QTRZLYIG.js.map → phone-4OZQFYHU.js.map} +1 -1
  78. package/{preference-JCFTTUBN.js → preference-H2A3WBGQ.js} +9 -8
  79. package/{preference-JCFTTUBN.js.map → preference-H2A3WBGQ.js.map} +1 -1
  80. package/{resource-64R7T4FF.js → resource-CPCQ6V6M.js} +9 -8
  81. package/{resource-64R7T4FF.js.map → resource-CPCQ6V6M.js.map} +1 -1
  82. package/{scrape-LVGJ56IS.js → scrape-6RMFDYAT.js} +8 -7
  83. package/{scrape-LVGJ56IS.js.map → scrape-6RMFDYAT.js.map} +1 -1
  84. package/{search-TRISF64L.js → search-HSQVSQZY.js} +10 -9
  85. package/{search-TRISF64L.js.map → search-HSQVSQZY.js.map} +1 -1
  86. package/{secret-UAJDU3SX.js → secret-S4D6CNOX.js} +9 -8
  87. package/{secret-UAJDU3SX.js.map → secret-S4D6CNOX.js.map} +1 -1
  88. package/{slack-PDOPNS5Z.js → slack-E3E2NIDZ.js} +50 -175
  89. package/slack-E3E2NIDZ.js.map +1 -0
  90. package/{teams-BL36IS5U.js → teams-CLEWT2LQ.js} +8 -7
  91. package/{teams-BL36IS5U.js.map → teams-CLEWT2LQ.js.map} +1 -1
  92. package/{telegram-X7YTUVNV.js → telegram-35FKKA4K.js} +8 -7
  93. package/{telegram-X7YTUVNV.js.map → telegram-35FKKA4K.js.map} +1 -1
  94. package/{undici-ZMFN7TNU.js → undici-YXSVPIYI.js} +2 -2
  95. package/upgrade-DNGUR42E.js +50 -0
  96. package/upgrade-DNGUR42E.js.map +1 -0
  97. package/{variable-EBCBNZSU.js → variable-C7RWUPV6.js} +9 -8
  98. package/{variable-EBCBNZSU.js.map → variable-C7RWUPV6.js.map} +1 -1
  99. package/{video-3HFJJJEE.js → video-JS5VOA2S.js} +9 -7
  100. package/{video-3HFJJJEE.js.map → video-JS5VOA2S.js.map} +1 -1
  101. package/{weather-Y37FKFKU.js → weather-5R2N5OX4.js} +8 -7
  102. package/{weather-Y37FKFKU.js.map → weather-5R2N5OX4.js.map} +1 -1
  103. package/{web-ZEWEVAI3.js → web-FXIIYCZ7.js} +10 -8
  104. package/{web-ZEWEVAI3.js.map → web-FXIIYCZ7.js.map} +1 -1
  105. package/{web-search-37SGCKB7.js → web-search-SZP7J4UM.js} +8 -7
  106. package/{web-search-37SGCKB7.js.map → web-search-SZP7J4UM.js.map} +1 -1
  107. package/{whoami-VZI6VS4C.js → whoami-J4FRN67A.js} +10 -9
  108. package/{whoami-VZI6VS4C.js.map → whoami-J4FRN67A.js.map} +1 -1
  109. package/{workflow-3WGBRMM5.js → workflow-HQHZKXB2.js} +9 -8
  110. package/{workflow-3WGBRMM5.js.map → workflow-HQHZKXB2.js.map} +1 -1
  111. package/zero.js +88 -61
  112. package/zero.js.map +1 -1
  113. package/chunk-KQN5YZZP.js.map +0 -1
  114. package/chunk-L63QVTYZ.js.map +0 -1
  115. package/chunk-LRHXR7JT.js +0 -33
  116. package/chunk-LRHXR7JT.js.map +0 -1
  117. package/chunk-PLOJYRFL.js.map +0 -1
  118. package/credit-LGMFDRFK.js +0 -128
  119. package/credit-LGMFDRFK.js.map +0 -1
  120. package/doctor-CS5TFE6A.js.map +0 -1
  121. package/generate-4FEC4YVM.js.map +0 -1
  122. package/slack-PDOPNS5Z.js.map +0 -1
  123. /package/{chunk-FF5L22OE.js.map → chunk-5CZNUTFF.js.map} +0 -0
  124. /package/{chunk-J2I5GYLR.js.map → chunk-AFNSFKAH.js.map} +0 -0
  125. /package/{chunk-KLIW3XK7.js.map → chunk-GPF7NSX7.js.map} +0 -0
  126. /package/{chunk-HUMR2SA3.js.map → chunk-HSGQT7LT.js.map} +0 -0
  127. /package/{chunk-SAW74AR6.js.map → chunk-JCLLQRCI.js.map} +0 -0
  128. /package/{chunk-B3W2RUBP.js.map → chunk-LD4ZVU4O.js.map} +0 -0
  129. /package/{chunk-LTDQISD7.js.map → chunk-SB7EZ2ZO.js.map} +0 -0
  130. /package/{chunk-RTYT3CSZ.js.map → chunk-UG5XA6KU.js.map} +0 -0
  131. /package/{chunk-LKDE4AUC.js.map → chunk-UNQJRTJQ.js.map} +0 -0
  132. /package/{chunk-JFY6GK7Y.js.map → chunk-X2545RBX.js.map} +0 -0
  133. /package/{chunk-ZE2VIESK.js.map → chunk-X4DBCBU4.js.map} +0 -0
  134. /package/{esm-PZKPCIYJ.js.map → esm-GOCEMHJO.js.map} +0 -0
  135. /package/{getMachineId-bsd-L73QENVB.js.map → getMachineId-bsd-SB7C44VX.js.map} +0 -0
  136. /package/{getMachineId-darwin-TCCWKQ2S.js.map → getMachineId-darwin-R4BWY3CQ.js.map} +0 -0
  137. /package/{getMachineId-linux-TJYYUZVM.js.map → getMachineId-linux-BR4HVNPW.js.map} +0 -0
  138. /package/{getMachineId-unsupported-DPRVLH4Y.js.map → getMachineId-unsupported-FPGM635L.js.map} +0 -0
  139. /package/{getMachineId-win-7EE436CJ.js.map → getMachineId-win-RB4JMF33.js.map} +0 -0
  140. /package/{intro-MIVVJG7M.js.map → intro-PMHOBGDL.js.map} +0 -0
  141. /package/{undici-ZMFN7TNU.js.map → undici-YXSVPIYI.js.map} +0 -0
@@ -1,128 +0,0 @@
1
- #!/usr/bin/env node
2
- import { createRequire as __createRequire } from "node:module";
3
- const require = __createRequire(import.meta.url);
4
- import {
5
- getPlatformOrigin
6
- } from "./chunk-SAW74AR6.js";
7
- import {
8
- createZeroCreditCheckout,
9
- getZeroBillingStatus,
10
- getZeroOrgMembers
11
- } from "./chunk-KQN5YZZP.js";
12
- import "./chunk-LTDQISD7.js";
13
- import {
14
- source_default,
15
- withErrorHandler
16
- } from "./chunk-L63QVTYZ.js";
17
- import {
18
- decodeZeroTokenPayload
19
- } from "./chunk-LRHXR7JT.js";
20
- import {
21
- Command,
22
- Option
23
- } from "./chunk-B3W2RUBP.js";
24
- import {
25
- init_esm_shims
26
- } from "./chunk-DIRAZ3YX.js";
27
-
28
- // src/commands/zero/credit.ts
29
- init_esm_shims();
30
- function parseCredits(value) {
31
- const credits = Number(value.replaceAll(",", ""));
32
- if (!Number.isInteger(credits) || credits <= 0) {
33
- throw new Error("credits must be a positive integer");
34
- }
35
- return credits;
36
- }
37
- function requireZeroCapabilityForCreditAction(capability, message) {
38
- const payload = decodeZeroTokenPayload();
39
- if (payload && !payload.capabilities.includes(capability)) {
40
- throw new Error(message);
41
- }
42
- }
43
- var zeroCreditCommand = new Command().name("credit").description("View credit balance or create a checkout link to buy credits").argument("[credits]", "Number of credits to buy", parseCredits).addOption(
44
- new Option("--auto-recharge", "Enable auto-recharge after checkout")
45
- ).option(
46
- "--auto-recharge-threshold <credits>",
47
- "Recharge when balance is at or below this number of credits",
48
- parseCredits
49
- ).option(
50
- "--auto-recharge-amount <credits>",
51
- "Credits to buy for each auto-recharge",
52
- parseCredits
53
- ).action(
54
- withErrorHandler(
55
- async (credits, options) => {
56
- if (credits === void 0) {
57
- requireZeroCapabilityForCreditAction(
58
- "billing:read",
59
- "checking credit status requires billing:read capability"
60
- );
61
- if (options.autoRecharge === true || options.autoRechargeThreshold !== void 0 || options.autoRechargeAmount !== void 0) {
62
- throw new Error("auto-recharge options require a credit amount");
63
- }
64
- const billing = await getZeroBillingStatus();
65
- console.log(source_default.bold("Credit status:"));
66
- console.log(` Tier: ${source_default.cyan(billing.tier)}`);
67
- console.log(
68
- ` Available credits: ${source_default.cyan(billing.credits.toLocaleString())}`
69
- );
70
- console.log(
71
- ` Auto-recharge: ${billing.autoRecharge.enabled ? source_default.green("enabled") : "disabled"}`
72
- );
73
- if (billing.autoRecharge.enabled) {
74
- console.log(
75
- ` Threshold: ${billing.autoRecharge.threshold?.toLocaleString() ?? "not set"}`
76
- );
77
- console.log(
78
- ` Amount: ${billing.autoRecharge.amount?.toLocaleString() ?? "not set"}`
79
- );
80
- }
81
- return;
82
- }
83
- requireZeroCapabilityForCreditAction(
84
- "billing:write",
85
- "buying credits requires billing:write capability"
86
- );
87
- const members = await getZeroOrgMembers();
88
- if (members.role !== "admin") {
89
- console.log(
90
- source_default.yellow(
91
- "Only organization admins can buy credits. Run `zero doctor credit` to see the current credit status and org admins."
92
- )
93
- );
94
- return;
95
- }
96
- const origin = await getPlatformOrigin();
97
- const successUrl = `${origin}/?settings=usage&credit=success`;
98
- const cancelUrl = `${origin}/?settings=usage&credit=canceled`;
99
- if (options.autoRecharge !== true && (options.autoRechargeThreshold !== void 0 || options.autoRechargeAmount !== void 0)) {
100
- throw new Error(
101
- "--auto-recharge-threshold and --auto-recharge-amount require --auto-recharge"
102
- );
103
- }
104
- if (options.autoRecharge === true && (options.autoRechargeThreshold === void 0 || options.autoRechargeAmount === void 0)) {
105
- throw new Error(
106
- "--auto-recharge requires --auto-recharge-threshold and --auto-recharge-amount"
107
- );
108
- }
109
- const autoRecharge = options.autoRecharge === true ? {
110
- enabled: true,
111
- threshold: options.autoRechargeThreshold,
112
- amount: options.autoRechargeAmount
113
- } : void 0;
114
- const result = await createZeroCreditCheckout({
115
- credits,
116
- successUrl,
117
- cancelUrl,
118
- ...autoRecharge ? { autoRecharge } : {}
119
- });
120
- console.log(source_default.bold("Credit checkout link:"));
121
- console.log(result.url);
122
- }
123
- )
124
- );
125
- export {
126
- zeroCreditCommand
127
- };
128
- //# sourceMappingURL=credit-LGMFDRFK.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/zero/credit.ts"],"sourcesContent":["import { Command, Option } from \"commander\";\nimport chalk from \"chalk\";\nimport type { ZeroCapability } from \"@vm0/api-contracts/contracts/composes\";\n\nimport {\n createZeroCreditCheckout,\n getZeroBillingStatus,\n getZeroOrgMembers,\n} from \"../../lib/api\";\nimport { withErrorHandler } from \"../../lib/command\";\nimport { decodeZeroTokenPayload } from \"../../lib/api/zero-token\";\nimport { getPlatformOrigin } from \"./doctor/platform-url\";\n\nfunction parseCredits(value: string): number {\n const credits = Number(value.replaceAll(\",\", \"\"));\n if (!Number.isInteger(credits) || credits <= 0) {\n throw new Error(\"credits must be a positive integer\");\n }\n return credits;\n}\n\nfunction requireZeroCapabilityForCreditAction(\n capability: ZeroCapability,\n message: string,\n): void {\n const payload = decodeZeroTokenPayload();\n if (payload && !payload.capabilities.includes(capability)) {\n throw new Error(message);\n }\n}\n\nexport const zeroCreditCommand = new Command()\n .name(\"credit\")\n .description(\"View credit balance or create a checkout link to buy credits\")\n .argument(\"[credits]\", \"Number of credits to buy\", parseCredits)\n .addOption(\n new Option(\"--auto-recharge\", \"Enable auto-recharge after checkout\"),\n )\n .option(\n \"--auto-recharge-threshold <credits>\",\n \"Recharge when balance is at or below this number of credits\",\n parseCredits,\n )\n .option(\n \"--auto-recharge-amount <credits>\",\n \"Credits to buy for each auto-recharge\",\n parseCredits,\n )\n .action(\n withErrorHandler(\n async (\n credits: number | undefined,\n options: {\n readonly autoRecharge?: boolean;\n readonly autoRechargeThreshold?: number;\n readonly autoRechargeAmount?: number;\n },\n ) => {\n if (credits === undefined) {\n requireZeroCapabilityForCreditAction(\n \"billing:read\",\n \"checking credit status requires billing:read capability\",\n );\n if (\n options.autoRecharge === true ||\n options.autoRechargeThreshold !== undefined ||\n options.autoRechargeAmount !== undefined\n ) {\n throw new Error(\"auto-recharge options require a credit amount\");\n }\n\n const billing = await getZeroBillingStatus();\n console.log(chalk.bold(\"Credit status:\"));\n console.log(` Tier: ${chalk.cyan(billing.tier)}`);\n console.log(\n ` Available credits: ${chalk.cyan(billing.credits.toLocaleString())}`,\n );\n console.log(\n ` Auto-recharge: ${\n billing.autoRecharge.enabled ? chalk.green(\"enabled\") : \"disabled\"\n }`,\n );\n if (billing.autoRecharge.enabled) {\n console.log(\n ` Threshold: ${billing.autoRecharge.threshold?.toLocaleString() ?? \"not set\"}`,\n );\n console.log(\n ` Amount: ${billing.autoRecharge.amount?.toLocaleString() ?? \"not set\"}`,\n );\n }\n return;\n }\n\n requireZeroCapabilityForCreditAction(\n \"billing:write\",\n \"buying credits requires billing:write capability\",\n );\n const members = await getZeroOrgMembers();\n if (members.role !== \"admin\") {\n console.log(\n chalk.yellow(\n \"Only organization admins can buy credits. Run `zero doctor credit` to see the current credit status and org admins.\",\n ),\n );\n return;\n }\n\n const origin = await getPlatformOrigin();\n const successUrl = `${origin}/?settings=usage&credit=success`;\n const cancelUrl = `${origin}/?settings=usage&credit=canceled`;\n if (\n options.autoRecharge !== true &&\n (options.autoRechargeThreshold !== undefined ||\n options.autoRechargeAmount !== undefined)\n ) {\n throw new Error(\n \"--auto-recharge-threshold and --auto-recharge-amount require --auto-recharge\",\n );\n }\n\n if (\n options.autoRecharge === true &&\n (options.autoRechargeThreshold === undefined ||\n options.autoRechargeAmount === undefined)\n ) {\n throw new Error(\n \"--auto-recharge requires --auto-recharge-threshold and --auto-recharge-amount\",\n );\n }\n\n const autoRecharge =\n options.autoRecharge === true\n ? {\n enabled: true,\n threshold: options.autoRechargeThreshold,\n amount: options.autoRechargeAmount,\n }\n : undefined;\n\n const result = await createZeroCreditCheckout({\n credits,\n successUrl,\n cancelUrl,\n ...(autoRecharge ? { autoRecharge } : {}),\n });\n console.log(chalk.bold(\"Credit checkout link:\"));\n console.log(result.url);\n },\n ),\n );\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAaA,SAAS,aAAa,OAAuB;AAC3C,QAAM,UAAU,OAAO,MAAM,WAAW,KAAK,EAAE,CAAC;AAChD,MAAI,CAAC,OAAO,UAAU,OAAO,KAAK,WAAW,GAAG;AAC9C,UAAM,IAAI,MAAM,oCAAoC;AAAA,EACtD;AACA,SAAO;AACT;AAEA,SAAS,qCACP,YACA,SACM;AACN,QAAM,UAAU,uBAAuB;AACvC,MAAI,WAAW,CAAC,QAAQ,aAAa,SAAS,UAAU,GAAG;AACzD,UAAM,IAAI,MAAM,OAAO;AAAA,EACzB;AACF;AAEO,IAAM,oBAAoB,IAAI,QAAQ,EAC1C,KAAK,QAAQ,EACb,YAAY,8DAA8D,EAC1E,SAAS,aAAa,4BAA4B,YAAY,EAC9D;AAAA,EACC,IAAI,OAAO,mBAAmB,qCAAqC;AACrE,EACC;AAAA,EACC;AAAA,EACA;AAAA,EACA;AACF,EACC;AAAA,EACC;AAAA,EACA;AAAA,EACA;AACF,EACC;AAAA,EACC;AAAA,IACE,OACE,SACA,YAKG;AACH,UAAI,YAAY,QAAW;AACzB;AAAA,UACE;AAAA,UACA;AAAA,QACF;AACA,YACE,QAAQ,iBAAiB,QACzB,QAAQ,0BAA0B,UAClC,QAAQ,uBAAuB,QAC/B;AACA,gBAAM,IAAI,MAAM,+CAA+C;AAAA,QACjE;AAEA,cAAM,UAAU,MAAM,qBAAqB;AAC3C,gBAAQ,IAAI,eAAM,KAAK,gBAAgB,CAAC;AACxC,gBAAQ,IAAI,WAAW,eAAM,KAAK,QAAQ,IAAI,CAAC,EAAE;AACjD,gBAAQ;AAAA,UACN,wBAAwB,eAAM,KAAK,QAAQ,QAAQ,eAAe,CAAC,CAAC;AAAA,QACtE;AACA,gBAAQ;AAAA,UACN,oBACE,QAAQ,aAAa,UAAU,eAAM,MAAM,SAAS,IAAI,UAC1D;AAAA,QACF;AACA,YAAI,QAAQ,aAAa,SAAS;AAChC,kBAAQ;AAAA,YACN,kBAAkB,QAAQ,aAAa,WAAW,eAAe,KAAK,SAAS;AAAA,UACjF;AACA,kBAAQ;AAAA,YACN,eAAe,QAAQ,aAAa,QAAQ,eAAe,KAAK,SAAS;AAAA,UAC3E;AAAA,QACF;AACA;AAAA,MACF;AAEA;AAAA,QACE;AAAA,QACA;AAAA,MACF;AACA,YAAM,UAAU,MAAM,kBAAkB;AACxC,UAAI,QAAQ,SAAS,SAAS;AAC5B,gBAAQ;AAAA,UACN,eAAM;AAAA,YACJ;AAAA,UACF;AAAA,QACF;AACA;AAAA,MACF;AAEA,YAAM,SAAS,MAAM,kBAAkB;AACvC,YAAM,aAAa,GAAG,MAAM;AAC5B,YAAM,YAAY,GAAG,MAAM;AAC3B,UACE,QAAQ,iBAAiB,SACxB,QAAQ,0BAA0B,UACjC,QAAQ,uBAAuB,SACjC;AACA,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAEA,UACE,QAAQ,iBAAiB,SACxB,QAAQ,0BAA0B,UACjC,QAAQ,uBAAuB,SACjC;AACA,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAEA,YAAM,eACJ,QAAQ,iBAAiB,OACrB;AAAA,QACE,SAAS;AAAA,QACT,WAAW,QAAQ;AAAA,QACnB,QAAQ,QAAQ;AAAA,MAClB,IACA;AAEN,YAAM,SAAS,MAAM,yBAAyB;AAAA,QAC5C;AAAA,QACA;AAAA,QACA;AAAA,QACA,GAAI,eAAe,EAAE,aAAa,IAAI,CAAC;AAAA,MACzC,CAAC;AACD,cAAQ,IAAI,eAAM,KAAK,uBAAuB,CAAC;AAC/C,cAAQ,IAAI,OAAO,GAAG;AAAA,IACxB;AAAA,EACF;AACF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/zero/doctor/index.ts","../src/commands/zero/doctor/credit.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport { creditCommand } from \"./credit\";\n\nexport const zeroDoctorCommand = new Command()\n .name(\"doctor\")\n .description(\"Diagnose account and runtime issues\")\n .addCommand(creditCommand)\n .addHelpText(\n \"after\",\n `\nExamples:\n Check credits? zero doctor credit\n\nNotes:\n - Use zero doctor credit when a run or generation fails because the org has insufficient credits, when a user asks how to recharge, or before trying to buy credits\n - Use zero generate <type> (no --prompt) to see every provider available for a given generation type\n - Use zero connector check for connector and permission diagnostics`,\n );\n","import { Command } from \"commander\";\nimport chalk from \"chalk\";\n\nimport {\n getZeroBillingStatus,\n getZeroOrg,\n getZeroOrgMembers,\n} from \"../../../lib/api\";\nimport { withErrorHandler } from \"../../../lib/command\";\n\nfunction memberName(member: {\n readonly email: string;\n readonly firstName: string | null;\n readonly lastName: string | null;\n}): string {\n const name = [member.firstName, member.lastName].filter(Boolean).join(\" \");\n return name ? `${name} <${member.email}>` : member.email;\n}\n\nexport const creditCommand = new Command()\n .name(\"credit\")\n .description(\"Diagnose current organization credit and purchase access\")\n .action(\n withErrorHandler(async () => {\n const [org, billing, members] = await Promise.all([\n getZeroOrg(),\n getZeroBillingStatus(),\n getZeroOrgMembers(),\n ]);\n const admins = members.members.filter((member) => {\n return member.role === \"admin\";\n });\n const isAdmin = members.role === \"admin\";\n const canPurchaseCredits = isAdmin;\n\n console.log(chalk.bold(\"Credit diagnostics:\"));\n console.log(` Org: ${chalk.green(org.slug)}`);\n console.log(` Tier: ${chalk.cyan(billing.tier)}`);\n console.log(\n ` Available credits: ${chalk.cyan(billing.credits.toLocaleString())}`,\n );\n console.log(` Current user role: ${chalk.cyan(members.role)}`);\n console.log(\n ` Can purchase credits: ${\n canPurchaseCredits ? chalk.green(\"yes\") : chalk.yellow(\"no\")\n }`,\n );\n console.log(\n ` Auto-recharge: ${\n billing.autoRecharge.enabled ? chalk.green(\"enabled\") : \"disabled\"\n }`,\n );\n if (billing.autoRecharge.enabled) {\n console.log(\n ` Threshold: ${billing.autoRecharge.threshold?.toLocaleString() ?? \"not set\"}`,\n );\n console.log(\n ` Amount: ${billing.autoRecharge.amount?.toLocaleString() ?? \"not set\"}`,\n );\n }\n\n if (!isAdmin) {\n console.log(chalk.bold(\"\\nOrganization admins:\"));\n for (const admin of admins) {\n console.log(` - ${memberName(admin)}`);\n }\n console.log(\n chalk.yellow(\n \"\\nAsk an organization admin to buy credits or upgrade the plan.\",\n ),\n );\n } else if (billing.tier === \"free\") {\n console.log(\n \"\\nFree-tier admins can upgrade to Pro from billing or buy credits with `zero credit <credits>`.\",\n );\n } else {\n console.log(\"\\nUse `zero credit <credits>` to buy more credits.\");\n }\n }),\n );\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;ACAA;AAUA,SAAS,WAAW,QAIT;AACT,QAAM,OAAO,CAAC,OAAO,WAAW,OAAO,QAAQ,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AACzE,SAAO,OAAO,GAAG,IAAI,KAAK,OAAO,KAAK,MAAM,OAAO;AACrD;AAEO,IAAM,gBAAgB,IAAI,QAAQ,EACtC,KAAK,QAAQ,EACb,YAAY,0DAA0D,EACtE;AAAA,EACC,iBAAiB,YAAY;AAC3B,UAAM,CAAC,KAAK,SAAS,OAAO,IAAI,MAAM,QAAQ,IAAI;AAAA,MAChD,WAAW;AAAA,MACX,qBAAqB;AAAA,MACrB,kBAAkB;AAAA,IACpB,CAAC;AACD,UAAM,SAAS,QAAQ,QAAQ,OAAO,CAAC,WAAW;AAChD,aAAO,OAAO,SAAS;AAAA,IACzB,CAAC;AACD,UAAM,UAAU,QAAQ,SAAS;AACjC,UAAM,qBAAqB;AAE3B,YAAQ,IAAI,eAAM,KAAK,qBAAqB,CAAC;AAC7C,YAAQ,IAAI,UAAU,eAAM,MAAM,IAAI,IAAI,CAAC,EAAE;AAC7C,YAAQ,IAAI,WAAW,eAAM,KAAK,QAAQ,IAAI,CAAC,EAAE;AACjD,YAAQ;AAAA,MACN,wBAAwB,eAAM,KAAK,QAAQ,QAAQ,eAAe,CAAC,CAAC;AAAA,IACtE;AACA,YAAQ,IAAI,wBAAwB,eAAM,KAAK,QAAQ,IAAI,CAAC,EAAE;AAC9D,YAAQ;AAAA,MACN,2BACE,qBAAqB,eAAM,MAAM,KAAK,IAAI,eAAM,OAAO,IAAI,CAC7D;AAAA,IACF;AACA,YAAQ;AAAA,MACN,oBACE,QAAQ,aAAa,UAAU,eAAM,MAAM,SAAS,IAAI,UAC1D;AAAA,IACF;AACA,QAAI,QAAQ,aAAa,SAAS;AAChC,cAAQ;AAAA,QACN,kBAAkB,QAAQ,aAAa,WAAW,eAAe,KAAK,SAAS;AAAA,MACjF;AACA,cAAQ;AAAA,QACN,eAAe,QAAQ,aAAa,QAAQ,eAAe,KAAK,SAAS;AAAA,MAC3E;AAAA,IACF;AAEA,QAAI,CAAC,SAAS;AACZ,cAAQ,IAAI,eAAM,KAAK,wBAAwB,CAAC;AAChD,iBAAW,SAAS,QAAQ;AAC1B,gBAAQ,IAAI,OAAO,WAAW,KAAK,CAAC,EAAE;AAAA,MACxC;AACA,cAAQ;AAAA,QACN,eAAM;AAAA,UACJ;AAAA,QACF;AAAA,MACF;AAAA,IACF,WAAW,QAAQ,SAAS,QAAQ;AAClC,cAAQ;AAAA,QACN;AAAA,MACF;AAAA,IACF,OAAO;AACL,cAAQ,IAAI,oDAAoD;AAAA,IAClE;AAAA,EACF,CAAC;AACH;;;AD5EK,IAAM,oBAAoB,IAAI,QAAQ,EAC1C,KAAK,QAAQ,EACb,YAAY,qCAAqC,EACjD,WAAW,aAAa,EACxB;AAAA,EACC;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQF;","names":[]}