terse-types 0.0.30 → 0.0.32

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.
@@ -89,6 +89,10 @@ export declare const ApiRoutes: {
89
89
  OAUTH_CALLBACK: string;
90
90
  OBJECTS: string;
91
91
  };
92
+ HEY_REACH: {
93
+ INTEGRATIONS: string;
94
+ CAMPAIGNS: string;
95
+ };
92
96
  AGENTS: {
93
97
  LIST: string;
94
98
  RECENT: string;
@@ -168,6 +172,7 @@ export declare const ApiRoutes: {
168
172
  WEBMONITOR_BY_INPUT_ID: string;
169
173
  WORKOS_TRIGGER_BY_INTEGRATION_ID: string;
170
174
  WEBHOOK_TRIGGER_BY_TOKEN: string;
175
+ HEY_REACH_BY_INTEGRATION_ID: string;
171
176
  };
172
177
  SCHEDULE: {
173
178
  TRIGGER_BY_INPUT_ID: string;
@@ -183,7 +188,9 @@ export declare const ApiRoutes: {
183
188
  };
184
189
  BILLING: {
185
190
  CATALOG: string;
191
+ STATUS: string;
186
192
  CONTEXT: string;
193
+ USAGE_BUCKETS: string;
187
194
  CHECKOUT_SESSION: string;
188
195
  CHANGE: string;
189
196
  PORTAL_SESSION: string;
@@ -89,6 +89,10 @@
89
89
  "OAUTH_CALLBACK": "/attio/oauth/callback",
90
90
  "OBJECTS": "/attio/integrations/:integrationId/objects"
91
91
  },
92
+ "HEY_REACH": {
93
+ "INTEGRATIONS": "/heyreach/integrations",
94
+ "CAMPAIGNS": "/heyreach/campaigns"
95
+ },
92
96
  "AGENTS": {
93
97
  "LIST": "/agents",
94
98
  "RECENT": "/agents/recent",
@@ -167,7 +171,8 @@
167
171
  "SCHEDULE_BY_INPUT_ID": "/webhooks/schedule/:inputId",
168
172
  "WEBMONITOR_BY_INPUT_ID": "/webhooks/webmonitor/:inputId",
169
173
  "WORKOS_TRIGGER_BY_INTEGRATION_ID": "/webhooks/workos-trigger/:integrationId",
170
- "WEBHOOK_TRIGGER_BY_TOKEN": "/webhooks/trigger/:webhookToken"
174
+ "WEBHOOK_TRIGGER_BY_TOKEN": "/webhooks/trigger/:webhookToken",
175
+ "HEY_REACH_BY_INTEGRATION_ID": "/webhooks/heyreach/:triggerId"
171
176
  },
172
177
  "SCHEDULE": {
173
178
  "TRIGGER_BY_INPUT_ID": "/schedule/trigger/:inputId",
@@ -183,7 +188,9 @@
183
188
  },
184
189
  "BILLING": {
185
190
  "CATALOG": "/billing/catalog",
191
+ "STATUS": "/billing/status",
186
192
  "CONTEXT": "/billing/context",
193
+ "USAGE_BUCKETS": "/billing/usage-buckets",
187
194
  "CHECKOUT_SESSION": "/billing/checkout-session",
188
195
  "CHANGE": "/billing/change",
189
196
  "PORTAL_SESSION": "/billing/portal-session",
package/dist/Billing.d.ts CHANGED
@@ -91,18 +91,16 @@ export declare const billingContextResponseSchema: z.ZodObject<{
91
91
  period: z.ZodEnum<typeof TimePeriods>;
92
92
  }, z.core.$strip>], "kind">>;
93
93
  }, z.core.$strip>;
94
- usage: z.ZodObject<{
95
- buckets: z.ZodArray<z.ZodObject<{
96
- startTimestamp: z.ZodNumber;
97
- endTimestamp: z.ZodNumber;
98
- inputTokenCredits: z.ZodNumber;
99
- outputTokenCredits: z.ZodNumber;
100
- cachedInputCredits: z.ZodNumber;
101
- runCredits: z.ZodNumber;
102
- }, z.core.$strip>>;
103
- }, z.core.$strip>;
104
94
  }, z.core.$strip>;
105
95
  export type BillingContextResponse = z.infer<typeof billingContextResponseSchema>;
