@vm0/cli 9.238.9 → 9.239.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 (91) hide show
  1. package/{agent-QZ7SSBML.js → agent-TZPMJY5K.js} +5 -5
  2. package/{banking-3DALFC7J.js → banking-7LRKXBLW.js} +3 -3
  3. package/{chat-GK2Y5UTL.js → chat-5YST6MXO.js} +4 -4
  4. package/{chunk-37AFUOSW.js → chunk-2KRYWIZR.js} +2 -2
  5. package/{chunk-W5IXR2G6.js → chunk-5Z5CC5TU.js} +765 -74
  6. package/chunk-5Z5CC5TU.js.map +1 -0
  7. package/{chunk-5BUMIUHV.js → chunk-FNGTMVZY.js} +4 -4
  8. package/{chunk-EXOHB6VT.js → chunk-GGQ2KN5R.js} +2 -2
  9. package/{chunk-VKMFCWXO.js → chunk-KYL4OHOL.js} +2 -2
  10. package/{chunk-VKMFCWXO.js.map → chunk-KYL4OHOL.js.map} +1 -1
  11. package/{chunk-VOYM3NFL.js → chunk-XBPIMSI6.js} +4 -4
  12. package/{chunk-BEX4GQTV.js → chunk-XU3GTRZ6.js} +3 -3
  13. package/{chunk-BL3P7LNO.js → chunk-XW6A2QO6.js} +2 -2
  14. package/{chunk-R62M7BNA.js → chunk-YREBMGGY.js} +20 -3
  15. package/chunk-YREBMGGY.js.map +1 -0
  16. package/{computer-use-PHM6ZFWL.js → computer-use-BN7DW462.js} +3 -3
  17. package/{connector-77IXH6CJ.js → connector-C5LF7EPC.js} +4 -4
  18. package/{credit-ULH5OZU3.js → credit-RT6KPFPT.js} +46 -6
  19. package/credit-RT6KPFPT.js.map +1 -0
  20. package/{developer-support-UTQLBY4T.js → developer-support-7JQ5OFEP.js} +3 -3
  21. package/{doctor-R2PIOZ2X.js → doctor-NZDBU6F7.js} +5 -5
  22. package/{generate-566PP2IT.js → generate-WCXOG6UL.js} +4 -4
  23. package/{github-WYA7S6FS.js → github-3KPFPFII.js} +3 -3
  24. package/{goal-UGH7DB2O.js → goal-ZD62HAY3.js} +3 -3
  25. package/{host-7Y6CZWFN.js → host-KFLXYMRU.js} +3 -3
  26. package/index.js +12 -12
  27. package/{logs-A6IBECTD.js → logs-CTNFNAWE.js} +5 -5
  28. package/{maps-FN2ZBH3J.js → maps-UFOY36IV.js} +3 -3
  29. package/{memory-733WY4GI.js → memory-DHA3BQKK.js} +3 -3
  30. package/{model-OF6IWGU3.js → model-FCOE3MP6.js} +4 -4
  31. package/{model-provider-ZNHAZYBA.js → model-provider-HEWXLMUY.js} +4 -4
  32. package/{org-OE64JYTP.js → org-K6BMGHOE.js} +3 -3
  33. package/package.json +1 -1
  34. package/{phone-QV5HBYBT.js → phone-2CRNF77W.js} +3 -3
  35. package/{preference-6WSIMRB2.js → preference-SRFAIXKZ.js} +3 -3
  36. package/{relationship-ZJDI7BCS.js → relationship-2A3DYX4V.js} +3 -3
  37. package/{resource-HXYLYEIW.js → resource-LWPPKNZI.js} +3 -3
  38. package/scrape-7Z4MR5ZT.js +99 -0
  39. package/scrape-7Z4MR5ZT.js.map +1 -0
  40. package/{search-NDG42KG7.js → search-YE56C2CL.js} +5 -5
  41. package/{secret-ER2MBSJH.js → secret-AIP2H2F4.js} +3 -3
  42. package/{slack-M3INZI6Q.js → slack-JCWAEQQS.js} +3 -3
  43. package/{teams-EKYLDC43.js → teams-7RPKIPEP.js} +3 -3
  44. package/{telegram-3M72NLII.js → telegram-6TTV55BZ.js} +3 -3
  45. package/{variable-XV3Y6G3D.js → variable-JNUXB3ZE.js} +3 -3
  46. package/{video-Z243FULV.js → video-EXMGR7N6.js} +2 -2
  47. package/{web-D6X64E4G.js → web-WHXJKKK2.js} +3 -3
  48. package/{whoami-5HNVUOVC.js → whoami-QW3ULYLM.js} +5 -5
  49. package/{workflow-WHXZHJ4C.js → workflow-4YYJQ7SB.js} +3 -3
  50. package/zero.js +47 -38
  51. package/zero.js.map +1 -1
  52. package/chunk-R62M7BNA.js.map +0 -1
  53. package/chunk-W5IXR2G6.js.map +0 -1
  54. package/credit-ULH5OZU3.js.map +0 -1
  55. /package/{agent-QZ7SSBML.js.map → agent-TZPMJY5K.js.map} +0 -0
  56. /package/{banking-3DALFC7J.js.map → banking-7LRKXBLW.js.map} +0 -0
  57. /package/{chat-GK2Y5UTL.js.map → chat-5YST6MXO.js.map} +0 -0
  58. /package/{chunk-37AFUOSW.js.map → chunk-2KRYWIZR.js.map} +0 -0
  59. /package/{chunk-5BUMIUHV.js.map → chunk-FNGTMVZY.js.map} +0 -0
  60. /package/{chunk-EXOHB6VT.js.map → chunk-GGQ2KN5R.js.map} +0 -0
  61. /package/{chunk-VOYM3NFL.js.map → chunk-XBPIMSI6.js.map} +0 -0
  62. /package/{chunk-BEX4GQTV.js.map → chunk-XU3GTRZ6.js.map} +0 -0
  63. /package/{chunk-BL3P7LNO.js.map → chunk-XW6A2QO6.js.map} +0 -0
  64. /package/{computer-use-PHM6ZFWL.js.map → computer-use-BN7DW462.js.map} +0 -0
  65. /package/{connector-77IXH6CJ.js.map → connector-C5LF7EPC.js.map} +0 -0
  66. /package/{developer-support-UTQLBY4T.js.map → developer-support-7JQ5OFEP.js.map} +0 -0
  67. /package/{doctor-R2PIOZ2X.js.map → doctor-NZDBU6F7.js.map} +0 -0
  68. /package/{generate-566PP2IT.js.map → generate-WCXOG6UL.js.map} +0 -0
  69. /package/{github-WYA7S6FS.js.map → github-3KPFPFII.js.map} +0 -0
  70. /package/{goal-UGH7DB2O.js.map → goal-ZD62HAY3.js.map} +0 -0
  71. /package/{host-7Y6CZWFN.js.map → host-KFLXYMRU.js.map} +0 -0
  72. /package/{logs-A6IBECTD.js.map → logs-CTNFNAWE.js.map} +0 -0
  73. /package/{maps-FN2ZBH3J.js.map → maps-UFOY36IV.js.map} +0 -0
  74. /package/{memory-733WY4GI.js.map → memory-DHA3BQKK.js.map} +0 -0
  75. /package/{model-OF6IWGU3.js.map → model-FCOE3MP6.js.map} +0 -0
  76. /package/{model-provider-ZNHAZYBA.js.map → model-provider-HEWXLMUY.js.map} +0 -0
  77. /package/{org-OE64JYTP.js.map → org-K6BMGHOE.js.map} +0 -0
  78. /package/{phone-QV5HBYBT.js.map → phone-2CRNF77W.js.map} +0 -0
  79. /package/{preference-6WSIMRB2.js.map → preference-SRFAIXKZ.js.map} +0 -0
  80. /package/{relationship-ZJDI7BCS.js.map → relationship-2A3DYX4V.js.map} +0 -0
  81. /package/{resource-HXYLYEIW.js.map → resource-LWPPKNZI.js.map} +0 -0
  82. /package/{search-NDG42KG7.js.map → search-YE56C2CL.js.map} +0 -0
  83. /package/{secret-ER2MBSJH.js.map → secret-AIP2H2F4.js.map} +0 -0
  84. /package/{slack-M3INZI6Q.js.map → slack-JCWAEQQS.js.map} +0 -0
  85. /package/{teams-EKYLDC43.js.map → teams-7RPKIPEP.js.map} +0 -0
  86. /package/{telegram-3M72NLII.js.map → telegram-6TTV55BZ.js.map} +0 -0
  87. /package/{variable-XV3Y6G3D.js.map → variable-JNUXB3ZE.js.map} +0 -0
  88. /package/{video-Z243FULV.js.map → video-EXMGR7N6.js.map} +0 -0
  89. /package/{web-D6X64E4G.js.map → web-WHXJKKK2.js.map} +0 -0
  90. /package/{whoami-5HNVUOVC.js.map → whoami-QW3ULYLM.js.map} +0 -0
  91. /package/{workflow-WHXZHJ4C.js.map → workflow-4YYJQ7SB.js.map} +0 -0
