@vm0/cli 9.81.0 → 9.82.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -47,7 +47,7 @@ if (DSN) {
47
47
  Sentry.init({
48
48
  dsn: DSN,
49
49
  environment: process.env.SENTRY_ENVIRONMENT ?? "production",
50
- release: "9.81.0",
50
+ release: "9.82.0",
51
51
  sendDefaultPii: false,
52
52
  tracesSampleRate: 0,
53
53
  shutdownTimeout: 500,
@@ -66,7 +66,7 @@ if (DSN) {
66
66
  }
67
67
  });
68
68
  Sentry.setContext("cli", {
69
- version: "9.81.0",
69
+ version: "9.82.0",
70
70
  command: process.argv.slice(2).join(" ")
71
71
  });
72
72
  Sentry.setContext("runtime", {
@@ -5407,6 +5407,32 @@ var intercomFirewall = {
5407
5407
  ]
5408
5408
  };
5409
5409
 
5410
+ // ../../packages/core/src/firewalls/intervals-icu.generated.ts
5411
+ var intervalsIcuFirewall = {
5412
+ name: "intervals-icu",
5413
+ description: "Intervals.icu Training API",
5414
+ placeholders: {
5415
+ INTERVALS_ICU_TOKEN: "vm0placeholderIntervalsIcuToken0000000000000000000000a"
5416
+ },
5417
+ apis: [
5418
+ {
5419
+ base: "https://intervals.icu",
5420
+ auth: {
5421
+ headers: {
5422
+ Authorization: "Bearer ${{ secrets.INTERVALS_ICU_TOKEN }}"
5423
+ }
5424
+ },
5425
+ permissions: [
5426
+ {
5427
+ name: "unrestricted",
5428
+ description: "Allow all Intervals.icu API endpoints",
5429
+ rules: ["ANY /{path*}"]
5430
+ }
5431
+ ]
5432
+ }
5433
+ ]
5434
+ };
5435
+
5410
5436
  // ../../packages/core/src/firewalls/jira.generated.ts
5411
5437
  var jiraFirewall = {
5412
5438
  name: "jira",
@@ -6241,6 +6267,32 @@ var loopsFirewall = {
6241
6267
  ]
6242
6268
  };
6243
6269
 
6270
+ // ../../packages/core/src/firewalls/mailsac.generated.ts
6271
+ var mailsacFirewall = {
6272
+ name: "mailsac",
6273
+ description: "Mailsac Email API",
6274
+ placeholders: {
6275
+ MAILSAC_TOKEN: "vm0placeholderMailsacToken0000000000000000000000000000a"
6276
+ },
6277
+ apis: [
6278
+ {
6279
+ base: "https://mailsac.com",
6280
+ auth: {
6281
+ headers: {
6282
+ "Mailsac-Key": "${{ secrets.MAILSAC_TOKEN }}"
6283
+ }
6284
+ },
6285
+ permissions: [
6286
+ {
6287
+ name: "unrestricted",
6288
+ description: "Allow all Mailsac API endpoints",
6289
+ rules: ["ANY /{path*}"]
6290
+ }
6291
+ ]
6292
+ }
6293
+ ]
6294
+ };
6295
+
6244
6296
  // ../../packages/core/src/firewalls/mercury.generated.ts
6245
6297
  var mercuryFirewall = {
6246
6298
  name: "mercury",
@@ -6464,6 +6516,32 @@ var openaiFirewall = {
6464
6516
  ]
6465
6517
  };
6466
6518
 
6519
+ // ../../packages/core/src/firewalls/pdf4me.generated.ts
6520
+ var pdf4meFirewall = {
6521
+ name: "pdf4me",
6522
+ description: "PDF4me Document API",
6523
+ placeholders: {
6524
+ PDF4ME_TOKEN: "vm0placeholderPdf4meToken000000000000000000000000000a"
6525
+ },
6526
+ apis: [
6527
+ {
6528
+ base: "https://api.pdf4me.com",
6529
+ auth: {
6530
+ headers: {
6531
+ Authorization: "${{ secrets.PDF4ME_TOKEN }}"
6532
+ }
6533
+ },
6534
+ permissions: [
6535
+ {
6536
+ name: "unrestricted",
6537
+ description: "Allow all PDF4me API endpoints",
6538
+ rules: ["ANY /{path*}"]
6539
+ }
6540
+ ]
6541
+ }
6542
+ ]
6543
+ };
6544
+
6467
6545
  // ../../packages/core/src/firewalls/pdfco.generated.ts
6468
6546
  var pdfcoFirewall = {
6469
6547
  name: "pdfco",
@@ -6490,6 +6568,32 @@ var pdfcoFirewall = {
6490
6568
  ]
6491
6569
  };
6492
6570
 
6571
+ // ../../packages/core/src/firewalls/pdforge.generated.ts
6572
+ var pdforgeFirewall = {
6573
+ name: "pdforge",
6574
+ description: "PDForge PDF Generation API",
6575
+ placeholders: {
6576
+ PDFORGE_API_KEY: "vm0placeholderPdforgeApiKey00000000000000000000000000a"
6577
+ },
6578
+ apis: [
6579
+ {
6580
+ base: "https://api.pdforge.com",
6581
+ auth: {
6582
+ headers: {
6583
+ Authorization: "Bearer ${{ secrets.PDFORGE_API_KEY }}"
6584
+ }
6585
+ },
6586
+ permissions: [
6587
+ {
6588
+ name: "unrestricted",
6589
+ description: "Allow all PDForge API endpoints",
6590
+ rules: ["ANY /{path*}"]
6591
+ }
6592
+ ]
6593
+ }
6594
+ ]
6595
+ };
6596
+
6493
6597
  // ../../packages/core/src/firewalls/perplexity.generated.ts
6494
6598
  var perplexityFirewall = {
6495
6599
  name: "perplexity",
@@ -6542,6 +6646,32 @@ var plausibleFirewall = {
6542
6646
  ]
6543
6647
  };
6544
6648
 
6649
+ // ../../packages/core/src/firewalls/podchaser.generated.ts
6650
+ var podchaserFirewall = {
6651
+ name: "podchaser",
6652
+ description: "Podchaser Podcast API",
6653
+ placeholders: {
6654
+ PODCHASER_TOKEN: "vm0placeholderPodchaserToken00000000000000000000000000a"
6655
+ },
6656
+ apis: [
6657
+ {
6658
+ base: "https://api.podchaser.com",
6659
+ auth: {
6660
+ headers: {
6661
+ Authorization: "Bearer ${{ secrets.PODCHASER_TOKEN }}"
6662
+ }
6663
+ },
6664
+ permissions: [
6665
+ {
6666
+ name: "unrestricted",
6667
+ description: "Allow all Podchaser API endpoints",
6668
+ rules: ["ANY /{path*}"]
6669
+ }
6670
+ ]
6671
+ }
6672
+ ]
6673
+ };
6674
+
6545
6675
  // ../../packages/core/src/firewalls/posthog.generated.ts
6546
6676
  var posthogFirewall = {
6547
6677
  name: "posthog",
@@ -6583,6 +6713,32 @@ var posthogFirewall = {
6583
6713
  ]
6584
6714
  };
6585
6715
 
6716
+ // ../../packages/core/src/firewalls/productlane.generated.ts
6717
+ var productlaneFirewall = {
6718
+ name: "productlane",
6719
+ description: "Productlane API",
6720
+ placeholders: {
6721
+ PRODUCTLANE_TOKEN: "vm0placeholderProductlaneToken0000000000000000000000a"
6722
+ },
6723
+ apis: [
6724
+ {
6725
+ base: "https://productlane.com",
6726
+ auth: {
6727
+ headers: {
6728
+ Authorization: "Bearer ${{ secrets.PRODUCTLANE_TOKEN }}"
6729
+ }
6730
+ },
6731
+ permissions: [
6732
+ {
6733
+ name: "unrestricted",
6734
+ description: "Allow all Productlane API endpoints",
6735
+ rules: ["ANY /{path*}"]
6736
+ }
6737
+ ]
6738
+ }
6739
+ ]
6740
+ };
6741
+
6586
6742
  // ../../packages/core/src/firewalls/pushinator.generated.ts
6587
6743
  var pushinatorFirewall = {
6588
6744
  name: "pushinator",
@@ -6661,6 +6817,32 @@ var redditFirewall = {
6661
6817
  ]
6662
6818
  };
6663
6819
 
6820
+ // ../../packages/core/src/firewalls/reportei.generated.ts
6821
+ var reporteiFirewall = {
6822
+ name: "reportei",
6823
+ description: "Reportei API",
6824
+ placeholders: {
6825
+ REPORTEI_TOKEN: "vm0placeholderReporteiToken00000000000000000000000000a"
6826
+ },
6827
+ apis: [
6828
+ {
6829
+ base: "https://app.reportei.com",
6830
+ auth: {
6831
+ headers: {
6832
+ Authorization: "Bearer ${{ secrets.REPORTEI_TOKEN }}"
6833
+ }
6834
+ },
6835
+ permissions: [
6836
+ {
6837
+ name: "unrestricted",
6838
+ description: "Allow all Reportei API endpoints",
6839
+ rules: ["ANY /{path*}"]
6840
+ }
6841
+ ]
6842
+ }
6843
+ ]
6844
+ };
6845
+
6664
6846
  // ../../packages/core/src/firewalls/resend.generated.ts
6665
6847
  var resendFirewall = {
6666
6848
  name: "resend",
@@ -8753,25 +8935,32 @@ var builtinFirewalls = {
8753
8935
  imgur: imgurFirewall,
8754
8936
  instantly: instantlyFirewall,
8755
8937
  intercom: intercomFirewall,
8938
+ "intervals-icu": intervalsIcuFirewall,
8756
8939
  jira: jiraFirewall,
8757
8940
  jotform: jotformFirewall,
8758
8941
  lark: larkFirewall,
8759
8942
  line: lineFirewall,
8760
8943
  linear: linearFirewall,
8761
8944
  loops: loopsFirewall,
8945
+ mailsac: mailsacFirewall,
8762
8946
  mercury: mercuryFirewall,
8763
8947
  minimax: minimaxFirewall,
8764
8948
  monday: mondayFirewall,
8765
8949
  neon: neonFirewall,
8766
8950
  notion: notionFirewall,
8767
8951
  openai: openaiFirewall,
8952
+ pdf4me: pdf4meFirewall,
8768
8953
  pdfco: pdfcoFirewall,
8954
+ pdforge: pdforgeFirewall,
8769
8955
  perplexity: perplexityFirewall,
8770
8956
  plausible: plausibleFirewall,
8957
+ podchaser: podchaserFirewall,
8771
8958
  posthog: posthogFirewall,
8959
+ productlane: productlaneFirewall,
8772
8960
  pushinator: pushinatorFirewall,
8773
8961
  qiita: qiitaFirewall,
8774
8962
  reddit: redditFirewall,
8963
+ reportei: reporteiFirewall,
8775
8964
  resend: resendFirewall,
8776
8965
  revenuecat: revenuecatFirewall,
8777
8966
  runway: runwayFirewall,
@@ -11567,8 +11756,6 @@ var storedExecutionContextSchema = z19.object({
11567
11756
  apiStartTime: z19.number().optional(),
11568
11757
  // User's timezone preference (IANA format, e.g., "Asia/Shanghai")
11569
11758
  userTimezone: z19.string().optional(),
11570
- // Org slug for agent — used for VM0_ACTIVE_ORG
11571
- agentOrgSlug: z19.string().optional(),
11572
11759
  // Memory storage name (for first-run when manifest.memory is null)
11573
11760
  memoryName: z19.string().optional(),
11574
11761
  // Experimental firewall for proxy-side token replacement
@@ -11607,8 +11794,6 @@ var executionContextSchema = z19.object({
11607
11794
  apiStartTime: z19.number().optional(),
11608
11795
  // User's timezone preference (IANA format, e.g., "Asia/Shanghai")
11609
11796
  userTimezone: z19.string().optional(),
11610
- // Org slug for agent — used for VM0_ACTIVE_ORG
11611
- agentOrgSlug: z19.string().optional(),
11612
11797
  // Memory storage name (for first-run when manifest.memory is null)
11613
11798
  memoryName: z19.string().optional(),
11614
11799
  // Experimental firewall for proxy-side token replacement
@@ -12948,7 +13133,53 @@ var CONNECTOR_TYPES_DEF = {
12948
13133
  oauth: {
12949
13134
  authorizationUrl: "https://twitter.com/i/oauth2/authorize",
12950
13135
  tokenUrl: "https://api.twitter.com/2/oauth2/token",
12951
- scopes: ["tweet.read", "users.read", "follows.read", "offline.access"],
13136
+ // https://docs.x.com/fundamentals/authentication/oauth-2-0/authorization-code
13137
+ scopes: [
13138
+ "tweet.read",
13139
+ // All the Tweets you can view, including Tweets from protected accounts.
13140
+ "tweet.write",
13141
+ // Tweet and Retweet for you.
13142
+ "tweet.moderate.write",
13143
+ // Hide and unhide replies to your Tweets.
13144
+ "users.email",
13145
+ // Email from an authenticated user.
13146
+ "users.read",
13147
+ // Any account you can view, including protected accounts.
13148
+ "follows.read",
13149
+ // People who follow you and people who you follow.
13150
+ "follows.write",
13151
+ // Follow and unfollow people for you.
13152
+ "offline.access",
13153
+ // Stay connected to your account until you revoke access.
13154
+ "space.read",
13155
+ // All the Spaces you can view.
13156
+ "mute.read",
13157
+ // Accounts you've muted.
13158
+ "mute.write",
13159
+ // Mute and unmute accounts for you.
13160
+ "like.read",
13161
+ // Tweets you've liked and likes you can view.
13162
+ "like.write",
13163
+ // Like and un-like Tweets for you.
13164
+ "list.read",
13165
+ // Lists, list members, and list followers of lists you've created or are a member of, including private lists.
13166
+ "list.write",
13167
+ // Create and manage Lists for you.
13168
+ "block.read",
13169
+ // Accounts you've blocked.
13170
+ "block.write",
13171
+ // Block and unblock accounts for you.
13172
+ "bookmark.read",
13173
+ // Get Bookmarked Tweets from an authenticated user.
13174
+ "bookmark.write",
13175
+ // Bookmark and remove Bookmarks from Tweets.
13176
+ "dm.read",
13177
+ // All the Direct Messages you can view, including Direct Messages from protected accounts.
13178
+ "dm.write",
13179
+ // Send and manage Direct Messages for you.
13180
+ "media.write"
13181
+ // Upload media.
13182
+ ],
12952
13183
  environmentMapping: {
12953
13184
  X_ACCESS_TOKEN: "$secrets.X_ACCESS_TOKEN"
12954
13185
  }
@@ -14941,19 +15172,15 @@ var c14 = initContract();
14941
15172
  var sendModeSchema = z22.enum(["enter", "cmd-enter"]);
14942
15173
  var userPreferencesResponseSchema = z22.object({
14943
15174
  timezone: z22.string().nullable(),
14944
- notifyEmail: z22.boolean(),
14945
- notifySlack: z22.boolean(),
14946
15175
  pinnedAgentIds: z22.array(z22.string()),
14947
15176
  sendMode: sendModeSchema
14948
15177
  });
14949
15178
  var updateUserPreferencesRequestSchema = z22.object({
14950
15179
  timezone: z22.string().min(1).optional(),
14951
- notifyEmail: z22.boolean().optional(),
14952
- notifySlack: z22.boolean().optional(),
14953
15180
  pinnedAgentIds: z22.array(z22.string()).optional(),
14954
15181
  sendMode: sendModeSchema.optional()
14955
15182
  }).refine(
14956
- (data) => data.timezone !== void 0 || data.notifyEmail !== void 0 || data.notifySlack !== void 0 || data.pinnedAgentIds !== void 0 || data.sendMode !== void 0,
15183
+ (data) => data.timezone !== void 0 || data.pinnedAgentIds !== void 0 || data.sendMode !== void 0,
14957
15184
  {
14958
15185
  message: "At least one preference must be provided"
14959
15186
  }
@@ -15098,6 +15325,7 @@ var zeroAgentsMainContract = c17.router({
15098
15325
  201: zeroAgentResponseSchema,
15099
15326
  400: apiErrorSchema,
15100
15327
  401: apiErrorSchema,
15328
+ 403: apiErrorSchema,
15101
15329
  422: apiErrorSchema
15102
15330
  },
15103
15331
  summary: "Create zero agent"
@@ -15108,7 +15336,8 @@ var zeroAgentsMainContract = c17.router({
15108
15336
  headers: authHeadersSchema,
15109
15337
  responses: {
15110
15338
  200: z26.array(zeroAgentResponseSchema),
15111
- 401: apiErrorSchema
15339
+ 401: apiErrorSchema,
15340
+ 403: apiErrorSchema
15112
15341
  },
15113
15342
  summary: "List zero agents"
15114
15343
  }
@@ -15122,6 +15351,7 @@ var zeroAgentsByIdContract = c17.router({
15122
15351
  responses: {
15123
15352
  200: zeroAgentResponseSchema,
15124
15353
  401: apiErrorSchema,
15354
+ 403: apiErrorSchema,
15125
15355
  404: apiErrorSchema
15126
15356
  },
15127
15357
  summary: "Get zero agent by id"
@@ -15136,6 +15366,7 @@ var zeroAgentsByIdContract = c17.router({
15136
15366
  200: zeroAgentResponseSchema,
15137
15367
  400: apiErrorSchema,
15138
15368
  401: apiErrorSchema,
15369
+ 403: apiErrorSchema,
15139
15370
  404: apiErrorSchema,
15140
15371
  422: apiErrorSchema
15141
15372
  },
@@ -15150,6 +15381,7 @@ var zeroAgentsByIdContract = c17.router({
15150
15381
  responses: {
15151
15382
  200: zeroAgentResponseSchema,
15152
15383
  401: apiErrorSchema,
15384
+ 403: apiErrorSchema,
15153
15385
  404: apiErrorSchema
15154
15386
  },
15155
15387
  summary: "Update zero agent metadata"
@@ -15163,6 +15395,7 @@ var zeroAgentsByIdContract = c17.router({
15163
15395
  responses: {
15164
15396
  204: c17.noBody(),
15165
15397
  401: apiErrorSchema,
15398
+ 403: apiErrorSchema,
15166
15399
  404: apiErrorSchema
15167
15400
  },
15168
15401
  summary: "Delete zero agent by id"
@@ -15197,6 +15430,7 @@ var zeroAgentInstructionsContract = c17.router({
15197
15430
  responses: {
15198
15431
  200: zeroAgentInstructionsResponseSchema,
15199
15432
  401: apiErrorSchema,
15433
+ 403: apiErrorSchema,
15200
15434
  404: apiErrorSchema
15201
15435
  },
15202
15436
  summary: "Get zero agent instructions"
@@ -15210,6 +15444,7 @@ var zeroAgentInstructionsContract = c17.router({
15210
15444
  responses: {
15211
15445
  200: zeroAgentResponseSchema,
15212
15446
  401: apiErrorSchema,
15447
+ 403: apiErrorSchema,
15213
15448
  404: apiErrorSchema,
15214
15449
  422: apiErrorSchema
15215
15450
  },
@@ -16061,23 +16296,25 @@ var zeroSessionsByIdContract = c27.router({
16061
16296
  // ../../packages/core/src/contracts/integrations.ts
16062
16297
  import { z as z35 } from "zod";
16063
16298
  var c28 = initContract();
16299
+ var sendSlackMessageBodySchema = z35.object({
16300
+ channel: z35.string().min(1, "Channel ID is required"),
16301
+ text: z35.string().optional(),
16302
+ threadTs: z35.string().optional(),
16303
+ blocks: z35.array(z35.object({ type: z35.string() }).passthrough()).optional()
16304
+ });
16305
+ var sendSlackMessageResponseSchema = z35.object({
16306
+ ok: z35.literal(true),
16307
+ ts: z35.string().optional(),
16308
+ channel: z35.string().optional()
16309
+ });
16064
16310
  var integrationsSlackMessageContract = c28.router({
16065
16311
  sendMessage: {
16066
16312
  method: "POST",
16067
16313
  path: "/api/zero/integrations/slack/message",
16068
16314
  headers: authHeadersSchema,
16069
- body: z35.object({
16070
- channel: z35.string().min(1, "Channel ID is required"),
16071
- text: z35.string().optional(),
16072
- threadTs: z35.string().optional(),
16073
- blocks: z35.array(z35.object({ type: z35.string() }).passthrough()).optional()
16074
- }),
16315
+ body: sendSlackMessageBodySchema,
16075
16316
  responses: {
16076
- 200: z35.object({
16077
- ok: z35.literal(true),
16078
- ts: z35.string().optional(),
16079
- channel: z35.string().optional()
16080
- }),
16317
+ 200: sendSlackMessageResponseSchema,
16081
16318
  400: apiErrorSchema,
16082
16319
  401: apiErrorSchema,
16083
16320
  403: apiErrorSchema,
@@ -16292,11 +16529,16 @@ var STAFF_USER_HASHES = [
16292
16529
  "67a65740246389d7fecf7702f8b7d6914ad38dc5",
16293
16530
  "55651a8b2c85b35ff0629fa3d4718b9476069d0f"
16294
16531
  ];
16532
+ var STAFF_ORG_ID_HASHES = [
16533
+ "65de87977d6d1712cd88d7768209f33f7ed12e0b"
16534
+ // org_3ANttyrbWYJk6JKRSTRLEsbsDLe
16535
+ ];
16295
16536
  var FEATURE_SWITCHES = {
16296
16537
  ["pricing" /* Pricing */]: {
16297
16538
  maintainer: "ethan@vm0.ai",
16298
16539
  enabled: false,
16299
- enabledUserHashes: STAFF_USER_HASHES
16540
+ enabledUserHashes: STAFF_USER_HASHES,
16541
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16300
16542
  },
16301
16543
  ["dummy" /* Dummy */]: {
16302
16544
  maintainer: "ethan@vm0.ai",
@@ -16321,152 +16563,183 @@ var FEATURE_SWITCHES = {
16321
16563
  ["ahrefsConnector" /* AhrefsConnector */]: {
16322
16564
  maintainer: "ethan@vm0.ai",
16323
16565
  enabled: false,
16324
- enabledUserHashes: STAFF_USER_HASHES
16566
+ enabledUserHashes: STAFF_USER_HASHES,
16567
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16325
16568
  },
16326
16569
  ["canvaConnector" /* CanvaConnector */]: {
16327
16570
  maintainer: "ethan@vm0.ai",
16328
16571
  enabled: false,
16329
- enabledUserHashes: STAFF_USER_HASHES
16572
+ enabledUserHashes: STAFF_USER_HASHES,
16573
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16330
16574
  },
16331
16575
  ["computerConnector" /* ComputerConnector */]: {
16332
16576
  maintainer: "ethan@vm0.ai",
16333
16577
  enabled: false,
16334
- enabledUserHashes: STAFF_USER_HASHES
16578
+ enabledUserHashes: STAFF_USER_HASHES,
16579
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16335
16580
  },
16336
16581
  ["deelConnector" /* DeelConnector */]: {
16337
16582
  maintainer: "ethan@vm0.ai",
16338
16583
  enabled: false,
16339
- enabledUserHashes: STAFF_USER_HASHES
16584
+ enabledUserHashes: STAFF_USER_HASHES,
16585
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16340
16586
  },
16341
16587
  ["docusignConnector" /* DocuSignConnector */]: {
16342
16588
  maintainer: "ethan@vm0.ai",
16343
16589
  enabled: false,
16344
- enabledUserHashes: STAFF_USER_HASHES
16590
+ enabledUserHashes: STAFF_USER_HASHES,
16591
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16345
16592
  },
16346
16593
  ["dropboxConnector" /* DropboxConnector */]: {
16347
16594
  maintainer: "ethan@vm0.ai",
16348
16595
  enabled: false,
16349
- enabledUserHashes: STAFF_USER_HASHES
16596
+ enabledUserHashes: STAFF_USER_HASHES,
16597
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16350
16598
  },
16351
16599
  ["figmaConnector" /* FigmaConnector */]: {
16352
16600
  maintainer: "ethan@vm0.ai",
16353
16601
  enabled: false,
16354
- enabledUserHashes: STAFF_USER_HASHES
16602
+ enabledUserHashes: STAFF_USER_HASHES,
16603
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16355
16604
  },
16356
16605
  ["mercuryConnector" /* MercuryConnector */]: {
16357
16606
  maintainer: "ethan@vm0.ai",
16358
16607
  enabled: false,
16359
- enabledUserHashes: STAFF_USER_HASHES
16608
+ enabledUserHashes: STAFF_USER_HASHES,
16609
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16360
16610
  },
16361
16611
  ["neonConnector" /* NeonConnector */]: {
16362
16612
  maintainer: "ethan@vm0.ai",
16363
16613
  enabled: false,
16364
- enabledUserHashes: STAFF_USER_HASHES
16614
+ enabledUserHashes: STAFF_USER_HASHES,
16615
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16365
16616
  },
16366
16617
  ["garminConnectConnector" /* GarminConnectConnector */]: {
16367
16618
  maintainer: "ethan@vm0.ai",
16368
16619
  enabled: false,
16369
- enabledUserHashes: STAFF_USER_HASHES
16620
+ enabledUserHashes: STAFF_USER_HASHES,
16621
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16370
16622
  },
16371
16623
  ["redditConnector" /* RedditConnector */]: {
16372
16624
  maintainer: "ethan@vm0.ai",
16373
16625
  enabled: false,
16374
- enabledUserHashes: STAFF_USER_HASHES
16626
+ enabledUserHashes: STAFF_USER_HASHES,
16627
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16375
16628
  },
16376
16629
  ["intervalsIcuConnector" /* IntervalsIcuConnector */]: {
16377
16630
  maintainer: "ethan@vm0.ai",
16378
16631
  enabled: false,
16379
- enabledUserHashes: STAFF_USER_HASHES
16632
+ enabledUserHashes: STAFF_USER_HASHES,
16633
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16380
16634
  },
16381
16635
  ["supabaseConnector" /* SupabaseConnector */]: {
16382
16636
  maintainer: "ethan@vm0.ai",
16383
16637
  enabled: false,
16384
- enabledUserHashes: STAFF_USER_HASHES
16638
+ enabledUserHashes: STAFF_USER_HASHES,
16639
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16385
16640
  },
16386
16641
  ["closeConnector" /* CloseConnector */]: {
16387
16642
  maintainer: "ethan@vm0.ai",
16388
16643
  enabled: false,
16389
- enabledUserHashes: STAFF_USER_HASHES
16644
+ enabledUserHashes: STAFF_USER_HASHES,
16645
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16390
16646
  },
16391
16647
  ["webflowConnector" /* WebflowConnector */]: {
16392
16648
  maintainer: "ethan@vm0.ai",
16393
16649
  enabled: false,
16394
- enabledUserHashes: STAFF_USER_HASHES
16650
+ enabledUserHashes: STAFF_USER_HASHES,
16651
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16395
16652
  },
16396
16653
  ["outlookMailConnector" /* OutlookMailConnector */]: {
16397
16654
  maintainer: "ethan@vm0.ai",
16398
16655
  enabled: false,
16399
- enabledUserHashes: STAFF_USER_HASHES
16656
+ enabledUserHashes: STAFF_USER_HASHES,
16657
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16400
16658
  },
16401
16659
  ["outlookCalendarConnector" /* OutlookCalendarConnector */]: {
16402
16660
  maintainer: "ethan@vm0.ai",
16403
16661
  enabled: false,
16404
- enabledUserHashes: STAFF_USER_HASHES
16662
+ enabledUserHashes: STAFF_USER_HASHES,
16663
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16405
16664
  },
16406
16665
  ["metaAdsConnector" /* MetaAdsConnector */]: {
16407
16666
  maintainer: "ethan@vm0.ai",
16408
16667
  enabled: false,
16409
- enabledUserHashes: STAFF_USER_HASHES
16668
+ enabledUserHashes: STAFF_USER_HASHES,
16669
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16410
16670
  },
16411
16671
  ["stripeConnector" /* StripeConnector */]: {
16412
16672
  maintainer: "ethan@vm0.ai",
16413
16673
  enabled: false,
16414
- enabledUserHashes: STAFF_USER_HASHES
16674
+ enabledUserHashes: STAFF_USER_HASHES,
16675
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16415
16676
  },
16416
16677
  ["posthogConnector" /* PosthogConnector */]: {
16417
16678
  maintainer: "ethan@vm0.ai",
16418
16679
  enabled: false,
16419
- enabledUserHashes: STAFF_USER_HASHES
16680
+ enabledUserHashes: STAFF_USER_HASHES,
16681
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16420
16682
  },
16421
16683
  ["mailchimpConnector" /* MailchimpConnector */]: {
16422
16684
  maintainer: "ethan@vm0.ai",
16423
16685
  enabled: false,
16424
- enabledUserHashes: STAFF_USER_HASHES
16686
+ enabledUserHashes: STAFF_USER_HASHES,
16687
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16425
16688
  },
16426
16689
  ["resendConnector" /* ResendConnector */]: {
16427
16690
  maintainer: "ethan@vm0.ai",
16428
16691
  enabled: false,
16429
- enabledUserHashes: STAFF_USER_HASHES
16692
+ enabledUserHashes: STAFF_USER_HASHES,
16693
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16430
16694
  },
16431
16695
  ["githubIntegration" /* GitHubIntegration */]: {
16432
16696
  maintainer: "ethan@vm0.ai",
16433
16697
  enabled: false,
16434
- enabledUserHashes: STAFF_USER_HASHES
16698
+ enabledUserHashes: STAFF_USER_HASHES,
16699
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16435
16700
  },
16436
16701
  ["telegramIntegration" /* TelegramIntegration */]: {
16437
16702
  maintainer: "ethan@vm0.ai",
16438
16703
  enabled: false,
16439
- enabledUserHashes: STAFF_USER_HASHES
16704
+ enabledUserHashes: STAFF_USER_HASHES,
16705
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16440
16706
  },
16441
16707
  ["dataExport" /* DataExport */]: {
16442
16708
  maintainer: "ethan@vm0.ai",
16443
16709
  enabled: false,
16444
- enabledUserHashes: STAFF_USER_HASHES
16710
+ enabledUserHashes: STAFF_USER_HASHES,
16711
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16445
16712
  },
16446
16713
  ["showSystemPrompt" /* ShowSystemPrompt */]: {
16447
16714
  maintainer: "ethan@vm0.ai",
16448
16715
  enabled: false,
16449
- enabledUserHashes: STAFF_USER_HASHES
16716
+ enabledUserHashes: STAFF_USER_HASHES,
16717
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16450
16718
  },
16451
16719
  ["usage" /* Usage */]: {
16452
16720
  maintainer: "ethan@vm0.ai",
16453
16721
  enabled: false,
16454
- enabledUserHashes: STAFF_USER_HASHES
16722
+ enabledUserHashes: STAFF_USER_HASHES,
16723
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
16455
16724
  }
16456
16725
  };
16457
- async function isFeatureEnabled(key, userId, email) {
16726
+ async function isFeatureEnabled(key, ctx) {
16458
16727
  const featureSwitch = FEATURE_SWITCHES[key];
16459
16728
  if (featureSwitch.enabled) {
16460
16729
  return true;
16461
16730
  }
16462
- if (userId && featureSwitch.enabledUserHashes?.length) {
16463
- const hash = await sha1(userId);
16731
+ if (ctx?.userId && featureSwitch.enabledUserHashes?.length) {
16732
+ const hash = await sha1(ctx.userId);
16464
16733
  if (featureSwitch.enabledUserHashes.includes(hash)) return true;
16465
16734
  }
16466
- if (email && featureSwitch.enabledEmailHashes?.length) {
16467
- const hash = await sha1(email.toLowerCase());
16735
+ if (ctx?.email && featureSwitch.enabledEmailHashes?.length) {
16736
+ const hash = await sha1(ctx.email.toLowerCase());
16468
16737
  if (featureSwitch.enabledEmailHashes.includes(hash)) return true;
16469
16738
  }
16739
+ if (ctx?.orgId && featureSwitch.enabledOrgIdHashes?.length) {
16740
+ const hash = await sha1(ctx.orgId);
16741
+ if (featureSwitch.enabledOrgIdHashes.includes(hash)) return true;
16742
+ }
16470
16743
  return false;
16471
16744
  }
16472
16745
 
@@ -17297,11 +17570,23 @@ async function updateZeroAgentInstructions(id, content) {
17297
17570
  handleError(result, `Failed to update instructions for zero agent "${id}"`);
17298
17571
  }
17299
17572
 
17300
- // src/lib/api/domains/zero-schedules.ts
17573
+ // src/lib/api/domains/integrations-slack.ts
17301
17574
  import { initClient as initClient14 } from "@ts-rest/core";
17575
+ async function sendSlackMessage(body) {
17576
+ const config = await getClientConfig();
17577
+ const client = initClient14(integrationsSlackMessageContract, config);
17578
+ const result = await client.sendMessage({ body, headers: {} });
17579
+ if (result.status === 200) {
17580
+ return result.body;
17581
+ }
17582
+ handleError(result, "Failed to send Slack message");
17583
+ }
17584
+
17585
+ // src/lib/api/domains/zero-schedules.ts
17586
+ import { initClient as initClient15 } from "@ts-rest/core";
17302
17587
  async function deployZeroSchedule(body) {
17303
17588
  const config = await getClientConfig();
17304
- const client = initClient14(zeroSchedulesMainContract, config);
17589
+ const client = initClient15(zeroSchedulesMainContract, config);
17305
17590
  const result = await client.deploy({ body });
17306
17591
  if (result.status === 200 || result.status === 201) {
17307
17592
  return result.body;
@@ -17310,7 +17595,7 @@ async function deployZeroSchedule(body) {
17310
17595
  }
17311
17596
  async function listZeroSchedules() {
17312
17597
  const config = await getClientConfig();
17313
- const client = initClient14(zeroSchedulesMainContract, config);
17598
+ const client = initClient15(zeroSchedulesMainContract, config);
17314
17599
  const result = await client.list({ headers: {} });
17315
17600
  if (result.status === 200) {
17316
17601
  return result.body;
@@ -17319,7 +17604,7 @@ async function listZeroSchedules() {
17319
17604
  }
17320
17605
  async function deleteZeroSchedule(params) {
17321
17606
  const config = await getClientConfig();
17322
- const client = initClient14(zeroSchedulesByNameContract, config);
17607
+ const client = initClient15(zeroSchedulesByNameContract, config);
17323
17608
  const result = await client.delete({
17324
17609
  params: { name: params.name },
17325
17610
  query: { agentId: params.agentId }
@@ -17331,7 +17616,7 @@ async function deleteZeroSchedule(params) {
17331
17616
  }
17332
17617
  async function enableZeroSchedule(params) {
17333
17618
  const config = await getClientConfig();
17334
- const client = initClient14(zeroSchedulesEnableContract, config);
17619
+ const client = initClient15(zeroSchedulesEnableContract, config);
17335
17620
  const result = await client.enable({
17336
17621
  params: { name: params.name },
17337
17622
  body: { agentId: params.agentId }
@@ -17343,7 +17628,7 @@ async function enableZeroSchedule(params) {
17343
17628
  }
17344
17629
  async function disableZeroSchedule(params) {
17345
17630
  const config = await getClientConfig();
17346
- const client = initClient14(zeroSchedulesEnableContract, config);
17631
+ const client = initClient15(zeroSchedulesEnableContract, config);
17347
17632
  const result = await client.disable({
17348
17633
  params: { name: params.name },
17349
17634
  body: { agentId: params.agentId }
@@ -17584,6 +17869,7 @@ export {
17584
17869
  getZeroConnectorSession,
17585
17870
  createZeroComputerConnector,
17586
17871
  deleteZeroComputerConnector,
17872
+ sendSlackMessage,
17587
17873
  deployZeroSchedule,
17588
17874
  listZeroSchedules,
17589
17875
  deleteZeroSchedule,
@@ -17596,4 +17882,4 @@ export {
17596
17882
  promptSelect,
17597
17883
  promptPassword
17598
17884
  };
17599
- //# sourceMappingURL=chunk-3EOIDO3I.js.map
17885
+ //# sourceMappingURL=chunk-RGS2GO4Q.js.map