@vertesia/common 1.6.0-dev.20261014.015055Z → 1.6.0-dev.20261022.120426Z

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.
Files changed (126) hide show
  1. package/lib/api-contract/components.generated.json +1243 -121
  2. package/lib/api-schemas/agent-runs.d.ts +52 -0
  3. package/lib/api-schemas/agent-runs.d.ts.map +1 -1
  4. package/lib/api-schemas/agent-runs.js +5 -4
  5. package/lib/api-schemas/agent-runs.js.map +1 -1
  6. package/lib/api-schemas/apikey.d.ts +3 -40
  7. package/lib/api-schemas/apikey.d.ts.map +1 -1
  8. package/lib/api-schemas/apikey.js +3 -17
  9. package/lib/api-schemas/apikey.js.map +1 -1
  10. package/lib/api-schemas/app-lifecycle.d.ts +126 -0
  11. package/lib/api-schemas/app-lifecycle.d.ts.map +1 -1
  12. package/lib/api-schemas/app-lifecycle.js +134 -1
  13. package/lib/api-schemas/app-lifecycle.js.map +1 -1
  14. package/lib/api-schemas/app-runtime.d.ts +466 -0
  15. package/lib/api-schemas/app-runtime.d.ts.map +1 -1
  16. package/lib/api-schemas/app-runtime.js +50 -1
  17. package/lib/api-schemas/app-runtime.js.map +1 -1
  18. package/lib/api-schemas/apps.d.ts +73 -0
  19. package/lib/api-schemas/apps.d.ts.map +1 -1
  20. package/lib/api-schemas/apps.js +41 -0
  21. package/lib/api-schemas/apps.js.map +1 -1
  22. package/lib/api-schemas/audit-trail.d.ts.map +1 -1
  23. package/lib/api-schemas/audit-trail.js +5 -5
  24. package/lib/api-schemas/audit-trail.js.map +1 -1
  25. package/lib/api-schemas/content.d.ts +25 -0
  26. package/lib/api-schemas/content.d.ts.map +1 -1
  27. package/lib/api-schemas/content.js +5 -5
  28. package/lib/api-schemas/content.js.map +1 -1
  29. package/lib/api-schemas/data-store.d.ts.map +1 -1
  30. package/lib/api-schemas/data-store.js +17 -1
  31. package/lib/api-schemas/data-store.js.map +1 -1
  32. package/lib/api-schemas/document-processing.d.ts +15 -0
  33. package/lib/api-schemas/document-processing.d.ts.map +1 -1
  34. package/lib/api-schemas/events.d.ts +45 -0
  35. package/lib/api-schemas/events.d.ts.map +1 -1
  36. package/lib/api-schemas/inference-profile.d.ts +30 -0
  37. package/lib/api-schemas/inference-profile.d.ts.map +1 -1
  38. package/lib/api-schemas/interaction.d.ts +405 -0
  39. package/lib/api-schemas/interaction.d.ts.map +1 -1
  40. package/lib/api-schemas/interaction.js +38 -7
  41. package/lib/api-schemas/interaction.js.map +1 -1
  42. package/lib/api-schemas/oauth-server.d.ts +128 -0
  43. package/lib/api-schemas/oauth-server.d.ts.map +1 -1
  44. package/lib/api-schemas/oauth-server.js +95 -2
  45. package/lib/api-schemas/oauth-server.js.map +1 -1
  46. package/lib/api-schemas/process.d.ts +11 -0
  47. package/lib/api-schemas/process.d.ts.map +1 -1
  48. package/lib/api-schemas/process.js +12 -0
  49. package/lib/api-schemas/process.js.map +1 -1
  50. package/lib/api-schemas/project-configuration.d.ts +50 -0
  51. package/lib/api-schemas/project-configuration.d.ts.map +1 -1
  52. package/lib/api-schemas/project.d.ts +75 -0
  53. package/lib/api-schemas/project.d.ts.map +1 -1
  54. package/lib/api-schemas/prompt.d.ts.map +1 -1
  55. package/lib/api-schemas/prompt.js +5 -2
  56. package/lib/api-schemas/prompt.js.map +1 -1
  57. package/lib/api-schemas/registry.d.ts +1271 -30
  58. package/lib/api-schemas/registry.d.ts.map +1 -1
  59. package/lib/api-schemas/registry.js +39 -9
  60. package/lib/api-schemas/registry.js.map +1 -1
  61. package/lib/api-schemas/schema-primitives.d.ts +8 -0
  62. package/lib/api-schemas/schema-primitives.d.ts.map +1 -1
  63. package/lib/api-schemas/schema-primitives.js +8 -0
  64. package/lib/api-schemas/schema-primitives.js.map +1 -1
  65. package/lib/api-schemas/store.d.ts +250 -0
  66. package/lib/api-schemas/store.d.ts.map +1 -1
  67. package/lib/api-schemas/store.js +3 -3
  68. package/lib/api-schemas/store.js.map +1 -1
  69. package/lib/api-schemas/task.d.ts.map +1 -1
  70. package/lib/api-schemas/task.js +3 -2
  71. package/lib/api-schemas/task.js.map +1 -1
  72. package/lib/api-schemas/workflow-runs.d.ts +10 -0
  73. package/lib/api-schemas/workflow-runs.d.ts.map +1 -1
  74. package/lib/apikey.d.ts +7 -2
  75. package/lib/apikey.d.ts.map +1 -1
  76. package/lib/apikey.js.map +1 -1
  77. package/lib/apps.d.ts +37 -1
  78. package/lib/apps.d.ts.map +1 -1
  79. package/lib/apps.js +74 -3
  80. package/lib/apps.js.map +1 -1
  81. package/lib/interaction.d.ts +3 -3
  82. package/lib/interaction.d.ts.map +1 -1
  83. package/lib/interaction.js.map +1 -1
  84. package/lib/oauth-server.d.ts +5 -0
  85. package/lib/oauth-server.d.ts.map +1 -1
  86. package/lib/store/index.d.ts +1 -0
  87. package/lib/store/index.d.ts.map +1 -1
  88. package/lib/store/index.js +1 -0
  89. package/lib/store/index.js.map +1 -1
  90. package/lib/store/intake-policy-schema.generated.d.ts.map +1 -1
  91. package/lib/store/intake-policy-schema.generated.js +1 -2
  92. package/lib/store/intake-policy-schema.generated.js.map +1 -1
  93. package/lib/store/text-limits.d.ts +18 -0
  94. package/lib/store/text-limits.d.ts.map +1 -0
  95. package/lib/store/text-limits.js +56 -0
  96. package/lib/store/text-limits.js.map +1 -0
  97. package/lib/vertesia-common.js +4 -2
  98. package/lib/vertesia-common.js.map +1 -1
  99. package/lib/wire-types.generated.d.ts +261 -34
  100. package/lib/wire-types.generated.d.ts.map +1 -1
  101. package/package.json +12 -7
  102. package/src/api-contract/components.generated.json +1243 -121
  103. package/src/api-schemas/agent-runs.ts +5 -3
  104. package/src/api-schemas/apikey.ts +3 -21
  105. package/src/api-schemas/app-lifecycle.ts +163 -1
  106. package/src/api-schemas/app-runtime.ts +54 -0
  107. package/src/api-schemas/apps.ts +46 -0
  108. package/src/api-schemas/audit-trail.ts +5 -5
  109. package/src/api-schemas/content.ts +5 -5
  110. package/src/api-schemas/data-store.ts +19 -1
  111. package/src/api-schemas/interaction.ts +48 -7
  112. package/src/api-schemas/oauth-server.ts +103 -2
  113. package/src/api-schemas/process.ts +13 -0
  114. package/src/api-schemas/prompt.ts +5 -2
  115. package/src/api-schemas/registry.ts +60 -6
  116. package/src/api-schemas/schema-primitives.ts +9 -0
  117. package/src/api-schemas/store.ts +3 -3
  118. package/src/api-schemas/task.ts +3 -2
  119. package/src/apikey.ts +8 -2
  120. package/src/apps.ts +116 -3
  121. package/src/interaction.ts +6 -3
  122. package/src/oauth-server.ts +10 -0
  123. package/src/store/index.ts +1 -0
  124. package/src/store/intake-policy-schema.generated.ts +1 -2
  125. package/src/store/text-limits.ts +64 -0
  126. package/src/wire-types.generated.ts +281 -34
