@renai-labs/sdk 0.1.26 → 0.1.28

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,37 @@ export const zSpecInitialPrompt = z.object({
89
89
  .regex(/^[a-z0-9][a-z0-9-]*$/)
90
90
  .optional(),
91
91
  });
92
+ export const zSpecTaskEntry = z.object({
93
+ slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
94
+ project: z
95
+ .string()
96
+ .regex(/^[a-z0-9][a-z0-9-]*$/)
97
+ .optional(),
98
+ title: z.string().min(1).max(256),
99
+ description: z.string().optional(),
100
+ priority: z.enum(["low", "medium", "high"]).optional(),
101
+ labels: z.array(z.string()).max(16).optional(),
102
+ });
103
+ export const zSpecArtifactEntry = z.object({
104
+ slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
105
+ pod: z
106
+ .string()
107
+ .regex(/^[a-z0-9][a-z0-9-]*$/)
108
+ .optional(),
109
+ title: z.string(),
110
+ description: z.string().optional(),
111
+ seed: z.url(),
112
+ });
113
+ export const zSpecDatabaseEntry = z.object({
114
+ slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
115
+ pod: z
116
+ .string()
117
+ .regex(/^[a-z0-9][a-z0-9-]*$/)
118
+ .optional(),
119
+ name: z.string(),
120
+ description: z.string().optional(),
121
+ seedSql: z.string().optional(),
122
+ });
92
123
  /**
93
124
  * Model this trigger's fires run on; absent inherits the agent/project default.
94
125
  */
@@ -222,7 +253,7 @@ export const zSpecMeta = z.object({
222
253
  description: z.string().optional(),
223
254
  });
