@vm0/cli 9.244.6 → 9.244.7

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 (98) hide show
  1. package/{agent-AOWGKKI7.js → agent-2TIFNP32.js} +5 -5
  2. package/{banking-2ZRGXQJB.js → banking-UR7XJI3L.js} +3 -3
  3. package/{chat-XT3ZFO2U.js → chat-5N4C3FDV.js} +4 -4
  4. package/{chunk-MWXV2NJK.js → chunk-26BGLMA3.js} +4 -32
  5. package/chunk-26BGLMA3.js.map +1 -0
  6. package/{chunk-MZUWWKCF.js → chunk-5QJVQEHO.js} +4 -4
  7. package/{chunk-2GMLVBYY.js → chunk-7KSTVBNN.js} +4 -4
  8. package/{chunk-J7NZ4R4R.js → chunk-BIJC6U3G.js} +2 -2
  9. package/{chunk-MBYTQ3JJ.js → chunk-E32I3TNQ.js} +15 -34
  10. package/chunk-E32I3TNQ.js.map +1 -0
  11. package/{chunk-RPQMDXP2.js → chunk-JWDLLCI3.js} +2 -2
  12. package/{chunk-GGJ3V5JF.js → chunk-M6GLCPCJ.js} +3 -3
  13. package/{chunk-OPYEYUSY.js → chunk-NR6ANGRK.js} +15 -55
  14. package/chunk-NR6ANGRK.js.map +1 -0
  15. package/{chunk-LX7FTB2W.js → chunk-QCG2H3VD.js} +2 -2
  16. package/{chunk-V33YE2AE.js → chunk-STMJYQTH.js} +2 -2
  17. package/{chunk-PB66MQ5U.js → chunk-ZUSDQG2O.js} +2 -7
  18. package/{chunk-PB66MQ5U.js.map → chunk-ZUSDQG2O.js.map} +1 -1
  19. package/{computer-use-IP4SF35H.js → computer-use-3WUKJYHK.js} +3 -3
  20. package/{connector-XK7EPZWH.js → connector-PDEOFNTE.js} +6 -6
  21. package/{credit-VPTX7ZTC.js → credit-ET4RS32X.js} +4 -4
  22. package/{developer-support-3ED5W5G3.js → developer-support-3DJEJT2A.js} +3 -3
  23. package/{doctor-JZG5ZNW2.js → doctor-F7OWYXXH.js} +3 -3
  24. package/{generate-PAMRL3B5.js → generate-4GKWSL6P.js} +4 -4
  25. package/{github-OUIYACCV.js → github-S5HFK2IC.js} +3 -3
  26. package/{goal-PXTE4BCJ.js → goal-ISJWIT2Q.js} +3 -3
  27. package/{host-3KVI5HIB.js → host-T52XQ2SZ.js} +4 -4
  28. package/index.js +11 -730
  29. package/index.js.map +1 -1
  30. package/{logs-LEPXLZOA.js → logs-D4IL5OLR.js} +5 -5
  31. package/{mail-22YJ3HFW.js → mail-JXO3GW72.js} +5 -5
  32. package/{maps-GTBQWQOV.js → maps-T3YFBRLP.js} +3 -3
  33. package/{model-RWQNBS3N.js → model-GJRTV6E5.js} +4 -4
  34. package/{model-provider-6B54DC7X.js → model-provider-T4VN4HNU.js} +4 -4
  35. package/{org-JEJIR4XQ.js → org-GNNU77Y5.js} +3 -3
  36. package/package.json +1 -1
  37. package/{phone-CI77EG37.js → phone-EQ4R2GBO.js} +3 -3
  38. package/{preference-546TA23L.js → preference-3FHEQPKG.js} +3 -3
  39. package/{chunk-HEAUPGDO.js → resource-EOO2VATC.js} +133 -3
  40. package/resource-EOO2VATC.js.map +1 -0
  41. package/{scrape-VZJ67GNU.js → scrape-TZCFJY6X.js} +3 -3
  42. package/{search-L5ICIORF.js → search-RXP4DMUC.js} +5 -5
  43. package/{secret-FKMH53Y4.js → secret-S4ZCVY2X.js} +3 -3
  44. package/{slack-BQ4KIZPV.js → slack-7YJFUJE6.js} +3 -3
  45. package/{teams-YZSKKRY4.js → teams-45MMUROF.js} +3 -3
  46. package/{telegram-HHGB5PE3.js → telegram-7ZCSI24W.js} +3 -3
  47. package/{variable-4CIAHKLM.js → variable-O33TDP4J.js} +3 -3
  48. package/{video-54PFQIQD.js → video-D5LSABFJ.js} +2 -2
  49. package/{web-BOBLQ27H.js → web-JW7AH2UT.js} +3 -3
  50. package/{web-search-27452WDH.js → web-search-MHFQFZS6.js} +3 -3
  51. package/{whoami-5SIOEBZY.js → whoami-5DJLOQUZ.js} +5 -5
  52. package/{workflow-62JWPXNK.js → workflow-TXG3RBJR.js} +3 -3
  53. package/zero.js +35 -35
  54. package/chunk-HEAUPGDO.js.map +0 -1
  55. package/chunk-MBYTQ3JJ.js.map +0 -1
  56. package/chunk-MWXV2NJK.js.map +0 -1
  57. package/chunk-OPYEYUSY.js.map +0 -1
  58. package/resource-HRVLBG7N.js +0 -143
  59. package/resource-HRVLBG7N.js.map +0 -1
  60. /package/{agent-AOWGKKI7.js.map → agent-2TIFNP32.js.map} +0 -0
  61. /package/{banking-2ZRGXQJB.js.map → banking-UR7XJI3L.js.map} +0 -0
  62. /package/{chat-XT3ZFO2U.js.map → chat-5N4C3FDV.js.map} +0 -0
  63. /package/{chunk-MZUWWKCF.js.map → chunk-5QJVQEHO.js.map} +0 -0
  64. /package/{chunk-2GMLVBYY.js.map → chunk-7KSTVBNN.js.map} +0 -0
  65. /package/{chunk-J7NZ4R4R.js.map → chunk-BIJC6U3G.js.map} +0 -0
  66. /package/{chunk-RPQMDXP2.js.map → chunk-JWDLLCI3.js.map} +0 -0
  67. /package/{chunk-GGJ3V5JF.js.map → chunk-M6GLCPCJ.js.map} +0 -0
  68. /package/{chunk-LX7FTB2W.js.map → chunk-QCG2H3VD.js.map} +0 -0
  69. /package/{chunk-V33YE2AE.js.map → chunk-STMJYQTH.js.map} +0 -0
  70. /package/{computer-use-IP4SF35H.js.map → computer-use-3WUKJYHK.js.map} +0 -0
  71. /package/{connector-XK7EPZWH.js.map → connector-PDEOFNTE.js.map} +0 -0
  72. /package/{credit-VPTX7ZTC.js.map → credit-ET4RS32X.js.map} +0 -0
  73. /package/{developer-support-3ED5W5G3.js.map → developer-support-3DJEJT2A.js.map} +0 -0
  74. /package/{doctor-JZG5ZNW2.js.map → doctor-F7OWYXXH.js.map} +0 -0
  75. /package/{generate-PAMRL3B5.js.map → generate-4GKWSL6P.js.map} +0 -0
  76. /package/{github-OUIYACCV.js.map → github-S5HFK2IC.js.map} +0 -0
  77. /package/{goal-PXTE4BCJ.js.map → goal-ISJWIT2Q.js.map} +0 -0
  78. /package/{host-3KVI5HIB.js.map → host-T52XQ2SZ.js.map} +0 -0
  79. /package/{logs-LEPXLZOA.js.map → logs-D4IL5OLR.js.map} +0 -0
  80. /package/{mail-22YJ3HFW.js.map → mail-JXO3GW72.js.map} +0 -0
  81. /package/{maps-GTBQWQOV.js.map → maps-T3YFBRLP.js.map} +0 -0
  82. /package/{model-RWQNBS3N.js.map → model-GJRTV6E5.js.map} +0 -0
  83. /package/{model-provider-6B54DC7X.js.map → model-provider-T4VN4HNU.js.map} +0 -0
  84. /package/{org-JEJIR4XQ.js.map → org-GNNU77Y5.js.map} +0 -0
  85. /package/{phone-CI77EG37.js.map → phone-EQ4R2GBO.js.map} +0 -0
  86. /package/{preference-546TA23L.js.map → preference-3FHEQPKG.js.map} +0 -0
  87. /package/{scrape-VZJ67GNU.js.map → scrape-TZCFJY6X.js.map} +0 -0
  88. /package/{search-L5ICIORF.js.map → search-RXP4DMUC.js.map} +0 -0
  89. /package/{secret-FKMH53Y4.js.map → secret-S4ZCVY2X.js.map} +0 -0
  90. /package/{slack-BQ4KIZPV.js.map → slack-7YJFUJE6.js.map} +0 -0
  91. /package/{teams-YZSKKRY4.js.map → teams-45MMUROF.js.map} +0 -0
  92. /package/{telegram-HHGB5PE3.js.map → telegram-7ZCSI24W.js.map} +0 -0
  93. /package/{variable-4CIAHKLM.js.map → variable-O33TDP4J.js.map} +0 -0
  94. /package/{video-54PFQIQD.js.map → video-D5LSABFJ.js.map} +0 -0
  95. /package/{web-BOBLQ27H.js.map → web-JW7AH2UT.js.map} +0 -0
  96. /package/{web-search-27452WDH.js.map → web-search-MHFQFZS6.js.map} +0 -0
  97. /package/{whoami-5SIOEBZY.js.map → whoami-5DJLOQUZ.js.map} +0 -0
  98. /package/{workflow-62JWPXNK.js.map → workflow-TXG3RBJR.js.map} +0 -0