@@ -28,7 +28,7 @@ import { InferenceProfileIdSchema, InferenceProfileSnapshotSchema } from './infe
28
28
  import { AccountRefSchema } from './invites.js';
29
29
  import { ProcessAgentExecutionPolicySchema } from './process-agent-policy.js';
30
30
  import { AgentBudgetConfigurationSchema, AgentCheckpointConfigurationSchema } from './project-configuration.js';
31
- import { EditRevisionSchema, ExpectedEditRevisionSchema } from './schema-primitives.js';
31
+ import { EditRevisionSchema, ExpectedEditRevisionSchema, PageCountSchema } from './schema-primitives.js';
32
32
  import { InteractionExecutionConfigurationSchema, RunDataStorageLevelSchema } from './store.js';
33
33
 
34
34
  /**
@@ -498,8 +498,8 @@ export const InteractionForkPayloadSchema = z
498
498
 
499
499
  export const InteractionEndpointQuerySchema = z
500
500
  .strictObject({
501
- limit: z.number().optional(),
502
- offset: z.number().optional(),
501
+ limit: PageCountSchema.optional(),
502
+ offset: PageCountSchema.optional(),
503
503
  status: InteractionStatusSchema.optional(),
504
504
  visibility: InteractionVisibilitySchema.optional(),
505
505
  version: z.number().optional(),
@@ -701,8 +701,10 @@ export const RunSearchQuerySchema = z
701
701
  */
702
702
  export const RunListQuerySchema = z
703
703
  .strictObject({
704
- limit: z.number().int().meta({ description: 'Maximum number of runs to return.' }).optional(),
705
- offset: z.number().int().meta({ description: 'Number of runs to skip.' }).optional(),
704
+ // Already published as `integer`, so these keep that type and only gain the lower bound a find
705
+ // `skip` needs; a negative count failed there as a 500.
706
+ limit: z.number().int().min(0).meta({ description: 'Maximum number of runs to return.' }).optional(),
707
+ offset: z.number().int().min(0).meta({ description: 'Number of runs to skip.' }).optional(),
706
708
  interaction: z
707
709
  .array(z.string())
708
710
  .meta({ description: 'Interaction ids, or in-code interaction names, to filter by.' })
@@ -1144,8 +1146,8 @@ export const RunSearchPayloadSchema = z
1144
1146
  })
1145
1147
  .optional(),
1146
1148
  query: RunSearchQuerySchema.optional(),
1147
- limit: z.number().optional(),
1148
- offset: z.number().optional(),
1149
+ limit: PageCountSchema.optional(),
1150
+ offset: PageCountSchema.optional(),
1149
1151
  select: z.string().optional(),
1150
1152
  all_revisions: z.boolean().optional(),
1151
1153
  from_root: z.string().optional(),
@@ -2131,6 +2133,20 @@ export const AgentEvaluateRequestSchema = z.boolean().optional().meta({
2131
2133
  'Request LLM evaluation when the project evaluation policy is opt_in. Defaults to false. Cannot override disabled or opt out of always_on.',
2132
2134
  });
2133
2135
 
