@vm0/cli 9.129.1 → 9.130.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.
@@ -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.1",
73645
+ release: "9.130.0",
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.1",
73664
+ version: "9.130.0",
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({
@@ -114600,6 +114675,7 @@ var zeroRunRequestSchema = unifiedRunRequestSchema.omit({
114600
114675
  memoryName: true,
114601
114676
  artifactName: true,
114602
114677
  artifactVersion: true,
114678
+ artifacts: true,
114603
114679
  disallowedTools: true,
114604
114680
  volumeVersions: true,
114605
114681
  vars: true,
@@ -116540,6 +116616,8 @@ var voiceChatCandidateTaskSchema = external_exports.object({
116540
116616
  callId: external_exports.string(),
116541
116617
  prompt: external_exports.string(),
116542
116618
  status: voiceChatCandidateTaskStatusSchema,
116619
+ result: external_exports.string().nullable(),
116620
+ resultUpdatedAt: external_exports.string().nullable(),
116543
116621
  assistantMessages: external_exports.array(voiceChatCandidateTaskResultEntrySchema),
116544
116622
  error: external_exports.string().nullable(),
116545
116623
  createdAt: external_exports.string(),
@@ -116661,6 +116739,19 @@ var zeroVoiceChatCandidateContract = c52.router({
116661
116739
  },
116662
116740
  summary: "Keep a voice-chat-candidate session alive"
116663
116741
  },
116742
+ triggerReasoning: {
116743
+ method: "POST",
116744
+ path: "/api/zero/voice-chat-candidate/:id/trigger-reasoning",
116745
+ headers: authHeadersSchema,
116746
+ pathParams: external_exports.object({ id: external_exports.uuid() }),
116747
+ body: external_exports.object({}),
116748
+ responses: {
116749
+ 200: okResponseSchema2,
116750
+ 401: apiErrorSchema,
116751
+ 404: apiErrorSchema
116752
+ },
116753
+ summary: "Queue a reasoner tick for a voice-chat-candidate session (respects CAS lock and debounce)"
116754
+ },
116664
116755
  appendItem: {
116665
116756
  method: "POST",
116666
116757
  path: "/api/zero/voice-chat-candidate/:id/items",
@@ -119626,21 +119717,23 @@ function collectVolumeVersions(value, previous) {
119626
119717
  }
119627
119718
  return { ...previous, [volumeName]: version2 };
119628
119719
  }
119629
- function parseVolume(value) {
119720
+ function parseMount(value, flagLabel) {
119630
119721
  const parts = value.split(":");
119631
119722
  if (parts.length < 2 || parts.length > 3) {
119632
119723
  throw new Error(
119633
- `Invalid volume format: ${value} (expected name:/path or name:version:/path)`
119724
+ `Invalid ${flagLabel} format: ${value} (expected name:/path or name:version:/path)`
119634
119725
  );
119635
119726
  }
119636
119727
  const name = parts[0];
119637
119728
  const mountPath = parts.length === 3 ? parts[2] : parts[1];
119638
119729
  if (!name) {
119639
- throw new Error(`Invalid volume format: ${value} (name cannot be empty)`);
119730
+ throw new Error(
119731
+ `Invalid ${flagLabel} format: ${value} (name cannot be empty)`
119732
+ );
119640
119733
  }
119641
119734
  if (!mountPath.startsWith("/")) {
119642
119735
  throw new Error(
119643
- `Invalid volume mount path: ${mountPath} (must start with /)`
119736
+ `Invalid ${flagLabel} mount path: ${mountPath} (must start with /)`
119644
119737
  );
119645
119738
  }
119646
119739
  if (parts.length === 2) {
@@ -119649,13 +119742,16 @@ function parseVolume(value) {
119649
119742
  const version2 = parts[1];
119650
119743
  if (!version2) {
119651
119744
  throw new Error(
119652
- `Invalid volume format: ${value} (version cannot be empty)`
119745
+ `Invalid ${flagLabel} format: ${value} (version cannot be empty)`
119653
119746
  );
119654
119747
  }
119655
119748
  return { name, version: version2, mountPath };
119656
119749
  }
119657
- function collectVolumes(value, previous) {
119658
- return [...previous, parseVolume(value)];
119750
+ function collectMounts(value, previous) {
119751
+ return [...previous, parseMount(value, "volume")];
119752
+ }
119753
+ function collectArtifacts(value, previous) {
119754
+ return [...previous, parseMount(value, "artifact")];
119659
119755
  }
119660
119756
  function parsePermissionPolicies(json2) {
119661
119757
  if (!json2) return void 0;
@@ -119737,17 +119833,6 @@ function parseIdentifier(identifier) {
119737
119833
  }
119738
119834
  return { name: identifier };
119739
119835
  }
119740
- function parseArtifact(value) {
119741
- if (!value) return void 0;
119742
- const colonIndex = value.indexOf(":");
119743
- if (colonIndex > 0 && colonIndex < value.length - 1) {
119744
- return {
119745
- artifactName: value.slice(0, colonIndex),
119746
- artifactVersion: value.slice(colonIndex + 1)
119747
- };
119748
- }
119749
- return { artifactName: value };
119750
- }
119751
119836
  function renderRunCreated(response) {
119752
119837
  if (response.status === "queued") {
119753
119838
  console.log(source_default.yellow("\u26A0 Run queued \u2014 concurrency limit reached"));
@@ -120062,14 +120147,14 @@ export {
120062
120147
  EventRenderer,
120063
120148
  collectKeyValue,
120064
120149
  collectVolumeVersions,
120065
- collectVolumes,
120150
+ collectMounts,
120151
+ collectArtifacts,
120066
120152
  parsePermissionPolicies,
120067
120153
  isUUID,
120068
120154
  extractVarNames,
120069
120155
  extractSecretNames,
120070
120156
  loadValues,
120071
120157
  parseIdentifier,
120072
- parseArtifact,
120073
120158
  renderRunCreated,
120074
120159
  pollEvents,
120075
120160
  showNextSteps,
@@ -120084,4 +120169,4 @@ undici/lib/web/fetch/body.js:
120084
120169
  undici/lib/web/websocket/frame.js:
120085
120170
  (*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
120086
120171
  */
120087
- //# sourceMappingURL=chunk-TO65SA2M.js.map
120172
+ //# sourceMappingURL=chunk-V5JAHNBR.js.map