@@ -0,0 +1,99 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire as __createRequire } from "node:module";
3
+ const require = __createRequire(import.meta.url);
4
+ import {
5
+ callZeroScrape,
6
+ zeroScrapeFormatSchema,
7
+ zeroScrapeModeSchema
8
+ } from "./chunk-5Z5CC5TU.js";
9
+ import "./chunk-LTDQISD7.js";
10
+ import {
11
+ source_default,
12
+ withErrorHandler
13
+ } from "./chunk-KYL4OHOL.js";
14
+ import "./chunk-LRHXR7JT.js";
15
+ import {
16
+ Command,
17
+ InvalidArgumentError,
18
+ Option
19
+ } from "./chunk-B3W2RUBP.js";
20
+ import {
21
+ init_esm_shims
22
+ } from "./chunk-DIRAZ3YX.js";
23
+
24
+ // src/commands/zero/scrape/index.ts
25
+ init_esm_shims();
26
+ var SCRAPE_FORMATS = zeroScrapeFormatSchema.options;
27
+ var SCRAPE_MODES = zeroScrapeModeSchema.options;
28
+ function parseFormat(value) {
29
+ const result = zeroScrapeFormatSchema.safeParse(value);
30
+ if (result.success) {
31
+ return result.data;
32
+ }
33
+ throw new InvalidArgumentError(
34
+ `format must be one of: ${SCRAPE_FORMATS.join(", ")}`
35
+ );
36
+ }
37
+ function parseMode(value) {
38
+ const result = zeroScrapeModeSchema.safeParse(value);
39
+ if (result.success) {
40
+ return result.data;
41
+ }
42
+ throw new InvalidArgumentError(
43
+ `mode must be one of: ${SCRAPE_MODES.join(", ")}`
44
+ );
45
+ }
46
+ function renderScrapeMetadata(response) {
47
+ console.log(source_default.dim(` Provider: ${response.provider}`));
48
+ console.log(source_default.dim(` Billing category: ${response.billingCategory}`));
49
+ console.log(source_default.dim(` Billing quantity: ${response.billingQuantity}`));
50
+ console.log(source_default.dim(` Credits charged: ${response.creditsCharged}`));
51
+ }
52
+ function renderScrapeResult(response) {
53
+ if (response.format === "links") {
54
+ for (const link of response.result.links) {
55
+ console.log(link);
56
+ }
57
+ return;
58
+ }
59
+ const markdown = response.result.markdown;
60
+ if (markdown) {
61
+ console.log(markdown);
62
+ }
63
+ }
64
+ var zeroScrapeCommand = new Command().name("scrape").description("Scrape a public web page through managed zero scrape").argument("<url>", "Public http or https URL to scrape").addOption(
65
+ new Option("--format <format>", "Output format").default("markdown").argParser(parseFormat)
66
+ ).addOption(
67
+ new Option("--mode <mode>", "Scrape mode").default("standard").argParser(parseMode)
68
+ ).option("--json", "Print the raw scrape response as JSON").action(
69
+ withErrorHandler(async (url, options) => {
70
+ const response = await callZeroScrape({
71
+ url,
72
+ format: options.format,
73
+ mode: options.mode
74
+ });
75
+ if (options.json) {
76
+ console.log(JSON.stringify(response));
77
+ return;
78
+ }
79
+ console.log(source_default.green("\u2713 Scrape completed"));
80
+ renderScrapeMetadata(response);
81
+ renderScrapeResult(response);
82
+ })
83
+ ).addHelpText(
84
+ "after",
85
+ `
86
+ Examples:
87
+ Scrape markdown: zero scrape https://example.com --format markdown
88
+ Scrape links: zero scrape https://example.com --format links
89
+ Enhanced scrape: zero scrape https://example.com --mode enhanced --json
90
+
91
+ Notes:
92
+ - Authenticates via ZERO_TOKEN (requires scrape:read capability) or a CLI token
93
+ - Firecrawl calls and credit billing happen on the vm0 API server
94
+ - Enhanced mode is explicit because it uses a higher billing category`
95
+ );
96
+ export {
97
+ zeroScrapeCommand
98
+ };
99
+ //# sourceMappingURL=scrape-7Z4MR5ZT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/zero/scrape/index.ts"],"sourcesContent":["import { Command, InvalidArgumentError, Option } from \"commander\";\nimport chalk from \"chalk\";\nimport {\n zeroScrapeFormatSchema,\n zeroScrapeModeSchema,\n type ZeroScrapeFormat,\n type ZeroScrapeMode,\n} from \"@vm0/api-contracts/contracts/zero-scrape\";\n\nimport { callZeroScrape, type ZeroScrapeResponse } from \"../../../lib/api\";\nimport { withErrorHandler } from \"../../../lib/command\";\n\nconst SCRAPE_FORMATS = zeroScrapeFormatSchema.options;\nconst SCRAPE_MODES = zeroScrapeModeSchema.options;\n\ninterface ScrapeOptions {\n readonly format: ZeroScrapeFormat;\n readonly mode: ZeroScrapeMode;\n readonly json?: boolean;\n}\n\nfunction parseFormat(value: string): ZeroScrapeFormat {\n const result = zeroScrapeFormatSchema.safeParse(value);\n if (result.success) {\n return result.data;\n }\n throw new InvalidArgumentError(\n `format must be one of: ${SCRAPE_FORMATS.join(\", \")}`,\n );\n}\n\nfunction parseMode(value: string): ZeroScrapeMode {\n const result = zeroScrapeModeSchema.safeParse(value);\n if (result.success) {\n return result.data;\n }\n throw new InvalidArgumentError(\n `mode must be one of: ${SCRAPE_MODES.join(\", \")}`,\n );\n}\n\nfunction renderScrapeMetadata(response: ZeroScrapeResponse): void {\n console.log(chalk.dim(` Provider: ${response.provider}`));\n console.log(chalk.dim(` Billing category: ${response.billingCategory}`));\n console.log(chalk.dim(` Billing quantity: ${response.billingQuantity}`));\n console.log(chalk.dim(` Credits charged: ${response.creditsCharged}`));\n}\n\nfunction renderScrapeResult(response: ZeroScrapeResponse): void {\n if (response.format === \"links\") {\n for (const link of response.result.links) {\n console.log(link);\n }\n return;\n }\n\n const markdown = response.result.markdown;\n if (markdown) {\n console.log(markdown);\n }\n}\n\nexport const zeroScrapeCommand = new Command()\n .name(\"scrape\")\n .description(\"Scrape a public web page through managed zero scrape\")\n .argument(\"<url>\", \"Public http or https URL to scrape\")\n .addOption(\n new Option(\"--format <format>\", \"Output format\")\n .default(\"markdown\")\n .argParser(parseFormat),\n )\n .addOption(\n new Option(\"--mode <mode>\", \"Scrape mode\")\n .default(\"standard\")\n .argParser(parseMode),\n )\n .option(\"--json\", \"Print the raw scrape response as JSON\")\n .action(\n withErrorHandler(async (url: string, options: ScrapeOptions) => {\n const response = await callZeroScrape({\n url,\n format: options.format,\n mode: options.mode,\n });\n\n if (options.json) {\n console.log(JSON.stringify(response));\n return;\n }\n\n console.log(chalk.green(\"✓ Scrape completed\"));\n renderScrapeMetadata(response);\n renderScrapeResult(response);\n }),\n )\n .addHelpText(\n \"after\",\n `\nExamples:\n Scrape markdown: zero scrape https://example.com --format markdown\n Scrape links: zero scrape https://example.com --format links\n Enhanced scrape: zero scrape https://example.com --mode enhanced --json\n\nNotes:\n - Authenticates via ZERO_TOKEN (requires scrape:read capability) or a CLI token\n - Firecrawl calls and credit billing happen on the vm0 API server\n - Enhanced mode is explicit because it uses a higher billing category`,\n );\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAYA,IAAM,iBAAiB,uBAAuB;AAC9C,IAAM,eAAe,qBAAqB;AAQ1C,SAAS,YAAY,OAAiC;AACpD,QAAM,SAAS,uBAAuB,UAAU,KAAK;AACrD,MAAI,OAAO,SAAS;AAClB,WAAO,OAAO;AAAA,EAChB;AACA,QAAM,IAAI;AAAA,IACR,0BAA0B,eAAe,KAAK,IAAI,CAAC;AAAA,EACrD;AACF;AAEA,SAAS,UAAU,OAA+B;AAChD,QAAM,SAAS,qBAAqB,UAAU,KAAK;AACnD,MAAI,OAAO,SAAS;AAClB,WAAO,OAAO;AAAA,EAChB;AACA,QAAM,IAAI;AAAA,IACR,wBAAwB,aAAa,KAAK,IAAI,CAAC;AAAA,EACjD;AACF;AAEA,SAAS,qBAAqB,UAAoC;AAChE,UAAQ,IAAI,eAAM,IAAI,eAAe,SAAS,QAAQ,EAAE,CAAC;AACzD,UAAQ,IAAI,eAAM,IAAI,uBAAuB,SAAS,eAAe,EAAE,CAAC;AACxE,UAAQ,IAAI,eAAM,IAAI,uBAAuB,SAAS,eAAe,EAAE,CAAC;AACxE,UAAQ,IAAI,eAAM,IAAI,sBAAsB,SAAS,cAAc,EAAE,CAAC;AACxE;AAEA,SAAS,mBAAmB,UAAoC;AAC9D,MAAI,SAAS,WAAW,SAAS;AAC/B,eAAW,QAAQ,SAAS,OAAO,OAAO;AACxC,cAAQ,IAAI,IAAI;AAAA,IAClB;AACA;AAAA,EACF;AAEA,QAAM,WAAW,SAAS,OAAO;AACjC,MAAI,UAAU;AACZ,YAAQ,IAAI,QAAQ;AAAA,EACtB;AACF;AAEO,IAAM,oBAAoB,IAAI,QAAQ,EAC1C,KAAK,QAAQ,EACb,YAAY,sDAAsD,EAClE,SAAS,SAAS,oCAAoC,EACtD;AAAA,EACC,IAAI,OAAO,qBAAqB,eAAe,EAC5C,QAAQ,UAAU,EAClB,UAAU,WAAW;AAC1B,EACC;AAAA,EACC,IAAI,OAAO,iBAAiB,aAAa,EACtC,QAAQ,UAAU,EAClB,UAAU,SAAS;AACxB,EACC,OAAO,UAAU,uCAAuC,EACxD;AAAA,EACC,iBAAiB,OAAO,KAAa,YAA2B;AAC9D,UAAM,WAAW,MAAM,eAAe;AAAA,MACpC;AAAA,MACA,QAAQ,QAAQ;AAAA,MAChB,MAAM,QAAQ;AAAA,IAChB,CAAC;AAED,QAAI,QAAQ,MAAM;AAChB,cAAQ,IAAI,KAAK,UAAU,QAAQ,CAAC;AACpC;AAAA,IACF;AAEA,YAAQ,IAAI,eAAM,MAAM,yBAAoB,CAAC;AAC7C,yBAAqB,QAAQ;AAC7B,uBAAmB,QAAQ;AAAA,EAC7B,CAAC;AACH,EACC;AAAA,EACC;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUF;","names":[]}
@@ -3,23 +3,23 @@ import { createRequire as __createRequire } from "node:module";
3
3
  const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  runLogsSearch