@@ -5,15 +5,15 @@ import {
5
5
  formatModelPolicyStatus,
6
6
  getModelProviderRouteKind,
7
7
  getModelProviderTypeLabel
8
- } from "./chunk-RPQMDXP2.js";
8
+ } from "./chunk-JWDLLCI3.js";
9
9
  import {
10
10
  listZeroModelPolicies
11
- } from "./chunk-OPYEYUSY.js";
11
+ } from "./chunk-NR6ANGRK.js";
12
12
  import "./chunk-LTDQISD7.js";
13
13
  import {
14
14
  source_default,
15
15
  withErrorHandler
16
- } from "./chunk-MWXV2NJK.js";
16
+ } from "./chunk-26BGLMA3.js";
17
17
  import "./chunk-LRHXR7JT.js";
18
18
  import {
19
19
  Command
@@ -72,4 +72,4 @@ export {
72
72
  setCommand,
73
73
  zeroModelProviderCommand
74
74
  };
75
- //# sourceMappingURL=model-provider-6B54DC7X.js.map
75
+ //# sourceMappingURL=model-provider-T4VN4HNU.js.map
@@ -26,7 +26,7 @@ import {
26
26
  switchZeroOrg,
27
27
  updateZeroOrg,
28
28
  upsertZeroOrgModelProvider
29
- } from "./chunk-OPYEYUSY.js";
29
+ } from "./chunk-NR6ANGRK.js";
30
30
  import "./chunk-LTDQISD7.js";