2136
+ export const AgentRunIdempotencyKeySchema = z
2137
+ .string()
2138
+ .min(1)
2139
+ .max(256)
2140
+ .meta({
2141
+ description:
2142
+ 'Client-chosen key, unique per intended run, that makes this request safe to retry. A repeat of ' +
2143
+ 'the request with the same key and the same body returns the agent run the first request started ' +
2144
+ 'instead of starting another. Reusing a key with a different body is rejected with 409, and a ' +
2145
+ 'repeat that arrives while the first request is still starting the run may be answered with 503 ' +
2146
+ 'and `Retry-After`. Keys are scoped to the project and stay bound to their run for as long as it ' +
2147
+ 'exists; once the run is deleted, the same key starts a new one.',
2148
+ });
2149
+
2134
2150
  export const ConversationEnrichmentFields = {
2135
2151
  title: z.string().min(1).meta({ description: 'Caller-provided conversation title.' }).optional(),
2136
2152
  topic: z
@@ -2206,6 +2222,7 @@ export const AsyncConversationExecutionPayloadSchema = z
2206
2222
  .array(z.string())
2207
2223
  .meta({ description: 'An array of endpoint URLs to be notified upon execution' })
2208
2224
  .optional(),
2225
+ idempotency_key: AgentRunIdempotencyKeySchema.optional(),
2209
2226
  task_queue: z.string().optional(),
2210
2227
  tool_approval_mode: AgentToolApprovalModeSchema.meta({
2211
2228
  description: 'Effective tool approval mode for interactive agent conversations.',
@@ -2444,9 +2461,33 @@ export const StoredCatalogInteractionsQuerySchema = z
2444
2461
  })
2445
2462
  .meta({ id: 'StoredCatalogInteractionsQuery' });
2446
2463
 
2464
+ /** `include_prompt`: whether a response carries the rendered prompt sent to the model. */
2465
+ function includePromptQuery(description: string) {
2466
+ return z.boolean().meta({ description }).optional();
2467
+ }
2468
+
2469
+ export const GetRunQuerySchema = z
2470
+ .strictObject({
2471
+ include_prompt: includePromptQuery(
2472
+ 'Whether the run includes the rendered `prompt` sent to the model. Defaults to true. Pass false when the caller does not read the prompt: it can be large (for example when media is inlined), and it is then not loaded from storage.',
2473
+ ),
2474
+ })
2475
+ .meta({ id: 'GetRunQuery' });
2476
+
2477
+ const ExecutionIncludePromptQuerySchema = includePromptQuery(
2478
+ 'Whether the synchronous execution result includes the rendered `prompt` sent to the model. Defaults to true. Pass false when the caller does not read the prompt: it can be large (for example when media is inlined). It is still stored with the run unless run data storage is restricted.',
2479
+ );
2480
+
2481
+ export const ExecuteNamedInteractionQuerySchema = z
2482
+ .strictObject({
2483
+ include_prompt: ExecutionIncludePromptQuerySchema,
2484
+ })
2485
+ .meta({ id: 'ExecuteNamedInteractionQuery' });
2486
+
2447
2487
  export const ExecuteInteractionByEndpointQuerySchema = z
2448
2488
  .strictObject({
2449
2489
  tag: z.string().optional(),
2490
+ include_prompt: ExecutionIncludePromptQuerySchema,
2450
2491
  })
2451
2492
  .meta({ id: 'ExecuteInteractionByEndpointQuery' });
2452
2493
 
@@ -20,11 +20,16 @@ export const OAuthRegistrationSourceSchema = z.enum(['admin', 'dynamic']).meta({
20
20
  export const OAuthProjectBindingModeSchema = z.enum(['user_select', 'fixed']).meta({ id: 'OAuthProjectBindingMode' });
21
21
 
22
22
  export const OAuthTokenEndpointAuthMethodSchema = z
23
- .enum(['none', 'client_secret_post', 'client_secret_basic'])
23
+ .enum(['none', 'client_secret_post', 'client_secret_basic', 'private_key_jwt'])
24
24
  .meta({ id: 'OAuthTokenEndpointAuthMethod' });
25
25
 
26
26
  export const OAuthGrantTypeSchema = z
27
- .enum(['authorization_code', 'refresh_token', 'urn:ietf:params:oauth:grant-type:device_code'])
27
+ .enum([
28
+ 'authorization_code',
29
+ 'refresh_token',
30
+ 'urn:ietf:params:oauth:grant-type:device_code',
31
+ 'urn:ietf:params:oauth:grant-type:token-exchange',
32
+ ])
28
33
  .meta({ id: 'OAuthGrantType' });
29
34
 
30
35
  export const OAuthResponseTypeSchema = z.literal('code').meta({ id: 'OAuthResponseType' });
@@ -58,6 +63,7 @@ export const OAuthAuthorizationServerMetadataSchema = z
58
63
  grant_types_supported: z.array(z.string()),
59
64
  code_challenge_methods_supported: z.array(z.string()),
60
65
  token_endpoint_auth_methods_supported: z.array(z.string()),
66
+ token_endpoint_auth_signing_alg_values_supported: z.array(z.string()).optional(),
61
67
  scopes_supported: z.array(z.string()),
62
68
  client_id_metadata_document_supported: z.boolean().optional(),
63
69
  authorization_response_iss_parameter_supported: z.boolean().optional(),
@@ -110,6 +116,7 @@ export const OAuthAuthorizationRequestSchema = z
110
116
  }),
111
117
  client_id: z.string(),
112
118
  client_name: z.string(),
119
+ app_id: z.string().optional(),
113
120
  client_metadata: OAuthClientDisplayMetadataSchema.optional(),
114
121
  client_registration_mode: OAuthClientRegistrationModeSchema.optional(),
115
122
  redirect_uri: z.string(),
@@ -212,12 +219,17 @@ export const OAuthTokenResponseSchema = z
212
219
  * publishes these properties inline under `OAuthClient`, with `client_id` last.
213
220
  */
214
221
  export const OAuthClientDataSchema = z.strictObject({
222
+ app_id: z.string().optional().meta({
223
+ description:
224
+ 'App associated with this client. Authorization requires an installation explicitly enabling this client and current user app access.',
225
+ }),
215
226
  client_name: z.string(),
216
227
  client_type: OAuthClientTypeSchema,
217
228
  redirect_uris: z.array(z.string()),
218
229
  grant_types: z.array(OAuthGrantTypeSchema),
219
230
  response_types: z.array(OAuthResponseTypeSchema),
220
231
  token_endpoint_auth_method: OAuthTokenEndpointAuthMethodSchema,
232
+ jwks_uri: z.string().url().optional(),
221
233
  allowed_scopes: z.array(z.string()),
222
234
  default_scopes: z.array(z.string()).optional(),
223
235
  registration_source: OAuthRegistrationSourceSchema,
@@ -269,6 +281,7 @@ export const CreateOAuthClientPayloadSchema = z
269
281
  grant_types: z.array(OAuthGrantTypeSchema).optional(),
270
282
  response_types: z.array(OAuthResponseTypeSchema).optional(),
271
283
  token_endpoint_auth_method: OAuthTokenEndpointAuthMethodSchema.optional(),
284
+ jwks_uri: z.string().url().optional(),
272
285
  allowed_scopes: z.array(z.string()).optional(),
273
286
  default_scopes: z.array(z.string()).optional(),
274
287
  project_binding_mode: OAuthProjectBindingModeSchema.optional(),
@@ -292,9 +305,13 @@ export const UpdateOAuthClientPayloadSchema = z
292
305
  grant_types: z.array(OAuthGrantTypeSchema).optional(),
293
306
  response_types: z.array(OAuthResponseTypeSchema).optional(),
294
307
  token_endpoint_auth_method: OAuthTokenEndpointAuthMethodSchema.optional(),
308
+ jwks_uri: z.string().url().optional(),
295
309
  allowed_scopes: z.array(z.string()).optional(),
296
310
  default_scopes: z.array(z.string()).optional(),
297
311
  status: OAuthClientStatusSchema.optional(),
312
+ revoke_previous_client_secret: z.boolean().optional().meta({
313
+ description: 'Immediately revoke the previous rotation secret while retaining the current secret.',
314
+ }),
298
315
  project_binding_mode: OAuthProjectBindingModeSchema.optional(),
299
316
  fixed_project_id: z.string().optional(),
300
317
  restrict_to_owner_account: z.boolean().optional(),
@@ -406,3 +423,87 @@ export const OAuthLoginUserNotFoundResponseSchema = z
406
423
  ensure_user_url: z.string(),
407
424
  })
408
425
  .meta({ id: 'OAuthLoginUserNotFoundResponse' });
426
+
427
+ const federationId = z.string().regex(/^[a-fA-F0-9]{24}$/);
428
+ export const OidcFederationConnectionPayloadSchema = z
429
+ .strictObject({
430
+ name: z.string().min(1).max(200),
431
+ issuer: z.string().url(),
432
+ jwks_uri: z.string().url().optional(),
433
+ external_id_claim: z.string().min(1).max(256).regex(/\S/).meta({
434
+ description:
435
+ 'Exact top-level verified token claim matched to SCIM externalId within the owning provisioning account.',
436
+ }),
437
+ allowed_audiences: z.array(z.string().min(1)).min(1).max(20),
438
+ allowed_algorithms: z
439
+ .array(z.enum(['RS256', 'ES256']))
440
+ .min(1)
441
+ .max(2),
442
+ subject_token_type: z.enum([
443
+ 'urn:ietf:params:oauth:token-type:jwt',
444
+ 'urn:ietf:params:oauth:token-type:id_token',
445
+ 'urn:ietf:params:oauth:token-type:access_token',
446
+ ]),
447
+ required_claims: z.record(z.string(), z.string()).optional().meta({
448
+ description: 'Exact string matches against verified top-level IdP claims, such as tenant or azp.',
449
+ }),
450
+ all_projects: z.boolean().optional().meta({
451
+ description:
452
+ 'Explicitly allow all current and future projects in the owning organization, subject to the user’s current access. Defaults to false for existing allowlists. When true, allowed_project_ids must be empty.',
453
+ }),
454
+ allowed_project_ids: z.array(federationId).max(100).meta({
455
+ description: 'Explicit project allowlist. Must contain 1–100 projects unless all_projects is true.',
456
+ }),
457
+ allowed_client_ids: z.array(z.string().min(1).max(256)).min(1).max(20).optional().meta({
458
+ description:
459
+ 'When set, require authentication by one of these account-owned confidential OAuth clients. Omit to allow exchanges without separate client authentication.',
460
+ }),
461
+ allowed_scopes: z.array(z.string().min(1)).min(1).max(100).optional().meta({
462
+ description:
463
+ 'Optional restriction on delegable Vertesia permissions, excluding account:admin. Omit to use the user’s current permissions. An explicit list further restricts the grant.',
464
+ }),
465
+ max_token_ttl_seconds: z.number().int().min(30).max(300),
466
+ max_subject_token_age_seconds: z.number().int().min(30).max(86400).optional().meta({
467
+ description:
468
+ 'Maximum age since the signed iat claim. Defaults to 3600 seconds; 60 seconds of clock tolerance applies.',
469
+ }),
470
+ enabled: z.boolean(),
471
+ })
472
+ .meta({ id: 'OidcFederationConnectionPayload' });
473
+ export const OidcFederationConnectionSchema = OidcFederationConnectionPayloadSchema.extend({
474
+ id: federationId,
475
+ account_id: federationId,
476
+ max_subject_token_age_seconds: z.number().int().min(30).max(86400),
477
+ }).meta({ id: 'OidcFederationConnection' });
478
+ export const OidcFederationConnectionArraySchema = z
479
+ .array(OidcFederationConnectionSchema)
480
+ .meta({ id: 'OidcFederationConnectionArray' });
481
+ export const OAuthTokenExchangeRequestSchema = z
482
+ .strictObject({
483
+ grant_type: z.literal('urn:ietf:params:oauth:grant-type:token-exchange'),
484
+ subject_token: z.string().min(1).max(65536),
485
+ subject_token_type: OidcFederationConnectionPayloadSchema.shape.subject_token_type,
486
+ requested_token_type: z.literal('urn:ietf:params:oauth:token-type:access_token').optional(),
487
+ federation_connection_id: federationId,
488
+ client_id: z.string().min(1).max(256).optional(),
489
+ client_secret: z.string().min(1).max(4096).optional(),
490
+ client_assertion: z.string().min(1).max(16384).optional(),
491
+ client_assertion_type: z.literal('urn:ietf:params:oauth:client-assertion-type:jwt-bearer').optional(),
492
+ project_id: federationId,
493
+ resource: z.string().min(1),
494
+ scope: z.string().min(1).max(4096).optional().meta({
495
+ description:
496
+ 'Optional space-separated permission subset. Omit to use current user permissions within the connection policy.',
497
+ }),
498
+ })
499
+ .meta({ id: 'OAuthTokenExchangeRequest' });
500
+ export const OAuthTokenExchangeResponseSchema = OAuthTokenResponseSchema.omit({
501
+ refresh_token: true,
502
+ refresh_token_expires_in: true,
503
+ id_token: true,
504
+ })
505
+ .extend({
506
+ token_type: z.literal('Bearer'),
507
+ issued_token_type: z.literal('urn:ietf:params:oauth:token-type:access_token'),
508
+ })
509
+ .meta({ id: 'OAuthTokenExchangeResponse' });
@@ -155,6 +155,19 @@ export const PublishProcessDefinitionPayloadSchema = z
155
155
  .optional(),
156
156
  label: z.string().meta({ description: 'Optional human-readable revision label.' }).optional(),
157
157
  comment: z.string().meta({ description: 'Optional publish note.' }).optional(),
158
+ idempotency_key: z
159
+ .string()
160
+ .min(1)
161
+ .max(256)
162
+ .meta({
163
+ description:
164
+ 'Client-chosen key that makes this request safe to retry. Publishing is otherwise not ' +
165
+ 'idempotent: a repeat of a publish that already succeeded is rejected because the revision ' +
166
+ 'is no longer a draft. When the revision was published by a request with the same key and ' +
167
+ 'the same body, the repeat returns that revision instead. Reusing the key with a different ' +
168
+ 'body is rejected with 409. The key is bound to the revision it published.',
169
+ })
170
+ .optional(),
158
171
  })