6
- } from "./chunk-VOYM3NFL.js";
6
+ } from "./chunk-XBPIMSI6.js";
7
7
  import {
8
8
  formatIsoTimestamp,
9
9
  isUUID,
10
10
  parseBoundedLogCount,
11
11
  parseSearchQuery,
12
12
  parseTime
13
- } from "./chunk-R62M7BNA.js";
13
+ } from "./chunk-YREBMGGY.js";
14
14
  import "./chunk-6F7XCWTU.js";
15
15
  import {
16
16
  searchZeroChat
17
- } from "./chunk-W5IXR2G6.js";
17
+ } from "./chunk-5Z5CC5TU.js";
18
18
  import "./chunk-LTDQISD7.js";
19
19
  import {
20
20
  source_default,
21
21
  withErrorHandler
22
- } from "./chunk-VKMFCWXO.js";
22
+ } from "./chunk-KYL4OHOL.js";
23
23
  import "./chunk-LRHXR7JT.js";
24
24
  import {
25
25
  Command
@@ -197,4 +197,4 @@ export {
197
197
  buildSlackRecipe,
198
198
  zeroSearchCommand
199
199
  };
200
- //# sourceMappingURL=search-NDG42KG7.js.map
200
+ //# sourceMappingURL=search-YE56C2CL.js.map
@@ -10,12 +10,12 @@ import {
10
10
  deleteZeroSecret,
11
11
  listZeroSecrets,
12
12
  setZeroSecret
13
- } from "./chunk-W5IXR2G6.js";
13
+ } from "./chunk-5Z5CC5TU.js";
14
14
  import "./chunk-LTDQISD7.js";
