@vm0/cli 9.95.1 → 9.96.1

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.
@@ -49,7 +49,7 @@ if (DSN) {
49
49
  Sentry.init({
50
50
  dsn: DSN,
51
51
  environment: process.env.SENTRY_ENVIRONMENT ?? "production",
52
- release: "9.95.1",
52
+ release: "9.96.1",
53
53
  sendDefaultPii: false,
54
54
  tracesSampleRate: 0,
55
55
  shutdownTimeout: 500,
@@ -68,7 +68,7 @@ if (DSN) {
68
68
  }
69
69
  });
70
70
  Sentry.setContext("cli", {
71
- version: "9.95.1",
71
+ version: "9.96.1",
72
72
  command: process.argv.slice(2).join(" ")
73
73
  });
74
74
  Sentry.setContext("runtime", {
@@ -3203,6 +3203,7 @@ var CONNECTOR_TYPES_DEF = {
3203
3203
  },
3204
3204
  "api-token": {
3205
3205
  label: "API Token",
3206
+ helpText: "1. Log in to [Ahrefs](https://ahrefs.com) as a workspace owner or admin\n2. Go to **Account settings > API keys**\n3. Create a new API key\n4. Copy the API key and use it in the `Authorization: Bearer <YOUR_API_KEY>` header",
3206
3207
  secrets: {
3207
3208
  AHREFS_TOKEN: {
3208
3209
  label: "API Token",
@@ -3569,6 +3570,7 @@ var CONNECTOR_TYPES_DEF = {
3569
3570
  authMethods: {
3570
3571
  "api-token": {
3571
3572
  label: "API Key",
3573
+ helpText: "1. Log in to [HeyGen](https://app.heygen.com)\n2. Navigate to **Settings > API > API token**\n3. Click to generate your API key\n4. Copy and save the key immediately \u2014 you cannot retrieve it after leaving the page, and regenerating a new key will invalidate the previous one",
3572
3574
  secrets: {
3573
3575
  HEYGEN_TOKEN: {
3574
3576
  label: "API Key",
@@ -3772,6 +3774,7 @@ var CONNECTOR_TYPES_DEF = {
3772
3774
  },
3773
3775
  "api-token": {
3774
3776
  label: "Access Token",
3777
+ helpText: "1. Go to the [Dropbox App Console](https://www.dropbox.com/developers/apps)\n2. Select your app (or create a new one)\n3. Click the button to generate an access token for your own account\n4. Copy the generated OAuth 2 access token",
3775
3778
  secrets: {
3776
3779
  DROPBOX_TOKEN: {
3777
3780
  label: "Access Token",
@@ -3836,6 +3839,7 @@ var CONNECTOR_TYPES_DEF = {
3836
3839
  authMethods: {
3837
3840
  "api-token": {
3838
3841
  label: "Access Token",
3842
+ helpText: "1. Sign up at the [Intercom Developer Hub](https://app.intercom.com/admins/sign_up/developer) on your Intercom workspace\n2. Create a new app in the Developer Hub\n3. Navigate to **Configure > Authentication** within your app in the [Developer Hub](https://app.intercom.io/a/apps/_/developer-hub/app-packages)\n4. Copy your access token",
3839
3843
  secrets: {
3840
3844
  INTERCOM_TOKEN: {
3841
3845
  label: "Access Token",
@@ -3855,6 +3859,7 @@ var CONNECTOR_TYPES_DEF = {
3855
3859
  authMethods: {
3856
3860
  "api-token": {
3857
3861
  label: "API Key",
3862
+ helpText: "1. Log in to [Instantly](https://app.instantly.ai)\n2. Navigate to **Settings > Integrations** at https://app.instantly.ai/app/settings/integrations\n3. Click the **API Keys** section in the left sidebar\n4. Click the **Create API Key** button\n5. Enter a name for the API key\n6. Select the scopes (permissions) you want the API key to have\n7. Click **Create**\n8. Copy the key and store it in a secure place (it will only be displayed once)",
3858
3863
  secrets: {
3859
3864
  INSTANTLY_API_KEY: {
3860
3865
  label: "API Key",
@@ -3875,6 +3880,7 @@ var CONNECTOR_TYPES_DEF = {
3875
3880
  authMethods: {
3876
3881
  "api-token": {
3877
3882
  label: "Personal Access Token",
3883
+ helpText: '1. Log in to [Jam](https://jam.dev)\n2. Go to **Settings > Integrations > AI Agents**\n3. Scroll down to the **Personal Access Tokens** section\n4. Click **Create token**\n5. Enter a name for the token (e.g., "Cursor" or "Claude Code")\n6. Choose an expiration period (7 days, 30 days, 90 days, or 1 year)\n7. Select at least one scope (`mcp:read` for viewing or `mcp:write` for editing)\n8. Click **Create**\n9. Copy the token immediately (it will not be displayed again)',
3878
3884
  secrets: {
3879
3885
  JAM_TOKEN: {
3880
3886
  label: "Personal Access Token",
@@ -3897,6 +3903,7 @@ var CONNECTOR_TYPES_DEF = {
3897
3903
  authMethods: {
3898
3904
  "api-token": {
3899
3905
  label: "API Token",
3906
+ helpText: "1. Go to [Atlassian API token management](https://id.atlassian.com/manage-profile/security/api-tokens)\n2. Log in to your Atlassian account\n3. Click **Create API token**\n4. Enter a name that describes what the token is for\n5. Choose an expiration date (between 1 and 365 days)\n6. Click **Create**\n7. Click **Copy to clipboard** and save the token in a secure place (you cannot recover it later)",
3900
3907
  secrets: {
3901
3908
  JIRA_API_TOKEN: {
3902
3909
  label: "API Token",
@@ -3949,6 +3956,7 @@ var CONNECTOR_TYPES_DEF = {
3949
3956
  authMethods: {
3950
3957
  "api-token": {
3951
3958
  label: "API Key",
3959
+ helpText: "1. Log in to [Kommo](https://www.kommo.com) and create a **private integration**\n2. Go to the **Keys and Scopes** tab in your private integration settings\n3. Click **Generate long-lived token**\n4. Set the token expiration date (from 1 day to 5 years)\n5. Copy and save the token immediately (it will only be displayed once)",
3952
3960
  secrets: {
3953
3961
  KOMMO_API_KEY: {
3954
3962
  label: "API Key",
@@ -4015,6 +4023,7 @@ var CONNECTOR_TYPES_DEF = {
4015
4023
  authMethods: {
4016
4024
  "api-token": {
4017
4025
  label: "API Token",
4026
+ helpText: "1. Log in to [Make](https://www.make.com)\n2. Click your **avatar** at the bottom-left corner\n3. Select **Profile**, then open the **API** tab\n4. Click **Add token**\n5. Enter a **Label** (custom name to identify the token)\n6. Select the required **Scopes** (permissions)\n7. Click **Save**\n8. Copy the token and store it in a safe place (it will be hidden once you leave the page)",
4018
4027
  secrets: {
4019
4028
  MAKE_TOKEN: {
4020
4029
  label: "API Token",
@@ -4076,6 +4085,7 @@ var CONNECTOR_TYPES_DEF = {
4076
4085
  },
4077
4086
  "api-token": {
4078
4087
  label: "API Token",
4088
+ helpText: "1. Create a [Deel](https://app.deel.com) account and verify your email\n2. Navigate to the **Developer Center**\n3. Select the **API Sandbox** tab (or **Production** for live credentials)\n4. Click **Create Sandbox** and enter a unique email and password\n5. Click **Confirm** to finalize sandbox creation\n6. Locate your **API Key / Access Token** in the Developer Center\n7. Copy and store the token securely",
4079
4089
  secrets: {
4080
4090
  DEEL_TOKEN: {
4081
4091
  label: "API Token",
@@ -4109,6 +4119,7 @@ var CONNECTOR_TYPES_DEF = {
4109
4119
  authMethods: {
4110
4120
  "api-token": {
4111
4121
  label: "API Key",
4122
+ helpText: "1. Go to the [DeepSeek Platform](https://platform.deepseek.com/api_keys)\n2. Sign up for an account or log in\n3. Navigate to the **API Keys** page\n4. Create a new API key and copy it",
4112
4123
  secrets: {
4113
4124
  DEEPSEEK_TOKEN: {
4114
4125
  label: "API Key",
@@ -4129,6 +4140,7 @@ var CONNECTOR_TYPES_DEF = {
4129
4140
  authMethods: {
4130
4141
  "api-token": {
4131
4142
  label: "API Token",
4143
+ helpText: "1. Log in to [ClickUp](https://app.clickup.com)\n2. Click your avatar in the upper-right corner and select **Settings**\n3. In the sidebar, click **Apps** (or visit [app.clickup.com/settings/apps](https://app.clickup.com/settings/apps))\n4. Under the **API Token** section, click **Generate** (or **Regenerate** if you already have one)\n5. Click **Copy** to copy the personal token (tokens start with `pk_` and never expire)",
4132
4144
  secrets: {
4133
4145
  CLICKUP_TOKEN: {
4134
4146
  label: "API Token",
@@ -4202,6 +4214,7 @@ var CONNECTOR_TYPES_DEF = {
4202
4214
  authMethods: {
4203
4215
  "api-token": {
4204
4216
  label: "API Key",
4217
+ helpText: "1. Log in to the [Cronlytic dashboard](https://www.cronlytic.com/dashboard)\n2. Go to the **API Keys** section\n3. Click **Generate New API Key**\n4. Copy your **API Key** and **User ID** (both are required for authentication via `X-API-Key` and `X-User-ID` headers)",
4205
4218
  secrets: {
4206
4219
  CRONLYTIC_API_KEY: {
4207
4220
  label: "API Key",
@@ -4226,6 +4239,7 @@ var CONNECTOR_TYPES_DEF = {
4226
4239
  authMethods: {
4227
4240
  "api-token": {
4228
4241
  label: "API Token",
4242
+ helpText: "1. Log in to your [Customer.io](https://fly.customer.io) account\n2. Go to **Account Settings > [API Credentials](https://fly.customer.io/settings/api_credentials)**\n3. Locate your **Site ID** and **API Key** on the Track API Keys page\n4. Copy both values (they are used together as basic authentication credentials in the format `site_id:api_key`, Base64-encoded)",
4229
4243
  secrets: {
4230
4244
  CUSTOMERIO_APP_TOKEN: {
4231
4245
  label: "App API Key",
@@ -4245,6 +4259,7 @@ var CONNECTOR_TYPES_DEF = {
4245
4259
  authMethods: {
4246
4260
  "api-token": {
4247
4261
  label: "API Key",
4262
+ helpText: "1. Log in to [Dify](https://cloud.dify.ai)\n2. Open your app and navigate to **API Access** in the left sidebar\n3. Click to generate new API credentials\n4. Copy the API key",
4248
4263
  secrets: {
4249
4264
  DIFY_TOKEN: {
4250
4265
  label: "API Key",
@@ -4280,6 +4295,7 @@ var CONNECTOR_TYPES_DEF = {
4280
4295
  },
4281
4296
  "api-token": {
4282
4297
  label: "Personal Access Token",
4298
+ helpText: "1. Log in to [Figma](https://www.figma.com) and open the file browser\n2. Click the account menu in the top-left corner and select **Settings**\n3. Select the **Security** tab\n4. Scroll to the **Personal access tokens** section and click **Generate new token**\n5. Enter a name for the token, assign the desired scopes, and press Return/Enter\n6. Copy the generated token immediately \u2014 it will not be shown again",
4283
4299
  secrets: {
4284
4300
  FIGMA_TOKEN: {
4285
4301
  label: "Personal Access Token",
@@ -4356,6 +4372,7 @@ var CONNECTOR_TYPES_DEF = {
4356
4372
  authMethods: {
4357
4373
  "api-token": {
4358
4374
  label: "API Key",
4375
+ helpText: "1. Log in to [MiniMax Platform](https://platform.minimax.io)\n2. Go to **User Center > Basic Information > Interface Key**\n3. Create a new API key\n4. Copy the key",
4359
4376
  secrets: {
4360
4377
  MINIMAX_TOKEN: {
4361
4378
  label: "API Key",
@@ -4376,6 +4393,7 @@ var CONNECTOR_TYPES_DEF = {
4376
4393
  authMethods: {
4377
4394
  "api-token": {
4378
4395
  label: "API Token",
4396
+ helpText: "1. Log in to [Reportei](https://app.reportei.com)\n2. Go to **Company Settings** (Configura\xE7\xF5es da Empresa)\n3. Navigate to the **API Reportei** section\n4. Click **Generate new token** or copy your existing token",
4379
4397
  secrets: {
4380
4398
  REPORTEI_TOKEN: {
4381
4399
  label: "API Token",
@@ -4396,6 +4414,7 @@ var CONNECTOR_TYPES_DEF = {
4396
4414
  authMethods: {
4397
4415
  "api-token": {
4398
4416
  label: "API Key",
4417
+ helpText: "1. Go to [SerpApi](https://serpapi.com) and sign up for an account (free plan available with 250 searches/month)\n2. Log in and go to your [Dashboard](https://serpapi.com/dashboard)\n3. Your API key is displayed on the dashboard\n4. Copy the API key",
4399
4418
  secrets: {
4400
4419
  SERPAPI_TOKEN: {
4401
4420
  label: "API Key",
@@ -4597,6 +4616,7 @@ var CONNECTOR_TYPES_DEF = {
4597
4616
  },
4598
4617
  "api-token": {
4599
4618
  label: "API Key",
4619
+ helpText: "1. Log in to [Neon Console](https://console.neon.tech)\n2. Navigate to **Account settings > API keys**\n3. Click the button to create a new API key\n4. Copy and store the secret token immediately (it is only displayed once)",
4600
4620
  secrets: {
4601
4621
  NEON_TOKEN: {
4602
4622
  label: "API Key",
@@ -4755,6 +4775,7 @@ var CONNECTOR_TYPES_DEF = {
4755
4775
  },
4756
4776
  "api-token": {
4757
4777
  label: "Personal API Key",
4778
+ helpText: "1. Log in to [PostHog](https://app.posthog.com)\n2. Navigate to **Personal API keys** in your account settings\n3. Click **+ Create a personal API Key**\n4. Enter a descriptive label for the key\n5. Choose the scopes (permissions) required for your use case\n6. Copy the key immediately (it will not be shown again after refreshing the page)",
4758
4779
  secrets: {
4759
4780
  POSTHOG_TOKEN: {
4760
4781
  label: "Personal API Key",
@@ -5046,6 +5067,7 @@ var CONNECTOR_TYPES_DEF = {
5046
5067
  },
5047
5068
  "api-token": {
5048
5069
  label: "Service Role Key",
5070
+ helpText: "1. Log in to the [Supabase Dashboard](https://supabase.com/dashboard)\n2. Open your project's **Connect** dialog, or go to **Project Settings > API Keys**\n3. For legacy keys, copy the `anon` key (for client-side) or `service_role` key (for server-side) from the **Legacy API Keys** tab\n4. For new keys, open the **API Keys** tab, click **Create new API Keys** if needed, and copy the value from the **Publishable key** section",
5049
5071
  secrets: {
5050
5072
  SUPABASE_TOKEN: {
5051
5073
  label: "Service Role Key",
@@ -5120,6 +5142,7 @@ var CONNECTOR_TYPES_DEF = {
5120
5142
  },
5121
5143
  "api-token": {
5122
5144
  label: "Site Token",
5145
+ helpText: "1. Log in to [Webflow](https://webflow.com) (site administrator access required)\n2. In your workspace, find the site and click the gear icon to open **Site Settings**\n3. In the left sidebar, select **Apps & integrations**\n4. Scroll to the bottom of the page to the **API access** section\n5. Click **Generate API token**\n6. Enter a name for your token and choose the required scopes\n7. Click **Generate token**\n8. Copy the generated token and save it in a secure location",
5123
5146
  secrets: {
5124
5147
  WEBFLOW_TOKEN: {
5125
5148
  label: "Site Token",
@@ -5161,6 +5184,7 @@ var CONNECTOR_TYPES_DEF = {
5161
5184
  authMethods: {
5162
5185
  "api-token": {
5163
5186
  label: "Permanent Access Token",
5187
+ helpText: "1. Navigate to your [Wrike](https://www.wrike.com) workspace\n2. Click on your **profile icon** in the navigation bar\n3. Select **Apps & Integrations**\n4. Click on **API**\n5. Click **+ App**\n6. Enter a name for your integration\n7. Click **Get Token** at the bottom of the window\n8. Copy and securely store your token \u2014 it will not be shown again after closing the page\n9. Click **Save**",
5164
5188
  secrets: {
5165
5189
  WRIKE_TOKEN: {
5166
5190
  label: "Permanent Access Token",
@@ -5360,6 +5384,7 @@ var CONNECTOR_TYPES_DEF = {
5360
5384
  authMethods: {
5361
5385
  "api-token": {
5362
5386
  label: "API Key",
5387
+ helpText: "1. Log in to [OpenAI Platform](https://platform.openai.com)\n2. Navigate to the [API Keys](https://platform.openai.com/api-keys) page in the dashboard\n3. Create a new API key\n4. Copy and store the key in a safe location",
5363
5388
  secrets: {
5364
5389
  OPENAI_TOKEN: {
5365
5390
  label: "API Key",
@@ -5380,6 +5405,7 @@ var CONNECTOR_TYPES_DEF = {
5380
5405
  authMethods: {
5381
5406
  "api-token": {
5382
5407
  label: "API Key",
5408
+ helpText: "1. Log in to the [Similarweb platform](https://pro.similarweb.com/) (admin access required)\n2. From the main menu on the left, select **Settings & Help**, then select **Account**\n3. Under **Data Tools**, select either **REST API** or **Batch API**\n4. Click **Generate a New API Key** on the right\n5. Type the name of the API key, then select whether this is for yourself or another user\n6. Click **Create** \u2014 your key will be displayed in the Generated Keys table\n7. In the Generated Keys table, ensure the **Activation** toggle is on for the relevant API key",
5383
5409
  secrets: {
5384
5410
  SIMILARWEB_TOKEN: {
5385
5411
  label: "API Key",
@@ -5400,6 +5426,7 @@ var CONNECTOR_TYPES_DEF = {
5400
5426
  authMethods: {
5401
5427
  "api-token": {
5402
5428
  label: "API Key",
5429
+ helpText: '1. Log in to the [Perplexity Console](https://console.perplexity.ai)\n2. Navigate to the **API Groups** page and create an API group (e.g., "Production" or "Development")\n3. Go to the **API Keys** page\n4. Generate a new API key\n5. Store the key immediately and securely (you will only see the full token value once)',
5403
5430
  secrets: {
5404
5431
  PERPLEXITY_TOKEN: {
5405
5432
  label: "API Key",
@@ -5452,6 +5479,7 @@ var CONNECTOR_TYPES_DEF = {
5452
5479
  },
5453
5480
  "api-token": {
5454
5481
  label: "API Key",
5482
+ helpText: "1. Log in to [Mailchimp](https://mailchimp.com)\n2. Click your **profile icon** and select **Profile**\n3. Click the **Extras** dropdown menu, then choose **API keys**\n4. In the **Your API Keys** section, click **Create A Key**\n5. Enter a descriptive name for the key\n6. Click **Generate Key**\n7. Click **Copy Key to Clipboard** and store it in a secure place (you will not be able to see or copy it again)\n8. Click **Done**",
5455
5483
  secrets: {
5456
5484
  MAILCHIMP_TOKEN: {
5457
5485
  label: "API Key",
@@ -5477,6 +5505,7 @@ var CONNECTOR_TYPES_DEF = {
5477
5505
  authMethods: {
5478
5506
  "api-token": {
5479
5507
  label: "API Access Token",
5508
+ helpText: "1. Log in to [Chatwoot](https://app.chatwoot.com) with an administrator account\n2. Click on your **avatar image** in the bottom left corner of the screen\n3. Select **Profile Settings** from the menu\n4. Scroll to the bottom of the Profile Settings page\n5. Copy the **Personal Access Token** displayed there",
5480
5509
  secrets: {
5481
5510
  CHATWOOT_TOKEN: {
5482
5511
  label: "API Access Token",
@@ -5498,6 +5527,7 @@ var CONNECTOR_TYPES_DEF = {
5498
5527
  authMethods: {
5499
5528
  "api-token": {
5500
5529
  label: "API Key",
5530
+ helpText: "1. Log in to [Resend](https://resend.com)\n2. Navigate to the [API Keys](https://resend.com/api-keys) page\n3. Click **Create API Key**\n4. Enter a name for your key (up to 50 characters)\n5. Select the permission level: **Full access** or **Sending access**\n6. If choosing sending access, select which domain the key can access\n7. Copy the generated API key",
5501
5531
  secrets: {
5502
5532
  RESEND_TOKEN: {
5503
5533
  label: "API Key",
@@ -5518,6 +5548,7 @@ var CONNECTOR_TYPES_DEF = {
5518
5548
  authMethods: {
5519
5549
  "api-token": {
5520
5550
  label: "Secret API Key",
5551
+ helpText: "1. Log in to [RevenueCat](https://app.revenuecat.com)\n2. Navigate to the **API keys** section in your project dashboard\n3. Public API keys are automatically created when you add an app to your project\n4. To create a secret API key, click **+ New secret API key** in the API keys section\n5. Copy and store the key securely (never embed secret keys in client-side code)",
5521
5552
  secrets: {
5522
5553
  REVENUECAT_TOKEN: {
5523
5554
  label: "Secret API Key",
@@ -5538,6 +5569,7 @@ var CONNECTOR_TYPES_DEF = {
5538
5569
  authMethods: {
5539
5570
  "api-token": {
5540
5571
  label: "API Key",
5572
+ helpText: "1. Register for an account at [PDF4me](https://portal.pdf4me.com) using email/password or via Google, Microsoft, Apple, or Facebook\n2. Go to the **Billing Info** section and select **Start Free Trial**\n3. After activation, you will be redirected to the **Dashboard**\n4. Find and copy your API Key from the Dashboard",
5541
5573
  secrets: {
5542
5574
  PDF4ME_TOKEN: {
5543
5575
  label: "API Key",
@@ -5579,6 +5611,7 @@ var CONNECTOR_TYPES_DEF = {
5579
5611
  authMethods: {
5580
5612
  "api-token": {
5581
5613
  label: "Webhook URL",
5614
+ helpText: "1. Log in to your [Bitrix24](https://www.bitrix24.com) account\n2. Go to **Applications > Developer resources**\n3. Select the **Ready-made scenarios** tab\n4. Choose **Other > Incoming webhook**\n5. Configure the webhook name and set access permissions\n6. Click **Execute** to test the webhook\n7. Copy the generated webhook URL, which contains your secret code in the format `https://<domain>/rest/1/<secret-code>/<method>.json`",
5582
5615
  secrets: {
5583
5616
  BITRIX_WEBHOOK_URL: {
5584
5617
  label: "Webhook URL",
@@ -5620,6 +5653,7 @@ var CONNECTOR_TYPES_DEF = {
5620
5653
  authMethods: {
5621
5654
  "api-token": {
5622
5655
  label: "API Key",
5656
+ helpText: "1. Go to the [Brave Search API dashboard](https://api-dashboard.search.brave.com/register) and sign up for an account\n2. Provide a credit card for identity verification (free plans will not be charged)\n3. After registration, your API key will be available in the dashboard\n4. Copy the API key and use it in the `X-Subscription-Token` request header",
5623
5657
  secrets: {
5624
5658
  BRAVE_API_KEY: {
5625
5659
  label: "API Key",
@@ -5661,6 +5695,7 @@ var CONNECTOR_TYPES_DEF = {
5661
5695
  authMethods: {
5662
5696
  "api-token": {
5663
5697
  label: "API Token",
5698
+ helpText: "1. Sign up for a [Browserbase](https://www.browserbase.com/sign-up) account\n2. Log in and navigate to the **Overview** dashboard\n3. Your **Project ID** and **API key** are displayed on the right side of the Overview page\n4. Copy the API key",
5664
5699
  secrets: {
5665
5700
  BROWSERBASE_TOKEN: {
5666
5701
  label: "API Token",
@@ -5685,6 +5720,7 @@ var CONNECTOR_TYPES_DEF = {
5685
5720
  authMethods: {
5686
5721
  "api-token": {
5687
5722
  label: "API Token",
5723
+ helpText: "1. Sign up or log in at [Browserless](https://browserless.io/account/)\n2. Navigate to the account dashboard\n3. Copy your API token from the dashboard",
5688
5724
  secrets: {
5689
5725
  BROWSERLESS_TOKEN: {
5690
5726
  label: "API Token",
@@ -5704,6 +5740,7 @@ var CONNECTOR_TYPES_DEF = {
5704
5740
  authMethods: {
5705
5741
  "api-token": {
5706
5742
  label: "API Token",
5743
+ helpText: "1. Log in to [Fireflies](https://fireflies.ai)\n2. Navigate to the **Integrations** section\n3. Click on **Fireflies API**\n4. Copy your API key and store it securely",
5707
5744
  secrets: {
5708
5745
  FIREFLIES_TOKEN: {
5709
5746
  label: "API Token",
@@ -5783,6 +5820,7 @@ var CONNECTOR_TYPES_DEF = {
5783
5820
  authMethods: {
5784
5821
  "api-token": {
5785
5822
  label: "API Key",
5823
+ helpText: "1. Log in to [ElevenLabs](https://elevenlabs.io)\n2. Go to [Settings > API Keys](https://elevenlabs.io/app/settings/api-keys)\n3. Click to create a new API key\n4. Copy the key and store it securely",
5786
5824
  secrets: {
5787
5825
  ELEVENLABS_TOKEN: {
5788
5826
  label: "API Key",
@@ -5803,6 +5841,7 @@ var CONNECTOR_TYPES_DEF = {
5803
5841
  authMethods: {
5804
5842
  "api-token": {
5805
5843
  label: "API Key",
5844
+ helpText: "1. Log in to the [Explorium Admin Portal](https://admin.explorium.ai)\n2. Navigate to **Access & Authentication > Getting Your API Key**\n3. Click the **Show Key** button to reveal the masked API key\n4. Click the **Copy Key** button to copy it",
5806
5845
  secrets: {
5807
5846
  EXPLORIUM_TOKEN: {
5808
5847
  label: "API Key",
@@ -5823,6 +5862,7 @@ var CONNECTOR_TYPES_DEF = {
5823
5862
  authMethods: {
5824
5863
  "api-token": {
5825
5864
  label: "API Key",
5865
+ helpText: "1. Log in to [DEV.to](https://dev.to)\n2. Go to **Settings > Extensions** (or visit [dev.to/settings/extensions](https://dev.to/settings/extensions))\n3. Generate a new API key from the settings page\n4. Copy the API key and use it in the `api-key` request header",
5826
5866
  secrets: {
5827
5867
  DEVTO_TOKEN: {
5828
5868
  label: "API Key",
@@ -5843,6 +5883,7 @@ var CONNECTOR_TYPES_DEF = {
5843
5883
  authMethods: {
5844
5884
  "api-token": {
5845
5885
  label: "API Key",
5886
+ helpText: "1. Go to the [fal Dashboard Keys page](https://fal.ai/dashboard/keys)\n2. Click the **Create Key** button\n3. Provide a name for your key and select the appropriate scope (**API** for calling models, or **ADMIN** for full access)\n4. Copy the key immediately \u2014 you will not be able to see it again",
5846
5887
  secrets: {
5847
5888
  FAL_TOKEN: {
5848
5889
  label: "API Key",
@@ -5863,6 +5904,7 @@ var CONNECTOR_TYPES_DEF = {
5863
5904
  authMethods: {
5864
5905
  "api-token": {
5865
5906
  label: "API Key",
5907
+ helpText: "1. Open the [Granola](https://granola.ai) desktop app\n2. Go to **Settings > API**\n3. Click the **Create new key** button\n4. Choose a key type (if prompted) and click **Generate API Key**\n5. Copy and save the API key securely",
5866
5908
  secrets: {
5867
5909
  GRANOLA_TOKEN: {
5868
5910
  label: "API Key",
@@ -5883,6 +5925,7 @@ var CONNECTOR_TYPES_DEF = {
5883
5925
  authMethods: {
5884
5926
  "api-token": {
5885
5927
  label: "API Token",
5928
+ helpText: "1. Log in to [Podchaser](https://www.podchaser.com)\n2. Go to [Profile > Settings > API](https://www.podchaser.com/profile/settings/api) to retrieve your **API Key** and **API Secret**\n3. Request an access token by sending a POST request to `https://api.podchaser.com/graphql` using the `requestAccessToken` mutation with `grant_type` set to `CLIENT_CREDENTIALS`, your API Key as `client_id`, and your API Secret as `client_secret`\n4. Store the returned access token (it lasts 1 year)",
5886
5929
  secrets: {
5887
5930
  PODCHASER_TOKEN: {
5888
5931
  label: "API Token",
@@ -5951,6 +5994,7 @@ var CONNECTOR_TYPES_DEF = {
5951
5994
  authMethods: {
5952
5995
  "api-token": {
5953
5996
  label: "Access Token",
5997
+ helpText: "1. Log in to [Qiita](https://qiita.com)\n2. Go to **Settings > Applications**\n3. Create a new access token with the desired scopes (e.g., `read_qiita`, `write_qiita`)\n4. Copy the generated token\n5. Use it in API requests with the header `Authorization: Bearer [your_token]`",
5954
5998
  secrets: {
5955
5999
  QIITA_TOKEN: {
5956
6000
  label: "Access Token",
@@ -5971,6 +6015,7 @@ var CONNECTOR_TYPES_DEF = {
5971
6015
  authMethods: {
5972
6016
  "api-token": {
5973
6017
  label: "Send Mail Token",
6018
+ helpText: "1. Log in to [ZeptoMail](https://zeptomail.zoho.com)\n2. Select the Mail Agent for which you want to generate the API key\n3. Go to the **SMTP/API** tab\n4. In the **API** section, copy the **Agent alias** (agentkey)\n5. Submit a POST request to `https://api.zeptomail.com/v1.1/agents/{agentkey}/apikeys` with an `Authorization: Zoho-oauthtoken [your-token]` header\n6. The response will contain your send mail token (username and password)",
5974
6019
  secrets: {
5975
6020
  ZEPTOMAIL_TOKEN: {
5976
6021
  label: "Send Mail Token",
@@ -5991,6 +6036,7 @@ var CONNECTOR_TYPES_DEF = {
5991
6036
  authMethods: {
5992
6037
  "api-token": {
5993
6038
  label: "API Key",
6039
+ helpText: "1. Sign up for an account in the [Runway Developer Portal](https://dev.runwayml.com/)\n2. After signing up, create a new organization\n3. Click to the **API Keys** tab\n4. Create a new key, giving it a descriptive name\n5. Copy the key immediately and store it in a safe place \u2014 it will only be shown once",
5994
6040
  secrets: {
5995
6041
  RUNWAY_TOKEN: {
5996
6042
  label: "API Key",
@@ -6011,6 +6057,7 @@ var CONNECTOR_TYPES_DEF = {
6011
6057
  authMethods: {
6012
6058
  "api-token": {
6013
6059
  label: "API Key",
6060
+ helpText: "1. Log in to the [Short.io](https://short.io) Dashboard\n2. Navigate to **Integrations and API**\n3. Click on **Create API key**\n4. Leave the **Public key** option disabled to create a private (secret) key\n5. Restrict the scope of the key to a specific team or domain\n6. Click **Create**\n7. Copy the key and store it in a safe place \u2014 secret keys cannot be recovered",
6014
6061
  secrets: {
6015
6062
  SHORTIO_TOKEN: {
6016
6063
  label: "API Key",
@@ -6031,6 +6078,7 @@ var CONNECTOR_TYPES_DEF = {
6031
6078
  authMethods: {
6032
6079
  "api-token": {
6033
6080
  label: "API Key",
6081
+ helpText: "1. Install the Streak extension and navigate to [Gmail](https://mail.google.com)\n2. Click on the Streak icon in the right sidebar\n3. Select the **Integrations** button\n4. Under the **Streak API** section, click **Create New Key**\n5. Copy and store the API key securely",
6034
6082
  secrets: {
6035
6083
  STREAK_TOKEN: {
6036
6084
  label: "API Key",
@@ -6051,6 +6099,7 @@ var CONNECTOR_TYPES_DEF = {
6051
6099
  authMethods: {
6052
6100
  "api-token": {
6053
6101
  label: "API Key",
6102
+ helpText: "1. Go to the [Supadata Dashboard](https://dash.supadata.ai)\n2. Sign up for an account (no credit card required)\n3. Your API key will be generated automatically\n4. Use it in API requests with the header `x-api-key: [your_api_key]`",
6054
6103
  secrets: {
6055
6104
  SUPADATA_TOKEN: {
6056
6105
  label: "API Key",
@@ -6071,6 +6120,7 @@ var CONNECTOR_TYPES_DEF = {
6071
6120
  authMethods: {
6072
6121
  "api-token": {
6073
6122
  label: "API Key",
6123
+ helpText: "1. Go to [app.tavily.com](https://app.tavily.com/) and sign up for a free account\n2. After signing in, your API key will be available on the dashboard\n3. Copy the API key (it will start with `tvly-`)",
6074
6124
  secrets: {
6075
6125
  TAVILY_TOKEN: {
6076
6126
  label: "API Key",
@@ -6091,6 +6141,7 @@ var CONNECTOR_TYPES_DEF = {
6091
6141
  authMethods: {
6092
6142
  "api-token": {
6093
6143
  label: "API Key",
6144
+ helpText: "1. Ensure you have a **Business Plan** subscription on [tldv](https://tldv.io)\n2. API and webhook access is only available on the Business Plan\n3. Contact support at **support@tldv.io** to request API access and obtain your credentials",
6094
6145
  secrets: {
6095
6146
  TLDV_TOKEN: {
6096
6147
  label: "API Key",
@@ -6111,6 +6162,7 @@ var CONNECTOR_TYPES_DEF = {
6111
6162
  authMethods: {
6112
6163
  "api-token": {
6113
6164
  label: "API Key",
6165
+ helpText: "1. Log in to your [Twenty](https://twenty.com) workspace\n2. Go to **Settings > APIs & Webhooks**\n3. Click **+ Create key**\n4. Enter a descriptive **Name** and set an **Expiration Date**\n5. Click **Save**\n6. Copy the key immediately \u2014 it is only shown once",
6114
6166
  secrets: {
6115
6167
  TWENTY_TOKEN: {
6116
6168
  label: "API Key",
@@ -6172,6 +6224,7 @@ var CONNECTOR_TYPES_DEF = {
6172
6224
  authMethods: {
6173
6225
  "api-token": {
6174
6226
  label: "API Token",
6227
+ helpText: "1. Log in to your [ZapSign](https://app.zapsign.com) account\n2. Go to **Settings**\n3. Navigate to **Integrations**\n4. Select **ZAPSIGN API**\n5. Copy your API token",
6175
6228
  secrets: {
6176
6229
  ZAPSIGN_TOKEN: {
6177
6230
  label: "API Token",
@@ -6228,6 +6281,7 @@ var CONNECTOR_TYPES_DEF = {
6228
6281
  authMethods: {
6229
6282
  "api-token": {
6230
6283
  label: "API Key",
6284
+ helpText: "1. Log in to [HTML/CSS to Image](https://htmlcsstoimage.com/dashboard)\n2. Go to your **Dashboard**\n3. Locate your **User ID** and **API Key** displayed on the dashboard\n4. Copy the **API Key** (used as the password in HTTP Basic authentication)",
6231
6285
  secrets: {
6232
6286
  HCTI_API_KEY: {
6233
6287
  label: "API Key",
@@ -6252,6 +6306,7 @@ var CONNECTOR_TYPES_DEF = {
6252
6306
  authMethods: {
6253
6307
  "api-token": {
6254
6308
  label: "API Token",
6309
+ helpText: "1. Log in to [Imgur](https://imgur.com)\n2. Go to [Register an Application](https://api.imgur.com/oauth2/addclient)\n3. Fill in the application registration form\n4. After registration, you will receive a **Client ID** and **Client Secret**\n5. Copy and save both credentials",
6255
6310
  secrets: {
6256
6311
  IMGUR_CLIENT_ID: {
6257
6312
  label: "Client ID",
@@ -6273,6 +6328,7 @@ var CONNECTOR_TYPES_DEF = {
6273
6328
  authMethods: {
6274
6329
  "api-token": {
6275
6330
  label: "API Token",
6331
+ helpText: "1. Create a Meta app of type **Business** at [Meta for Developers](https://developers.facebook.com/apps)\n2. In your app dashboard, click **Instagram > API setup with Instagram business login** in the left side menu\n3. Click **Generate token** next to the Instagram account you want to access\n4. Log into Instagram when prompted\n5. Copy the access token",
6276
6332
  secrets: {
6277
6333
  INSTAGRAM_TOKEN: {
6278
6334
  label: "Access Token",
@@ -6297,6 +6353,7 @@ var CONNECTOR_TYPES_DEF = {
6297
6353
  authMethods: {
6298
6354
  "api-token": {
6299
6355
  label: "API Key",
6356
+ helpText: "1. Log in to the [Prisma Console](https://console.prisma.io)\n2. Go to your workspace **Settings** page\n3. Select **Service Tokens**\n4. Click **New Service Token**\n5. Copy and save the generated service token securely",
6300
6357
  secrets: {
6301
6358
  PRISMA_POSTGRES_TOKEN: {
6302
6359
  label: "API Key",
@@ -6317,6 +6374,7 @@ var CONNECTOR_TYPES_DEF = {
6317
6374
  authMethods: {
6318
6375
  "api-token": {
6319
6376
  label: "Bot Token",
6377
+ helpText: "1. Go to the [Discord Developer Portal](https://discord.com/developers/applications)\n2. Select your application (or create a new one)\n3. Navigate to the **Bot** page in your app's settings\n4. In the **Token** section, click **Reset Token** to generate a new bot token\n5. Copy and securely store the token \u2014 you won't be able to view it again unless you regenerate it",
6320
6378
  secrets: {
6321
6379
  DISCORD_BOT_TOKEN: {
6322
6380
  label: "Bot Token",
@@ -6338,6 +6396,7 @@ var CONNECTOR_TYPES_DEF = {
6338
6396
  authMethods: {
6339
6397
  "api-token": {
6340
6398
  label: "App Credentials",
6399
+ helpText: "1. Log in to the [Lark Developer Console](https://open.larksuite.com/app/)\n2. Select your app from the list (or create a new one)\n3. Go to the **Credentials & Basic Info** page\n4. Copy your **App ID** and **App Secret**\n5. Use these credentials to call the tenant_access_token API to obtain an access token",
6341
6400
  secrets: {
6342
6401
  LARK_TOKEN: {
6343
6402
  label: "App Secret",
@@ -6363,6 +6422,7 @@ var CONNECTOR_TYPES_DEF = {
6363
6422
  authMethods: {
6364
6423
  "api-token": {
6365
6424
  label: "API Key",
6425
+ helpText: "1. Go to [Mailsac](https://mailsac.com) and sign up for an account\n2. Log in to your Mailsac dashboard\n3. Navigate to [API Keys](https://mailsac.com/api-keys)\n4. Copy your API key from the dashboard",
6366
6426
  secrets: {
6367
6427
  MAILSAC_TOKEN: {
6368
6428
  label: "API Key",
@@ -6385,6 +6445,7 @@ var CONNECTOR_TYPES_DEF = {
6385
6445
  authMethods: {
6386
6446
  "api-token": {
6387
6447
  label: "Access Credentials",
6448
+ helpText: "1. Log in to the MinIO Console\n2. Navigate to the **Access Keys** section under Security and Access\n3. Click **Create Access Key**\n4. The system automatically generates an access key and secret key\n5. Optionally override the auto-generated values or toggle **Restrict beyond user policy** to limit permissions\n6. Save the secret key in a secure location (you cannot retrieve or reset it after creation)\n7. Click **Create** to finalize",
6388
6449
  secrets: {
6389
6450
  MINIO_TOKEN: {
6390
6451
  label: "Access Key",
@@ -6416,6 +6477,7 @@ var CONNECTOR_TYPES_DEF = {
6416
6477
  authMethods: {
6417
6478
  "api-token": {
6418
6479
  label: "API Key",
6480
+ helpText: "1. Create an account on [pdforge](https://pdforge.com)\n2. Two API keys are automatically generated when you create your account\n3. Go to the **API Keys** menu in the sidebar to view your keys\n4. Copy your API key and use it in the `Authorization: Bearer pdfnoodle_api_[your_key]` header",
6419
6481
  secrets: {
6420
6482
  PDFORGE_API_KEY: {
6421
6483
  label: "API Key",
@@ -6436,6 +6498,7 @@ var CONNECTOR_TYPES_DEF = {
6436
6498
  authMethods: {
6437
6499
  "api-token": {
6438
6500
  label: "Webhook URL",
6501
+ helpText: "1. Open your Discord server and navigate to **Server Settings**\n2. Select the **Integrations** tab\n3. Click the **Create Webhook** button\n4. Configure the webhook name and select the target text channel from the dropdown menu\n5. Click the **Copy Webhook URL** button to copy the webhook URL",
6439
6502
  secrets: {
6440
6503
  DISCORD_WEBHOOK_URL: {
6441
6504
  label: "Webhook URL",
@@ -6506,6 +6569,7 @@ var CONNECTOR_TYPES_DEF = {
6506
6569
  authMethods: {
6507
6570
  "api-token": {
6508
6571
  label: "Webhook URL",
6572
+ helpText: "1. Create a [Slack app](https://api.slack.com/apps) (or use an existing one), choosing a workspace to associate it with\n2. From the app settings page, select **Incoming Webhooks**\n3. Toggle **Activate Incoming Webhooks** to on\n4. Click **Add New Webhook to Workspace**\n5. Pick a channel for the app to post to, then click **Authorize**\n6. Copy the webhook URL from the **Webhook URLs for Your Workspace** section (it will look like `https://hooks.slack.com/services/T.../B.../XXXX...`)",
6509
6573
  secrets: {
6510
6574
  SLACK_WEBHOOK_URL: {
6511
6575
  label: "Webhook URL",
@@ -6527,6 +6591,7 @@ var CONNECTOR_TYPES_DEF = {
6527
6591
  authMethods: {
6528
6592
  "api-token": {
6529
6593
  label: "Personal Access Token",
6594
+ helpText: "1. Log in to [GitLab](https://gitlab.com)\n2. Click your avatar in the upper-right corner and select **Edit profile**\n3. In the left sidebar, navigate to **Access > Personal access tokens**\n4. From the **Generate token** dropdown, select **Legacy token**\n5. Enter a name in the **Token name** field\n6. Optionally set an expiration date (defaults to 365 days)\n7. Select the required scopes for your token\n8. Click **Generate token**\n9. Copy and save the token \u2014 you cannot view it again after leaving the page",
6530
6595
  secrets: {
6531
6596
  GITLAB_TOKEN: {
6532
6597
  label: "Personal Access Token",
@@ -6552,6 +6617,7 @@ var CONNECTOR_TYPES_DEF = {
6552
6617
  authMethods: {
6553
6618
  "api-token": {
6554
6619
  label: "API Key",
6620
+ helpText: "1. Log in to your [Wix](https://www.wix.com) account (account owner or co-owner access required)\n2. Go to the [API Keys Manager](https://manage.wix.com/account/api-keys)\n3. Create a new API key and assign the required permissions\n4. Copy the generated API key and store it securely",
6555
6621
  secrets: {
6556
6622
  WIX_TOKEN: {
6557
6623
  label: "API Key",
@@ -29822,11 +29888,42 @@ async function deleteZeroComputerConnector() {
29822
29888
  handleError(result, "Computer connector not found");
29823
29889
  }
29824
29890
 
29825
- // src/lib/api/domains/logs.ts
29891
+ // src/lib/api/domains/zero-runs.ts
29826
29892
  import { initClient as initClient7 } from "@ts-rest/core";
29893
+ async function createZeroRun(body) {
29894
+ const config = await getClientConfig();
29895
+ const client = initClient7(zeroRunsMainContract, config);
29896
+ const result = await client.create({ body });
29897
+ if (result.status === 201) return result.body;
29898
+ handleError(result, "Failed to create zero run");
29899
+ }
29900
+ async function getZeroRun(id) {
29901
+ const config = await getClientConfig();
29902
+ const client = initClient7(zeroRunsByIdContract, config);
29903
+ const result = await client.getById({ params: { id } });
29904
+ if (result.status === 200) return result.body;
29905
+ handleError(result, `Failed to get zero run "${id}"`);
29906
+ }
29907
+ async function getZeroRunAgentEvents(id, options) {
29908
+ const config = await getClientConfig();
29909
+ const client = initClient7(zeroRunAgentEventsContract, config);
29910
+ const result = await client.getAgentEvents({
29911
+ params: { id },
29912
+ query: {
29913
+ since: options?.since,
29914
+ limit: options?.limit ?? 100,
29915
+ order: options?.order ?? "asc"
29916
+ }
29917
+ });
29918
+ if (result.status === 200) return result.body;
29919
+ handleError(result, `Failed to get zero run events for "${id}"`);
29920
+ }
29921
+
29922
+ // src/lib/api/domains/logs.ts
29923
+ import { initClient as initClient8 } from "@ts-rest/core";
29827
29924
  async function getSystemLog(runId, options) {
29828
29925
  const config = await getClientConfig();
29829
- const client = initClient7(runSystemLogContract, config);
29926
+ const client = initClient8(runSystemLogContract, config);
29830
29927
  const result = await client.getSystemLog({
29831
29928
  params: { id: runId },
29832
29929
  query: {
@@ -29842,7 +29939,7 @@ async function getSystemLog(runId, options) {
29842
29939
  }
29843
29940
  async function getMetrics(runId, options) {
29844
29941
  const config = await getClientConfig();
29845
- const client = initClient7(runMetricsContract, config);
29942
+ const client = initClient8(runMetricsContract, config);
29846
29943
  const result = await client.getMetrics({
29847
29944
  params: { id: runId },
29848
29945
  query: {
@@ -29858,7 +29955,7 @@ async function getMetrics(runId, options) {
29858
29955
  }
29859
29956
  async function getAgentEvents(runId, options) {
29860
29957
  const config = await getClientConfig();
29861
- const client = initClient7(runAgentEventsContract, config);
29958
+ const client = initClient8(runAgentEventsContract, config);
29862
29959
  const result = await client.getAgentEvents({
29863
29960
  params: { id: runId },
29864
29961
  query: {
@@ -29874,7 +29971,7 @@ async function getAgentEvents(runId, options) {
29874
29971
  }
29875
29972
  async function getNetworkLogs(runId, options) {
29876
29973
  const config = await getClientConfig();
29877
- const client = initClient7(runNetworkLogsContract, config);
29974
+ const client = initClient8(runNetworkLogsContract, config);
29878
29975
  const result = await client.getNetworkLogs({
29879
29976
  params: { id: runId },
29880
29977
  query: {
@@ -29890,7 +29987,7 @@ async function getNetworkLogs(runId, options) {
29890
29987
  }
29891
29988
  async function searchLogs(options) {
29892
29989
  const config = await getClientConfig();
29893
- const client = initClient7(logsSearchContract, config);
29990
+ const client = initClient8(logsSearchContract, config);
29894
29991
  const result = await client.searchLogs({
29895
29992
  query: {
29896
29993
  keyword: options.keyword,
@@ -29909,10 +30006,10 @@ async function searchLogs(options) {
29909
30006
  }
29910
30007
 
29911
30008
  // src/lib/api/domains/runs.ts
29912
- import { initClient as initClient8 } from "@ts-rest/core";
30009
+ import { initClient as initClient9 } from "@ts-rest/core";
29913
30010
  async function createRun(body) {
29914
30011
  const config = await getClientConfig();
29915
- const client = initClient8(runsMainContract, config);
30012
+ const client = initClient9(runsMainContract, config);
29916
30013
  const result = await client.create({ body });
29917
30014
  if (result.status === 201) {
29918
30015
  return result.body;
@@ -29921,7 +30018,7 @@ async function createRun(body) {
29921
30018
  }
29922
30019
  async function getEvents(runId, options) {
29923
30020
  const config = await getClientConfig();
29924
- const client = initClient8(runEventsContract, config);
30021
+ const client = initClient9(runEventsContract, config);
29925
30022
  const result = await client.getEvents({
29926
30023
  params: { id: runId },
29927
30024
  query: {
@@ -29936,7 +30033,7 @@ async function getEvents(runId, options) {
29936
30033
  }
29937
30034
  async function listRuns(params) {
29938
30035
  const config = await getClientConfig();
29939
- const client = initClient8(runsMainContract, config);
30036
+ const client = initClient9(runsMainContract, config);
29940
30037
  const result = await client.list({
29941
30038
  query: {
29942
30039
  status: params?.status,
@@ -29953,7 +30050,7 @@ async function listRuns(params) {
29953
30050
  }
29954
30051
  async function getRunQueue() {
29955
30052
  const config = await getClientConfig();
29956
- const client = initClient8(runsQueueContract, config);
30053
+ const client = initClient9(runsQueueContract, config);
29957
30054
  const result = await client.getQueue({ headers: {} });
29958
30055
  if (result.status === 200) {
29959
30056
  return result.body;
@@ -29962,7 +30059,7 @@ async function getRunQueue() {
29962
30059
  }
29963
30060
  async function cancelRun(runId) {
29964
30061
  const config = await getClientConfig();
29965
- const client = initClient8(runsCancelContract, config);
30062
+ const client = initClient9(runsCancelContract, config);
29966
30063
  const result = await client.cancel({
29967
30064
  params: { id: runId }
29968
30065
  });
@@ -29973,10 +30070,10 @@ async function cancelRun(runId) {
29973
30070
  }
29974
30071
 
29975
30072
  // src/lib/api/domains/sessions.ts
29976
- import { initClient as initClient9 } from "@ts-rest/core";
30073
+ import { initClient as initClient10 } from "@ts-rest/core";
29977
30074
  async function getSession(sessionId) {
29978
30075
  const config = await getClientConfig();
29979
- const client = initClient9(sessionsByIdContract, config);
30076
+ const client = initClient10(sessionsByIdContract, config);
29980
30077
  const result = await client.getById({
29981
30078
  params: { id: sessionId }
29982
30079
  });
@@ -29989,7 +30086,7 @@ async function getSession(sessionId) {
29989
30086
  }
29990
30087
  async function getCheckpoint(checkpointId) {
29991
30088
  const config = await getClientConfig();
29992
- const client = initClient9(checkpointsByIdContract, config);
30089
+ const client = initClient10(checkpointsByIdContract, config);
29993
30090
  const result = await client.getById({
29994
30091
  params: { id: checkpointId }
29995
30092
  });
@@ -30000,10 +30097,10 @@ async function getCheckpoint(checkpointId) {
30000
30097
  }
30001
30098
 
30002
30099
  // src/lib/api/domains/storages.ts
30003
- import { initClient as initClient10 } from "@ts-rest/core";
30100
+ import { initClient as initClient11 } from "@ts-rest/core";
30004
30101
  async function prepareStorage(body) {
30005
30102
  const config = await getClientConfig();
30006
- const client = initClient10(storagesPrepareContract, config);
30103
+ const client = initClient11(storagesPrepareContract, config);
30007
30104
  const result = await client.prepare({ body });
30008
30105
  if (result.status === 200) {
30009
30106
  return result.body;
@@ -30012,7 +30109,7 @@ async function prepareStorage(body) {
30012
30109
  }
30013
30110
  async function commitStorage(body) {
30014
30111
  const config = await getClientConfig();
30015
- const client = initClient10(storagesCommitContract, config);
30112
+ const client = initClient11(storagesCommitContract, config);
30016
30113
  const result = await client.commit({ body });
30017
30114
  if (result.status === 200) {
30018
30115
  return result.body;
@@ -30021,7 +30118,7 @@ async function commitStorage(body) {
30021
30118
  }
30022
30119
  async function getStorageDownload(query) {
30023
30120
  const config = await getClientConfig();
30024
- const client = initClient10(storagesDownloadContract, config);
30121
+ const client = initClient11(storagesDownloadContract, config);
30025
30122
  const result = await client.download({
30026
30123
  query: {
30027
30124
  name: query.name,
@@ -30036,7 +30133,7 @@ async function getStorageDownload(query) {
30036
30133
  }
30037
30134
  async function listStorages(query) {
30038
30135
  const config = await getClientConfig();
30039
- const client = initClient10(storagesListContract, config);
30136
+ const client = initClient11(storagesListContract, config);
30040
30137
  const result = await client.list({ query });
30041
30138
  if (result.status === 200) {
30042
30139
  return result.body;
@@ -30045,7 +30142,7 @@ async function listStorages(query) {
30045
30142
  }
30046
30143
 
30047
30144
  // src/lib/api/domains/zero-orgs.ts
30048
- import { initClient as initClient11 } from "@ts-rest/core";
30145
+ import { initClient as initClient12 } from "@ts-rest/core";
30049
30146
  async function getUserTokenClientConfig() {
30050
30147
  const baseUrl = await getBaseUrl();
30051
30148
  const token = await getToken();
@@ -30063,7 +30160,7 @@ async function getUserTokenClientConfig() {
30063
30160
  }
30064
30161
  async function getZeroOrg() {
30065
30162
  const config = await getClientConfig();
30066
- const client = initClient11(zeroOrgContract, config);
30163
+ const client = initClient12(zeroOrgContract, config);
30067
30164
  const result = await client.get({ headers: {} });
30068
30165
  if (result.status === 200) {
30069
30166
  return result.body;
@@ -30072,7 +30169,7 @@ async function getZeroOrg() {
30072
30169
  }
30073
30170
  async function updateZeroOrg(body) {
30074
30171
  const config = await getClientConfig();
30075
- const client = initClient11(zeroOrgContract, config);
30172
+ const client = initClient12(zeroOrgContract, config);
30076
30173
  const result = await client.update({ body });
30077
30174
  if (result.status === 200) {
30078
30175
  return result.body;
@@ -30081,7 +30178,7 @@ async function updateZeroOrg(body) {
30081
30178
  }
30082
30179
  async function listZeroOrgs() {
30083
30180
  const config = await getUserTokenClientConfig();
30084
- const client = initClient11(zeroOrgListContract, config);
30181
+ const client = initClient12(zeroOrgListContract, config);
30085
30182
  const result = await client.list({ headers: {} });
30086
30183
  if (result.status === 200) {
30087
30184
  return result.body;
@@ -30090,7 +30187,7 @@ async function listZeroOrgs() {
30090
30187
  }
30091
30188
  async function getZeroOrgMembers() {
30092
30189
  const config = await getClientConfig();
30093
- const client = initClient11(zeroOrgMembersContract, config);
30190
+ const client = initClient12(zeroOrgMembersContract, config);
30094
30191
  const result = await client.members({ headers: {} });
30095
30192
  if (result.status === 200) {
30096
30193
  return result.body;
@@ -30099,7 +30196,7 @@ async function getZeroOrgMembers() {
30099
30196
  }
30100
30197
  async function inviteZeroOrgMember(email, role = "member") {
30101
30198
  const config = await getClientConfig();
30102
- const client = initClient11(zeroOrgInviteContract, config);
30199
+ const client = initClient12(zeroOrgInviteContract, config);
30103
30200
  const result = await client.invite({
30104
30201
  body: { email, role }
30105
30202
  });
@@ -30110,7 +30207,7 @@ async function inviteZeroOrgMember(email, role = "member") {
30110
30207
  }
30111
30208
  async function removeZeroOrgMember(email) {
30112
30209
  const config = await getClientConfig();
30113
- const client = initClient11(zeroOrgMembersContract, config);
30210
+ const client = initClient12(zeroOrgMembersContract, config);
30114
30211
  const result = await client.removeMember({
30115
30212
  body: { email }
30116
30213
  });
@@ -30121,7 +30218,7 @@ async function removeZeroOrgMember(email) {
30121
30218
  }
30122
30219
  async function leaveZeroOrg() {
30123
30220
  const config = await getClientConfig();
30124
- const client = initClient11(zeroOrgLeaveContract, config);
30221
+ const client = initClient12(zeroOrgLeaveContract, config);
30125
30222
  const result = await client.leave({
30126
30223
  body: {}
30127
30224
  });
@@ -30132,7 +30229,7 @@ async function leaveZeroOrg() {
30132
30229
  }
30133
30230
  async function deleteZeroOrg(slug) {
30134
30231
  const config = await getClientConfig();
30135
- const client = initClient11(zeroOrgDeleteContract, config);
30232
+ const client = initClient12(zeroOrgDeleteContract, config);
30136
30233
  const result = await client.delete({
30137
30234
  body: { slug }
30138
30235
  });
@@ -30143,7 +30240,7 @@ async function deleteZeroOrg(slug) {
30143
30240
  }
30144
30241
  async function switchZeroOrg(slug) {
30145
30242
  const config = await getUserTokenClientConfig();
30146
- const client = initClient11(cliAuthOrgContract, config);
30243
+ const client = initClient12(cliAuthOrgContract, config);
30147
30244
  const result = await client.switchOrg({
30148
30245
  headers: {},
30149
30246
  body: { slug }
@@ -30155,10 +30252,10 @@ async function switchZeroOrg(slug) {
30155
30252
  }
30156
30253
 
30157
30254
  // src/lib/api/domains/zero-org-secrets.ts
30158
- import { initClient as initClient12 } from "@ts-rest/core";
30255
+ import { initClient as initClient13 } from "@ts-rest/core";
30159
30256
  async function listZeroOrgSecrets() {
30160
30257
  const config = await getClientConfig();
30161
- const client = initClient12(zeroSecretsContract, config);
30258
+ const client = initClient13(zeroSecretsContract, config);
30162
30259
  const result = await client.list({ headers: {} });
30163
30260
  if (result.status === 200) {
30164
30261
  return result.body;
@@ -30167,7 +30264,7 @@ async function listZeroOrgSecrets() {
30167
30264
  }
30168
30265
  async function setZeroOrgSecret(body) {
30169
30266
  const config = await getClientConfig();
30170
- const client = initClient12(zeroSecretsContract, config);
30267
+ const client = initClient13(zeroSecretsContract, config);
30171
30268
  const result = await client.set({ body });
30172
30269
  if (result.status === 200 || result.status === 201) {
30173
30270
  return result.body;
@@ -30176,7 +30273,7 @@ async function setZeroOrgSecret(body) {
30176
30273
  }
30177
30274
  async function deleteZeroOrgSecret(name) {
30178
30275
  const config = await getClientConfig();
30179
- const client = initClient12(zeroSecretsByNameContract, config);
30276
+ const client = initClient13(zeroSecretsByNameContract, config);
30180
30277
  const result = await client.delete({
30181
30278
  params: { name }
30182
30279
  });
@@ -30187,10 +30284,10 @@ async function deleteZeroOrgSecret(name) {
30187
30284
  }
30188
30285
 
30189
30286
  // src/lib/api/domains/zero-org-variables.ts
30190
- import { initClient as initClient13 } from "@ts-rest/core";
30287
+ import { initClient as initClient14 } from "@ts-rest/core";
30191
30288
  async function listZeroOrgVariables() {
30192
30289
  const config = await getClientConfig();
30193
- const client = initClient13(zeroVariablesContract, config);
30290
+ const client = initClient14(zeroVariablesContract, config);
30194
30291
  const result = await client.list({ headers: {} });
30195
30292
  if (result.status === 200) {
30196
30293
  return result.body;
@@ -30199,7 +30296,7 @@ async function listZeroOrgVariables() {
30199
30296
  }
30200
30297
  async function setZeroOrgVariable(body) {
30201
30298
  const config = await getClientConfig();
30202
- const client = initClient13(zeroVariablesContract, config);
30299
+ const client = initClient14(zeroVariablesContract, config);
30203
30300
  const result = await client.set({ body });
30204
30301
  if (result.status === 200 || result.status === 201) {
30205
30302
  return result.body;
@@ -30208,7 +30305,7 @@ async function setZeroOrgVariable(body) {
30208
30305
  }
30209
30306
  async function deleteZeroOrgVariable(name) {
30210
30307
  const config = await getClientConfig();
30211
- const client = initClient13(zeroVariablesByNameContract, config);
30308
+ const client = initClient14(zeroVariablesByNameContract, config);
30212
30309
  const result = await client.delete({
30213
30310
  params: { name }
30214
30311
  });
@@ -30219,10 +30316,10 @@ async function deleteZeroOrgVariable(name) {
30219
30316
  }
30220
30317
 
30221
30318
  // src/lib/api/domains/zero-org-model-providers.ts
30222
- import { initClient as initClient14 } from "@ts-rest/core";
30319
+ import { initClient as initClient15 } from "@ts-rest/core";
30223
30320
  async function listZeroOrgModelProviders() {
30224
30321
  const config = await getClientConfig();
30225
- const client = initClient14(zeroModelProvidersMainContract, config);
30322
+ const client = initClient15(zeroModelProvidersMainContract, config);
30226
30323
  const result = await client.list({ headers: {} });
30227
30324
  if (result.status === 200) {
30228
30325
  return result.body;
@@ -30231,7 +30328,7 @@ async function listZeroOrgModelProviders() {
30231
30328
  }
30232
30329
  async function upsertZeroOrgModelProvider(body) {
30233
30330
  const config = await getClientConfig();
30234
- const client = initClient14(zeroModelProvidersMainContract, config);
30331
+ const client = initClient15(zeroModelProvidersMainContract, config);
30235
30332
  const result = await client.upsert({ body });
30236
30333
  if (result.status === 200 || result.status === 201) {
30237
30334
  return result.body;
@@ -30240,7 +30337,7 @@ async function upsertZeroOrgModelProvider(body) {
30240
30337
  }
30241
30338
  async function deleteZeroOrgModelProvider(type) {
30242
30339
  const config = await getClientConfig();
30243
- const client = initClient14(zeroModelProvidersByTypeContract, config);
30340
+ const client = initClient15(zeroModelProvidersByTypeContract, config);
30244
30341
  const result = await client.delete({
30245
30342
  params: { type }
30246
30343
  });
@@ -30251,7 +30348,7 @@ async function deleteZeroOrgModelProvider(type) {
30251
30348
  }
30252
30349
  async function setZeroOrgModelProviderDefault(type) {
30253
30350
  const config = await getClientConfig();
30254
- const client = initClient14(zeroModelProvidersDefaultContract, config);
30351
+ const client = initClient15(zeroModelProvidersDefaultContract, config);
30255
30352
  const result = await client.setDefault({
30256
30353
  params: { type }
30257
30354
  });
@@ -30262,7 +30359,7 @@ async function setZeroOrgModelProviderDefault(type) {
30262
30359
  }
30263
30360
  async function updateZeroOrgModelProviderModel(type, selectedModel) {
30264
30361
  const config = await getClientConfig();
30265
- const client = initClient14(zeroModelProvidersUpdateModelContract, config);
30362
+ const client = initClient15(zeroModelProvidersUpdateModelContract, config);
30266
30363
  const result = await client.updateModel({
30267
30364
  params: { type },
30268
30365
  body: { selectedModel }
@@ -30274,52 +30371,52 @@ async function updateZeroOrgModelProviderModel(type, selectedModel) {
30274
30371
  }
30275
30372
 
30276
30373
  // src/lib/api/domains/zero-agents.ts
30277
- import { initClient as initClient15 } from "@ts-rest/core";
30374
+ import { initClient as initClient16 } from "@ts-rest/core";
30278
30375
  async function createZeroAgent(body) {
30279
30376
  const config = await getClientConfig();
30280
- const client = initClient15(zeroAgentsMainContract, config);
30377
+ const client = initClient16(zeroAgentsMainContract, config);
30281
30378
  const result = await client.create({ body });
30282
30379
  if (result.status === 201) return result.body;
30283
30380
  handleError(result, "Failed to create zero agent");
30284
30381
  }
30285
30382
  async function listZeroAgents() {
30286
30383
  const config = await getClientConfig();
30287
- const client = initClient15(zeroAgentsMainContract, config);
30384
+ const client = initClient16(zeroAgentsMainContract, config);
30288
30385
  const result = await client.list({ headers: {} });
30289
30386
  if (result.status === 200) return result.body;
30290
30387
  handleError(result, "Failed to list zero agents");
30291
30388
  }
30292
30389
  async function getZeroAgent(id) {
30293
30390
  const config = await getClientConfig();
30294
- const client = initClient15(zeroAgentsByIdContract, config);
30391
+ const client = initClient16(zeroAgentsByIdContract, config);
30295
30392
  const result = await client.get({ params: { id } });
30296
30393
  if (result.status === 200) return result.body;
30297
30394
  handleError(result, `Zero agent "${id}" not found`);
30298
30395
  }
30299
30396
  async function updateZeroAgent(id, body) {
30300
30397
  const config = await getClientConfig();
30301
- const client = initClient15(zeroAgentsByIdContract, config);
30398
+ const client = initClient16(zeroAgentsByIdContract, config);
30302
30399
  const result = await client.update({ params: { id }, body });
30303
30400
  if (result.status === 200) return result.body;
30304
30401
  handleError(result, `Failed to update zero agent "${id}"`);
30305
30402
  }
30306
30403
  async function deleteZeroAgent(id) {
30307
30404
  const config = await getClientConfig();
30308
- const client = initClient15(zeroAgentsByIdContract, config);
30405
+ const client = initClient16(zeroAgentsByIdContract, config);
30309
30406
  const result = await client.delete({ params: { id } });
30310
30407
  if (result.status === 204) return;
30311
30408
  handleError(result, `Zero agent "${id}" not found`);
30312
30409
  }
30313
30410
  async function getZeroAgentInstructions(id) {
30314
30411
  const config = await getClientConfig();
30315
- const client = initClient15(zeroAgentInstructionsContract, config);
30412
+ const client = initClient16(zeroAgentInstructionsContract, config);
30316
30413
  const result = await client.get({ params: { id } });
30317
30414
  if (result.status === 200) return result.body;
30318
30415
  handleError(result, `Failed to get instructions for zero agent "${id}"`);
30319
30416
  }
30320
30417
  async function getZeroAgentUserConnectors(id) {
30321
30418
  const config = await getClientConfig();
30322
- const client = initClient15(zeroUserConnectorsContract, config);
30419
+ const client = initClient16(zeroUserConnectorsContract, config);
30323
30420
  const result = await client.get({ params: { id } });
30324
30421
  if (result.status === 200) return result.body.enabledTypes;
30325
30422
  handleError(
@@ -30329,7 +30426,7 @@ async function getZeroAgentUserConnectors(id) {
30329
30426
  }
30330
30427
  async function updateZeroAgentInstructions(id, content) {
30331
30428
  const config = await getClientConfig();
30332
- const client = initClient15(zeroAgentInstructionsContract, config);
30429
+ const client = initClient16(zeroAgentInstructionsContract, config);
30333
30430
  const result = await client.update({
30334
30431
  params: { id },
30335
30432
  body: { content }
@@ -30339,48 +30436,48 @@ async function updateZeroAgentInstructions(id, content) {
30339
30436
  }
30340
30437
 
30341
30438
  // src/lib/api/domains/zero-skills.ts
30342
- import { initClient as initClient16 } from "@ts-rest/core";
30439
+ import { initClient as initClient17 } from "@ts-rest/core";
30343
30440
  async function listSkills() {
30344
30441
  const config = await getClientConfig();
30345
- const client = initClient16(zeroSkillsCollectionContract, config);
30442
+ const client = initClient17(zeroSkillsCollectionContract, config);
30346
30443
  const result = await client.list();
30347
30444
  if (result.status === 200) return result.body;
30348
30445
  handleError(result, "Failed to list skills");
30349
30446
  }
30350
30447
  async function createSkill(body) {
30351
30448
  const config = await getClientConfig();
30352
- const client = initClient16(zeroSkillsCollectionContract, config);
30449
+ const client = initClient17(zeroSkillsCollectionContract, config);
30353
30450
  const result = await client.create({ body });
30354
30451
  if (result.status === 201) return result.body;
30355
30452
  handleError(result, `Failed to create skill "${body.name}"`);
30356
30453
  }
30357
30454
  async function getSkill(name) {
30358
30455
  const config = await getClientConfig();
30359
- const client = initClient16(zeroSkillsDetailContract, config);
30456
+ const client = initClient17(zeroSkillsDetailContract, config);
30360
30457
  const result = await client.get({ params: { name } });
30361
30458
  if (result.status === 200) return result.body;
30362
30459
  handleError(result, `Skill "${name}" not found`);
30363
30460
  }
30364
30461
  async function updateSkill(name, body) {
30365
30462
  const config = await getClientConfig();
30366
- const client = initClient16(zeroSkillsDetailContract, config);
30463
+ const client = initClient17(zeroSkillsDetailContract, config);
30367
30464
  const result = await client.update({ params: { name }, body });
30368
30465
  if (result.status === 200) return result.body;
30369
30466
  handleError(result, `Failed to update skill "${name}"`);
30370
30467
  }
30371
30468
  async function deleteSkill(name) {
30372
30469
  const config = await getClientConfig();
30373
- const client = initClient16(zeroSkillsDetailContract, config);
30470
+ const client = initClient17(zeroSkillsDetailContract, config);
30374
30471
  const result = await client.delete({ params: { name } });
30375
30472
  if (result.status === 204) return;
30376
30473
  handleError(result, `Skill "${name}" not found`);
30377
30474
  }
30378
30475
 
30379
30476
  // src/lib/api/domains/integrations-slack.ts
30380
- import { initClient as initClient17 } from "@ts-rest/core";
30477
+ import { initClient as initClient18 } from "@ts-rest/core";
30381
30478
  async function sendSlackMessage(body) {
30382
30479
  const config = await getClientConfig();
30383
- const client = initClient17(integrationsSlackMessageContract, config);
30480
+ const client = initClient18(integrationsSlackMessageContract, config);
30384
30481
  const result = await client.sendMessage({ body, headers: {} });
30385
30482
  if (result.status === 200) {
30386
30483
  return result.body;
@@ -30389,7 +30486,7 @@ async function sendSlackMessage(body) {
30389
30486
  }
30390
30487
  async function initSlackFileUpload(body) {
30391
30488
  const config = await getClientConfig();
30392
- const client = initClient17(integrationsSlackUploadInitContract, config);
30489
+ const client = initClient18(integrationsSlackUploadInitContract, config);
30393
30490
  const result = await client.init({ body, headers: {} });
30394
30491
  if (result.status === 200) {
30395
30492
  return result.body;
@@ -30398,7 +30495,7 @@ async function initSlackFileUpload(body) {
30398
30495
  }
30399
30496
  async function completeSlackFileUpload(body) {
30400
30497
  const config = await getClientConfig();
30401
- const client = initClient17(integrationsSlackUploadCompleteContract, config);
30498
+ const client = initClient18(integrationsSlackUploadCompleteContract, config);
30402
30499
  const result = await client.complete({ body, headers: {} });
30403
30500
  if (result.status === 200) {
30404
30501
  return result.body;
@@ -30407,10 +30504,10 @@ async function completeSlackFileUpload(body) {
30407
30504
  }
30408
30505
 
30409
30506
  // src/lib/api/domains/zero-schedules.ts
30410
- import { initClient as initClient18 } from "@ts-rest/core";
30507
+ import { initClient as initClient19 } from "@ts-rest/core";
30411
30508
  async function deployZeroSchedule(body) {
30412
30509
  const config = await getClientConfig();
30413
- const client = initClient18(zeroSchedulesMainContract, config);
30510
+ const client = initClient19(zeroSchedulesMainContract, config);
30414
30511
  const result = await client.deploy({ body });
30415
30512
  if (result.status === 200 || result.status === 201) {
30416
30513
  return result.body;
@@ -30419,7 +30516,7 @@ async function deployZeroSchedule(body) {
30419
30516
  }
30420
30517
  async function listZeroSchedules() {
30421
30518
  const config = await getClientConfig();
30422
- const client = initClient18(zeroSchedulesMainContract, config);
30519
+ const client = initClient19(zeroSchedulesMainContract, config);
30423
30520
  const result = await client.list({ headers: {} });
30424
30521
  if (result.status === 200) {
30425
30522
  return result.body;
@@ -30428,7 +30525,7 @@ async function listZeroSchedules() {
30428
30525
  }
30429
30526
  async function deleteZeroSchedule(params) {
30430
30527
  const config = await getClientConfig();
30431
- const client = initClient18(zeroSchedulesByNameContract, config);
30528
+ const client = initClient19(zeroSchedulesByNameContract, config);
30432
30529
  const result = await client.delete({
30433
30530
  params: { name: params.name },
30434
30531
  query: { agentId: params.agentId }
@@ -30440,7 +30537,7 @@ async function deleteZeroSchedule(params) {
30440
30537
  }
30441
30538
  async function enableZeroSchedule(params) {
30442
30539
  const config = await getClientConfig();
30443
- const client = initClient18(zeroSchedulesEnableContract, config);
30540
+ const client = initClient19(zeroSchedulesEnableContract, config);
30444
30541
  const result = await client.enable({
30445
30542
  params: { name: params.name },
30446
30543
  body: { agentId: params.agentId }
@@ -30452,7 +30549,7 @@ async function enableZeroSchedule(params) {
30452
30549
  }
30453
30550
  async function disableZeroSchedule(params) {
30454
30551
  const config = await getClientConfig();
30455
- const client = initClient18(zeroSchedulesEnableContract, config);
30552
+ const client = initClient19(zeroSchedulesEnableContract, config);
30456
30553
  const result = await client.disable({
30457
30554
  params: { name: params.name },
30458
30555
  body: { agentId: params.agentId }
@@ -30499,49 +30596,52 @@ async function resolveZeroScheduleByAgent(agentIdentifier, scheduleName) {
30499
30596
  );
30500
30597
  }
30501
30598
 
30502
- // src/lib/api/domains/zero-runs.ts
30503
- import { initClient as initClient19 } from "@ts-rest/core";
30504
- async function createZeroRun(body) {
30505
- const config = await getClientConfig();
30506
- const client = initClient19(zeroRunsMainContract, config);
30507
- const result = await client.create({ body });
30508
- if (result.status === 201) return result.body;
30509
- handleError(result, "Failed to create zero run");
30510
- }
30511
- async function getZeroRun(id) {
30599
+ // src/lib/api/domains/zero-logs.ts
30600
+ import { initClient as initClient20 } from "@ts-rest/core";
30601
+ async function listZeroLogs(options) {
30512
30602
  const config = await getClientConfig();
30513
- const client = initClient19(zeroRunsByIdContract, config);
30514
- const result = await client.getById({ params: { id } });
30603
+ const client = initClient20(logsListContract, config);
30604
+ const result = await client.list({
30605
+ query: {
30606
+ agent: options?.agent,
30607
+ status: options?.status,
30608
+ limit: options?.limit,
30609
+ cursor: options?.cursor
30610
+ }
30611
+ });
30515
30612
  if (result.status === 200) return result.body;
30516
- handleError(result, `Failed to get zero run "${id}"`);
30613
+ handleError(result, "Failed to list zero logs");
30517
30614
  }
30518
- async function getZeroRunAgentEvents(id, options) {
30615
+ async function searchZeroLogs(options) {
30519
30616
  const config = await getClientConfig();
30520
- const client = initClient19(zeroRunAgentEventsContract, config);
30521
- const result = await client.getAgentEvents({
30522
- params: { id },
30617
+ const client = initClient20(zeroLogsSearchContract, config);
30618
+ const result = await client.searchLogs({
30523
30619
  query: {
30524
- since: options?.since,
30525
- limit: options?.limit ?? 100,
30526
- order: options?.order ?? "asc"
30620
+ keyword: options.keyword,
30621
+ agent: options.agent,
30622
+ runId: options.runId,
30623
+ since: options.since,
30624
+ limit: options.limit,
30625
+ before: options.before,
30626
+ after: options.after
30527
30627
  }
30528
30628
  });
30529
30629
  if (result.status === 200) return result.body;
30530
- handleError(result, `Failed to get zero run events for "${id}"`);
30630
+ handleError(result, "Failed to search zero logs");
30531
30631
  }
30532
30632
 
30533
30633
  // src/lib/api/domains/zero-ask-user.ts
30534
- import { initClient as initClient20 } from "@ts-rest/core";
30634
+ import { initClient as initClient21 } from "@ts-rest/core";
30535
30635
  async function postAskUserQuestion(body) {
30536
30636
  const config = await getClientConfig();
30537
- const client = initClient20(zeroAskUserQuestionContract, config);
30637
+ const client = initClient21(zeroAskUserQuestionContract, config);
30538
30638
  const result = await client.postQuestion({ body, headers: {} });
30539
30639
  if (result.status === 200) return result.body;
30540
30640
  handleError(result, "Failed to post question");
30541
30641
  }
30542
30642
  async function getAskUserAnswer(pendingId) {
30543
30643
  const config = await getClientConfig();
30544
- const client = initClient20(zeroAskUserAnswerContract, config);
30644
+ const client = initClient21(zeroAskUserAnswerContract, config);
30545
30645
  const result = await client.getAnswer({
30546
30646
  query: { pendingId },
30547
30647
  headers: {}
@@ -31226,6 +31326,73 @@ var EventRenderer = class _EventRenderer {
31226
31326
  }
31227
31327
  };
31228
31328
 
31329
+ // src/lib/utils/time-parser.ts
31330
+ function parseTime(timeStr) {
31331
+ const relativeMatch = timeStr.match(/^(\d+)([smhdw])$/);
31332
+ if (relativeMatch) {
31333
+ const value = parseInt(relativeMatch[1], 10);
31334
+ const unit = relativeMatch[2];
31335
+ return parseRelativeTime(value, unit);
31336
+ }
31337
+ if (/^\d+$/.test(timeStr)) {
31338
+ const timestamp = parseInt(timeStr, 10);
31339
+ if (timestamp < 1e10) {
31340
+ return timestamp * 1e3;
31341
+ }
31342
+ return timestamp;
31343
+ }
31344
+ const date = new Date(timeStr);
31345
+ if (!isNaN(date.getTime())) {
31346
+ return date.getTime();
31347
+ }
31348
+ throw new Error(
31349
+ `Invalid time format: "${timeStr}". Supported formats: relative (5m, 2h, 1d), ISO 8601 (2024-01-15T10:30:00Z), Unix timestamp`
31350
+ );
31351
+ }
31352
+ function parseRelativeTime(value, unit) {
31353
+ const now = Date.now();
31354
+ const multipliers = {
31355
+ s: 1e3,
31356
+ // seconds
31357
+ m: 60 * 1e3,
31358
+ // minutes
31359
+ h: 60 * 60 * 1e3,
31360
+ // hours
31361
+ d: 24 * 60 * 60 * 1e3,
31362
+ // days
31363
+ w: 7 * 24 * 60 * 60 * 1e3
31364
+ // weeks
31365
+ };
31366
+ const multiplier = multipliers[unit];
31367
+ if (!multiplier) {
31368
+ throw new Error(`Unknown time unit: ${unit}`);
31369
+ }
31370
+ return now - value * multiplier;
31371
+ }
31372
+
31373
+ // src/lib/utils/paginate.ts
31374
+ async function paginate(options) {
31375
+ const { fetchPage, getTimestamp, targetCount, initialSince } = options;
31376
+ const collected = [];
31377
+ let since = initialSince;
31378
+ let hasMore = true;
31379
+ while (hasMore) {
31380
+ const response = await fetchPage(since);
31381
+ collected.push(...response.items);
31382
+ hasMore = response.hasMore;
31383
+ if (targetCount !== "all" && collected.length >= targetCount) {
31384
+ return collected.slice(0, targetCount);
31385
+ }
31386
+ if (response.items.length > 0) {
31387
+ const lastItem = response.items[response.items.length - 1];
31388
+ since = getTimestamp(lastItem);
31389
+ } else {
31390
+ hasMore = false;
31391
+ }
31392
+ }
31393
+ return collected;
31394
+ }
31395
+
31229
31396
  // src/commands/run/shared.ts
31230
31397
  import chalk5 from "chalk";
31231
31398
  import * as fs from "fs";
@@ -31544,6 +31711,8 @@ export {
31544
31711
  createZeroRun,
31545
31712
  getZeroRun,
31546
31713
  getZeroRunAgentEvents,
31714
+ listZeroLogs,
31715
+ searchZeroLogs,
31547
31716
  getSystemLog,
31548
31717
  getMetrics,
31549
31718
  getAgentEvents,
@@ -31569,6 +31738,8 @@ export {
31569
31738
  parseIdentifier,
31570
31739
  renderRunCreated,
31571
31740
  pollEvents,
31572
- showNextSteps
31741
+ showNextSteps,
31742
+ parseTime,
31743
+ paginate
31573
31744
  };
31574
- //# sourceMappingURL=chunk-WN2AD3KW.js.map
31745
+ //# sourceMappingURL=chunk-IY5MFRXW.js.map