@vm0/cli 9.122.5 → 9.122.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.
@@ -73642,7 +73642,7 @@ if (DSN) {
73642
73642
  init2({
73643
73643
  dsn: DSN,
73644
73644
  environment: process.env.SENTRY_ENVIRONMENT ?? "production",
73645
- release: "9.122.5",
73645
+ release: "9.122.7",
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.122.5",
73664
+ version: "9.122.7",
73665
73665
  command: process.argv.slice(2).join(" ")
73666
73666
  });
73667
73667
  setContext("runtime", {
@@ -91178,6 +91178,27 @@ var CONNECTOR_TYPES_DEF = {
91178
91178
  scopes: ["signature", "extended", "openid"]
91179
91179
  }
91180
91180
  },
91181
+ duffel: {
91182
+ label: "Duffel",
91183
+ environmentMapping: {
91184
+ DUFFEL_TOKEN: "$secrets.DUFFEL_TOKEN"
91185
+ },
91186
+ helpText: "Connect your Duffel account to search and book flights and stays (hotels) through the Duffel API",
91187
+ authMethods: {
91188
+ "api-token": {
91189
+ label: "Access Token",
91190
+ helpText: "1. Log in to the [Duffel dashboard](https://app.duffel.com)\n2. Click your organisation name, then **Developers > Access tokens**\n3. Click **New token**, give it a name, leave scope as **Read write**\n4. Click **Create token** and copy the value (format: `duffel_test_...` for test mode, `duffel_live_...` for live mode)",
91191
+ secrets: {
91192
+ DUFFEL_TOKEN: {
91193
+ label: "Access Token",
91194
+ required: true,
91195
+ placeholder: "duffel_test_..."
91196
+ }
91197
+ }
91198
+ }
91199
+ },
91200
+ defaultAuthMethod: "api-token"
91201
+ },
91181
91202
  dropbox: {
91182
91203
  label: "Dropbox",
91183
91204
  environmentMapping: {
@@ -91223,6 +91244,28 @@ var CONNECTOR_TYPES_DEF = {
91223
91244
  ]
91224
91245
  }
91225
91246
  },
91247
+ "dropbox-sign": {
91248
+ label: "Dropbox Sign",
91249
+ tags: ["hellosign", "e-signature", "signature", "sign", "document"],
91250
+ environmentMapping: {
91251
+ DROPBOX_SIGN_TOKEN: "$secrets.DROPBOX_SIGN_TOKEN"
91252
+ },
91253
+ helpText: "Connect your Dropbox Sign (formerly HelloSign) account to send, track, and download e-signature requests",
91254
+ authMethods: {
91255
+ "api-token": {
91256
+ label: "API Key",
91257
+ helpText: "1. Log in to [Dropbox Sign](https://sign.dropbox.com)\n2. Click **API** in the left sidebar and open the **API Dashboard**\n3. Click **Reveal key** for an existing key, or **Generate key** to create a new one\n4. Copy the 40-character hex key and paste it here\n\nTip: While developing, add `test_mode=1` to signature-request calls to avoid billing and real emails.",
91258
+ secrets: {
91259
+ DROPBOX_SIGN_TOKEN: {
91260
+ label: "API Key",
91261
+ required: true,
91262
+ placeholder: "40-character hex key"
91263
+ }
91264
+ }
91265
+ }
91266
+ },
91267
+ defaultAuthMethod: "api-token"
91268
+ },
91226
91269
  linear: {
91227
91270
  label: "Linear",
91228
91271
  tags: ["issues", "tickets", "project-management"],
@@ -91376,6 +91419,27 @@ var CONNECTOR_TYPES_DEF = {
91376
91419
  },
91377
91420
  defaultAuthMethod: "api-token"
91378
91421
  },
91422
+ klaviyo: {
91423
+ label: "Klaviyo",
91424
+ environmentMapping: {
91425
+ KLAVIYO_TOKEN: "$secrets.KLAVIYO_TOKEN"
91426
+ },
91427
+ helpText: "Connect your Klaviyo account to manage profiles, lists, events, subscriptions, and campaigns",
91428
+ authMethods: {
91429
+ "api-token": {
91430
+ label: "API Key",
91431
+ helpText: "1. Log in to [Klaviyo](https://www.klaviyo.com/)\n2. Go to **Account > Settings > API keys**\n3. Click **Create Private API Key**\n4. Grant the scopes your workflow needs (e.g. `profiles:write`, `lists:write`, `events:write`, `subscriptions:write`)\n5. Copy the key (format: `pk_...`)",
91432
+ secrets: {
91433
+ KLAVIYO_TOKEN: {
91434
+ label: "API Key",
91435
+ required: true,
91436
+ placeholder: "pk_..."
91437
+ }
91438
+ }
91439
+ }
91440
+ },
91441
+ defaultAuthMethod: "api-token"
91442
+ },
91379
91443
  kommo: {
91380
91444
  label: "Kommo",
91381
91445
  environmentMapping: {
@@ -93602,6 +93666,35 @@ var CONNECTOR_TYPES_DEF = {
93602
93666
  },
93603
93667
  defaultAuthMethod: "api-token"
93604
93668
  },
93669
+ shopify: {
93670
+ label: "Shopify",
93671
+ tags: ["ecommerce", "store", "products", "orders"],
93672
+ environmentMapping: {
93673
+ SHOPIFY_TOKEN: "$secrets.SHOPIFY_TOKEN",
93674
+ SHOPIFY_SHOP: "$vars.SHOPIFY_SHOP"
93675
+ },
93676
+ helpText: "Connect your Shopify store to manage products, orders, customers, and inventory through the Admin API",
93677
+ authMethods: {
93678
+ "api-token": {
93679
+ label: "API Key",
93680
+ helpText: "1. In your Shopify admin, go to **Settings \u2192 Apps and sales channels \u2192 Develop apps**\n2. Click **Create an app**, name it (e.g. `vm0`), and open it\n3. Under **Configuration \u2192 Admin API integration**, grant the scopes you need (e.g. `read_products`, `read_orders`)\n4. Click **Install app** and then **Reveal token once** \u2014 copy the Admin API access token (starts with `shpat_`)\n5. For the **Store subdomain** below, enter only the subdomain of your `.myshopify.com` URL (for `acme.myshopify.com` enter `acme`)",
93681
+ secrets: {
93682
+ SHOPIFY_TOKEN: {
93683
+ label: "Admin API Access Token",
93684
+ required: true,
93685
+ placeholder: "shpat_..."
93686
+ },
93687
+ SHOPIFY_SHOP: {
93688
+ label: "Store Subdomain",
93689
+ required: true,
93690
+ type: "variable",
93691
+ placeholder: "acme"
93692
+ }
93693
+ }
93694
+ }
93695
+ },
93696
+ defaultAuthMethod: "api-token"
93697
+ },
93605
93698
  shortio: {
93606
93699
  label: "Short.io",
93607
93700
  environmentMapping: {
@@ -94316,6 +94409,124 @@ var CONNECTOR_TYPES_DEF = {
94316
94409
  },
94317
94410
  defaultAuthMethod: "api-token"
94318
94411
  },
94412
+ buffer: {
94413
+ label: "Buffer",
94414
+ environmentMapping: {
94415
+ BUFFER_TOKEN: "$secrets.BUFFER_TOKEN"
94416
+ },
94417
+ helpText: "Connect your Buffer account to schedule, draft, and publish social media posts across your connected channels (Twitter/X, LinkedIn, Instagram, Facebook, TikTok, Threads, Bluesky, Mastodon, Pinterest, YouTube). **Note: Buffer's API is currently in beta.**",
94418
+ authMethods: {
94419
+ "api-token": {
94420
+ label: "API Key",
94421
+ helpText: "1. Log in to [Buffer](https://publish.buffer.com) and go to **Settings > Developer Dashboard** (you must be an **Org Owner** \u2014 paid accounts can create up to 5 keys; free accounts get 1).\n2. Click **Create API Key**, give it a name, and set an expiration if desired.\n3. Copy the key immediately \u2014 it's only shown once.\n4. Paste it here.\n\n**Note:** Buffer's API is currently in beta.",
94422
+ secrets: {
94423
+ BUFFER_TOKEN: {
94424
+ label: "API Key",
94425
+ required: true,
94426
+ placeholder: "Buffer personal API key"
94427
+ }
94428
+ }
94429
+ }
94430
+ },
94431
+ defaultAuthMethod: "api-token"
94432
+ },
94433
+ coda: {
94434
+ label: "Coda",
94435
+ environmentMapping: {
94436
+ CODA_TOKEN: "$secrets.CODA_TOKEN"
94437
+ },
94438
+ helpText: "Connect your Coda account to read and write docs, tables, rows, and pages",
94439
+ authMethods: {
94440
+ "api-token": {
94441
+ label: "API Token",
94442
+ helpText: "1. Open Coda and click your avatar (bottom left) then **Account Settings**\n2. Scroll to **API Settings**\n3. Click **Generate API Token**, give it a name, optionally restrict scope\n4. Copy the token and paste it here",
94443
+ secrets: {
94444
+ CODA_TOKEN: {
94445
+ label: "API Token",
94446
+ required: true,
94447
+ placeholder: "your-coda-api-token"
94448
+ }
94449
+ }
94450
+ }
94451
+ },
94452
+ defaultAuthMethod: "api-token"
94453
+ },
94454
+ miro: {
94455
+ label: "Miro",
94456
+ environmentMapping: {
94457
+ MIRO_TOKEN: "$secrets.MIRO_TOKEN"
94458
+ },
94459
+ helpText: "Connect your Miro account to create and manage boards, sticky notes, shapes, text, and other items on the visual collaboration whiteboard",
94460
+ authMethods: {
94461
+ "api-token": {
94462
+ label: "Access Token",
94463
+ helpText: "1. Go to [Miro App Settings](https://miro.com/app/settings/user-profile/apps) and click **Create new app**\n2. Fill in the app name and description\n3. **Important:** when asked about token expiration, select **Non-expiring access token** \u2014 this choice is permanent for the app\n4. On the app's page, open **Permissions** and check the scopes you need (e.g. `boards:read`, `boards:write`)\n5. Click **Install app and get OAuth token**, select your team, and copy the token\n6. Paste the token here",
94464
+ secrets: {
94465
+ MIRO_TOKEN: {
94466
+ label: "Access Token",
94467
+ required: true,
94468
+ placeholder: "non-expiring access token"
94469
+ }
94470
+ }
94471
+ }
94472
+ },
94473
+ defaultAuthMethod: "api-token"
94474
+ },
94475
+ mixpanel: {
94476
+ label: "Mixpanel",
94477
+ tags: ["analytics", "product-analytics", "events"],
94478
+ environmentMapping: {
94479
+ MIXPANEL_SERVICE_ACCOUNT_USERNAME: "$secrets.MIXPANEL_SERVICE_ACCOUNT_USERNAME",
94480
+ MIXPANEL_SERVICE_ACCOUNT_SECRET: "$secrets.MIXPANEL_SERVICE_ACCOUNT_SECRET",
94481
+ MIXPANEL_PROJECT_ID: "$vars.MIXPANEL_PROJECT_ID"
94482
+ },
94483
+ helpText: "Connect your Mixpanel project to query Insights, Funnels, JQL, raw event export, and ingest events via /import",
94484
+ authMethods: {
94485
+ "api-token": {
94486
+ label: "Service Account",
94487
+ helpText: "1. In Mixpanel, open **Organization Settings \u2192 Service Accounts** (or **Project Settings \u2192 Service Accounts**)\n2. Click **Add Service Account**, give it a name, and choose a role (minimum **Member**); optionally set an expiration\n3. Copy the **Username** and **Secret** immediately \u2014 the secret is only shown once\n4. Open **Project Settings \u2192 Overview \u2192 Access Keys** and copy your **Project ID**\n5. Paste all three values below",
94488
+ secrets: {
94489
+ MIXPANEL_SERVICE_ACCOUNT_USERNAME: {
94490
+ label: "Service Account Username",
94491
+ required: true,
94492
+ placeholder: "my-sa.12ab34"
94493
+ },
94494
+ MIXPANEL_SERVICE_ACCOUNT_SECRET: {
94495
+ label: "Service Account Secret",
94496
+ required: true
94497
+ },
94498
+ MIXPANEL_PROJECT_ID: {
94499
+ label: "Project ID",
94500
+ required: true,
94501
+ type: "variable",
94502
+ placeholder: "1234567"
94503
+ }
94504
+ }
94505
+ }
94506
+ },
94507
+ defaultAuthMethod: "api-token"
94508
+ },
94509
+ typeform: {
94510
+ label: "Typeform",
94511
+ environmentMapping: {
94512
+ TYPEFORM_TOKEN: "$secrets.TYPEFORM_TOKEN"
94513
+ },
94514
+ helpText: "Connect your Typeform account to create forms, fetch responses, and manage webhooks",
94515
+ authMethods: {
94516
+ "api-token": {
94517
+ label: "Personal Access Token",
94518
+ helpText: "1. Log in to [Typeform](https://admin.typeform.com)\n2. Open the account menu (top-right) and pick **Personal tokens**\n3. Click **Generate a new token**, name it, and choose the scopes you need (e.g. `forms:read`, `responses:read`, `webhooks:write`)\n4. Copy the token (format: `tfp_...`)",
94519
+ secrets: {
94520
+ TYPEFORM_TOKEN: {
94521
+ label: "Personal Access Token",
94522
+ required: true,
94523
+ placeholder: "tfp_..."
94524
+ }
94525
+ }
94526
+ }
94527
+ },
94528
+ defaultAuthMethod: "api-token"
94529
+ },
94319
94530
  "test-oauth": {
94320
94531
  label: "Test OAuth (internal)",
94321
94532
  featureFlag: "testOauthConnector" /* TestOauthConnector */,
@@ -94348,6 +94559,96 @@ var CONNECTOR_TYPES_DEF = {
94348
94559
  tokenUrl: "/api/test/oauth-provider/token",
94349
94560
  scopes: ["read"]
94350
94561
  }
94562
+ },
94563
+ pandadoc: {
94564
+ label: "PandaDoc",
94565
+ environmentMapping: {
94566
+ PANDADOC_TOKEN: "$secrets.PANDADOC_TOKEN"
94567
+ },
94568
+ helpText: "Connect your PandaDoc account to create, send, and manage contracts, proposals, quotes, and e-signature documents",
94569
+ authMethods: {
94570
+ "api-token": {
94571
+ label: "API Key",
94572
+ helpText: "1. In PandaDoc, go to **Settings > Integrations > API**\n2. Click **Generate Production Key** (requires an API-enabled plan) or **Generate Sandbox Key** for testing\n3. Copy the key and paste it here\n\nNote: Only Org Admins can generate keys. Sandbox keys work for free but signed documents have no legal validity.",
94573
+ secrets: {
94574
+ PANDADOC_TOKEN: {
94575
+ label: "API Key",
94576
+ required: true,
94577
+ placeholder: "your PandaDoc API key"
94578
+ }
94579
+ }
94580
+ }
94581
+ },
94582
+ defaultAuthMethod: "api-token"
94583
+ },
94584
+ greenhouse: {
94585
+ label: "Greenhouse",
94586
+ environmentMapping: {
94587
+ GREENHOUSE_TOKEN: "$secrets.GREENHOUSE_TOKEN"
94588
+ },
94589
+ helpText: "Connect your Greenhouse account to read candidates, applications, jobs, offers, and scheduled interviews, and to create candidates and activity-feed notes via the Harvest API. Note: Harvest v1/v2 will be deprecated on August 31, 2026 \u2014 migrate to OAuth v3 before that date.",
94590
+ authMethods: {
94591
+ "api-token": {
94592
+ label: "API Key",
94593
+ helpText: "1. In Greenhouse, click **Configure** (gear icon) \u2192 **Dev Center** (left sidebar)\n2. Click **API Credential Management** \u2192 **Create new API credentials**\n3. For **API type**, select **Harvest API** (v1/v2). For **Partner**, choose **Custom** (or **Unlisted vendor**). Description: **vm0**\n4. Select the endpoints you want this key to access (permission scoping)\n5. Click **View and store credentials** and copy the API key \u2014 it is only shown once\n6. Paste it here\n\n**Note:** Harvest v1/v2 will be deprecated on August 31, 2026; migrate to OAuth v3 before that date.",
94594
+ secrets: {
94595
+ GREENHOUSE_TOKEN: {
94596
+ label: "API Key",
94597
+ required: true,
94598
+ placeholder: "your-greenhouse-harvest-api-key"
94599
+ }
94600
+ }
94601
+ }
94602
+ },
94603
+ defaultAuthMethod: "api-token"
94604
+ },
94605
+ zoom: {
94606
+ label: "Zoom",
94607
+ environmentMapping: {
94608
+ ZOOM_TOKEN: "$secrets.ZOOM_ACCESS_TOKEN"
94609
+ },
94610
+ featureFlag: "zoomConnector" /* ZoomConnector */,
94611
+ helpText: "Connect your Zoom account to schedule meetings, manage cloud recordings, and access webinar and participant data",
94612
+ authMethods: {
94613
+ oauth: {
94614
+ label: "OAuth (Recommended)",
94615
+ helpText: "Sign in with Zoom to grant access.",
94616
+ secrets: {
94617
+ ZOOM_ACCESS_TOKEN: {
94618
+ label: "Access Token",
94619
+ required: true
94620
+ },
94621
+ ZOOM_REFRESH_TOKEN: {
94622
+ label: "Refresh Token",
94623
+ required: true
94624
+ }
94625
+ }
94626
+ }
94627
+ },
94628
+ defaultAuthMethod: "oauth",
94629
+ oauth: {
94630
+ authorizationUrl: "https://zoom.us/oauth/authorize",
94631
+ tokenUrl: "https://zoom.us/oauth/token",
94632
+ // Granular scopes (Zoom's "resource:action:target" format). Covers the
94633
+ // core read/write flows documented in the zoom skill: users, meetings,
94634
+ // past-meeting data, cloud recordings, and webinars.
94635
+ scopes: [
94636
+ "user:read:user",
94637
+ "meeting:read:list_meetings",
94638
+ "meeting:read:meeting",
94639
+ "meeting:write:meeting",
94640
+ "meeting:update:meeting",
94641
+ "meeting:delete:meeting",
94642
+ "meeting:update:status",
94643
+ "meeting:read:list_past_participants",
94644
+ "meeting:read:past_meeting",
94645
+ "cloud_recording:read:list_user_recordings",
94646
+ "cloud_recording:read:list_recording_files",
94647
+ "cloud_recording:read:recording",
94648
+ "webinar:read:list_webinars",
94649
+ "webinar:read:webinar"
94650
+ ]
94651
+ }
94351
94652
  }
94352
94653
  };
94353
94654
  var CONNECTOR_TYPES = CONNECTOR_TYPES_DEF;
@@ -95380,6 +95681,36 @@ var browserlessFirewall = {
95380
95681
  ]
95381
95682
  };
95382
95683
 
95684
+ // ../../packages/core/src/firewalls/buffer.generated.ts
95685
+ init_esm_shims();
95686
+ var bufferFirewall = {
95687
+ name: "buffer",
95688
+ description: "Buffer",
95689
+ placeholders: {
95690
+ BUFFER_TOKEN: "CoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocal000"
95691
+ },
95692
+ apis: [
95693
+ {
95694
+ base: "https://api.buffer.com",
95695
+ auth: {
95696
+ headers: {
95697
+ Authorization: "Bearer ${{ secrets.BUFFER_TOKEN }}"
95698
+ }
95699
+ },
95700
+ permissions: []
95701
+ },
95702
+ {
95703
+ base: "https://api.bufferapp.com",
95704
+ auth: {
95705
+ headers: {
95706
+ Authorization: "Bearer ${{ secrets.BUFFER_TOKEN }}"
95707
+ }
95708
+ },
95709
+ permissions: []
95710
+ }
95711
+ ]
95712
+ };
95713
+
95383
95714
  // ../../packages/core/src/firewalls/cal-com.generated.ts
95384
95715
  init_esm_shims();
95385
95716
  var calComFirewall = {
@@ -95527,6 +95858,27 @@ var cloudflareFirewall = {
95527
95858
  ]
95528
95859
  };
95529
95860
 
95861
+ // ../../packages/core/src/firewalls/coda.generated.ts
95862
+ init_esm_shims();
95863
+ var codaFirewall = {
95864
+ name: "coda",
95865
+ description: "Coda",
95866
+ placeholders: {
95867
+ CODA_TOKEN: "CoffeeSafeLocalCoffeeSafeLocalCoffeeSafe"
95868
+ },
95869
+ apis: [
95870
+ {
95871
+ base: "https://coda.io",
95872
+ auth: {
95873
+ headers: {
95874
+ Authorization: "Bearer ${{ secrets.CODA_TOKEN }}"
95875
+ }
95876
+ },
95877
+ permissions: []
95878
+ }
95879
+ ]
95880
+ };
95881
+
95530
95882
  // ../../packages/core/src/firewalls/cronlytic.generated.ts
95531
95883
  init_esm_shims();
95532
95884
  var cronlyticFirewall = {
@@ -96982,6 +97334,48 @@ var dropboxFirewall = {
96982
97334
  ]
96983
97335
  };
96984
97336
 
97337
+ // ../../packages/core/src/firewalls/dropbox-sign.generated.ts
97338
+ init_esm_shims();
97339
+ var dropboxSignFirewall = {
97340
+ name: "dropbox-sign",
97341
+ description: "Dropbox Sign (HelloSign) e-signature API",
97342
+ placeholders: {
97343
+ DROPBOX_SIGN_TOKEN: "c0ffee5afe10ca1c0ffee5afe10ca1c0ffee5afe"
97344
+ },
97345
+ apis: [
97346
+ {
97347
+ base: "https://api.hellosign.com",
97348
+ auth: {
97349
+ headers: {
97350
+ Authorization: "${{ basic(secrets.DROPBOX_SIGN_TOKEN, ) }}"
97351
+ }
97352
+ },
97353
+ permissions: []
97354
+ }
97355
+ ]
97356
+ };
97357
+
97358
+ // ../../packages/core/src/firewalls/duffel.generated.ts
97359
+ init_esm_shims();
97360
+ var duffelFirewall = {
97361
+ name: "duffel",
97362
+ description: "Duffel",
97363
+ placeholders: {
97364
+ DUFFEL_TOKEN: "duffel_test_CoffeeSafeLocalCoffeeSafeLocalCoffeeSa"
97365
+ },
97366
+ apis: [
97367
+ {
97368
+ base: "https://api.duffel.com",
97369
+ auth: {
97370
+ headers: {
97371
+ Authorization: "Bearer ${{ secrets.DUFFEL_TOKEN }}"
97372
+ }
97373
+ },
97374
+ permissions: []
97375
+ }
97376
+ ]
97377
+ };
97378
+
96985
97379
  // ../../packages/core/src/firewalls/elevenlabs.generated.ts
96986
97380
  init_esm_shims();
96987
97381
  var elevenlabsFirewall = {
@@ -98704,6 +99098,27 @@ var granolaFirewall = {
98704
99098
  ]
98705
99099
  };
98706
99100
 
99101
+ // ../../packages/core/src/firewalls/greenhouse.generated.ts
99102
+ init_esm_shims();
99103
+ var greenhouseFirewall = {
99104
+ name: "greenhouse",
99105
+ description: "Greenhouse Harvest API",
99106
+ placeholders: {
99107
+ GREENHOUSE_TOKEN: "CoffeeSafeLocalCoffeeSafeLocalCoffeeSa"
99108
+ },
99109
+ apis: [
99110
+ {
99111
+ base: "https://harvest.greenhouse.io",
99112
+ auth: {
99113
+ headers: {
99114
+ Authorization: "${{ basic(secrets.GREENHOUSE_TOKEN, ) }}"
99115
+ }
99116
+ },
99117
+ permissions: []
99118
+ }
99119
+ ]
99120
+ };
99121
+
98707
99122
  // ../../packages/core/src/firewalls/heygen.generated.ts
98708
99123
  init_esm_shims();
98709
99124
  var heygenFirewall = {
@@ -99022,6 +99437,27 @@ var jotformFirewall = {
99022
99437
  ]
99023
99438
  };
99024
99439
 
99440
+ // ../../packages/core/src/firewalls/klaviyo.generated.ts
99441
+ init_esm_shims();
99442
+ var klaviyoFirewall = {
99443
+ name: "klaviyo",
99444
+ description: "Klaviyo",
99445
+ placeholders: {
99446
+ KLAVIYO_TOKEN: "pk_CoffeeSafeLocalCoffeeSafeLocalCoff"
99447
+ },
99448
+ apis: [
99449
+ {
99450
+ base: "https://a.klaviyo.com",
99451
+ auth: {
99452
+ headers: {
99453
+ Authorization: "Klaviyo-API-Key ${{ secrets.KLAVIYO_TOKEN }}"
99454
+ }
99455
+ },
99456
+ permissions: []
99457
+ }
99458
+ ]
99459
+ };
99460
+
99025
99461
  // ../../packages/core/src/firewalls/kommo.generated.ts
99026
99462
  init_esm_shims();
99027
99463
  var kommoFirewall = {
@@ -99358,6 +99794,67 @@ var minimaxFirewall = {
99358
99794
  ]
99359
99795
  };
99360
99796
 
99797
+ // ../../packages/core/src/firewalls/miro.generated.ts
99798
+ init_esm_shims();
99799
+ var miroFirewall = {
99800
+ name: "miro",
99801
+ description: "Miro",
99802
+ placeholders: {
99803
+ MIRO_TOKEN: "CoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocal"
99804
+ },
99805
+ apis: [
99806
+ {
99807
+ base: "https://api.miro.com",
99808
+ auth: {
99809
+ headers: {
99810
+ Authorization: "Bearer ${{ secrets.MIRO_TOKEN }}"
99811
+ }
99812
+ },
99813
+ permissions: []
99814
+ }
99815
+ ]
99816
+ };
99817
+
99818
+ // ../../packages/core/src/firewalls/mixpanel.generated.ts
99819
+ init_esm_shims();
99820
+ var mixpanelFirewall = {
99821
+ name: "mixpanel",
99822
+ description: "Mixpanel product analytics API",
99823
+ placeholders: {
99824
+ MIXPANEL_SERVICE_ACCOUNT_USERNAME: "CoffeeSafeLocalCoffe",
99825
+ MIXPANEL_SERVICE_ACCOUNT_SECRET: "CoffeeSafeLocalCoffeeSafeLocalCo"
99826
+ },
99827
+ apis: [
99828
+ {
99829
+ base: "https://mixpanel.com",
99830
+ auth: {
99831
+ headers: {
99832
+ Authorization: "${{ basic(secrets.MIXPANEL_SERVICE_ACCOUNT_USERNAME, secrets.MIXPANEL_SERVICE_ACCOUNT_SECRET) }}"
99833
+ }
99834
+ },
99835
+ permissions: []
99836
+ },
99837
+ {
99838
+ base: "https://data.mixpanel.com",
99839
+ auth: {
99840
+ headers: {
99841
+ Authorization: "${{ basic(secrets.MIXPANEL_SERVICE_ACCOUNT_USERNAME, secrets.MIXPANEL_SERVICE_ACCOUNT_SECRET) }}"
99842
+ }
99843
+ },
99844
+ permissions: []
99845
+ },
99846
+ {
99847
+ base: "https://api.mixpanel.com",
99848
+ auth: {
99849
+ headers: {
99850
+ Authorization: "${{ basic(secrets.MIXPANEL_SERVICE_ACCOUNT_USERNAME, secrets.MIXPANEL_SERVICE_ACCOUNT_SECRET) }}"
99851
+ }
99852
+ },
99853
+ permissions: []
99854
+ }
99855
+ ]
99856
+ };
99857
+
99361
99858
  // ../../packages/core/src/firewalls/monday.generated.ts
99362
99859
  init_esm_shims();
99363
99860
  var mondayFirewall = {
@@ -99583,6 +100080,27 @@ var outlookMailFirewall = {
99583
100080
  ]
99584
100081
  };
99585
100082
 
100083
+ // ../../packages/core/src/firewalls/pandadoc.generated.ts
100084
+ init_esm_shims();
100085
+ var pandadocFirewall = {
100086
+ name: "pandadoc",
100087
+ description: "PandaDoc Public API",
100088
+ placeholders: {
100089
+ PANDADOC_TOKEN: "CoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoff"
100090
+ },
100091
+ apis: [
100092
+ {
100093
+ base: "https://api.pandadoc.com",
100094
+ auth: {
100095
+ headers: {
100096
+ Authorization: "API-Key ${{ secrets.PANDADOC_TOKEN }}"
100097
+ }
100098
+ },
100099
+ permissions: []
100100
+ }
100101
+ ]
100102
+ };
100103
+
99586
100104
  // ../../packages/core/src/firewalls/pdf4me.generated.ts
99587
100105
  init_esm_shims();
99588
100106
  var pdf4meFirewall = {
@@ -100731,6 +101249,27 @@ var serpapiFirewall = {
100731
101249
  ]
100732
101250
  };
100733
101251
 
101252
+ // ../../packages/core/src/firewalls/shopify.generated.ts
101253
+ init_esm_shims();
101254
+ var shopifyFirewall = {
101255
+ name: "shopify",
101256
+ description: "Shopify Admin API",
101257
+ placeholders: {
101258
+ SHOPIFY_TOKEN: "shpat_CoffeeSafeLocalCoffeeSafeLocalCo"
101259
+ },
101260
+ apis: [
101261
+ {
101262
+ base: "https://${{ vars.SHOPIFY_SHOP }}.myshopify.com",
101263
+ auth: {
101264
+ headers: {
101265
+ "X-Shopify-Access-Token": "${{ secrets.SHOPIFY_TOKEN }}"
101266
+ }
101267
+ },
101268
+ permissions: []
101269
+ }
101270
+ ]
101271
+ };
101272
+
100734
101273
  // ../../packages/core/src/firewalls/shortio.generated.ts
100735
101274
  init_esm_shims();
100736
101275
  var shortioFirewall = {
@@ -101136,6 +101675,27 @@ var twentyFirewall = {
101136
101675
  ]
101137
101676
  };
101138
101677
 
101678
+ // ../../packages/core/src/firewalls/typeform.generated.ts
101679
+ init_esm_shims();
101680
+ var typeformFirewall = {
101681
+ name: "typeform",
101682
+ description: "Typeform API",
101683
+ placeholders: {
101684
+ TYPEFORM_TOKEN: "tfp_c0ffee5afe10ca1c0ffee5afe10ca1c0ffee5afe"
101685
+ },
101686
+ apis: [
101687
+ {
101688
+ base: "https://api.typeform.com",
101689
+ auth: {
101690
+ headers: {
101691
+ Authorization: "Bearer ${{ secrets.TYPEFORM_TOKEN }}"
101692
+ }
101693
+ },
101694
+ permissions: []
101695
+ }
101696
+ ]
101697
+ };
101698
+
101139
101699
  // ../../packages/core/src/firewalls/v0.generated.ts
101140
101700
  init_esm_shims();
101141
101701
  var v0Firewall = {
@@ -102977,6 +103537,27 @@ var zeptomailFirewall = {
102977
103537
  ]
102978
103538
  };
102979
103539
 
103540
+ // ../../packages/core/src/firewalls/zoom.generated.ts
103541
+ init_esm_shims();
103542
+ var zoomFirewall = {
103543
+ name: "zoom",
103544
+ description: "Zoom API",
103545
+ placeholders: {
103546
+ ZOOM_TOKEN: "CoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocal"
103547
+ },
103548
+ apis: [
103549
+ {
103550
+ base: "https://api.zoom.us",
103551
+ auth: {
103552
+ headers: {
103553
+ Authorization: "Bearer ${{ secrets.ZOOM_TOKEN }}"
103554
+ }
103555
+ },
103556
+ permissions: []
103557
+ }
103558
+ ]
103559
+ };
103560
+
102980
103561
  // ../../packages/core/src/firewalls/index.ts
102981
103562
  var CONNECTOR_FIREWALLS = {
102982
103563
  agentmail: agentmailFirewall,
@@ -102996,6 +103577,7 @@ var CONNECTOR_FIREWALLS = {
102996
103577
  "bright-data": brightDataFirewall,
102997
103578
  browserbase: browserbaseFirewall,
102998
103579
  browserless: browserlessFirewall,
103580
+ buffer: bufferFirewall,
102999
103581
  "cal-com": calComFirewall,
103000
103582
  calendly: calendlyFirewall,
103001
103583
  canva: canvaFirewall,
@@ -103003,6 +103585,7 @@ var CONNECTOR_FIREWALLS = {
103003
103585
  clickup: clickupFirewall,
103004
103586
  close: closeFirewall,
103005
103587
  cloudflare: cloudflareFirewall,
103588
+ coda: codaFirewall,
103006
103589
  cronlytic: cronlyticFirewall,
103007
103590
  "customer-io": customerIoFirewall,
103008
103591
  deel: deelFirewall,
@@ -103017,6 +103600,8 @@ var CONNECTOR_FIREWALLS = {
103017
103600
  db9: db9Firewall,
103018
103601
  drive9: drive9Firewall,
103019
103602
  dropbox: dropboxFirewall,
103603
+ "dropbox-sign": dropboxSignFirewall,
103604
+ duffel: duffelFirewall,
103020
103605
  elevenlabs: elevenlabsFirewall,
103021
103606
  explorium: exploriumFirewall,
103022
103607
  fal: falFirewall,
@@ -103034,6 +103619,7 @@ var CONNECTOR_FIREWALLS = {
103034
103619
  "google-meet": googleMeetFirewall,
103035
103620
  "google-sheets": googleSheetsFirewall,
103036
103621
  granola: granolaFirewall,
103622
+ greenhouse: greenhouseFirewall,
103037
103623
  heygen: heygenFirewall,
103038
103624
  htmlcsstoimage: htmlcsstoimageFirewall,
103039
103625
  hubspot: hubspotFirewall,
@@ -103047,6 +103633,7 @@ var CONNECTOR_FIREWALLS = {
103047
103633
  jam: jamFirewall,
103048
103634
  jira: jiraFirewall,
103049
103635
  jotform: jotformFirewall,
103636
+ klaviyo: klaviyoFirewall,
103050
103637
  kommo: kommoFirewall,
103051
103638
  lark: larkFirewall,
103052
103639
  line: lineFirewall,
@@ -103060,6 +103647,8 @@ var CONNECTOR_FIREWALLS = {
103060
103647
  metabase: metabaseFirewall,
103061
103648
  "meta-ads": metaAdsFirewall,
103062
103649
  minimax: minimaxFirewall,
103650
+ miro: miroFirewall,
103651
+ mixpanel: mixpanelFirewall,
103063
103652
  monday: mondayFirewall,
103064
103653
  msg9: msg9Firewall,
103065
103654
  neon: neonFirewall,
@@ -103067,6 +103656,7 @@ var CONNECTOR_FIREWALLS = {
103067
103656
  openai: openaiFirewall,
103068
103657
  "outlook-calendar": outlookCalendarFirewall,
103069
103658
  "outlook-mail": outlookMailFirewall,
103659
+ pandadoc: pandadocFirewall,
103070
103660
  pdf4me: pdf4meFirewall,
103071
103661
  pdfco: pdfcoFirewall,
103072
103662
  pdforge: pdforgeFirewall,
@@ -103089,6 +103679,7 @@ var CONNECTOR_FIREWALLS = {
103089
103679
  scrapeninja: scrapeninjaFirewall,
103090
103680
  sentry: sentryFirewall,
103091
103681
  serpapi: serpapiFirewall,
103682
+ shopify: shopifyFirewall,
103092
103683
  shortio: shortioFirewall,
103093
103684
  similarweb: similarwebFirewall,
103094
103685
  slack: slackFirewall,
@@ -103105,6 +103696,7 @@ var CONNECTOR_FIREWALLS = {
103105
103696
  tldv: tldvFirewall,
103106
103697
  todoist: todoistFirewall,
103107
103698
  twenty: twentyFirewall,
103699
+ typeform: typeformFirewall,
103108
103700
  v0: v0Firewall,
103109
103701
  vercel: vercelFirewall,
103110
103702
  webflow: webflowFirewall,
@@ -103116,7 +103708,8 @@ var CONNECTOR_FIREWALLS = {
103116
103708
  zapier: zapierFirewall,
103117
103709
  zapsign: zapsignFirewall,
103118
103710
  zendesk: zendeskFirewall,
103119
- zeptomail: zeptomailFirewall
103711
+ zeptomail: zeptomailFirewall,
103712
+ zoom: zoomFirewall
103120
103713
  };
103121
103714
  function expandPlaceholders(firewall, connectorType) {
103122
103715
  if (!firewall.placeholders) return firewall;
@@ -110086,6 +110679,23 @@ var chatThreadByIdContract = c11.router({
110086
110679
  body: c11.noBody()
110087
110680
  }
110088
110681
  });
110682
+ var chatThreadMarkReadContract = c11.router({
110683
+ markRead: {
110684
+ method: "POST",
110685
+ path: "/api/zero/chat-threads/:id/mark-read",
110686
+ headers: authHeadersSchema,
110687
+ pathParams: external_exports.object({ id: external_exports.string() }),
110688
+ body: external_exports.object({
110689
+ cursor: external_exports.string().datetime().optional()
110690
+ }),
110691
+ responses: {
110692
+ 200: external_exports.object({ lastReadAt: external_exports.string() }),
110693
+ 401: apiErrorSchema,
110694
+ 404: apiErrorSchema
110695
+ },
110696
+ summary: "Mark a chat thread as read up to the given cursor"
110697
+ }
110698
+ });
110089
110699
  var chatMessagesContract = c11.router({
110090
110700
  send: {
110091
110701
  method: "POST",
@@ -113752,8 +114362,7 @@ var FEATURE_SWITCHES = {
113752
114362
  ["usageAnalytics" /* UsageAnalytics */]: {
113753
114363
  maintainer: "ethan@vm0.ai",
113754
114364
  description: "Show admin-only daily credits chart and per-run records on Usage page",
113755
- enabled: false,
113756
- enabledOrgIdHashes: STAFF_ORG_ID_HASHES
114365
+ enabled: false
113757
114366
  },
113758
114367
  ["modelDetail" /* ModelDetail */]: {
113759
114368
  maintainer: "ethan@vm0.ai",
@@ -113773,44 +114382,37 @@ var FEATURE_SWITCHES = {
113773
114382
  ["computerUse" /* ComputerUse */]: {
113774
114383
  maintainer: "ethan@vm0.ai",
113775
114384
  description: "Enable remote desktop host registration",
113776
- enabled: false,
113777
- enabledOrgIdHashes: STAFF_ORG_ID_HASHES
114385
+ enabled: false
113778
114386
  },
113779
114387
  ["lab" /* Lab */]: {
113780
114388
  maintainer: "ethan@vm0.ai",
113781
114389
  description: "Show the Lab page for toggling experimental features",
113782
- enabled: false,
113783
- enabledOrgIdHashes: STAFF_ORG_ID_HASHES
114390
+ enabled: false
113784
114391
  },
113785
114392
  ["auditLink" /* AuditLink */]: {
113786
114393
  maintainer: "ethan@vm0.ai",
113787
114394
  description: "Show audit log links in Slack messages",
113788
- enabled: false,
113789
- enabledOrgIdHashes: STAFF_ORG_ID_HASHES
114395
+ enabled: false
113790
114396
  },
113791
114397
  ["phoneIntegration" /* PhoneIntegration */]: {
113792
114398
  maintainer: "ethan@vm0.ai",
113793
114399
  description: "Show the Phone page for voice call integration",
113794
- enabled: false,
113795
- enabledOrgIdHashes: STAFF_ORG_ID_HASHES
114400
+ enabled: false
113796
114401
  },
113797
114402
  ["voiceChat" /* VoiceChat */]: {
113798
114403
  maintainer: "lancy@vm0.ai",
113799
114404
  description: "Enable the Voice Chat feature and API endpoints",
113800
- enabled: false,
113801
- enabledOrgIdHashes: STAFF_ORG_ID_HASHES
114405
+ enabled: false
113802
114406
  },
113803
114407
  ["audioIO" /* AudioIO */]: {
113804
114408
  maintainer: "lancy@vm0.ai",
113805
114409
  description: "Enable audio input/output features in chat (TTS read-aloud, auto-read, voice input)",
113806
- enabled: false,
113807
- enabledOrgIdHashes: STAFF_ORG_ID_HASHES
114410
+ enabled: false
113808
114411
  },
113809
114412
  ["missionControlSidebar" /* MissionControlSidebar */]: {
113810
114413
  maintainer: "ethan@vm0.ai",
113811
114414
  description: "Show the Mission Control page entry in the sidebar",
113812
- enabled: false,
113813
- enabledOrgIdHashes: STAFF_ORG_ID_HASHES
114415
+ enabled: false
113814
114416
  },
113815
114417
  ["autoSkill" /* AutoSkill */]: {
113816
114418
  maintainer: "lancy@vm0.ai",
@@ -113826,8 +114428,7 @@ var FEATURE_SWITCHES = {
113826
114428
  ["scheduleRunHistory" /* ScheduleRunHistory */]: {
113827
114429
  maintainer: "linghan@vm0.ai",
113828
114430
  description: "Show Run History tab on schedules page and Chat-from-schedule button on activity detail",
113829
- enabled: false,
113830
- enabledOrgIdHashes: STAFF_ORG_ID_HASHES
114431
+ enabled: false
113831
114432
  },
113832
114433
  ["testOauthConnector" /* TestOauthConnector */]: {
113833
114434
  maintainer: "liangyou@vm0.ai",
@@ -113837,20 +114438,27 @@ var FEATURE_SWITCHES = {
113837
114438
  ["chatHeaderNewButton" /* ChatHeaderNewButton */]: {
113838
114439
  maintainer: "ethan@vm0.ai",
113839
114440
  description: "Replace the Invite people button in the agent chat page header with a New button that creates a new chat thread",
113840
- enabled: false,
113841
- enabledOrgIdHashes: STAFF_ORG_ID_HASHES
114441
+ enabled: false
114442
+ },
114443
+ ["chatThreadReadIndicator" /* ChatThreadReadIndicator */]: {
114444
+ maintainer: "ethan@vm0.ai",
114445
+ description: "Show the unread watermark dot and bold title for chat threads with unread messages in the sidebar",
114446
+ enabled: false
113842
114447
  },
113843
114448
  ["inlineThinkingDot" /* InlineThinkingDot */]: {
113844
114449
  maintainer: "ethan@vm0.ai",
113845
114450
  description: "Show an inline streaming cursor on the last assistant message while the agent run is still active, so users see the agent is still working even after it has produced output",
113846
- enabled: false,
113847
- enabledOrgIdHashes: STAFF_ORG_ID_HASHES
114451
+ enabled: false
114452
+ },
114453
+ ["zoomConnector" /* ZoomConnector */]: {
114454
+ maintainer: "ethan@vm0.ai",
114455
+ description: "Enable the Zoom connector (OAuth 2.0) for meetings, past participants, and cloud recordings access",
114456
+ enabled: false
113848
114457
  },
113849
114458
  ["slackAgentSwitch" /* SlackAgentSwitch */]: {
113850
114459
  maintainer: "yuma@vm0.ai",
113851
114460
  description: "Per-user agent override in the org-aware Slack app. When enabled for an org, members can choose which agent replies to their Slack mentions / DMs via `/zero switch` (opens an agent picker modal) or the Switch button on the App Home tab. The help text for `/zero help` also lists the switch subcommand. Selecting an alternate agent persists a row in `slack_user_agent_preferences` so the preference follows the user across every Slack workspace joined under the same org, and subsequent mention / DM replies from a non-default agent carry a `Sent via <agent>` footer so it's clear which agent produced the reply. When gated off, the modal, slash subcommand, App Home button, and help line are hidden AND any existing DB preferences are ignored at read time \u2014 every user falls back to the org default agent with no footer. Staff-only during the rollout window defined by `enabledOrgIdHashes`.",
113852
- enabled: false,
113853
- enabledOrgIdHashes: STAFF_ORG_ID_HASHES
114461
+ enabled: false
113854
114462
  }
113855
114463
  };
113856
114464
  function isFeatureEnabled(key, ctx) {
@@ -116321,4 +116929,4 @@ undici/lib/web/fetch/body.js:
116321
116929
  undici/lib/web/websocket/frame.js:
116322
116930
  (*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
116323
116931
  */
116324
- //# sourceMappingURL=chunk-SOU6CTAX.js.map
116932
+ //# sourceMappingURL=chunk-66W3R25L.js.map