96
+ export declare const billingStatusResponseSchema: z.ZodObject<{
97
+ billingEnabled: z.ZodBoolean;
98
+ hasStripeCustomer: z.ZodBoolean;
99
+ hasActivePaidSubscription: z.ZodBoolean;
100
+ canManageBilling: z.ZodBoolean;
101
+ planKey: z.ZodNullable<z.ZodEnum<typeof PlanKey>>;
102
+ }, z.core.$strip>;
103
+ export type BillingStatusResponse = z.infer<typeof billingStatusResponseSchema>;
106
104
  export declare const completedEventUsageSchema: z.ZodObject<{
107
105
  inputTokens: z.ZodNumber;
108
106
  outputTokens: z.ZodNumber;
@@ -156,14 +154,6 @@ export declare const billingRecordLlmResponseSchema: z.ZodObject<{
156
154
  }, z.core.$strip>;
157
155
  export type BillingRecordLlmResponse = z.infer<typeof billingRecordLlmResponseSchema>;
158
156
  export declare const billingRecordLlmPayloadSchema: z.ZodObject<{
159
- usage: z.ZodObject<{
160
- inputTokens: z.ZodNumber;
161
- outputTokens: z.ZodNumber;
162
- totalTokens: z.ZodNumber;
163
- inputTokensDetails: z.ZodObject<{
164
- cached_tokens: z.ZodNumber;
165
- }, z.core.$strip>;
166
- }, z.core.$strip>;
167
157
  model: z.ZodObject<{
168
158
  providerId: z.ZodEnum<{
169
159
  anthropic: "anthropic";
@@ -172,6 +162,14 @@ export declare const billingRecordLlmPayloadSchema: z.ZodObject<{
172
162
  modelId: z.ZodString;
173
163
  value: z.ZodString;
174
164
  }, z.core.$strip>;
165
+ usage: z.ZodObject<{
166
+ inputTokens: z.ZodNumber;
167
+ outputTokens: z.ZodNumber;
168
+ totalTokens: z.ZodNumber;
169
+ inputTokensDetails: z.ZodObject<{
170
+ cached_tokens: z.ZodNumber;
171
+ }, z.core.$strip>;
172
+ }, z.core.$strip>;
175
173
  responseId: z.ZodString;
176
174
  }, z.core.$strip>;
177
175
  export type BillingRecordLlmPayload = z.infer<typeof billingRecordLlmPayloadSchema>;
@@ -224,8 +222,24 @@ export declare const billingContextQuerySchema: z.ZodObject<{
224
222
  timezone: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<string, string | undefined>>;
225
223
  }, z.core.$strip>;
226
224
  export type BillingContextQuery = z.infer<typeof billingContextQuerySchema>;
227
- export declare const getOrCreateCustomerRequestBodySchema: z.ZodObject<{}, z.core.$strict>;
228
- export type GetOrCreateCustomerRequestBody = z.infer<typeof getOrCreateCustomerRequestBodySchema>;
225
+ /** Query params for GET /billing/usage-buckets (same range semantics as the chart on the billing page). */
226
+ export declare const billingUsageBucketsQuerySchema: z.ZodObject<{
227
+ start: z.ZodOptional<z.ZodCoercedDate<unknown>>;
228
+ end: z.ZodOptional<z.ZodCoercedDate<unknown>>;
229
+ timezone: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<string, string | undefined>>;
230
+ }, z.core.$strip>;
231
+ export type BillingUsageBucketsQuery = z.infer<typeof billingUsageBucketsQuerySchema>;
232
+ export declare const billingUsageBucketsResponseSchema: z.ZodObject<{
233
+ buckets: z.ZodArray<z.ZodObject<{
234
+ startTimestamp: z.ZodNumber;
235
+ endTimestamp: z.ZodNumber;
236
+ inputTokenCredits: z.ZodNumber;
237
+ outputTokenCredits: z.ZodNumber;
238
+ cachedInputCredits: z.ZodNumber;
239
+ runCredits: z.ZodNumber;
240
+ }, z.core.$strip>>;
241
+ }, z.core.$strip>;
242
+ export type BillingUsageBucketsResponse = z.infer<typeof billingUsageBucketsResponseSchema>;
229
243
  export declare const billingStripeRedirectResponseSchema: z.ZodObject<{
230
244
  url: z.ZodString;
231
245
  }, z.core.$strip>;
@@ -275,10 +289,6 @@ export declare const runGateDecisionSchema: z.ZodDiscriminatedUnion<[z.ZodObject
275
289
  }, z.core.$strip>], "allow">;
276
290
  export type RunGateDecision = z.infer<typeof runGateDecisionSchema>;
277
291
  export declare function parseRunGateDenyReason(raw: unknown): RunGateDenyReason;
278
- export declare const getOrCreateCustomerResponseSchema: z.ZodObject<{
279
- customerId: z.ZodString;
280
- }, z.core.$strip>;
281
- export type GetOrCreateCustomerResponse = z.infer<typeof getOrCreateCustomerResponseSchema>;
282
292
  export declare const planSchema: z.ZodObject<{
283
293
  key: z.ZodEnum<typeof PlanKey>;
284
294
  name: z.ZodString;
@@ -337,11 +347,14 @@ export declare const BILLING_SERVICE_CALLBACK_JWT_ISSUER: "terse-billing";
337
347
  export declare const BILLING_SERVICE_CALLBACK_JWT_AUDIENCE: "terse-api";
338
348
  export declare const terseBillingJwtClaimsSchema: z.ZodObject<{
339
349
  organizationId: z.ZodString;
350
+ userId: z.ZodOptional<z.ZodString>;
340
351
  }, z.core.$strip>;
341
352
  export type TerseBillingJwtClaims = z.infer<typeof terseBillingJwtClaimsSchema>;
342
353
  export declare const BillingRoutes: {
343
354
  CATALOG: string;
355
+ STATUS: string;
344
356
  CONTEXT: string;
357
+ USAGE_BUCKETS: string;
345
358
  CHECKOUT_SESSION: string;
346
359
  CHANGE: string;
347
360
  PORTAL_SESSION: string;
package/dist/Billing.js CHANGED
@@ -59,8 +59,14 @@ export const usageResponseSchema = z.object({
59
59
  });
60
60
  export const billingContextResponseSchema = z.object({
61
61
  billingEnabled: z.boolean(),
62
- balance: balanceSummarySchema,
63
- usage: usageResponseSchema
62
+ balance: balanceSummarySchema
63
+ });
64
+ export const billingStatusResponseSchema = z.object({
65
+ billingEnabled: z.boolean(),
66
+ hasStripeCustomer: z.boolean(),
67
+ hasActivePaidSubscription: z.boolean(),
68
+ canManageBilling: z.boolean(),
69
+ planKey: planKeySchema.nullable()
64
70
  });
65
71
  export const completedEventUsageSchema = z.object({
66
72
  inputTokens: z.number().nonnegative(),
@@ -138,7 +144,9 @@ export const billingContextQuerySchema = z.object({
138
144
  .transform(timezone => timezone || DEFAULT_BILLING_CONTEXT_TIMEZONE)
139
145
  .refine(isValidTimezone, { message: "Invalid timezone" })
140
146
  });
141
- export const getOrCreateCustomerRequestBodySchema = z.object({}).strict();
147
+ /** Query params for GET /billing/usage-buckets (same range semantics as the chart on the billing page). */
148
+ export const billingUsageBucketsQuerySchema = billingContextQuerySchema;
149
+ export const billingUsageBucketsResponseSchema = usageResponseSchema;
142
150
  export const billingStripeRedirectResponseSchema = z.object({
143
151
  url: z.string()
144
152
  });
@@ -160,9 +168,6 @@ export function parseRunGateDenyReason(raw) {
160
168
  const parsed = runGateDenyReasonSchema.safeParse(raw);
161
169
  return parsed.success ? parsed.data : "credits_exhausted";
162
170
  }
163
- export const getOrCreateCustomerResponseSchema = z.object({
164
- customerId: z.string()
165
- });
166
171
  export const planSchema = z.object({
167
172
  key: planKeySchema,
168
173
  name: z.string(),
@@ -189,7 +194,8 @@ export const BILLING_SERVICE_JWT_AUDIENCE = "terse-billing";
189
194
  export const BILLING_SERVICE_CALLBACK_JWT_ISSUER = "terse-billing";
190
195
  export const BILLING_SERVICE_CALLBACK_JWT_AUDIENCE = "terse-api";
191
196
  export const terseBillingJwtClaimsSchema = z.object({
192
- organizationId: z.string().min(1)
197
+ organizationId: z.string().min(1),
198
+ userId: z.string().min(1).optional()
193
199
  });
194
200
  export const BillingRoutes = billingRoutes;
195
201
  export class CreditGateDeniedError extends Error {
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "CATALOG": "/billing/catalog",
3
+ "STATUS": "/billing/status",
3
4
  "CONTEXT": "/billing/context",
5
+ "USAGE_BUCKETS": "/billing/usage-buckets",
4
6
  "CHECKOUT_SESSION": "/billing/checkout-session",
5
7
  "CHANGE": "/billing/change",
6
8
  "PORTAL_SESSION": "/billing/portal-session",
package/dist/Configs.d.ts CHANGED
@@ -21,7 +21,8 @@ export declare enum ConfigType {
21
21
  ATTIO_OUTPUT = "attio_output",
22
22
  SNOWFLAKE_OUTPUT = "snowflake_output",
23
23
  WEBHOOK_INPUT = "webhook_input",
24
- WEBMONITOR = "webmonitor"
24
+ WEBMONITOR = "webmonitor",
25
+ HEY_REACH_INPUT = "hey_reach_input"
25
26
  }
26
27
  export declare const configTypeEnum: z.ZodEnum<typeof ConfigType>;
27
28
  export declare const frequencyUnitSchema: z.ZodEnum<{
@@ -206,6 +207,14 @@ export declare const WebMonitorConfigMetadata: {
206
207
  readonly isInput: true;
207
208
  readonly isOutput: false;
208
209
  };
210
+ export declare const HeyReachInputConfigMetadata: {
211
+ readonly configType: ConfigType.HEY_REACH_INPUT;
212
+ readonly name: "HeyReach";
213
+ readonly description: "Trigger on HeyReach LinkedIn outreach events";
214
+ readonly integrationType: IntegrationType.HEY_REACH;
215
+ readonly isInput: true;
216
+ readonly isOutput: false;
217
+ };
209
218
  export type ConfigDetailsMap = Record<ConfigType, ConfigDetails>;
210
219
  export declare const CONFIG_DETAILS: ConfigDetailsMap;
211
220
  export declare const SlackEventType: {
@@ -252,6 +261,33 @@ export declare const gmailEventTypeSchema: z.ZodEnum<{
252
261
  readonly EMAIL_RECEIVED: "email.received";
253
262
  }>;
254
263
  export type GmailEventType = z.infer<typeof gmailEventTypeSchema>;
264
+ export declare const HeyReachEventType: {
265
+ readonly CONNECTION_REQUEST_SENT: "CONNECTION_REQUEST_SENT";
266
+ readonly CONNECTION_REQUEST_ACCEPTED: "CONNECTION_REQUEST_ACCEPTED";
267
+ readonly MESSAGE_SENT: "MESSAGE_SENT";
268
+ readonly MESSAGE_REPLY_RECEIVED: "MESSAGE_REPLY_RECEIVED";
269
+ readonly INMAIL_SENT: "INMAIL_SENT";
270
+ readonly INMAIL_REPLY_RECEIVED: "INMAIL_REPLY_RECEIVED";
271
+ readonly FOLLOW_SENT: "FOLLOW_SENT";
272
+ readonly LIKED_POST: "LIKED_POST";
273
+ readonly VIEWED_PROFILE: "VIEWED_PROFILE";
274
+ readonly CAMPAIGN_COMPLETED: "CAMPAIGN_COMPLETED";
275
+ readonly LEAD_TAG_UPDATED: "LEAD_TAG_UPDATED";
276
+ };
277
+ export declare const heyReachEventTypeSchema: z.ZodEnum<{
278
+ readonly CONNECTION_REQUEST_SENT: "CONNECTION_REQUEST_SENT";
279
+ readonly CONNECTION_REQUEST_ACCEPTED: "CONNECTION_REQUEST_ACCEPTED";
280
+ readonly MESSAGE_SENT: "MESSAGE_SENT";
281
+ readonly MESSAGE_REPLY_RECEIVED: "MESSAGE_REPLY_RECEIVED";
282
+ readonly INMAIL_SENT: "INMAIL_SENT";
283
+ readonly INMAIL_REPLY_RECEIVED: "INMAIL_REPLY_RECEIVED";
284
+ readonly FOLLOW_SENT: "FOLLOW_SENT";
285
+ readonly LIKED_POST: "LIKED_POST";
286
+ readonly VIEWED_PROFILE: "VIEWED_PROFILE";
287
+ readonly CAMPAIGN_COMPLETED: "CAMPAIGN_COMPLETED";
288
+ readonly LEAD_TAG_UPDATED: "LEAD_TAG_UPDATED";
289
+ }>;
290
+ export type HeyReachEventType = z.infer<typeof heyReachEventTypeSchema>;
255
291
  export declare const WorkOSEventType: {
256
292
  readonly USER_CREATED: "user.created";
257
293
  readonly USER_UPDATED: "user.updated";
@@ -479,6 +515,34 @@ export declare const GitHubSkillConfigSchema: z.ZodObject<{
479
515
  repositoryIds: z.ZodArray<z.ZodNumber>;
480
516
  }, z.core.$strip>;
481
517
  export type GitHubSkillConfigData = z.infer<typeof GitHubSkillConfigSchema>;
518
+ export declare const HeyReachInputConfigSchema: z.ZodObject<{
519
+ integrationId: z.ZodString;
520
+ integrationType: z.ZodLiteral<IntegrationType.HEY_REACH>;
521
+ configType: z.ZodLiteral<ConfigType.HEY_REACH_INPUT>;
522
+ eventType: z.ZodEnum<{
523
+ readonly CONNECTION_REQUEST_SENT: "CONNECTION_REQUEST_SENT";
524
+ readonly CONNECTION_REQUEST_ACCEPTED: "CONNECTION_REQUEST_ACCEPTED";
525
+ readonly MESSAGE_SENT: "MESSAGE_SENT";
526
+ readonly MESSAGE_REPLY_RECEIVED: "MESSAGE_REPLY_RECEIVED";
527
+ readonly INMAIL_SENT: "INMAIL_SENT";
528
+ readonly INMAIL_REPLY_RECEIVED: "INMAIL_REPLY_RECEIVED";
529
+ readonly FOLLOW_SENT: "FOLLOW_SENT";
530
+ readonly LIKED_POST: "LIKED_POST";
531
+ readonly VIEWED_PROFILE: "VIEWED_PROFILE";
532
+ readonly CAMPAIGN_COMPLETED: "CAMPAIGN_COMPLETED";
533
+ readonly LEAD_TAG_UPDATED: "LEAD_TAG_UPDATED";
534
+ }>;
535
+ campaignIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
536
+ }, z.core.$strip>;
537
+ export type HeyReachInputConfigData = z.infer<typeof HeyReachInputConfigSchema>;
538
+ export type HeyReachInputConfigInstance = HeyReachInputConfigData & ConfigBehavior;
539
+ export declare class HeyReachInputConfig extends BaseConfigInstance<IntegrationType.HEY_REACH, ConfigType.HEY_REACH_INPUT> implements HeyReachInputConfigInstance {
540
+ eventType: HeyReachEventType;
541
+ campaignIds: string[];
542
+ constructor(integrationId: string, eventType: HeyReachEventType, campaignIds?: string[]);
543
+ isComplete(): boolean;
544
+ formatForAgent(): string;
545
+ }
482
546
  export declare const PosthogConfigSchema: z.ZodObject<{
483
547
  integrationId: z.ZodString;
484
548
  integrationType: z.ZodLiteral<IntegrationType.POSTHOG>;
@@ -847,6 +911,24 @@ export declare const configDataSchema: z.ZodUnion<readonly [z.ZodObject<{
847
911
  type: z.ZodLiteral<"json">;
848
912
  jsonSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
849
913
  }, z.core.$strip>>>>;
914
+ }, z.core.$strip>, z.ZodObject<{
915
+ integrationId: z.ZodString;
916
+ integrationType: z.ZodLiteral<IntegrationType.HEY_REACH>;
917
+ configType: z.ZodLiteral<ConfigType.HEY_REACH_INPUT>;
918
+ eventType: z.ZodEnum<{
919
+ readonly CONNECTION_REQUEST_SENT: "CONNECTION_REQUEST_SENT";
920
+ readonly CONNECTION_REQUEST_ACCEPTED: "CONNECTION_REQUEST_ACCEPTED";
921
+ readonly MESSAGE_SENT: "MESSAGE_SENT";
922
+ readonly MESSAGE_REPLY_RECEIVED: "MESSAGE_REPLY_RECEIVED";
923
+ readonly INMAIL_SENT: "INMAIL_SENT";
924
+ readonly INMAIL_REPLY_RECEIVED: "INMAIL_REPLY_RECEIVED";
925
+ readonly FOLLOW_SENT: "FOLLOW_SENT";
926
+ readonly LIKED_POST: "LIKED_POST";
927
+ readonly VIEWED_PROFILE: "VIEWED_PROFILE";
928
+ readonly CAMPAIGN_COMPLETED: "CAMPAIGN_COMPLETED";
929
+ readonly LEAD_TAG_UPDATED: "LEAD_TAG_UPDATED";
930
+ }>;
931
+ campaignIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
850
932
  }, z.core.$strip>]>;
851
933
  export type ConfigData = z.infer<typeof configDataSchema>;
852
934
  /** Configs that can serve as triggers (event sources). */
@@ -939,6 +1021,24 @@ export declare const triggerConfigDataSchema: z.ZodUnion<readonly [z.ZodObject<{
939
1021
  type: z.ZodLiteral<"json">;
940
1022
  jsonSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
941
1023
  }, z.core.$strip>>>>;
1024
+ }, z.core.$strip>, z.ZodObject<{
1025
+ integrationId: z.ZodString;
1026
+ integrationType: z.ZodLiteral<IntegrationType.HEY_REACH>;
1027
+ configType: z.ZodLiteral<ConfigType.HEY_REACH_INPUT>;
1028
+ eventType: z.ZodEnum<{
1029
+ readonly CONNECTION_REQUEST_SENT: "CONNECTION_REQUEST_SENT";
1030
+ readonly CONNECTION_REQUEST_ACCEPTED: "CONNECTION_REQUEST_ACCEPTED";
1031
+ readonly MESSAGE_SENT: "MESSAGE_SENT";
1032
+ readonly MESSAGE_REPLY_RECEIVED: "MESSAGE_REPLY_RECEIVED";
1033
+ readonly INMAIL_SENT: "INMAIL_SENT";
1034
+ readonly INMAIL_REPLY_RECEIVED: "INMAIL_REPLY_RECEIVED";
1035
+ readonly FOLLOW_SENT: "FOLLOW_SENT";
1036
+ readonly LIKED_POST: "LIKED_POST";
1037
+ readonly VIEWED_PROFILE: "VIEWED_PROFILE";
1038
+ readonly CAMPAIGN_COMPLETED: "CAMPAIGN_COMPLETED";
1039
+ readonly LEAD_TAG_UPDATED: "LEAD_TAG_UPDATED";
1040
+ }>;
1041
+ campaignIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
942
1042
  }, z.core.$strip>]>;
943
1043
  export type TriggerConfigData = z.infer<typeof triggerConfigDataSchema>;
944
1044
  /** Configs that can serve as skills (tools / outputs). */
@@ -1044,6 +1144,7 @@ export type ConfigMetadataMap = EnsureExhaustiveMetadata<{
1044
1144
  [ConfigType.SNOWFLAKE_OUTPUT]: typeof SnowflakeOutputConfig;
1045
1145
  [ConfigType.WEBHOOK_INPUT]: typeof WebhookInputConfig;
1046
1146
  [ConfigType.WEBMONITOR]: typeof WebMonitorConfig;
1147
+ [ConfigType.HEY_REACH_INPUT]: typeof HeyReachInputConfig;
1047
1148
  }>;
1048
1149
  export declare const CONFIG_METADATA: ConfigMetadataMap;
1049
1150
  export {};
package/dist/Configs.js CHANGED
@@ -23,6 +23,7 @@ export var ConfigType;
23
23
  ConfigType["SNOWFLAKE_OUTPUT"] = "snowflake_output";
24
24
  ConfigType["WEBHOOK_INPUT"] = "webhook_input";
25
25
  ConfigType["WEBMONITOR"] = "webmonitor";
26
+ ConfigType["HEY_REACH_INPUT"] = "hey_reach_input";
26
27
  })(ConfigType || (ConfigType = {}));
27
28
  export const configTypeEnum = z.enum(ConfigType);
28
29
  export const frequencyUnitSchema = z.enum(["hour", "day", "week"]);
@@ -195,6 +196,14 @@ export const WebMonitorConfigMetadata = {
195
196
  isInput: true,
196
197
  isOutput: false
197
198
  };
199
+ export const HeyReachInputConfigMetadata = {
200
+ configType: ConfigType.HEY_REACH_INPUT,
201
+ name: "HeyReach",
202
+ description: "Trigger on HeyReach LinkedIn outreach events",
203
+ integrationType: IntegrationType.HEY_REACH,
204
+ isInput: true,
205
+ isOutput: false
206
+ };
198
207
  export const CONFIG_DETAILS = {
199
208
  [ConfigType.GMAIL]: GmailConfigMetadata,
200
209
  [ConfigType.GMAIL_OUTPUT]: GmailOutputConfigMetadata,
@@ -216,7 +225,8 @@ export const CONFIG_DETAILS = {
216
225
  [ConfigType.ATTIO_OUTPUT]: AttioOutputConfigMetadata,
217
226
  [ConfigType.SNOWFLAKE_OUTPUT]: SnowflakeOutputConfigMetadata,
218
227
  [ConfigType.WEBHOOK_INPUT]: WebhookInputConfigMetadata,
219
- [ConfigType.WEBMONITOR]: WebMonitorConfigMetadata
228
+ [ConfigType.WEBMONITOR]: WebMonitorConfigMetadata,
229
+ [ConfigType.HEY_REACH_INPUT]: HeyReachInputConfigMetadata
220
230
  };
221
231
  // MARK: Event Types — specific events within each integration trigger
222
232
  export const SlackEventType = {
@@ -243,6 +253,20 @@ export const GmailEventType = {
243
253
  EMAIL_RECEIVED: "email.received"
244
254
  };
245
255
  export const gmailEventTypeSchema = z.enum(GmailEventType);
256
+ export const HeyReachEventType = {
257
+ CONNECTION_REQUEST_SENT: "CONNECTION_REQUEST_SENT",
258
+ CONNECTION_REQUEST_ACCEPTED: "CONNECTION_REQUEST_ACCEPTED",
259
+ MESSAGE_SENT: "MESSAGE_SENT",
260
+ MESSAGE_REPLY_RECEIVED: "MESSAGE_REPLY_RECEIVED",
261
+ INMAIL_SENT: "INMAIL_SENT",
262
+ INMAIL_REPLY_RECEIVED: "INMAIL_REPLY_RECEIVED",
263
+ FOLLOW_SENT: "FOLLOW_SENT",
264
+ LIKED_POST: "LIKED_POST",
265
+ VIEWED_PROFILE: "VIEWED_PROFILE",
266
+ CAMPAIGN_COMPLETED: "CAMPAIGN_COMPLETED",
267
+ LEAD_TAG_UPDATED: "LEAD_TAG_UPDATED"
268
+ };
269
+ export const heyReachEventTypeSchema = z.enum(HeyReachEventType);
246
270
  export const WorkOSEventType = {
247
271
  USER_CREATED: "user.created",
248
272
  USER_UPDATED: "user.updated",
@@ -554,6 +578,30 @@ export const GitHubSkillConfigSchema = ConfigInstanceSchema.extend({
554
578
  configType: z.literal(ConfigType.GITHUB),
555
579
  repositoryIds: z.array(z.number().int())
556
580
  });
581
+ export const HeyReachInputConfigSchema = ConfigInstanceSchema.extend({
582
+ integrationType: z.literal(IntegrationType.HEY_REACH),
583
+ configType: z.literal(ConfigType.HEY_REACH_INPUT),
584
+ eventType: heyReachEventTypeSchema,
585
+ campaignIds: z.array(z.string()).default([])
586
+ });
587
+ export class HeyReachInputConfig extends BaseConfigInstance {
588
+ eventType;
589
+ campaignIds;
590
+ constructor(integrationId, eventType, campaignIds = []) {
591
+ super(integrationId, IntegrationType.HEY_REACH, ConfigType.HEY_REACH_INPUT);
592
+ this.eventType = eventType;
593
+ this.campaignIds = campaignIds;
594
+ }
595
+ isComplete() {
596
+ return !!this.eventType;
597
+ }
598
+ formatForAgent() {
599
+ const parts = [`Type: HeyReach Events`, `Integration ID: ${this.integrationId}`, `Listening for: ${this.eventType}`];
600
+ if (this.campaignIds.length > 0)
601
+ parts.push(`Campaigns: ${this.campaignIds.join(", ")}`);
602
+ return parts.join("\n");
603
+ }
604
+ }
557
605
  export const PosthogConfigSchema = ConfigInstanceSchema.extend({
558
606
  integrationType: z.literal(IntegrationType.POSTHOG),
559
607
  configType: z.literal(ConfigType.POSTHOG),
@@ -871,7 +919,8 @@ export const configDataSchema = z.union([
871
919
  AttioOutputConfigSchema,
872
920
  SnowflakeOutputConfigSchema,
873
921
  WebhookInputConfigSchema,
874
- WebMonitorConfigSchema
922
+ WebMonitorConfigSchema,
923
+ HeyReachInputConfigSchema
875
924
  ]);
876
925
  /** Configs that can serve as triggers (event sources). */
877
926
  export const triggerConfigDataSchema = z.union([
@@ -882,7 +931,8 @@ export const triggerConfigDataSchema = z.union([
882
931
  TimeTriggerConfigSchema,
883
932
  WorkOSInputConfigSchema,
884
933
  WebhookInputConfigSchema,
885
- WebMonitorConfigSchema
934
+ WebMonitorConfigSchema,
935
+ HeyReachInputConfigSchema
886
936
  ]);
887
937
  /** Configs that can serve as skills (tools / outputs). */
888
938
  export const skillConfigDataSchema = z.union([
@@ -938,6 +988,8 @@ export function isConfigComplete(config) {
938
988
  return !!(config.projectKey && config.environmentKeys.length > 0);
939
989
  case ConfigType.WORKOS_INPUT:
940
990
  return config.eventTypes.length > 0;
991
+ case ConfigType.HEY_REACH_INPUT:
992
+ return !!config.eventType;
941
993
  case ConfigType.ATTIO_OUTPUT:
942
994
  return !!config.objectSlug;
943
995
  default:
@@ -1060,6 +1112,12 @@ export function formatConfigForAgent(config) {
1060
1112
  return "Type: Image Edit";
1061
1113
  case ConfigType.WORKOS_INPUT:
1062
1114
  return `Type: WorkOS Events\nListening for: ${config.eventTypes.join(", ")}`;
1115
+ case ConfigType.HEY_REACH_INPUT: {
1116
+ const parts = [`Type: HeyReach Events`, `Integration ID: ${config.integrationId}`, `Listening for: ${config.eventType}`];
1117
+ if (config.campaignIds.length > 0)
1118
+ parts.push(`Campaigns: ${config.campaignIds.join(", ")}`);
1119
+ return parts.join("\n");
1120
+ }
1063
1121
  case ConfigType.WORKOS_OUTPUT:
1064
1122
  return `Type: WorkOS Skill\nIntegration ID: ${config.integrationId}`;
1065
1123
  case ConfigType.ATTIO_OUTPUT: {
@@ -1107,5 +1165,6 @@ export const CONFIG_METADATA = {
1107
1165
  [ConfigType.ATTIO_OUTPUT]: AttioOutputConfig,
1108
1166
  [ConfigType.SNOWFLAKE_OUTPUT]: SnowflakeOutputConfig,
1109
1167
  [ConfigType.WEBHOOK_INPUT]: WebhookInputConfig,
1110
- [ConfigType.WEBMONITOR]: WebMonitorConfig
1168
+ [ConfigType.WEBMONITOR]: WebMonitorConfig,
1169
+ [ConfigType.HEY_REACH_INPUT]: HeyReachInputConfig
1111
1170
  };
@@ -0,0 +1 @@
1
+ export type Decision = "approve" | "reject";
@@ -0,0 +1 @@
1
+ export {};
@@ -1,6 +1,7 @@
1
1
  import * as z from "zod";
2
2
  export declare enum IntegrationType {
3
3
  GITHUB = "github",
4
+ HEY_REACH = "hey_reach",
4
5
  GMAIL = "gmail",
5
6
  LINEAR = "linear",
6
7
  SLACK = "slack",
@@ -129,6 +130,13 @@ export declare const WebhookIntegrationMetadata: {
129
130
  readonly isInput: true;
130
131
  readonly isOutput: false;
131
132
  };
133
+ export declare const HeyReachIntegrationMetadata: {
134
+ readonly type: IntegrationType.HEY_REACH;
135
+ readonly name: "HeyReach";
136
+ readonly description: "Trigger on HeyReach LinkedIn outreach events (replies, connections, campaign completions, etc.)";
137
+ readonly isInput: true;
138
+ readonly isOutput: false;
139
+ };
132
140
  export type IntegrationMetadataMap = Record<IntegrationType, IntegrationDetails>;
133
141
  export declare const INTEGRATION_METADATA: IntegrationMetadataMap;
134
142
  export declare const IntegrationInstanceSchema: z.ZodObject<{
@@ -157,6 +165,7 @@ export type IntegrationInstallationOptions = EnsureExhaustiveInstallationOptions
157
165
  [IntegrationType.SNOWFLAKE]: NoInstallationOptions;
158
166
  [IntegrationType.WEBHOOK]: NoInstallationOptions;
159
167
  [IntegrationType.WEBMONITOR]: NoInstallationOptions;
168
+ [IntegrationType.HEY_REACH]: NoInstallationOptions;
160
169
  }>;
161
170
  export type InstallationOptionsFor<T extends IntegrationType> = IntegrationInstallationOptions[T];
162
171
  export declare const SlackIntegrationSchema: z.ZodObject<{
@@ -196,6 +205,10 @@ export declare const PosthogIntegrationSchema: z.ZodObject<{
196
205
  orgName: z.ZodOptional<z.ZodString>;
197
206
  }, z.core.$strip>;
198
207
  export type PosthogIntegration = z.infer<typeof PosthogIntegrationSchema>;
208
+ export declare const HeyReachIntegrationSchema: z.ZodObject<{
209
+ id: z.ZodString;
210
+ }, z.core.$strip>;
211
+ export type HeyReachIntegration = z.infer<typeof HeyReachIntegrationSchema>;
199
212
  export declare const LaunchDarklyIntegrationSchema: z.ZodObject<{
200
213
  id: z.ZodString;
201
214
  email: z.ZodOptional<z.ZodEmail>;
@@ -3,6 +3,7 @@ import * as z from "zod";
3
3
  export var IntegrationType;
4
4
  (function (IntegrationType) {
5
5
  IntegrationType["GITHUB"] = "github";
6
+ IntegrationType["HEY_REACH"] = "hey_reach";
6
7
  IntegrationType["GMAIL"] = "gmail";
7
8
  IntegrationType["LINEAR"] = "linear";
8
9
  IntegrationType["SLACK"] = "slack";
@@ -125,6 +126,13 @@ export const WebhookIntegrationMetadata = {
125
126
  isInput: true,
126
127
  isOutput: false
127
128
  };
129
+ export const HeyReachIntegrationMetadata = {
130
+ type: IntegrationType.HEY_REACH,
131
+ name: "HeyReach",
132
+ description: "Trigger on HeyReach LinkedIn outreach events (replies, connections, campaign completions, etc.)",
133
+ isInput: true,
134
+ isOutput: false
135
+ };
128
136
  export const INTEGRATION_METADATA = {
129
137
  [IntegrationType.GMAIL]: GmailIntegrationMetadata,
130
138
  [IntegrationType.NOTION]: NotionIntegrationMetadata,
@@ -140,7 +148,8 @@ export const INTEGRATION_METADATA = {
140
148
  [IntegrationType.ATTIO]: AttioIntegrationMetadata,
141
149
  [IntegrationType.SNOWFLAKE]: SnowflakeIntegrationMetadata,
142
150
  [IntegrationType.WEBHOOK]: WebhookIntegrationMetadata,
143
- [IntegrationType.WEBMONITOR]: WebMonitorIntegrationMetadata
151
+ [IntegrationType.WEBMONITOR]: WebMonitorIntegrationMetadata,
152
+ [IntegrationType.HEY_REACH]: HeyReachIntegrationMetadata
144
153
  };
145
154
  // MARK: Integration Details
146
155
  export const IntegrationInstanceSchema = z.object({
@@ -171,6 +180,7 @@ export const PosthogIntegrationSchema = IntegrationInstanceSchema.extend({
171
180
  email: z.email().optional(),
172
181
  orgName: z.string().optional()
173
182
  });
183
+ export const HeyReachIntegrationSchema = IntegrationInstanceSchema;
174
184
  export const LaunchDarklyIntegrationSchema = IntegrationInstanceSchema.extend({
175
185
  email: z.email().optional(),
176
186
  tokenName: z.string().optional()
@@ -1,4 +1,4 @@
1
- import type { BillingContextQuery } from "./Billing.js";
1
+ import type { BillingContextQuery, BillingUsageBucketsQuery } from "./Billing.js";
2
2
  import { GetRunHistoryParams } from "./RunHistoryTypes.js";
3
3
  import type { StatsInterval } from "./types.js";
4
4
  export declare const currentUserKey: () => readonly [string];
@@ -52,5 +52,7 @@ export declare const projectDeploysKey: (projectId: string) => readonly [string,
52
52
  export declare const projectSourceFilesKey: (projectId: string) => readonly [string, string];
53
53
  export declare const projectSourceFileContentKey: (projectId: string, fileId: string) => readonly [string, string, string];
54
54
  export declare const billingContextKey: (params?: Partial<BillingContextQuery>) => readonly [string, string, string, string];
55
+ export declare const billingUsageBucketsKey: (params?: Partial<BillingUsageBucketsQuery>) => readonly [string, string, string, string];
55
56
  export declare const billingCatalogKey: () => readonly [string];
57
+ export declare const billingStatusKey: () => readonly [string];
56
58
  export declare const organizationProjectsKey: () => readonly [string];
@@ -151,5 +151,12 @@ export const billingContextKey = (params) => [
151
151
  params?.start?.toISOString() ?? "",
152
152
  params?.end?.toISOString() ?? ""
153
153
  ];
154
+ export const billingUsageBucketsKey = (params) => [
155
+ "billingUsageBuckets",
156
+ params?.timezone ?? "",
157
+ params?.start?.toISOString() ?? "",
158
+ params?.end?.toISOString() ?? ""
159
+ ];
154
160
  export const billingCatalogKey = () => ["billingCatalog"];
161
+ export const billingStatusKey = () => ["billingStatus"];
155
162
  export const organizationProjectsKey = () => ["organization-projects"];
@@ -26,11 +26,11 @@ export type RunHistoryDecisionAction = z.infer<typeof runHistoryDecisionActionSc
26
26
  export declare const RUN_HISTORY_ACTION_TYPES: readonly ["create", "update", "delete", "read", "approve", "error"];
27
27
  export declare const runHistoryActionTypeSchema: z.ZodEnum<{
28
28
  error: "error";
29
+ approve: "approve";
29
30
  create: "create";
30
31
  update: "update";
31
32
  delete: "delete";
32
33
  read: "read";
33
- approve: "approve";
34
34
  }>;
35
35
  export type RunHistoryActionType = z.infer<typeof runHistoryActionTypeSchema>;
36
36
  export declare const outputItemSchema: z.ZodObject<{
@@ -47,11 +47,11 @@ export declare const runHistoryActionBaseSchema: z.ZodObject<{
47
47
  step_id: z.ZodOptional<z.ZodString>;
48
48
  type: z.ZodEnum<{
49
49
  error: "error";
50
+ approve: "approve";
50
51
  create: "create";
51
52
  update: "update";
52
53
  delete: "delete";
53
54
  read: "read";
54
- approve: "approve";
55
55
  }>;
56
56
  isReadOnly: z.ZodOptional<z.ZodBoolean>;
57
57
  output_items: z.ZodOptional<z.ZodArray<z.ZodObject<{