15
15
  import {
16
16
  source_default,
17
17
  withErrorHandler
18
- } from "./chunk-VKMFCWXO.js";
18
+ } from "./chunk-KYL4OHOL.js";
19
19
  import "./chunk-LRHXR7JT.js";
20
20
  import {
21
21
  Command
@@ -146,4 +146,4 @@ var zeroSecretCommand = new Command().name("secret").description("Read or write
146
146
  export {
147
147
  zeroSecretCommand
148
148
  };
149
- //# sourceMappingURL=secret-ER2MBSJH.js.map
149
+ //# sourceMappingURL=secret-AIP2H2F4.js.map
@@ -6,12 +6,12 @@ import {
6
6
  downloadSlackFile,
7
7
  initSlackFileUpload,
8
8
  sendSlackMessage
9
- } from "./chunk-W5IXR2G6.js";
9
+ } from "./chunk-5Z5CC5TU.js";
10
10
  import "./chunk-LTDQISD7.js";
11
11
  import {
12
12
  source_default,
13
13
  withErrorHandler
14
- } from "./chunk-VKMFCWXO.js";
14
+ } from "./chunk-KYL4OHOL.js";
15
15
  import "./chunk-LRHXR7JT.js";
16
16
  import {
17
17
  Command
@@ -218,4 +218,4 @@ Examples:
218
218
  export {
219
219
  zeroSlackCommand
220
220
  };
221
- //# sourceMappingURL=slack-M3INZI6Q.js.map
221
+ //# sourceMappingURL=slack-JCWAEQQS.js.map
@@ -6,12 +6,12 @@ import {
6
6
  downloadTeamsFile,
7
7
  initTeamsFileUpload,
8
8
  sendTeamsMessage
9
- } from "./chunk-W5IXR2G6.js";
9
+ } from "./chunk-5Z5CC5TU.js";
10
10
  import "./chunk-LTDQISD7.js";