159
172
  .meta({ id: 'PublishProcessDefinitionPayload' });
160
173
 
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { FacetSpecSchema, PromptTemplateRefSchema } from './interaction.js';
3
+ import { PageCountSchema } from './schema-primitives.js';
3
4
 
4
5
  // The prompt-authoring contracts: what a fork, a render and a prompt search publish, and how a
5
6
  // prompt's interaction usages are reported. `PromptTemplate` itself and its two write payloads live
@@ -50,8 +51,10 @@ export const PromptSearchQuerySchema = z
50
51
  'Accepted and ignored. `GET /prompts` and `POST /prompts/facets` list drafts only, and always have.',
51
52
  })
52
53
  .optional(),
53
- limit: z.number().meta({ description: 'Maximum number of prompts to return. Defaults to 100.' }).optional(),
54
- offset: z.number().meta({ description: 'Number of prompts to skip.' }).optional(),
54
+ limit: PageCountSchema.meta({
55
+ description: 'Maximum number of prompts to return. Defaults to 100.',
56
+ }).optional(),
57
+ offset: PageCountSchema.meta({ description: 'Number of prompts to skip.' }).optional(),
55
58
  role: z.string().meta({ description: 'Exact match on the prompt role.' }).optional(),
56
59
  tags: z.array(z.string()).meta({ description: 'Match prompts carrying any of these tags.' }).optional(),
