@vm0/cli 9.154.2 → 9.155.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.
@@ -74083,7 +74083,7 @@ if (DSN) {
74083
74083
  init2({
74084
74084
  dsn: DSN,
74085
74085
  environment: process.env.SENTRY_ENVIRONMENT ?? "production",
74086
- release: "9.154.2",
74086
+ release: "9.155.0",
74087
74087
  sendDefaultPii: false,
74088
74088
  tracesSampleRate: 0,
74089
74089
  shutdownTimeout: 500,
@@ -74102,7 +74102,7 @@ if (DSN) {
74102
74102
  }
74103
74103
  });
74104
74104
  setContext("cli", {
74105
- version: "9.154.2",
74105
+ version: "9.155.0",
74106
74106
  command: process.argv.slice(2).join(" ")
74107
74107
  });
74108
74108
  setContext("runtime", {
@@ -97241,6 +97241,43 @@ var anthropicManagedAgents = {
97241
97241
  }
97242
97242
  };
97243
97243
 
97244
+ // ../../packages/connectors/src/connectors/bentoml.ts
97245
+ init_esm_shims();
97246
+ var bentoml = {
97247
+ bentoml: {
97248
+ label: "BentoML",
97249
+ category: "data-automation-infrastructure",
97250
+ generation: ["text"],
97251
+ tags: ["bentocloud", "model-serving", "mlops", "inference"],
97252
+ environmentMapping: {
97253
+ BENTO_CLOUD_API_KEY: "$secrets.BENTO_CLOUD_API_KEY",
97254
+ BENTO_CLOUD_API_ENDPOINT: "$vars.BENTO_CLOUD_API_ENDPOINT"
97255
+ },
97256
+ helpText: "Connect your BentoCloud account to manage BentoML deployments and call protected deployment endpoints",
97257
+ authMethods: {
97258
+ "api-token": {
97259
+ featureFlag: "bentomlConnector" /* BentomlConnector */,
97260
+ label: "BentoCloud API Token",
97261
+ helpText: "1. Log in to [BentoCloud](https://cloud.bentoml.com)\n2. Open your profile menu, then go to **API Tokens**\n3. Create a Personal or Organization API token with the access your workflow needs\n4. Copy the token and enter your organization endpoint, for example `https://your-org.cloud.bentoml.com`",
97262
+ secrets: {
97263
+ BENTO_CLOUD_API_KEY: {
97264
+ label: "API Token",
97265
+ required: true,
97266
+ placeholder: "cur7h..."
97267
+ },
97268
+ BENTO_CLOUD_API_ENDPOINT: {
97269
+ label: "BentoCloud Endpoint",
97270
+ required: true,
97271
+ placeholder: "https://your-org.cloud.bentoml.com",
97272
+ type: "variable"
97273
+ }
97274
+ }
97275
+ }
97276
+ },
97277
+ defaultAuthMethod: "api-token"
97278
+ }
97279
+ };
97280
+
97244
97281
  // ../../packages/connectors/src/connectors/github.ts
97245
97282
  init_esm_shims();
97246
97283
  var github = {
@@ -98993,6 +99030,48 @@ var reddit = {
98993
99030
  }
98994
99031
  };
98995
99032
 
99033
+ // ../../packages/connectors/src/connectors/reap.ts
99034
+ init_esm_shims();
99035
+ var reap = {
99036
+ reap: {
99037
+ label: "Reap",
99038
+ category: "sales-crm-business-operations",
99039
+ tags: [
99040
+ "fintech",
99041
+ "embedded-finance",
99042
+ "cards",
99043
+ "wallets",
99044
+ "payments",
99045
+ "compliance"
99046
+ ],
99047
+ environmentMapping: {
99048
+ REAP_API_KEY: "$secrets.REAP_API_KEY",
99049
+ REAP_API_BASE_URL: "$vars.REAP_API_BASE_URL"
99050
+ },
99051
+ helpText: "Connect your Reap project to manage users, companies, accounts, cards, virtual assets, activities, and reconciliations",
99052
+ authMethods: {
99053
+ "api-token": {
99054
+ label: "API Key",
99055
+ helpText: "1. Contact the Reap team to obtain an API key for your project\n2. Choose the matching API base URL for the key environment: `https://sandbox.api.reap.global/v1` or `https://prod.api.reap.global/v1`\n3. Copy the API key",
99056
+ secrets: {
99057
+ REAP_API_KEY: {
99058
+ label: "API Key",
99059
+ required: true,
99060
+ placeholder: "YOUR_REAP_API_KEY"
99061
+ },
99062
+ REAP_API_BASE_URL: {
99063
+ label: "API Base URL",
99064
+ required: true,
99065
+ placeholder: "https://sandbox.api.reap.global/v1",
99066
+ type: "variable"
99067
+ }
99068
+ }
99069
+ }
99070
+ },
99071
+ defaultAuthMethod: "api-token"
99072
+ }
99073
+ };
99074
+
98996
99075
  // ../../packages/connectors/src/connectors/strava.ts
98997
99076
  init_esm_shims();
98998
99077
  var strava = {
@@ -103335,6 +103414,7 @@ var CONNECTOR_TYPES_DEF = {
103335
103414
  ...agentmail,
103336
103415
  ...airtable,
103337
103416
  ...anthropicManagedAgents,
103417
+ ...bentoml,
103338
103418
  ...github,
103339
103419
  ...notion,
103340
103420
  ...gmail,
@@ -103387,6 +103467,7 @@ var CONNECTOR_TYPES_DEF = {
103387
103467
  ...serpapi,
103388
103468
  ...salesforce,
103389
103469
  ...reddit,
103470
+ ...reap,
103390
103471
  ...strava,
103391
103472
  ...x,
103392
103473
  ...neon,
@@ -108614,11 +108695,16 @@ function codexPermissionArgs(mode) {
108614
108695
  }
108615
108696
  throw new Error(`Unsupported Codex permission mode: ${mode}`);
108616
108697
  }
108617
- function executionCommand(backend, prompt, permissionMode) {
108698
+ function executionCommand(backend, prompt, permissionMode, claudeArgs = []) {
108618
108699
  if (backend === "claude-code") {
108619
108700
  return {
108620
108701
  command: "claude",
108621
- args: ["-p", ...claudePermissionArgs(permissionMode), prompt]
108702
+ args: [
108703
+ "-p",
108704
+ ...claudePermissionArgs(permissionMode),
108705
+ ...claudeArgs,
108706
+ prompt
108707
+ ]
108622
108708
  };
108623
108709
  }
108624
108710
  return {
@@ -108637,7 +108723,8 @@ async function executeLocalAgentBackend(params) {
108637
108723
  const { command, args } = executionCommand(
108638
108724
  params.backend,
108639
108725
  params.prompt,
108640
- params.permissionMode
108726
+ params.permissionMode,
108727
+ params.claudeArgs
108641
108728
  );
108642
108729
  return new Promise((resolve2) => {
108643
108730
  const child = safeSpawn(command, args, {
@@ -109255,6 +109342,7 @@ async function runHostLoop(params) {
109255
109342
  backend: nextJob.job.backend,
109256
109343
  prompt: nextJob.job.prompt,
109257
109344
  workdir: params.workdir,
109345
+ claudeArgs: params.claudeArgs,
109258
109346
  permissionMode: params.permissionMode
109259
109347
  });
109260
109348
  await completeLocalAgentHostJob({
@@ -109274,13 +109362,21 @@ async function runHostLoop(params) {
109274
109362
  process.removeListener("SIGTERM", onStop);
109275
109363
  }
109276
109364
  }
109277
- var startCommand = new Command().name("start").description("Start the local-agent host daemon").option("--name <name>", "New host name, or a closed host name to reactivate").option("--workdir <path>", "Working directory for Codex/Claude jobs").option("--backend <backend>", "codex or claude-code for a new host").option("--permission-mode <mode>", "Permission mode for Codex/Claude jobs").option(
109365
+ var startCommand = new Command().name("start").description("Start the local-agent host daemon").option("--name <name>", "New host name, or a closed host name to reactivate").option("--workdir <path>", "Working directory for Codex/Claude jobs").option("--backend <backend>", "codex or claude-code for a new host").option(
109366
+ "--claude-arg <arg>",
109367
+ "Additional argument to pass to Claude Code jobs",
109368
+ (value, previous) => {
109369
+ return [...previous, value];
109370
+ },
109371
+ []
109372
+ ).option("--permission-mode <mode>", "Permission mode for Codex/Claude jobs").option(
109278
109373
  "--host-id <id>",
109279
109374
  "Reactivate a closed host from vm0 local-agent list"
109280
109375
  ).option("--new", "Create a new host registration").action(
109281
109376
  withErrorHandler(async (options) => {
109282
109377
  const requestedHostName = options.name?.trim();
109283
109378
  const workdir = options.workdir?.trim() || process.cwd();
109379
+ const claudeArgs = options.claudeArg ?? [];
109284
109380
  const savedHost = await getLocalAgentHost();
109285
109381
  const selection = await chooseHostForStart({
109286
109382
  requestedHostName,
@@ -109304,6 +109400,9 @@ var startCommand = new Command().name("start").description("Start the local-agen
109304
109400
  probes,
109305
109401
  requestedBackend: options.backend
109306
109402
  }) : await chooseBackend(probes, options.backend);
109403
+ if (claudeArgs.length > 0 && selectedBackend !== "claude-code") {
109404
+ throw new Error("--claude-arg can only be used with Claude Code jobs");
109405
+ }
109307
109406
  const permissionMode = selection.restoredHost ? chooseRestoredPermissionMode({
109308
109407
  backend: selectedBackend,
109309
109408
  requestedPermissionMode: options.permissionMode,
@@ -109342,6 +109441,7 @@ var startCommand = new Command().name("start").description("Start the local-agen
109342
109441
  hostToken: started.hostToken,
109343
109442
  hostName: selection.hostName,
109344
109443
  supportedBackends,
109444
+ claudeArgs,
109345
109445
  permissionMode,
109346
109446
  workdir
109347
109447
  });
@@ -112946,6 +113046,45 @@ var axiomFirewall = {
112946
113046
  ]
112947
113047
  };
112948
113048
 
113049
+ // ../../packages/connectors/src/firewalls/bentoml.generated.ts
113050
+ init_esm_shims();
113051
+ var bentomlFirewall = {
113052
+ name: "bentoml",
113053
+ description: "BentoCloud API and protected deployment endpoints",
113054
+ placeholders: {
113055
+ BENTO_CLOUD_API_KEY: "cur7hCoffeeSafeLocalCoffeeSafeLocalCoffeeSafe"
113056
+ },
113057
+ apis: [
113058
+ {
113059
+ base: "${{ vars.BENTO_CLOUD_API_ENDPOINT }}",
113060
+ auth: {
113061
+ headers: {
113062
+ Authorization: "Bearer ${{ secrets.BENTO_CLOUD_API_KEY }}"
113063
+ }
113064
+ },
113065
+ permissions: []
113066
+ },
113067
+ {
113068
+ base: "https://{deployment+}.bentoml.ai",
113069
+ auth: {
113070
+ headers: {
113071
+ Authorization: "Bearer ${{ secrets.BENTO_CLOUD_API_KEY }}"
113072
+ }
113073
+ },
113074
+ permissions: []
113075
+ },
113076
+ {
113077
+ base: "https://{deployment+}.cloud-apps.bentoml.com",
113078
+ auth: {
113079
+ headers: {
113080
+ Authorization: "Bearer ${{ secrets.BENTO_CLOUD_API_KEY }}"
113081
+ }
113082
+ },
113083
+ permissions: []
113084
+ }
113085
+ ]
113086
+ };
113087
+
112949
113088
  // ../../packages/connectors/src/firewalls/bitrix.generated.ts
112950
113089
  init_esm_shims();
112951
113090
  var bitrixFirewall = {
@@ -118268,6 +118407,44 @@ var redditFirewall = {
118268
118407
  ]
118269
118408
  };
118270
118409
 
118410
+ // ../../packages/connectors/src/firewalls/reap.generated.ts
118411
+ init_esm_shims();
118412
+ var reapFirewall = {
118413
+ name: "reap",
118414
+ description: "Reap API",
118415
+ placeholders: {
118416
+ REAP_API_KEY: "CoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocal"
118417
+ },
118418
+ apis: [
118419
+ {
118420
+ base: "${{ vars.REAP_API_BASE_URL }}",
118421
+ auth: {
118422
+ headers: {
118423
+ Authorization: "Bearer ${{ secrets.REAP_API_KEY }}",
118424
+ "Reap-Version": "2025-02-14"
118425
+ }
118426
+ },
118427
+ permissions: [
118428
+ {
118429
+ name: "read",
118430
+ description: "Read Reap resources",
118431
+ rules: ["GET /{path+}"]
118432
+ },
118433
+ {
118434
+ name: "write",
118435
+ description: "Create, update, and delete Reap resources",
118436
+ rules: [
118437
+ "POST /{path+}",
118438
+ "PUT /{path+}",
118439
+ "PATCH /{path+}",
118440
+ "DELETE /{path+}"
118441
+ ]
118442
+ }
118443
+ ]
118444
+ }
118445
+ ]
118446
+ };
118447
+
118271
118448
  // ../../packages/connectors/src/firewalls/reportei.generated.ts
118272
118449
  init_esm_shims();
118273
118450
  var reporteiFirewall = {
@@ -121842,6 +122019,7 @@ var CONNECTOR_FIREWALLS = {
121842
122019
  attio: attioFirewall,
121843
122020
  atlassian: atlassianFirewall,
121844
122021
  axiom: axiomFirewall,
122022
+ bentoml: bentomlFirewall,
121845
122023
  bitrix: bitrixFirewall,
121846
122024
  "brave-search": braveSearchFirewall,
121847
122025
  brevo: brevoFirewall,
@@ -121960,6 +122138,7 @@ var CONNECTOR_FIREWALLS = {
121960
122138
  qdrant: qdrantFirewall,
121961
122139
  qiita: qiitaFirewall,
121962
122140
  reddit: redditFirewall,
122141
+ reap: reapFirewall,
121963
122142
  reportei: reporteiFirewall,
121964
122143
  replicate: replicateFirewall,
121965
122144
  resend: resendFirewall,
@@ -124330,9 +124509,20 @@ var customConnectorResponseSchema = external_exports.object({
124330
124509
  var customConnectorListResponseSchema = external_exports.object({
124331
124510
  connectors: external_exports.array(customConnectorResponseSchema)
124332
124511
  });
124512
+ var customConnectorPrefixSchema = external_exports.string().min(1).refine(
124513
+ (value) => {
124514
+ try {
124515
+ new URL(value);
124516
+ return true;
124517
+ } catch {
124518
+ return false;
124519
+ }
124520
+ },
124521
+ { message: "Invalid URL" }
124522
+ );
124333
124523
  var createCustomConnectorBodySchema = external_exports.object({
124334
124524
  displayName: external_exports.string().min(1).max(128),
124335
- prefixes: external_exports.array(external_exports.string().url()).min(1),
124525
+ prefixes: external_exports.array(customConnectorPrefixSchema).min(1),
124336
124526
  headerName: external_exports.string().min(1).max(128),
124337
124527
  headerTemplate: external_exports.string().min(1),
124338
124528
  slug: external_exports.string().optional()
@@ -126868,6 +127058,11 @@ var FEATURE_SWITCHES = {
126868
127058
  description: "Enable the Ahrefs SEO connector",
126869
127059
  enabled: false
126870
127060
  },
127061
+ ["bentomlConnector" /* BentomlConnector */]: {
127062
+ maintainer: "ethan@vm0.ai",
127063
+ description: "Enable the BentoML model serving connector",
127064
+ enabled: false
127065
+ },
126871
127066
  ["canvaConnector" /* CanvaConnector */]: {
126872
127067
  maintainer: "ethan@vm0.ai",
126873
127068
  description: "Enable the Canva design connector",
@@ -128670,4 +128865,4 @@ undici/lib/web/fetch/body.js:
128670
128865
  undici/lib/web/websocket/frame.js:
128671
128866
  (*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
128672
128867
  */
128673
- //# sourceMappingURL=chunk-4F34B6ZK.js.map
128868
+ //# sourceMappingURL=chunk-D3OXQKM5.js.map