224
255
  export const zSpec = z.object({
225
- schemaVersion: z.literal(4),
256
+ schemaVersion: z.literal(5),
226
257
  meta: zSpecMeta,
227
258
  org: zSpecOrg.optional(),
228
259
  pods: z.array(zSpecPodEntry),
@@ -230,6 +261,9 @@ export const zSpec = z.object({
230
261
  skills: z.array(zSpecSkillEntry),
231
262
  mcps: z.array(zSpecMcpEntry),
232
263
  triggers: z.array(zSpecCronTriggerEntry),
264
+ databases: z.array(zSpecDatabaseEntry),
265
+ artifacts: z.array(zSpecArtifactEntry),
266
+ tasks: z.array(zSpecTaskEntry),
233
267
  channels: z.array(zSpecChannelBinding).optional(),
234
268
  initialPrompt: zSpecInitialPrompt.optional(),
235
269
  });
@@ -1023,6 +1057,7 @@ export const zTopology = z.object({
1023
1057
  pod: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
1024
1058
  agents: z
1025
1059
  .array(z.object({
1060
+ projectAgentId: z.string().regex(/^[a-z]+_[A-Za-z0-9]+$/),
1026
1061
  slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
1027
1062
  mode: z.enum(["subagent", "all"]),
1028
1063
  }))
@@ -1578,6 +1613,7 @@ export const zArtifact = z.object({
1578
1613
  slug: z.string(),
1579
1614
  title: z.string(),
1580
1615
  description: z.string(),
1616
+ seedUrl: z.string().nullable(),
1581
1617
  shareToken: z.string(),
1582
1618
  createdAt: z.iso
1583
1619
  .datetime()
@@ -1599,6 +1635,7 @@ export const zPodDatabase = z.object({
1599
1635
  slug: z.string(),
1600
1636
  name: z.string(),
1601
1637
  description: z.string(),
1638
+ seedSql: z.string().nullable(),
1602
1639
  createdAt: z.iso
1603
1640
  .datetime()
1604
1641
  .regex(/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/),
@@ -1918,6 +1955,10 @@ export const zOnboardingStart = z.object({
1918
1955
  jobId: z.string(),
1919
1956
  initialPrompt: z.string(),
1920
1957
  });
1958
+ export const zOnboardingReward = z.object({
1959
+ granted: z.boolean(),
1960
+ amount: z.number(),
1961
+ });
1921
1962
  export const zModelPricing = z.object({
1922
1963
  input_usd_per_million_tokens: z.number(),
1923
1964
  output_usd_per_million_tokens: z.number(),
@@ -2164,11 +2205,6 @@ export const zInferenceKey = z.object({
2164
2205
  export const zInferenceSubscriptionRenameInput = z.object({
2165
2206
  label: z.string().min(1).max(64),
2166
2207
  });
2167
- export const zInferenceConnectCodexInput = z.object({
2168
- artifact: z.literal("access_token"),
2169
- token: z.string().min(1).max(8192),
2170
- label: z.string().min(1).max(64).optional(),
2171
- });
2172
2208
  export const zInferenceCodexModel = z.object({
2173
2209
  slug: z.string(),
2174
2210
  defaultEffort: z.string(),
@@ -2179,6 +2215,46 @@ export const zInferenceCodexModel = z.object({
2179
2215
  export const zInferenceCodexCatalog = z.object({
2180
2216
  models: z.array(zInferenceCodexModel),
2181
2217
  });
2218
+ export const zInferenceProvider = z.enum(["anthropic", "openai"]);
2219
+ export const zInferenceUsageBudgetEstimate = z.object({
2220
+ unit: z.literal("normalized_provider_budget"),
2221
+ granularityMinutes: z.int().gt(0).lte(9007199254740991),
2222
+ reliableUntil: z.string(),
2223
+ points: z.array(z.object({
2224
+ capacity: z.number().gte(0),
2225
+ knownCapacity: z.number().gte(0),
2226
+ remaining: z.number().gte(0),
2227
+ remainingRatio: z.number().gte(0).lte(1).nullable(),
2228
+ unknownPlans: z.int().gte(0).lte(9007199254740991),
2229
+ at: z.string(),
2230
+ byProvider: z.record(z.string(), z.object({
2231
+ capacity: z.number().gte(0),
2232
+ knownCapacity: z.number().gte(0),
2233
+ remaining: z.number().gte(0),
2234
+ remainingRatio: z.number().gte(0).lte(1).nullable(),
2235
+ unknownPlans: z.int().gte(0).lte(9007199254740991),
2236
+ byClass: z.object({
2237
+ "5h": z.object({
2238
+ capacity: z.number().gte(0),
2239
+ knownCapacity: z.number().gte(0),
2240
+ remaining: z.number().gte(0),
2241
+ remainingRatio: z.number().gte(0).lte(1).nullable(),
2242
+ unknownPlans: z.int().gte(0).lte(9007199254740991),
2243
+ unlimitedCapacity: z.number().gte(0),
2244
+ }),
2245
+ "7d": z.object({
2246
+ capacity: z.number().gte(0),
2247
+ knownCapacity: z.number().gte(0),
2248
+ remaining: z.number().gte(0),
2249
+ remainingRatio: z.number().gte(0).lte(1).nullable(),
2250
+ unknownPlans: z.int().gte(0).lte(9007199254740991),
2251
+ unlimitedCapacity: z.number().gte(0),
2252
+ }),
2253
+ }),
2254
+ elasticPlans: z.int().gte(0).lte(9007199254740991),
2255
+ })),
2256
+ })),
2257
+ });
2182
2258
  export const zInferenceProviderUsage = z.object({
2183
2259
  windows: z.array(z.object({
2184
2260
  key: z.string(),
@@ -2189,6 +2265,7 @@ export const zInferenceProviderUsage = z.object({
2189
2265
  resetsAt: z.string().nullable(),
2190
2266
  models: z.array(z.string()).optional().default([]),
2191
2267
  family: z.enum(["opus", "sonnet", "fable", "haiku"]).nullish().default(null),
2268
+ label: z.string().nullish().default(null),
2192
2269
  source: z.enum(["oauth_endpoint", "response_header"]).optional().default("response_header"),
2193
2270
  observedAt: z.string().nullish().default(null),
2194
2271
  })),
@@ -2202,6 +2279,7 @@ export const zInferenceProviderUsage = z.object({
2202
2279
  creditsAvailable: z.boolean().nullish().default(null),
2203
2280
  creditsUnlimited: z.boolean().nullish().default(null),
2204
2281
  safetyBufferingFasterModel: z.string().nullish().default(null),
2282
+ polledAt: z.string().nullish().default(null),
2205
2283
  observedAt: z.string(),
2206
2284
  });
2207
2285
  export const zInferenceSeatHealth = z.enum([
@@ -2213,8 +2291,7 @@ export const zInferenceSeatHealth = z.enum([
2213
2291
  "refresh_uncertain",
2214
2292
  "disabled",
2215
2293
  ]);
2216
- export const zInferenceProvider = z.enum(["anthropic", "openai"]);
2217
- export const zInferenceSubscriptionSeat = z.object({
2294
+ export const zInferenceSubscription = z.object({
2218
2295
  id: z.string(),
2219
2296
  provider: zInferenceProvider,
2220
2297
  label: z.string(),
@@ -2238,32 +2315,85 @@ export const zInferenceSubscriptionSeat = z.object({
2238
2315
  lastSelectedAt: z.string().nullable(),
2239
2316
  connectedAt: z.string(),
2240
2317
  });
2241
- export const zInferenceCodexDeviceStatus = z.object({
2242
- status: z.enum(["pending", "completed", "failed", "expired"]),
2243
- seat: zInferenceSubscriptionSeat.nullable(),
2244
- reason: z.string().nullable(),
2318
+ export const zInferenceCompleteAuthorizationInput = z.object({
2319
+ code: z.string().min(1).max(4096),
2245
2320
  });
2246
- export const zInferenceCodexDeviceStartInput = z.object({
2321
+ export const zInferenceBeginAuthorizationInput = z.object({
2322
+ serviceId: z.string().min(1),
2323
+ authenticationMethodId: z.string().min(1),
2247
2324
  label: z.string().min(1).max(64).optional(),
2325
+ accessToken: z.string().min(1).max(8192).optional(),
2248
2326
  });
2249
- export const zInferenceCodexDeviceStart = z.object({
2250
- sessionId: z.string(),
2251
- verificationUrl: z.url(),
2252
- userCode: z.string(),
2253
- intervalMs: z.number(),
2254
- expiresAt: z.string(),
2327
+ export const zInferenceAuthorization = z.object({
2328
+ id: z.string().nullable(),
2329
+ serviceId: z.string(),
2330
+ providerId: zInferenceProvider,
2331
+ authenticationMethodId: z.string(),
2332
+ status: z.enum(["pending", "completed", "failed", "expired"]),
2333
+ step: z
2334
+ .union([
2335
+ z.object({
2336
+ kind: z.literal("open-url-and-paste-code"),
2337
+ authorizeUrl: z.url(),
2338
+ }),
2339
+ z.object({
2340
+ kind: z.literal("enter-user-code"),
2341
+ verificationUrl: z.url(),
2342
+ userCode: z.string(),
2343
+ pollIntervalMs: z.int().gt(0).lte(9007199254740991),
2344
+ }),
2345
+ z.object({
2346
+ kind: z.literal("submit-access-token"),
2347
+ }),
2348
+ ])
2349
+ .nullable(),
2350
+ expiresAt: z.string().nullable(),
2351
+ connectionId: z.string().nullable(),
2352
+ failureReason: z.string().nullable(),
2255
2353
  });
2256
- export const zInferenceOauthCompleteInput = z.object({
2257
- sessionId: z.string().min(1),
2258
- code: z.string().min(1).max(4096),
2354
+ export const zInferenceSubscriptionAvailabilityStatus = z.enum([
2355
+ "available",
2356
+ "exhausted",
2357
+ "temporarily_unavailable",
2358
+ "blocked",
2359
+ "disabled",
2360
+ ]);
2361
+ export const zInferenceConnectionSubscription = z.object({
2362
+ id: z.string(),
2363
+ serviceId: z.string(),
2364
+ providerSubscriptionTier: z.string().nullable(),
2365
+ providerSubscriptionStatus: z.string().nullable(),
2366
+ providerRateLimitTier: z.string().nullable(),
2367
+ availabilityStatus: zInferenceSubscriptionAvailabilityStatus,
2368
+ availabilityReason: z.string().nullable(),
2369
+ unavailableUntil: z.string().nullable(),
2370
+ supportedModels: z.array(z.string()).nullable(),
2371
+ supportedEfforts: z.record(z.string(), z.array(z.string())).nullable(),
2372
+ usage: zInferenceProviderUsage.nullable(),
2373
+ lastSelectedAt: z.string().nullable(),
2259
2374
  });
2260
- export const zInferenceOauthStartInput = z.object({
2261
- label: z.string().min(1).max(64).optional(),
2375
+ export const zInferenceConnectionCredentialStatus = z.enum(["valid", "needs_reauth", "refresh_uncertain", "disabled"]);
2376
+ export const zInferenceConnection = z.object({
2377
+ id: z.string(),
2378
+ providerId: zInferenceProvider,
2379
+ authenticationMethodId: z.string(),
2380
+ label: z.string(),
2381
+ credentialStatus: zInferenceConnectionCredentialStatus,
2382
+ credentialStatusReason: z.string().nullable(),
2383
+ credentialExpiresAt: z.string().nullable(),
2384
+ subscriptions: z.array(zInferenceConnectionSubscription),
2385
+ connectedAt: z.string(),
2262
2386
  });
2263
- export const zInferenceOauthStart = z.object({
2264
- sessionId: z.string(),
2265
- authorizeUrl: z.url(),
2266
- expiresAt: z.string(),
2387
+ export const zAvailableInferenceService = z.object({
2388
+ id: z.string(),
2389
+ providerId: zInferenceProvider,
2390
+ authenticationMethods: z.array(z.object({
2391
+ id: z.string(),
2392
+ authorizationFlow: z.enum(["redirect-code", "device-code", "access-token"]),
2393
+ refreshable: z.boolean(),
2394
+ acceptsNewConnections: z.boolean(),
2395
+ label: z.string(),
2396
+ })),
2267
2397
  });
2268
2398
  export const zGoogleWorkspaceOAuthStartResult = z.object({
2269
2399
  url: z.url(),
@@ -2567,11 +2697,27 @@ export const zBlueprintAddReport = z.object({
2567
2697
  skills: z.array(z.string()),
2568
2698
  mcps: z.array(z.string()),
2569
2699
  skipped: z.array(z.object({
2570
- kind: z.enum(["skill", "mcp", "trigger", "environment"]),
2700
+ kind: z.enum(["skill", "mcp", "trigger", "environment", "database", "artifact", "task"]),
2571
2701
  sourceId: z.string(),
2572
2702
  reason: z.string(),
2573
2703
  })),
2574
2704
  requirements: z.array(zBlueprintAddRequirement),
2705
+ databases: z.array(z.object({
2706
+ slug: z.string(),
2707
+ id: z.string().regex(/^pdb_[0-9A-HJKMNP-TV-Z]{26}$/),
2708
+ podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
2709
+ })),
2710
+ artifacts: z.array(z.object({
2711
+ slug: z.string(),
2712
+ id: z.string().regex(/^art_[0-9A-HJKMNP-TV-Z]{26}$/),
2713
+ podId: z.string().regex(/^pod_[0-9A-HJKMNP-TV-Z]{26}$/),
2714
+ url: z.url(),
2715
+ })),
2716
+ tasks: z.array(z.object({
2717
+ slug: z.string(),
2718
+ id: z.string().regex(/^tsk_[0-9A-HJKMNP-TV-Z]{26}$/),
2719
+ projectId: z.string().regex(/^prj_[0-9A-HJKMNP-TV-Z]{26}$/),
2720
+ })),
2575
2721
  podMappings: z.array(zBlueprintAddPodMapping),
2576
2722
  projectMappings: z.array(zBlueprintAddProjectMapping),
2577
2723
  initialPrompt: z
@@ -2772,6 +2918,16 @@ export const zAgent = z.object({
2772
2918
  });
2773
2919
  export const zActivation = z.object({
2774
2920
  steps: z.array(z.enum(["member.invited", "slack.channel.connected", "client.used", "cron_trigger.created", "artifact.created"])),
2921
+ rewards: z.array(z.enum([
2922
+ "composer",
2923
+ "channel",
2924
+ "app",
2925
+ "activation.member.invited",
2926
+ "activation.client.used",
2927
+ "activation.cron_trigger.created",
2928
+ "activation.artifact.created",
2929
+ ])),
2930
+ rewardAmounts: z.record(z.string(), z.number()),
2775
2931
  complete: z.boolean(),
2776
2932
  dismissed: z.boolean(),
2777
2933
  });
@@ -3075,7 +3231,6 @@ export const zBillingGetResponse = z.object({
3075
3231
  consumedCredits: z.string(),
3076
3232
  consumedAmountCents: z.number(),
3077
3233
  grantedCredits: z.string(),
3078
- freeGrantCredits: z.string(),
3079
3234
  plan: z.enum([
3080
3235
  "free",
3081
3236
  "plan_50",
@@ -3589,40 +3744,55 @@ export const zGoogleConnectQuery = z.object({
3589
3744
  */
3590
3745
  export const zGoogleConnectResponse = zGoogleWorkspaceOAuthStartResult;
3591
3746
  /**
3592
- * Seat health and provider usage
3747
+ * Services Ren can invoke and the authentication methods each accepts
3748
+ */
3749
+ export const zInferenceProvidersListResponse = z.array(zAvailableInferenceService);
3750
+ /**
3751
+ * Credential state with nested service subscriptions
3593
3752
  */
3594
- export const zInferenceSubscriptionsListResponse = z.array(zInferenceSubscriptionSeat);
3595
- export const zInferenceSubscriptionsOauthStartBody = zInferenceOauthStartInput;
3753
+ export const zInferenceConnectionsListResponse = z.array(zInferenceConnection);
3754
+ export const zInferenceConnectionsGetPath = z.object({
3755
+ id: z.string(),
3756
+ });
3596
3757
  /**
3597
- * Where to authorize, and when this attempt stops being valid
3758
+ * Credential state with nested service subscriptions
3598
3759
  */
3599
- export const zInferenceSubscriptionsOauthStartResponse = zInferenceOauthStart;
3600
- export const zInferenceSubscriptionsOauthCompleteBody = zInferenceOauthCompleteInput;
3760
+ export const zInferenceConnectionsGetResponse = zInferenceConnection;
3761
+ export const zInferenceAuthorizationsBeginBody = zInferenceBeginAuthorizationInput;
3601
3762
  /**
3602
- * The connected seat
3763
+ * What the person connecting has to do next, or the finished connection
3603
3764
  */
3604
- export const zInferenceSubscriptionsOauthCompleteResponse = zInferenceSubscriptionSeat;
3605
- export const zInferenceSubscriptionsCodexDeviceStartBody = zInferenceCodexDeviceStartInput;
3765
+ export const zInferenceAuthorizationsBeginResponse = zInferenceAuthorization;
3766
+ export const zInferenceAuthorizationsPollPath = z.object({
3767
+ id: z.string(),
3768
+ });
3606
3769
  /**
3607
- * The code to enter, and where to enter it
3770
+ * Where the attempt has got to
3608
3771
  */
3609
- export const zInferenceSubscriptionsCodexDeviceStartResponse = zInferenceCodexDeviceStart;
3610
- export const zInferenceSubscriptionsCodexDevicePollPath = z.object({
3772
+ export const zInferenceAuthorizationsPollResponse = zInferenceAuthorization;
3773
+ export const zInferenceAuthorizationsCompleteBody = zInferenceCompleteAuthorizationInput;
3774
+ export const zInferenceAuthorizationsCompletePath = z.object({
3611
3775
  id: z.string(),
3612
3776
  });
3613
3777
  /**
3614
- * Whether the device code has been approved yet
3778
+ * The finished connection
3615
3779
  */
3616
- export const zInferenceSubscriptionsCodexDevicePollResponse = zInferenceCodexDeviceStatus;
3780
+ export const zInferenceAuthorizationsCompleteResponse = zInferenceAuthorization;
3617
3781
  /**
3618
- * The published Codex models
3782
+ * Subscription health and provider usage
3619
3783
  */
3620
- export const zInferenceHarnessesCodexCatalogResponse = zInferenceCodexCatalog;
3621
- export const zInferenceSubscriptionsConnectCodexBody = zInferenceConnectCodexInput;
3784
+ export const zInferenceSubscriptionsListResponse = z.array(zInferenceSubscription);
3785
+ export const zInferenceSubscriptionsBudgetQuery = z.object({
3786
+ horizon: z.enum(["5h", "7d"]).optional().default("5h"),
3787
+ });
3622
3788
  /**
3623
- * The connected seat
3789
+ * Remaining capacity through the requested horizon or last known reset
3624
3790
  */
3625
- export const zInferenceSubscriptionsConnectCodexResponse = zInferenceSubscriptionSeat;
3791
+ export const zInferenceSubscriptionsBudgetResponse = zInferenceUsageBudgetEstimate;
3792
+ /**
3793
+ * The published Codex models
3794
+ */
3795
+ export const zInferenceHarnessesCodexCatalogResponse = zInferenceCodexCatalog;
3626
3796
  export const zInferenceSubscriptionsRemovePath = z.object({
3627
3797
  id: z.string(),
3628
3798
  });
@@ -3635,9 +3805,9 @@ export const zInferenceSubscriptionsRenamePath = z.object({
3635
3805
  id: z.string(),
3636
3806
  });
3637
3807
  /**
3638
- * The renamed seat
3808
+ * The renamed subscription
3639
3809
  */
3640
- export const zInferenceSubscriptionsRenameResponse = zInferenceSubscriptionSeat;
3810
+ export const zInferenceSubscriptionsRenameResponse = zInferenceSubscription;
3641
3811
  /**
3642
3812
  * The caller's keys, or every key in the organization for admins
3643
3813
  */
@@ -3974,6 +4144,10 @@ export const zMemoryStoreFilesWriteContentResponse = zMemoryStoreFile;
3974
4144
  * Grouped model list
3975
4145
  */
3976
4146
  export const zModelListResponse = zModelsResponse;
4147
+ /**
4148
+ * Whether the composer reward was granted
4149
+ */
4150
+ export const zOnboardingRewardResponse = zOnboardingReward;
3977
4151
  export const zOnboardingStartBody = z.object({
3978
4152
  prompt: z.string().min(1).max(8000),
3979
4153
  skillIds: z.array(z.string()).max(64).optional().default([]),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@renai-labs/sdk",
3
- "version": "0.1.26",
3
+ "version": "0.1.28",
4
4
  "description": "TypeScript SDK for the Ren API, generated from OpenAPI.",
5
5
  "license": "MIT",
6
6
  "author": "Ren Labs, Inc.",