11
11
  import {
12
12
  source_default,
13
13
  withErrorHandler
14
- } from "./chunk-VKMFCWXO.js";
14
+ } from "./chunk-KYL4OHOL.js";
15
15
  import "./chunk-LRHXR7JT.js";
16
16
  import {
17
17
  Command
@@ -279,4 +279,4 @@ Examples:
279
279
  export {
280
280
  zeroTeamsCommand
281
281
  };
282
- //# sourceMappingURL=teams-EKYLDC43.js.map
282
+ //# sourceMappingURL=teams-7RPKIPEP.js.map
@@ -7,12 +7,12 @@ import {
7
7
  initTelegramFileUpload,
8
8
  listTelegramBots,
9
9
  sendTelegramMessage
10
- } from "./chunk-W5IXR2G6.js";
10
+ } from "./chunk-5Z5CC5TU.js";
11
11
  import "./chunk-LTDQISD7.js";
12
12
  import {
13
13
  source_default,
14
14
  withErrorHandler
15
- } from "./chunk-VKMFCWXO.js";
15
+ } from "./chunk-KYL4OHOL.js";
16
16
  import "./chunk-LRHXR7JT.js";
17
17
  import {
18
18
  Command
@@ -333,4 +333,4 @@ Examples:
333
333
  export {
334
334
  zeroTelegramCommand
335
335
  };
336
- //# sourceMappingURL=telegram-3M72NLII.js.map
336
+ //# sourceMappingURL=telegram-6TTV55BZ.js.map
@@ -9,12 +9,12 @@ import {
9
9
  deleteZeroVariable,
10
10
  listZeroVariables,
11
11
  setZeroVariable
12
- } from "./chunk-W5IXR2G6.js";
12
+ } from "./chunk-5Z5CC5TU.js";
13
13
  import "./chunk-LTDQISD7.js";
14
14
  import {
15
15
  source_default,
16
16
  withErrorHandler
17
- } from "./chunk-VKMFCWXO.js";
17
+ } from "./chunk-KYL4OHOL.js";
18
18
  import "./chunk-LRHXR7JT.js";
19
19
  import {
20
20
  Command
@@ -115,4 +115,4 @@ var zeroVariableCommand = new Command().name("variable").description("Read or wr
115
115
  export {
116
116
  zeroVariableCommand
117
117
  };
118
- //# sourceMappingURL=variable-XV3Y6G3D.js.map
118
+ //# sourceMappingURL=variable-JNUXB3ZE.js.map
@@ -6,7 +6,7 @@ import {
6
6
  downloadWebFile,
7
7
  transcribeAudio,
8
8
  withErrorHandler
9
- } from "./chunk-VKMFCWXO.js";
9
+ } from "./chunk-KYL4OHOL.js";
10
10
  import "./chunk-LRHXR7JT.js";
11
11
  import {
12
12
  Command
@@ -245,4 +245,4 @@ Tip (video understanding):
245
245
  export {
246
246
  zeroVideoCommand
247
247
  };
248
- //# sourceMappingURL=video-Z243FULV.js.map
248
+ //# sourceMappingURL=video-EXMGR7N6.js.map
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __createRequire } from "node:module";
3
3
  const require = __createRequire(import.meta.url);
4
- import "./chunk-W5IXR2G6.js";
4
+ import "./chunk-5Z5CC5TU.js";
5
5
  import "./chunk-LTDQISD7.js";
6
6
  import {
7
7
  downloadWebFile,
8
8
  uploadWebFile,
9
9
  withErrorHandler
10
- } from "./chunk-VKMFCWXO.js";
10
+ } from "./chunk-KYL4OHOL.js";
11
11
  import "./chunk-LRHXR7JT.js";
12
12
  import {
13
13
  Command
@@ -105,4 +105,4 @@ Examples:
105
105
  export {
106
106
  zeroWebCommand
107
107
  };
108
- //# sourceMappingURL=web-D6X64E4G.js.map
108
+ //# sourceMappingURL=web-WHXJKKK2.js.map
@@ -4,15 +4,15 @@ const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  loadConnectorPermissionInfos,
6
6
  policyIcon
7
- } from "./chunk-5BUMIUHV.js";
7
+ } from "./chunk-FNGTMVZY.js";
8
8
  import {
9
9
  permissionGrantsToFirewallPolicies
10
- } from "./chunk-EXOHB6VT.js";
10
+ } from "./chunk-GGQ2KN5R.js";
11
11
  import {
12
12
  getZeroAgentUserConnectors,
13
13
  listZeroConnectors,
14
14
  listZeroUserPermissionGrants
15
- } from "./chunk-W5IXR2G6.js";
15
+ } from "./chunk-5Z5CC5TU.js";
16
16
  import "./chunk-LTDQISD7.js";