31
31
  import {
32
32
  ApiRequestError,
@@ -40,7 +40,7 @@ import {
40
40
  saveConfig,
41
41
  source_default,
42
42
  withErrorHandler
43
- } from "./chunk-MWXV2NJK.js";
43
+ } from "./chunk-26BGLMA3.js";
44
44
  import "./chunk-LRHXR7JT.js";
45
45
  import {
46
46
  Command
@@ -917,4 +917,4 @@ var zeroOrgCommand = new Command().name("org").description("Manage organization
917
917
  export {
918
918
  zeroOrgCommand
919
919
  };
920
- //# sourceMappingURL=org-JEJIR4XQ.js.map
920
+ //# sourceMappingURL=org-GNNU77Y5.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vm0/cli",
3
- "version": "9.244.6",
3
+ "version": "9.244.7",
4
4
  "description": "Zero command-line interface for vm0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -6,12 +6,12 @@ import {
6
6
  downloadPhoneFile,
7
7
  initPhoneFileUpload,
8
8
  sendPhoneMessage
9
- } from "./chunk-OPYEYUSY.js";
9
+ } from "./chunk-NR6ANGRK.js";
10
10
  import "./chunk-LTDQISD7.js";
11
11
  import {
12
12
  source_default,
13
13
  withErrorHandler
14
- } from "./chunk-MWXV2NJK.js";
14
+ } from "./chunk-26BGLMA3.js";
15
15
  import "./chunk-LRHXR7JT.js";