57
60
  matchInteractions: z
@@ -62,8 +62,6 @@ import {
62
62
  AccountApiKeyWithValueSchema,
63
63
  ApiKeyArraySchema,
64
64
  ApiKeyListQuerySchema,
65
- ApiKeyReadQuerySchema,
66
- ApiKeyReadResponseSchema,
67
65
  ApiKeySchema,
68
66
  ApiKeyWithValueSchema,
69
67
  AuthTokenResponseSchema,
@@ -88,6 +86,16 @@ import {
88
86
  AppDevelopmentTaskDetailsSchema,
89
87
  AppDevelopmentTaskListSchema,
90
88
  AppDevelopmentTaskSchema,
89
+ AppGithubAccountSchema,
90
+ AppGithubBranchStateSchema,
91
+ AppGithubConfigurationSchema,
92
+ AppGithubInstallationSchema,
93
+ AppGithubRepositoriesQuerySchema,
94
+ AppGithubRepositoryCreationSchema,
95
+ AppGithubRepositoryListSchema,
96
+ AppGithubRepositorySchema,
97
+ AppGithubRepositorySetupQuerySchema,
98
+ AppGithubRepositorySetupSchema,
91
99
  AppInspectionCapabilityReportSchema,
92
100
  AppInspectionIssueSchema,
93
101
  AppInspectionResultSchema,
@@ -97,6 +105,7 @@ import {
97
105
  AppInstallationProjectsQuerySchema,
98
106
  AppInstallationProviderBindingSchema,
99
107
  AppInstallationsQuerySchema,
108
+ AppInstanceAvailabilitySchema,
100
109
  AppListScopeSchema,
101
110
  AppOAuthCollectionParamsSchema,
102
111
  AppOAuthProviderParamsSchema,
@@ -112,6 +121,7 @@ import {
112
121
  AppScaffoldModuleSchema,
113
122
  AppScaffoldProgressSchema,
114
123
  AppScaffoldProgressStatusSchema,
124
+ AppScaffoldSourceModeSchema,
115
125
  AppsQuerySchema,
116
126
  AppToolCollectionArraySchema,
117
127
  AppToolCollectionSchema,
@@ -128,6 +138,8 @@ import {
128
138
  ConversationActivityStateSchema,
129
139
  DeleteAppVersionResponseSchema,
130
140
  EventRefSchema,
141
+ ExchangeAppGithubAuthorizationRequestSchema,
142
+ ExchangeAppGithubAuthorizationResponseSchema,
131
143
  Extract_AppVersionGitRefType_branch_tag_commitSchema,
132
144
  InCodeTypeRefSchema,
133
145
  McpApiKeyCredentialSchema,
@@ -138,6 +150,7 @@ import {
138
150
  StartAppBuildRequestSchema,
139
151
  StartAppBuildResponseSchema,
140
152
  StartAppDevelopmentTaskRequestSchema,
153
+ StartAppGithubAuthorizationResponseSchema,
141
154
  StartAppScaffoldRequestSchema,
142
155
  StartAppScaffoldResponseSchema,
143
156
  StoredTypeRefSchema,
@@ -152,6 +165,7 @@ import * as AppRuntimeSchemas from './app-runtime.js';
152
165
  import {
153
166
  AppAccessControlSchema,
154
167
  AppCapabilitiesSchema,
168
+ AppGitSourceProviderSchema,
155
169
  AppManifestSourceSchema,
156
170
  AppSourceConfigSchema,
157
171
  AppUIConfigSchema,
@@ -487,6 +501,7 @@ import {
487
501
  EmailChannelSchema,
488
502
  ExecuteInteractionByEndpointHeadersSchema,
489
503
  ExecuteInteractionByEndpointQuerySchema,
504
+ ExecuteNamedInteractionQuerySchema,
490
505
  ExecutionResponseSchema,
491
506
  ExecutionRunDocRefSchema,
492
507
  ExecutionRunInteractionSchema,
@@ -509,6 +524,7 @@ import {
509
524
  GeneratedTestDataRecordSchema,
510
525
  GenerateInteractionPayloadSchema,
511
526
  GenerateTestDataPayloadSchema,
527
+ GetRunQuerySchema,
512
528
  ImprovePromptPayloadConfigSchema,
513
529
  ImprovePromptPayloadSchema,
514
530
  InCodeInteractionSchema,
@@ -657,7 +673,12 @@ import {
657
673
  OAuthRegistrationSourceSchema,
658
674
  OAuthResponseTypeSchema,
659
675
  OAuthTokenEndpointAuthMethodSchema,
676
+ OAuthTokenExchangeRequestSchema,
677
+ OAuthTokenExchangeResponseSchema,
660
678
  OAuthTokenResponseSchema,
679
+ OidcFederationConnectionArraySchema,
680
+ OidcFederationConnectionPayloadSchema,
681
+ OidcFederationConnectionSchema,
661
682
  RevokeOAuthGrantQuerySchema,
662
683
  UpdateOAuthClientPayloadSchema,
663
684
  } from './oauth-server.js';
@@ -871,8 +892,6 @@ const IAM_AND_ACCOUNT_SCHEMAS = {
871
892
  CreateAccountApiKeyPayload: CreateAccountApiKeyPayloadSchema,
872
893
  UpdateAccountApiKeyPayload: UpdateAccountApiKeyPayloadSchema,
873
894
 
874
- ApiKeyReadResponse: ApiKeyReadResponseSchema,
875
- ApiKeyReadQuery: ApiKeyReadQuerySchema,
876
895
  CreateApiKeyPayload: CreateApiKeyPayloadSchema,
877
896
  UpdateApiKeyPayload: UpdateApiKeyPayloadSchema,
878
897
  AuthTokenResponse: AuthTokenResponseSchema,
@@ -934,6 +953,7 @@ const PROJECT_AND_APP_SCHEMAS = {
934
953
  AppCapabilities: AppCapabilitiesSchema,
935
954
  AppAccessControl: AppAccessControlSchema,
936
955
  AppSourceConfig: AppSourceConfigSchema,
956
+ AppGitSourceProvider: AppGitSourceProviderSchema,
937
957
  AppManifestSource: AppManifestSourceSchema,
938
958
  } as const satisfies Record<string, z.ZodType>;
939
959
 
@@ -987,6 +1007,12 @@ const OAUTH_SCHEMAS = {
987
1007
  OAuthDeviceAuthorizationRequest: OAuthDeviceAuthorizationRequestSchema,
988
1008
  OAuthDeviceAuthorizationResponse: OAuthDeviceAuthorizationResponseSchema,
989
1009
  OAuthTokenResponse: OAuthTokenResponseSchema,
1010
+ OidcFederationConnectionPayload: OidcFederationConnectionPayloadSchema,
1011
+ OidcFederationConnection: OidcFederationConnectionSchema,
1012
+ OidcFederationConnectionArray: OidcFederationConnectionArraySchema,
1013
+ OAuthTokenExchangeRequest: OAuthTokenExchangeRequestSchema,
1014
+ OAuthTokenExchangeResponse: OAuthTokenExchangeResponseSchema,
1015
+
990
1016
  // Clients registered against Vertesia's own OAuth server. `OAuthClientData` is composed into
991
1017
  // `OAuthClient` rather than hoisted, so it has no component of its own — as today.
992
1018
  OAuthClient: OAuthClientSchema,
@@ -1250,6 +1276,7 @@ type ExecutionRunSchemaMap = {
1250
1276
  ExecutionRunRefArray: typeof ExecutionRunRefArraySchema;
1251
1277
  UpdateExecutionRunPayload: typeof UpdateExecutionRunPayloadSchema;
1252
1278
  RunCreatePayload: typeof RunCreatePayloadSchema;
1279
+ GetRunQuery: typeof GetRunQuerySchema;
1253
1280
  SortOrder: typeof SortOrderSchema;
1254
1281
  SortOption: typeof SortOptionSchema;
1255
1282
  RunSearchQuery: typeof RunSearchQuerySchema;
@@ -1270,6 +1297,7 @@ const EXECUTION_RUN_SCHEMAS: ExecutionRunSchemaMap = {
1270
1297
  ExecutionRunRefArray: ExecutionRunRefArraySchema,
1271
1298
  UpdateExecutionRunPayload: UpdateExecutionRunPayloadSchema,
1272
1299
  RunCreatePayload: RunCreatePayloadSchema,
1300
+ GetRunQuery: GetRunQuerySchema,
1273
1301
  // Listing and searching runs.
1274
1302
  SortOrder: SortOrderSchema,
1275
1303
  SortOption: SortOptionSchema,
@@ -1290,6 +1318,7 @@ const EXECUTION_REQUEST_SCHEMAS: {
1290
1318
  InteractionExecutionConfiguration: typeof InteractionExecutionConfigurationSchema;
1291
1319
  InteractionExecutionError: typeof InteractionExecutionErrorSchema;
1292
1320
  ResultStorageOptions: typeof ResultStorageOptionsSchema;
1321
+ ExecuteNamedInteractionQuery: typeof ExecuteNamedInteractionQuerySchema;
1293
1322
  ExecuteInteractionByEndpointQuery: typeof ExecuteInteractionByEndpointQuerySchema;
1294
1323
  ExecuteInteractionByEndpointHeaders: typeof ExecuteInteractionByEndpointHeadersSchema;
1295
1324
  AsyncCompletionMode: typeof AsyncCompletionModeSchema;
@@ -1325,6 +1354,7 @@ const EXECUTION_REQUEST_SCHEMAS: {
1325
1354
  InteractionExecutionConfiguration: InteractionExecutionConfigurationSchema,
1326
1355
  InteractionExecutionError: InteractionExecutionErrorSchema,
1327
1356
  ResultStorageOptions: ResultStorageOptionsSchema,
1357
+ ExecuteNamedInteractionQuery: ExecuteNamedInteractionQuerySchema,
1328
1358
  ExecuteInteractionByEndpointQuery: ExecuteInteractionByEndpointQuerySchema,
1329
1359
  ExecuteInteractionByEndpointHeaders: ExecuteInteractionByEndpointHeadersSchema,
1330
1360
  AsyncCompletionMode: AsyncCompletionModeSchema,
@@ -2224,6 +2254,20 @@ const APP_LIFECYCLE_SCHEMAS = {
2224
2254
  AppRepoBranch: AppRepoBranchSchema,
2225
2255
  AppRepoDocumentCommit: AppRepoDocumentCommitSchema,
2226
2256
  AppVersionGitSource: AppVersionGitSourceSchema,
2257
+ AppGithubConfiguration: AppGithubConfigurationSchema,
2258
+ StartAppGithubAuthorizationResponse: StartAppGithubAuthorizationResponseSchema,
2259
+ ExchangeAppGithubAuthorizationRequest: ExchangeAppGithubAuthorizationRequestSchema,
2260
+ AppGithubRepositoriesQuery: AppGithubRepositoriesQuerySchema,
2261
+ ExchangeAppGithubAuthorizationResponse: ExchangeAppGithubAuthorizationResponseSchema,
2262
+ AppGithubInstallation: AppGithubInstallationSchema,
2263
+ AppGithubAccount: AppGithubAccountSchema,
2264
+ AppGithubRepository: AppGithubRepositorySchema,
2265
+ AppGithubRepositoryCreation: AppGithubRepositoryCreationSchema,
2266
+ AppGithubRepositoryList: AppGithubRepositoryListSchema,
2267
+ AppGithubRepositorySetupQuery: AppGithubRepositorySetupQuerySchema,
2268
+ AppGithubBranchState: AppGithubBranchStateSchema,
2269
+ AppGithubRepositorySetup: AppGithubRepositorySetupSchema,
2270
+ AppScaffoldSourceMode: AppScaffoldSourceModeSchema,
2227
2271
  StartAppScaffoldRequest: StartAppScaffoldRequestSchema,
2228
2272
  StartAppDevelopmentTaskRequest: StartAppDevelopmentTaskRequestSchema,
2229
2273
  StartAppBuildRequest: StartAppBuildRequestSchema,
@@ -2248,6 +2292,7 @@ const APP_LIFECYCLE_SCHEMAS = {
2248
2292
  AgentRunSearchHit: AgentRunSearchHitSchema,
2249
2293
  UpsertAppVersionRequest: UpsertAppVersionRequestSchema,
2250
2294
  AppInstallationPayload: AppInstallationPayloadSchema,
2295
+ AppInstanceAvailability: AppInstanceAvailabilitySchema,
2251
2296
  AppDevelopmentTaskDetails: AppDevelopmentTaskDetailsSchema,
2252
2297
  AppVersionRecordArray: AppVersionRecordArraySchema,
2253
2298
  AppToolCollectionArray: AppToolCollectionArraySchema,
@@ -2338,6 +2383,7 @@ const APP_MANIFEST_SCHEMAS = {
2338
2383
  MCPOAuthConfigMap: AppRuntimeSchemas.MCPOAuthConfigMapSchema,
2339
2384
  AppWidgetInfo: AppRuntimeSchemas.AppWidgetInfoSchema,
2340
2385
  AppDashboardDefinition: AppRuntimeSchemas.AppDashboardDefinitionSchema,
2386
+ AppOAuthClientConfig: AppRuntimeSchemas.AppOAuthClientConfigSchema,
2341
2387
  AppManifestData: AppRuntimeSchemas.AppManifestDataSchema,
2342
2388
  UpdateAppPayload: AppRuntimeSchemas.UpdateAppPayloadSchema,
2343
2389
  AppManifest: AppRuntimeSchemas.AppManifestSchema,
@@ -2557,6 +2603,10 @@ const API_SCHEMAS: Readonly<Record<ApiComponentName, z.ZodType>> = mergeComponen
2557
2603
  * objects, so a body carrying an undeclared property is rejected rather than quietly accepted.
2558
2604
  */
2559
2605
  const STRICT_COMPONENTS: ReadonlySet<string> = new Set<string>([
2606
+ 'OidcFederationConnectionPayload',
2607
+ 'OidcFederationConnection',
2608
+ 'OAuthTokenExchangeRequest',
2609
+ 'OAuthTokenExchangeResponse',
2560
2610
  'UpdateInteractionConfigurationPayload',
2561
2611
  'InteractionConfigurationRecord',
2562
2612
  'InteractionConfigurationResult',
@@ -2683,8 +2733,6 @@ const STRICT_COMPONENTS: ReadonlySet<string> = new Set<string>([
2683
2733
  'AccountRef',
2684
2734
  'ApiKey',
2685
2735
  'ApiKeyWithValue',
2686
- 'ApiKeyReadResponse',
2687
- 'ApiKeyReadQuery',
2688
2736
  'CreateApiKeyPayload',
2689
2737
  'UpdateApiKeyPayload',
2690
2738
  'AuthTokenResponse',
@@ -2774,6 +2822,8 @@ const STRICT_COMPONENTS: ReadonlySet<string> = new Set<string>([
2774
2822
  'MCPOAuthConfig',
2775
2823
  'MCPApiKeyConfig',
2776
2824
  'MCPToolCollectionObject',
2825
+ 'McpPublicParameter',
2826
+ 'McpSecretParameter',
2777
2827
  'VertesiaSDKToolCollectionObject',
2778
2828
  // File, task, content-type and command components. Every one is published closed
2779
2829
  // today; `StringValueMap`, `MigrationListResponse`, `TaskArray`, the two content-type array
@@ -3347,6 +3397,8 @@ const STRICT_COMPONENTS: ReadonlySet<string> = new Set<string>([
3347
3397
  'CatalogTagQuery',
3348
3398
  'StoredCatalogInteractionsQuery',
3349
3399
  'ResolveInteractionQuery',
3400
+ 'ExecuteNamedInteractionQuery',
3401
+ 'GetRunQuery',
3350
3402
  'ExecuteInteractionByEndpointQuery',
3351
3403
  'ExecuteInteractionByEndpointHeaders',
3352
3404
  // The prompt-authoring, project-tool, remote-MCP, audit-trail and view-experience closures.
@@ -3474,6 +3526,8 @@ const STRICT_COMPONENTS: ReadonlySet<string> = new Set<string>([
3474
3526
  'AgentRunSearchHit',
3475
3527
  'UpsertAppVersionRequest',
3476
3528
  'AppInstallationPayload',
3529
+ 'AppInstanceAvailability',
3530
+ 'AppOAuthClientConfig',
3477
3531
  'AppDevelopmentTaskDetails',
3478
3532
  'AppInstallationsQuery',
3479
3533
  'AppsQuery',
@@ -11,6 +11,15 @@ export const nullableNumberSchema = z
11
11
  .nullable()
12
12
  .meta({ anyOf: undefined, type: ['number', 'null'] });
13
13
 
14
+ /**
15
+ * A `limit` or `offset` query count: a whole number, zero or more. A fraction or a negative count used to
16
+ * reach the database and fail there as a 500.
17
+ *
18
+ * Published as `type: number` with `multipleOf: 1` rather than `type: integer`, so the generated Java and Go
19
+ * clients keep the parameter types they already expose while the contract enforcer answers 400.
20
+ */
21
+ export const PageCountSchema = z.number().multipleOf(1).min(0);
22
+
14
23
  /** Monotonic token for optimistic concurrency on mutable, user-authored resources. */
15
24
  export const EditRevisionSchema = z
16
25
  .number()
@@ -3,7 +3,7 @@ import { z } from 'zod';
3
3
  // From the values module, for the reason `./apikey.js` gives.
4
4
  import { ConfigModes, RunDataStorageLevel } from '../interaction-values.js';
5
5
  import { InferenceProfileIdSchema } from './inference-profile.js';
6
- import { EditRevisionSchema, ExpectedEditRevisionSchema } from './schema-primitives.js';
6
+ import { EditRevisionSchema, ExpectedEditRevisionSchema, PageCountSchema } from './schema-primitives.js';
7
7
 
8
8
  /**
9
9
  * Runtime API schemas for the content-intake policy tree.
@@ -643,8 +643,8 @@ export const ContentObjectTypeSchema = z.strictObject(storedContentTypeShape).me
643
643
  const contentTypeListingFields = {
644
644
  layout: z.boolean().optional(),
645
645
  schema: z.boolean().optional(),
646
- limit: z.number().optional(),
647
- offset: z.number().optional(),
646
+ limit: PageCountSchema.optional(),
647
+ offset: PageCountSchema.optional(),
648
648
  };
649
649
 
650
650
  export const ContentObjectTypeCatalogQuerySchema = z
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ import { PageCountSchema } from './schema-primitives.js';
2
3
 
3
4
  export const CompleteTaskPayloadSchema = z
4
5
  .strictObject({
@@ -98,7 +99,7 @@ export const ListTasksQuerySchema = z
98
99
  assignee: z.string().optional(),
99
100
  run_id: z.string().optional(),
100
101
  source_type: TaskSourceSchema.shape.type.optional(),
101
- limit: z.number().optional(),
102
- offset: z.number().optional(),
102
+ limit: PageCountSchema.optional(),
103
+ offset: PageCountSchema.optional(),
103
104
  })
104
105
  .meta({ id: 'ListTasksQuery' });
package/src/apikey.ts CHANGED
@@ -62,7 +62,6 @@ export type ApiKeyArray = Wire.ApiKeyArray;
62
62
  export type CreateApiKeyPayload = Wire.CreateApiKeyPayload;
63
63
  export type UpdateApiKeyPayload = Wire.UpdateApiKeyPayload;
64
64
  export type ApiKeyWithValue = Wire.ApiKeyWithValue;
65
- export type ApiKeyReadResponse = Wire.ApiKeyReadResponse;
66
65
 
67
66
  export interface CreatePublicKeyPayload {
68
67
  name?: string;
@@ -72,7 +71,6 @@ export interface CreatePublicKeyPayload {
72
71
 
73
72
  export type AuthTokenResponse = Wire.AuthTokenResponse;
74
73
  export type ApiKeyListQuery = Wire.ApiKeyListQuery;
75
- export type ApiKeyReadQuery = Wire.ApiKeyReadQuery;
76
74
 
77
75
  export interface AuthTokenPayload {
78
76
  credential_scope?: 'project' | 'account';
@@ -97,6 +95,14 @@ export interface AuthTokenPayload {
97
95
  */
98
96
  apps: string[];
99
97
 
98
+ /** Versioned grants for installations in the selected project. Absence means a legacy token. */
99
+ app_installations?: {
100
+ version: 1;
101
+ project_id: string;
102
+ ids: string[];
103
+ ui_restrictions?: string[];
104
+ };
105
+
100
106
  /**
101
107
  * Apps in `apps[]` whose UI surface is restricted for this principal — present only on
102
108
  * user tokens, and only when at least one app applies. Such apps grant functional access