17
17
  import {
18
18
  getActiveOrg,
@@ -20,7 +20,7 @@ import {
20
20
  getToken,
21
21
  source_default,
22
22
  withErrorHandler
23
- } from "./chunk-VKMFCWXO.js";
23
+ } from "./chunk-KYL4OHOL.js";
24
24
  import {
25
25
  decodeZeroTokenPayload
26
26
  } from "./chunk-LRHXR7JT.js";
@@ -190,4 +190,4 @@ Notes:
190
190
  export {
191
191
  zeroWhoamiCommand
192
192
  };
193
- //# sourceMappingURL=whoami-5HNVUOVC.js.map
193
+ //# sourceMappingURL=whoami-QW3ULYLM.js.map
@@ -19,12 +19,12 @@ import {
19
19
  listWorkflows,
20
20
  updateWorkflow,
21
21
  updateWorkflowTrigger
22
- } from "./chunk-W5IXR2G6.js";
22
+ } from "./chunk-5Z5CC5TU.js";
23
23
  import "./chunk-LTDQISD7.js";
24
24
  import {
25
25
  source_default,
26
26
  withErrorHandler
27
- } from "./chunk-VKMFCWXO.js";
27
+ } from "./chunk-KYL4OHOL.js";
28
28
  import "./chunk-LRHXR7JT.js";
29
29
  import {
30
30
  Command
@@ -1751,4 +1751,4 @@ Examples:
1751
1751
  export {
1752
1752
  zeroWorkflowCommand
1753
1753
  };
1754
- //# sourceMappingURL=workflow-WHXZHJ4C.js.map
1754
+ //# sourceMappingURL=workflow-4YYJQ7SB.js.map
package/zero.js CHANGED
@@ -3,7 +3,7 @@ import { createRequire as __createRequire } from "node:module";
3
3
  const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  configureGlobalProxyFromEnv
6
- } from "./chunk-BEX4GQTV.js";
6
+ } from "./chunk-XU3GTRZ6.js";
7
7
  import {
8
8
  decodeZeroTokenPayload
9
9
  } from "./chunk-LRHXR7JT.js";