16
16
  import {
17
17
  Command
@@ -199,4 +199,4 @@ Examples:
199
199
  export {
200
200
  zeroPhoneCommand
201
201
  };
202
- //# sourceMappingURL=phone-CI77EG37.js.map
202
+ //# sourceMappingURL=phone-EQ4R2GBO.js.map
@@ -8,12 +8,12 @@ import {
8
8
  import {
9
9
  getZeroUserPreferences,
10
10
  updateZeroUserPreferences
11
- } from "./chunk-OPYEYUSY.js";
11
+ } from "./chunk-NR6ANGRK.js";
12
12
  import "./chunk-LTDQISD7.js";
13
13
  import {
14
14
  source_default,
15
15
  withErrorHandler
16
- } from "./chunk-MWXV2NJK.js";
16
+ } from "./chunk-26BGLMA3.js";
17
17
  import "./chunk-LRHXR7JT.js";
18
18
  import {
19
19
  Command
@@ -105,4 +105,4 @@ var zeroPreferenceCommand = new Command().name("preference").description("View o
105
105
  export {
106
106
  zeroPreferenceCommand
107
107
  };
108
- //# sourceMappingURL=preference-546TA23L.js.map
108
+ //# sourceMappingURL=preference-3FHEQPKG.js.map
@@ -1,10 +1,39 @@
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 {
5
+ findColorSystem,
6
+ findDesignSystem,
7
+ findImageStyle,
8
+ findPresentationRunbookResource,
9
+ findTemplate,
10
+ findTool,
11
+ findVideoTemplate,
12
+ findWebsiteTemplateResource
13
+ } from "./chunk-DWWE7STW.js";
14
+ import {
15
+ getRegistryResourceDownload
16
+ } from "./chunk-NR6ANGRK.js";
17
+ import "./chunk-LTDQISD7.js";
18
+ import {
19
+ source_default,
20
+ withErrorHandler
21
+ } from "./chunk-26BGLMA3.js";
22
+ import "./chunk-LRHXR7JT.js";
23
+ import {
24
+ Command
25
+ } from "./chunk-B3W2RUBP.js";
4
26
  import {
5
27
  init_esm_shims
6
28
  } from "./chunk-DIRAZ3YX.js";
7
29
 
30
+ // src/commands/zero/resource/index.ts
31
+ init_esm_shims();
32
+ import { createHash } from "crypto";
33
+ import { mkdir, mkdtemp, rm, writeFile } from "fs/promises";
34
+ import { tmpdir } from "os";
35
+ import path from "path";
36
+
8
37
  // ../../node_modules/.pnpm/tar@7.5.20/node_modules/tar/dist/esm/index.min.js
9
38
  init_esm_shims();
10
39
  import Qr from "events";
@@ -2974,8 +3003,109 @@ var To = (s3) => {
2974
3003
  s3.mtimeCache || (s3.mtimeCache = /* @__PURE__ */ new Map()), s3.filter = t ? (e, i) => t(e, i) && !((s3.mtimeCache?.get(e) ?? i.mtime ?? 0) > (i.mtime ?? 0)) : (e, i) => !((s3.mtimeCache?.get(e) ?? i.mtime ?? 0) > (i.mtime ?? 0));
2975
3004
  };
2976
3005
 
3006
+ // src/commands/zero/resource/index.ts
3007
+ function candidateIds(id) {
3008
+ if (id.includes(":")) {
3009
+ return [id];
3010
+ }
3011
+ return [
3012
+ `template:${id}`,
3013
+ `design-system:${id}`,
3014
+ `color-system:${id}`,
3015
+ `tool:${id}`,
3016
+ `image-style:${id}`,
3017
+ `video-template:${id}`
3018
+ ];
3019
+ }
3020
+ function findRegistryResourceForPull(id) {
3021
+ for (const candidate of candidateIds(id)) {
3022
+ const entry = findTemplate(candidate) ?? findDesignSystem(candidate) ?? findColorSystem(candidate) ?? findTool(candidate) ?? findImageStyle(candidate) ?? findVideoTemplate(candidate) ?? findPresentationRunbookResource(candidate) ?? findWebsiteTemplateResource(candidate);
3023
+ if (entry) {
3024
+ return entry;
3025
+ }
3026
+ }
3027
+ return void 0;
3028
+ }
3029
+ function isSafeTarPath(entryPath) {
3030
+ const normalized = entryPath.replace(/\\/gu, "/");
3031
+ return !path.isAbsolute(normalized) && !normalized.split("/").some((segment) => {
3032
+ return segment === "..";
3033
+ });
3034
+ }
3035
+ async function downloadArchive(url) {
3036
+ const response = await fetch(url);
3037
+ if (!response.ok) {
3038
+ throw new Error(`Resource archive download failed: ${response.status}`);
3039
+ }
3040
+ return Buffer.from(await response.arrayBuffer());
3041
+ }
3042
+ function verifyArchive(buffer, expectedSha256) {
3043
+ const actual = createHash("sha256").update(buffer).digest("hex");
3044
+ if (actual !== expectedSha256) {
3045
+ throw new Error(
3046
+ `Resource archive digest mismatch: expected ${expectedSha256}, got ${actual}`
3047
+ );
3048
+ }
3049
+ }
3050
+ var zeroResourceCommand = new Command().name("resource").description("Pull registry resources from private R2-backed archives").addCommand(
3051
+ new Command().name("pull").description("Download and extract a private registry resource archive").argument(
3052
+ "<id>",
3053
+ "Registry resource id, such as template:html-ppt-playful-launch-runbook"
3054
+ ).option(
3055
+ "--dir <path>",
3056
+ "Directory to extract into",
3057
+ "./generated/resources"
3058
+ ).action(
3059
+ withErrorHandler(async (id, options) => {
3060
+ const entry = findRegistryResourceForPull(id);
3061
+ if (!entry) {
3062
+ throw new Error(`Unknown registry resource: ${id}`);
3063
+ }
3064
+ const archive = entry.source.archive;
3065
+ if (!archive) {
3066
+ throw new Error(
3067
+ `Registry resource ${entry.id} does not provide an R2 archive source`
3068
+ );
3069
+ }
3070
+ console.log(source_default.dim(`Pulling ${entry.id}...`));
3071
+ const download = await getRegistryResourceDownload({
3072
+ id: entry.id,
3073
+ expectedSha256: archive.sha256
3074
+ });
3075
+ if (download.sha256 !== archive.sha256) {
3076
+ throw new Error(
3077
+ `Resource archive digest metadata mismatch: expected ${archive.sha256}, got ${download.sha256}`
3078
+ );
3079
+ }
3080
+ const buffer = await downloadArchive(download.url);
3081
+ verifyArchive(buffer, archive.sha256);
3082
+ const outputDir = path.resolve(options.dir);
3083
+ const tmpDir = await mkdtemp(path.join(tmpdir(), "zero-resource-"));
3084
+ const archivePath = path.join(tmpDir, "resource.tar.gz");
3085
+ await mkdir(outputDir, { recursive: true });
3086
+ await writeFile(archivePath, buffer);
3087
+ try {
3088
+ await So({
3089
+ file: archivePath,
3090
+ cwd: outputDir,
3091
+ gzip: true,
3092
+ filter: isSafeTarPath
3093
+ });
3094
+ } finally {
3095
+ await rm(tmpDir, { recursive: true, force: true });
3096
+ }
3097
+ console.log(source_default.green(`\u2713 Pulled ${entry.id}`));
3098
+ console.log(source_default.dim(` Extracted to: ${outputDir}`));
3099
+ console.log(
3100
+ source_default.dim(
3101
+ ` Source path: ${path.join(outputDir, entry.source.path)}`
3102
+ )
3103
+ );
3104
+ })
3105
+ )
3106
+ );
2977
3107
  export {
2978
- Qn,
2979
- So
3108
+ findRegistryResourceForPull,
3109
+ zeroResourceCommand
2980
3110
  };
2981
- //# sourceMappingURL=chunk-HEAUPGDO.js.map
3111
+ //# sourceMappingURL=resource-EOO2VATC.js.map