@vm0/cli 9.129.0 → 9.129.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.
@@ -73642,7 +73642,7 @@ if (DSN) {
73642
73642
  init2({
73643
73643
  dsn: DSN,
73644
73644
  environment: process.env.SENTRY_ENVIRONMENT ?? "production",
73645
- release: "9.129.0",
73645
+ release: "9.129.2",
73646
73646
  sendDefaultPii: false,
73647
73647
  tracesSampleRate: 0,
73648
73648
  shutdownTimeout: 500,
@@ -73661,7 +73661,7 @@ if (DSN) {
73661
73661
  }
73662
73662
  });
73663
73663
  setContext("cli", {
73664
- version: "9.129.0",
73664
+ version: "9.129.2",
73665
73665
  command: process.argv.slice(2).join(" ")
73666
73666
  });
73667
73667
  setContext("runtime", {
@@ -91939,6 +91939,32 @@ var elevenlabs = {
91939
91939
  }
91940
91940
  };
91941
91941
 
91942
+ // ../../packages/core/src/contracts/connectors/etsy.ts
91943
+ init_esm_shims();
91944
+ var etsy = {
91945
+ etsy: {
91946
+ label: "Etsy",
91947
+ environmentMapping: {
91948
+ ETSY_TOKEN: "$secrets.ETSY_TOKEN"
91949
+ },
91950
+ helpText: "Connect your Etsy developer account to search listings, manage shop data, and access product information",
91951
+ authMethods: {
91952
+ "api-token": {
91953
+ label: "API Key",
91954
+ helpText: "1. Log in to [Etsy](https://www.etsy.com/developers/your-apps)\n2. Click **Create a New App** (or select an existing app)\n3. Copy the **Keystring** and **Shared Secret**\n4. Paste both values joined with a colon: `keystring:shared_secret`",
91955
+ secrets: {
91956
+ ETSY_TOKEN: {
91957
+ label: "API Key (keystring:shared_secret)",
91958
+ required: true,
91959
+ placeholder: "c0ffee5afe10ca1c0ffee5af:e10ca15afe"
91960
+ }
91961
+ }
91962
+ }
91963
+ },
91964
+ defaultAuthMethod: "api-token"
91965
+ }
91966
+ };
91967
+
91942
91968
  // ../../packages/core/src/contracts/connectors/exa.ts
91943
91969
  init_esm_shims();
91944
91970
  var exa = {
@@ -93866,6 +93892,7 @@ var CONNECTOR_TYPES_DEF = {
93866
93892
  ...scrapeninja,
93867
93893
  ...pdfco,
93868
93894
  ...elevenlabs,
93895
+ ...etsy,
93869
93896
  ...exa,
93870
93897
  ...explorium,
93871
93898
  ...devto,
@@ -98966,6 +98993,27 @@ var elevenlabsFirewall = {
98966
98993
  ]
98967
98994
  };
98968
98995
 
98996
+ // ../../packages/core/src/firewalls/etsy.generated.ts
98997
+ init_esm_shims();
98998
+ var etsyFirewall = {
98999
+ name: "etsy",
99000
+ description: "Etsy",
99001
+ placeholders: {
99002
+ ETSY_TOKEN: "c0ffee5afe10ca1c0ffee5af:e10ca15afe"
99003
+ },
99004
+ apis: [
99005
+ {
99006
+ base: "https://openapi.etsy.com",
99007
+ auth: {
99008
+ headers: {
99009
+ "x-api-key": "${{ secrets.ETSY_TOKEN }}"
99010
+ }
99011
+ },
99012
+ permissions: []
99013
+ }
99014
+ ]
99015
+ };
99016
+
98969
99017
  // ../../packages/core/src/firewalls/exa.generated.ts
98970
99018
  init_esm_shims();
98971
99019
  var exaFirewall = {
@@ -105607,6 +105655,7 @@ var CONNECTOR_FIREWALLS = {
105607
105655
  duffel: duffelFirewall,
105608
105656
  e2b: e2bFirewall,
105609
105657
  elevenlabs: elevenlabsFirewall,
105658
+ etsy: etsyFirewall,
105610
105659
  exa: exaFirewall,
105611
105660
  explorium: exploriumFirewall,
105612
105661
  fal: falFirewall,
@@ -110764,8 +110813,20 @@ var unifiedRunRequestSchema = external_exports.object({
110764
110813
  agentComposeId: external_exports.string().optional(),
110765
110814
  agentComposeVersionId: external_exports.string().optional(),
110766
110815
  conversationId: external_exports.string().optional(),
110816
+ // @deprecated Legacy singleton artifact fields retained for a one-release
110817
+ // compat window. The POST /api/agent/runs handler rewrites them into the
110818
+ // new `artifacts` array before dispatch — prefer `artifacts` in new code.
110767
110819
  artifactName: external_exports.string().optional(),
110768
110820
  artifactVersion: external_exports.string().optional(),
110821
+ // Multi-mount artifacts, each with its own mountPath. When provided, the
110822
+ // server ignores artifactName/artifactVersion.
110823
+ artifacts: external_exports.array(
110824
+ external_exports.object({
110825
+ name: external_exports.string(),
110826
+ version: external_exports.string().optional(),
110827
+ mountPath: external_exports.string()
110828
+ })
110829
+ ).optional(),
110769
110830
  vars: external_exports.record(external_exports.string(), external_exports.string()).optional(),
110770
110831
  secrets: external_exports.record(external_exports.string(), external_exports.string()).optional(),
110771
110832
  volumeVersions: external_exports.record(external_exports.string(), external_exports.string()).optional(),
@@ -111582,7 +111643,15 @@ var webhookCheckpointsContract = c6.router({
111582
111643
  64,
111583
111644
  "cliAgentSessionHistoryHash must be a 64-character SHA-256 hex string"
111584
111645
  ),
111646
+ // Legacy singleton artifact snapshot. The guest-agent still emits this
111647
+ // when exactly one artifact is snapshotted so older servers can read it;
111648
+ // new code must read artifactSnapshots instead.
111585
111649
  artifactSnapshot: artifactSnapshotSchema.optional(),
111650
+ // Multi-artifact snapshot map: artifact name → version id. Emitted
111651
+ // unconditionally by the guest-agent (empty object when nothing to
111652
+ // snapshot). Double-written to both the legacy single-entry column and
111653
+ // the new artifact_snapshots JSONB column on checkpoints.
111654
+ artifactSnapshots: external_exports.record(external_exports.string(), external_exports.string()).optional(),
111586
111655
  memorySnapshot: memorySnapshotSchema.optional(),
111587
111656
  volumeVersionsSnapshot: volumeVersionsSnapshotSchema.optional()
111588
111657
  }),
@@ -111592,6 +111661,7 @@ var webhookCheckpointsContract = c6.router({
111592
111661
  agentSessionId: external_exports.string(),
111593
111662
  conversationId: external_exports.string(),
111594
111663
  artifact: artifactSnapshotSchema.optional(),
111664
+ artifacts: external_exports.record(external_exports.string(), external_exports.string()).optional(),
111595
111665
  memory: memorySnapshotSchema.optional(),
111596
111666
  volumes: external_exports.record(external_exports.string(), external_exports.string()).optional()
111597
111667
  }),
@@ -112626,7 +112696,12 @@ var checkpointResponseSchema = external_exports.object({
112626
112696
  runId: external_exports.string(),
112627
112697
  conversationId: external_exports.string(),
112628
112698
  agentComposeSnapshot: agentComposeSnapshotSchema,
112699
+ // Legacy single-artifact snapshot. Populated from artifact_snapshots when
112700
+ // the checkpoint has exactly one entry, left null otherwise.
112629
112701
  artifactSnapshot: artifactSnapshotSchema2.nullable(),
112702
+ // Multi-artifact snapshot map: artifact name → version id. Null when the
112703
+ // checkpoint predates the multi-mount migration or has no artifacts.
112704
+ artifactSnapshots: external_exports.record(external_exports.string(), external_exports.string()).nullable(),
112630
112705
  volumeVersionsSnapshot: volumeVersionsSnapshotSchema2.nullable(),
112631
112706
  createdAt: external_exports.string()
112632
112707
  });
@@ -113124,7 +113199,7 @@ var artifactEntrySchema = external_exports.object({
113124
113199
  });
113125
113200
  var storageManifestSchema = external_exports.object({
113126
113201
  storages: external_exports.array(storageEntrySchema),
113127
- artifact: artifactEntrySchema.nullable(),
113202
+ artifacts: external_exports.array(artifactEntrySchema),
113128
113203
  memory: artifactEntrySchema.nullable()
113129
113204
  });
113130
113205
  var resumeSessionSchema = external_exports.object({
@@ -113464,55 +113539,7 @@ function matchFirewallPath(path3, pattern) {
113464
113539
  if (pi !== pathSegs.length) return null;
113465
113540
  return params;
113466
113541
  }
113467
- function parseGraphQLRule(rest) {
113468
- const gqlIdx = rest.indexOf(" GraphQL");
113469
- if (gqlIdx === -1) return null;
113470
- const path3 = gqlIdx > 0 ? rest.slice(0, gqlIdx) : "/";
113471
- const suffixParts = rest.slice(gqlIdx + 1).split(/\s+/);
113472
- let typeFilter = null;
113473
- let opFilter = null;
113474
- let fieldFilters = null;
113475
- for (let i = 1; i < suffixParts.length; i++) {
113476
- const part = suffixParts[i];
113477
- if (part.startsWith("type:")) {
113478
- typeFilter = part.slice(5);
113479
- } else if (part.startsWith("operationName:")) {
113480
- opFilter = part.slice(14);
113481
- } else if (part.startsWith("field:")) {
113482
- fieldFilters = part.slice(6).split(",");
113483
- }
113484
- }
113485
- return { path: path3, typeFilter, opFilter, fieldFilters };
113486
- }
113487
- function matchWildcard(value, pattern) {
113488
- if (pattern.endsWith("*")) {
113489
- return value.startsWith(pattern.slice(0, -1));
113490
- }
113491
- return value === pattern;
113492
- }
113493
- function matchGraphQLBody(body, typeFilter, opFilter, fieldFilters) {
113494
- if (!body) return false;
113495
- if (typeFilter !== null && body.type !== typeFilter) {
113496
- return false;
113497
- }
113498
- if (opFilter !== null) {
113499
- const opName = body.operationName;
113500
- if (!opName) return false;
113501
- if (!matchWildcard(opName, opFilter)) return false;
113502
- }
113503
- if (fieldFilters !== null) {
113504
- const fields = body.fields;
113505
- if (!fields || fields.length === 0) return false;
113506
- if (!fieldFilters.some((pattern) => {
113507
- return fields.some((f) => {
113508
- return matchWildcard(f, pattern);
113509
- });
113510
- }))
113511
- return false;
113512
- }
113513
- return true;
113514
- }
113515
- function findMatchingPermissions(method, path3, config4, graphqlBody) {
113542
+ function findMatchingPermissions(method, path3, config4) {
113516
113543
  const upperMethod = method.toUpperCase();
113517
113544
  const matched = /* @__PURE__ */ new Set();
113518
113545
  for (const api of config4.apis) {
@@ -113525,17 +113552,7 @@ function findMatchingPermissions(method, path3, config4, graphqlBody) {
113525
113552
  const ruleMethod = rule.slice(0, spaceIdx).toUpperCase();
113526
113553
  const rest = rule.slice(spaceIdx + 1);
113527
113554
  if (ruleMethod !== "ANY" && ruleMethod !== upperMethod) continue;
113528
- const gql = parseGraphQLRule(rest);
113529
- const rulePath = gql ? gql.path : rest;
113530
- if (matchFirewallPath(path3, rulePath) !== null) {
113531
- if (gql && (gql.typeFilter !== null || gql.opFilter !== null || gql.fieldFilters !== null) && !matchGraphQLBody(
113532
- graphqlBody,
113533
- gql.typeFilter,
113534
- gql.opFilter,
113535
- gql.fieldFilters
113536
- )) {
113537
- continue;
113538
- }
113555
+ if (matchFirewallPath(path3, rest) !== null) {
113539
113556
  matched.add(perm.name);
113540
113557
  break;
113541
113558
  }
@@ -114658,6 +114675,7 @@ var zeroRunRequestSchema = unifiedRunRequestSchema.omit({
114658
114675
  memoryName: true,
114659
114676
  artifactName: true,
114660
114677
  artifactVersion: true,
114678
+ artifacts: true,
114661
114679
  disallowedTools: true,
114662
114680
  volumeVersions: true,
114663
114681
  vars: true,
@@ -115599,6 +115617,26 @@ var checkoutResponseSchema = external_exports.object({
115599
115617
  var portalResponseSchema = external_exports.object({
115600
115618
  url: external_exports.string()
115601
115619
  });
115620
+ var redeemResponseSchema = external_exports.discriminatedUnion("status", [
115621
+ external_exports.object({
115622
+ status: external_exports.literal("ready"),
115623
+ checkoutUrl: external_exports.string().url()
115624
+ }),
115625
+ external_exports.object({
115626
+ status: external_exports.literal("already_granted")
115627
+ }),
115628
+ external_exports.object({
115629
+ status: external_exports.literal("processing")
115630
+ }),
115631
+ external_exports.object({
115632
+ status: external_exports.literal("error"),
115633
+ reason: external_exports.enum([
115634
+ "campaign_misconfigured",
115635
+ "admin_required",
115636
+ "billing_unavailable"
115637
+ ])
115638
+ })
115639
+ ]);
115602
115640
  var checkoutRequestSchema = external_exports.object({
115603
115641
  tier: external_exports.enum(["pro", "team"]),
115604
115642
  successUrl: external_exports.string().url(),
@@ -115612,6 +115650,10 @@ var autoRechargeUpdateRequestSchema = external_exports.object({
115612
115650
  threshold: external_exports.number().int().positive().optional(),
115613
115651
  amount: external_exports.number().int().min(1e3).optional()
115614
115652
  });
115653
+ var redeemRequestSchema = external_exports.object({
115654
+ successUrl: external_exports.string().url(),
115655
+ cancelUrl: external_exports.string().url()
115656
+ });
115615
115657
  var zeroBillingStatusContract = c34.router({
115616
115658
  get: {
115617
115659
  method: "GET",
@@ -115733,6 +115775,24 @@ var zeroBillingDowngradeContract = c34.router({
115733
115775
  summary: "Downgrade subscription to a lower tier"
115734
115776
  }
115735
115777
  });
115778
+ var zeroBillingRedeemContract = c34.router({
115779
+ create: {
115780
+ method: "POST",
115781
+ path: "/api/zero/billing/redeem/:campaign",
115782
+ pathParams: external_exports.object({
115783
+ campaign: external_exports.string()
115784
+ }),
115785
+ headers: authHeadersSchema,
115786
+ body: redeemRequestSchema,
115787
+ responses: {
115788
+ 200: redeemResponseSchema,
115789
+ 400: apiErrorSchema,
115790
+ 401: apiErrorSchema,
115791
+ 500: apiErrorSchema
115792
+ },
115793
+ summary: "Redeem a one-time campaign"
115794
+ }
115795
+ });
115736
115796
 
115737
115797
  // ../../packages/core/src/contracts/zero-usage.ts
115738
115798
  init_esm_shims();
@@ -120100,4 +120160,4 @@ undici/lib/web/fetch/body.js:
120100
120160
  undici/lib/web/websocket/frame.js:
120101
120161
  (*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
120102
120162
  */
120103
- //# sourceMappingURL=chunk-X7AZTK2E.js.map
120163
+ //# sourceMappingURL=chunk-F23UIP5L.js.map