@@ -24,7 +24,7 @@ var COMMAND_CAPABILITY_MAP = {
24
24
  memory: "relationship:read",
25
25
  relationship: "relationship:read",
26
26
  doctor: null,
27
- credit: "billing:write",
27
+ credit: ["billing:read", "billing:write"],
28
28
  model: null,
29
29
  "model-provider": null,
30
30
  logs: "agent-run:read",
@@ -45,6 +45,7 @@ var COMMAND_CAPABILITY_MAP = {
45
45
  video: null,
46
46
  host: ["host:read", "host:write"],
47
47
  maps: "maps:read",
48
+ scrape: "scrape:read",
48
49
  banking: "banking:read"
49
50
  };
50
51
  var ZERO_COMMAND_DEFINITIONS = [
@@ -52,154 +53,154 @@ var ZERO_COMMAND_DEFINITIONS = [
52
53
  name: "org",
53
54
  description: "Manage organization settings, members, and providers",
54
55
  load: async () => {
55
- return (await import("./org-OE64JYTP.js")).zeroOrgCommand;
56
+ return (await import("./org-K6BMGHOE.js")).zeroOrgCommand;
56
57
  }
57
58
  },
58
59
  {
59
60
  name: "model",
60
61
  description: "List available models and model-switching guidance",
61
62
  load: async () => {
62
- return (await import("./model-OF6IWGU3.js")).zeroModelCommand;
63
+ return (await import("./model-FCOE3MP6.js")).zeroModelCommand;
63
64
  }
64
65
  },
65
66
  {
66
67
  name: "model-provider",
67
68
  description: "Inspect model provider routing",
68
69
  load: async () => {
69
- return (await import("./model-provider-ZNHAZYBA.js")).zeroModelProviderCommand;
70
+ return (await import("./model-provider-HEWXLMUY.js")).zeroModelProviderCommand;
70
71
  }
71
72
  },
72
73
  {
73
74
  name: "agent",
74
75
  description: "View or manage zero agents",
75
76
  load: async () => {
76
- return (await import("./agent-QZ7SSBML.js")).zeroAgentCommand;
77
+ return (await import("./agent-TZPMJY5K.js")).zeroAgentCommand;
77
78
  }
78
79
  },
79
80
  {
80
81
  name: "connector",
81
82
  description: "Check third-party service connections (GitHub, Slack, etc.)",
82
83
  load: async () => {
83
- return (await import("./connector-77IXH6CJ.js")).zeroConnectorCommand;
84
+ return (await import("./connector-C5LF7EPC.js")).zeroConnectorCommand;
84
85
  }
85
86
  },
86
87
  {
87
88
  name: "relationship",
88
89
  description: "Query relationship memory",
89
90
  load: async () => {
90
- return (await import("./relationship-ZJDI7BCS.js")).zeroRelationshipCommand;
91
+ return (await import("./relationship-2A3DYX4V.js")).zeroRelationshipCommand;
91
92
  }
92
93
  },
93
94
  {
94
95
  name: "memory",
95
96
  description: "Recall structured memory",
96
97
  load: async () => {
97
- return (await import("./memory-733WY4GI.js")).zeroMemoryCommand;
98
+ return (await import("./memory-DHA3BQKK.js")).zeroMemoryCommand;
98
99
  }
99
100
  },
100
101
  {
101
102
  name: "credit",
102
- description: "Create a Stripe checkout link to buy credits",
103
+ description: "View or buy credits",
103
104
  load: async () => {
104
- return (await import("./credit-ULH5OZU3.js")).zeroCreditCommand;
105
+ return (await import("./credit-RT6KPFPT.js")).zeroCreditCommand;
105
106
  }
106
107
  },
107
108
  {
108
109
  name: "doctor",
109
110
  description: "Diagnose runtime issues (connector health, permission denials)",
110
111
  load: async () => {
111
- return (await import("./doctor-R2PIOZ2X.js")).zeroDoctorCommand;
112
+ return (await import("./doctor-NZDBU6F7.js")).zeroDoctorCommand;
112
113
  }
113
114
  },
114
115
  {
115
116
  name: "preference",
116
117
  description: "View or update user preferences (timezone, notifications)",
117
118
  load: async () => {
118
- return (await import("./preference-6WSIMRB2.js")).zeroPreferenceCommand;
119
+ return (await import("./preference-SRFAIXKZ.js")).zeroPreferenceCommand;
119
120
  }
120
121
  },
121
122
  {
122
123
  name: "secret",
123
124
  description: "Read or write secrets (API keys, tokens)",
124
125
  load: async () => {
125
- return (await import("./secret-ER2MBSJH.js")).zeroSecretCommand;
126
+ return (await import("./secret-AIP2H2F4.js")).zeroSecretCommand;
126
127
  }
127
128
  },
128
129
  {
129
130
  name: "github",
130
131
  description: "Upload and download GitHub files",
131
132
  load: async () => {
132
- return (await import("./github-WYA7S6FS.js")).zeroGithubCommand;
133
+ return (await import("./github-3KPFPFII.js")).zeroGithubCommand;
133
134
  }
134
135
  },
135
136
  {
136
137
  name: "slack",
137
138
  description: "Send messages, upload files, and download files from Slack as the bot",
138
139
  load: async () => {
139
- return (await import("./slack-M3INZI6Q.js")).zeroSlackCommand;
140
+ return (await import("./slack-JCWAEQQS.js")).zeroSlackCommand;
140
141
  }
141
142
  },
142
143
  {
143
144
  name: "teams",
144
145
  description: "Send Microsoft Teams messages, upload files, and download files",
145
146
  load: async () => {
146
- return (await import("./teams-EKYLDC43.js")).zeroTeamsCommand;
147
+ return (await import("./teams-7RPKIPEP.js")).zeroTeamsCommand;
147
148
  }
148
149
  },
149
150
  {
150
151
  name: "telegram",
151
152
  description: "Inspect bots, send messages, upload files, and download files from Telegram",
152
153
  load: async () => {
153
- return (await import("./telegram-3M72NLII.js")).zeroTelegramCommand;
154
+ return (await import("./telegram-6TTV55BZ.js")).zeroTelegramCommand;
154
155
  }
155
156
  },
156
157
  {
157
158
  name: "phone",
158
159
  description: "Send AgentPhone messages, upload files, and download media",
159
160
  load: async () => {
160
- return (await import("./phone-QV5HBYBT.js")).zeroPhoneCommand;
161
+ return (await import("./phone-2CRNF77W.js")).zeroPhoneCommand;
161
162
  }
162
163
  },
163
164
  {
164
165
  name: "variable",
165
166
  description: "Read or write non-sensitive configuration values",
166
167
  load: async () => {
167
- return (await import("./variable-XV3Y6G3D.js")).zeroVariableCommand;
168
+ return (await import("./variable-JNUXB3ZE.js")).zeroVariableCommand;
168
169
  }
169
170
  },
170
171
  {
171
172
  name: "logs",
172
173
  description: "View and search agent run logs",
173
174
  load: async () => {
174
- return (await import("./logs-A6IBECTD.js")).zeroLogsCommand;
175
+ return (await import("./logs-CTNFNAWE.js")).zeroLogsCommand;
175
176
  }
176
177
  },
177
178
  {
178
179
  name: "search",
179
180
  description: "Search logs, chat, or get a recipe for external sources",
180
181
  load: async () => {
181
- return (await import("./search-NDG42KG7.js")).zeroSearchCommand;
182
+ return (await import("./search-YE56C2CL.js")).zeroSearchCommand;
182
183
  }
183
184
  },
184
185
  {
185
186
  name: "chat",
186
187
  description: "Manage the current web chat thread",
187
188
  load: async () => {
188
- return (await import("./chat-GK2Y5UTL.js")).zeroChatCommand;
189
+ return (await import("./chat-5YST6MXO.js")).zeroChatCommand;
189
190
  }
190
191
  },
191
192
  {
192
193
  name: "resource",
193
194
  description: "Pull registry resources from private R2-backed archives",
194
195
  load: async () => {
195
- return (await import("./resource-HXYLYEIW.js")).zeroResourceCommand;
196
+ return (await import("./resource-LWPPKNZI.js")).zeroResourceCommand;
196
197
  }
197
198
  },
198
199
  {
199
200
  name: "whoami",
200
201
  description: "Show agent identity, run ID, and capabilities",
201
202
  load: async () => {
202
- return (await import("./whoami-5HNVUOVC.js")).zeroWhoamiCommand;
203
+ return (await import("./whoami-QW3ULYLM.js")).zeroWhoamiCommand;
203
204
  }
204
205
  },
205
206
  {
@@ -213,70 +214,77 @@ var ZERO_COMMAND_DEFINITIONS = [
213
214
  name: "workflow",
214
215
  description: "Manage workflows",
215
216
  load: async () => {
216
- return (await import("./workflow-WHXZHJ4C.js")).zeroWorkflowCommand;
217
+ return (await import("./workflow-4YYJQ7SB.js")).zeroWorkflowCommand;
217
218
  }
218
219
  },
219
220
  {
220
221
  name: "goal",
221
222
  description: "Manage the current thread goal",
222
223
  load: async () => {
223
- return (await import("./goal-UGH7DB2O.js")).zeroGoalCommand;
224
+ return (await import("./goal-ZD62HAY3.js")).zeroGoalCommand;
224
225
  }
225
226
  },
226
227
  {
227
228
  name: "developer-support",
228
229
  description: "Submit a diagnostic report to the dev team",
229
230
  load: async () => {
230
- return (await import("./developer-support-UTQLBY4T.js")).zeroDeveloperSupportCommand;
231
+ return (await import("./developer-support-7JQ5OFEP.js")).zeroDeveloperSupportCommand;
231
232
  }
232
233
  },
233
234
  {
234
235
  name: "computer-use",
235
236
  description: "Desktop app computer use through Zero CLI",
236
237
  load: async () => {
237
- return (await import("./computer-use-PHM6ZFWL.js")).zeroComputerUseCommand;
238
+ return (await import("./computer-use-BN7DW462.js")).zeroComputerUseCommand;
238
239
  }
239
240
  },
240
241
  {
241
242
  name: "generate",
242
243
  description: "Generate assets via vm0's built-in pipelines or get connector skill-invocation guidance",
243
244
  load: async () => {
244
- return (await import("./generate-566PP2IT.js")).generateCommand;
245
+ return (await import("./generate-WCXOG6UL.js")).generateCommand;
245
246
  }
246
247
  },
247
248
  {
248
249
  name: "web",
249
250
  description: "Upload and download files via the web chat endpoint",
250
251
  load: async () => {
251
- return (await import("./web-D6X64E4G.js")).zeroWebCommand;
252
+ return (await import("./web-WHXJKKK2.js")).zeroWebCommand;
252
253
  }
253
254
  },
254
255
  {
255
256
  name: "video",
256
257
  description: "Video processing utilities",
257
258
  load: async () => {
258
- return (await import("./video-Z243FULV.js")).zeroVideoCommand;
259
+ return (await import("./video-EXMGR7N6.js")).zeroVideoCommand;
259
260
  }
260
261
  },
261
262
  {
262
263
  name: "host",
263
264
  description: "Publish static sites and clone owned hosted site files",
264
265
  load: async () => {
265
- return (await import("./host-7Y6CZWFN.js")).zeroHostCommand;
266
+ return (await import("./host-KFLXYMRU.js")).zeroHostCommand;
266
267
  }
267
268
  },
268
269
  {
269
270
  name: "maps",
270
271
  description: "Use managed zero maps services",
271
272
  load: async () => {
272
- return (await import("./maps-FN2ZBH3J.js")).zeroMapsCommand;
273
+ return (await import("./maps-UFOY36IV.js")).zeroMapsCommand;
274
+ }
275
+ },
276
+ {
277
+ name: "scrape",
278
+ description: "Scrape public web pages through managed zero scrape",
279
+ load: async () => {
280
+ return (await import("./scrape-7Z4MR5ZT.js")).zeroScrapeCommand;
273
281
  }
274
282
  },
275
283
  {
276
284
  name: "banking",
277
285
  description: "Use managed zero banking services",
278
286
  load: async () => {
279
- return (await import("./banking-3DALFC7J.js")).zeroBankingCommand;
287
+ return (await import("./banking-7LRKXBLW.js")).zeroBankingCommand;
280
288
  }
281
289
  }
282
290
  ];
@@ -341,8 +349,8 @@ function buildZeroHelpText(payload = decodeZeroTokenPayload()) {
341
349
  const canWriteHost = !payload || payload.capabilities.includes("host:write");
342
350
  const examples = [
343
351
  " Check a connector? zero doctor check-connector --env-name <ENV_NAME>",
344
- ...payload && !payload.capabilities.includes("billing:read") ? [] : [" Check credits? zero doctor credit"],
345
- ...shouldHideCommand("credit", payload) ? [] : [" Buy credits? zero credit 20000"],
352
+ ...payload && !payload.capabilities.includes("billing:read") ? [] : [" Check credits? zero credit"],
353
+ ...payload && !payload.capabilities.includes("billing:write") ? [] : [" Buy credits? zero credit 20000"],
346
354
  " Send a Slack message? zero slack message send --help",
347
355
  " Send Teams? zero teams message send --help",
348
356
  " Upload Teams? zero teams upload-file --help",
@@ -372,6 +380,7 @@ function buildZeroHelpText(payload = decodeZeroTokenPayload()) {
372
380
  ...shouldHideCommand("maps", payload) ? [] : [
373
381
  ' Get directions? zero maps directions --origin "SFO" --destination "Mountain View" --json'
374
382
  ],
383
+ ...shouldHideCommand("scrape", payload) ? [] : [" Scrape a web page? zero scrape https://example.com --json"],
375
384
  ...shouldHideCommand("banking", payload) ? [] : [" Read bank data? zero banking accounts --json"],
376
385
  " Check your identity? zero whoami"
377
386
  ];
@@ -389,7 +398,7 @@ function registerZeroCommands(prog, commands) {
389
398
  var program = new Command();
390
399
  program.name("zero").description(
391
400
  "Zero CLI \u2014 interact with the zero platform from inside the sandbox"
392
- ).version("9.238.9").addHelpText("after", () => {
401
+ ).version("9.239.0").addHelpText("after", () => {
393
402
  return buildZeroHelpText();
394
403
  });
395
404
  if (process.argv[1]?.endsWith("zero.js") || process.argv[1]?.endsWith("zero.ts") || process.argv[1]?.endsWith("zero")) {