@cat-factory/contracts 0.245.0 → 0.246.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.
@@ -38,6 +38,54 @@ export declare const toolServerCredentialSchema: v.ObjectSchema<{
38
38
  readonly usage: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
39
39
  }, undefined>;
40
40
  export type ToolServerCredential = v.InferOutput<typeof toolServerCredentialSchema>;
41
+ /** Which OAuth grant a declaration uses, mirroring kernel's `McpOAuthConfig['grant']`. */
42
+ export declare const toolServerOAuthGrantSchema: v.PicklistSchema<["authorization_code", "client_credentials"], undefined>;
43
+ export type ToolServerOAuthGrant = v.InferOutput<typeof toolServerOAuthGrantSchema>;
44
+ /**
45
+ * The non-secret state of a workspace's OAuth grant for one tool server: what is persisted beside
46
+ * the sealed tokens, and what the operator surface renders.
47
+ *
48
+ * Never a token, and never a refresh token's presence dressed up as one. The only reason this is a
49
+ * record rather than a boolean is that "connected" is four separate questions an operator asks in
50
+ * sequence — is there a grant, whose account is it, will it keep working, and did the last renewal
51
+ * fail — and a single flag answers the first while silently implying the other three.
52
+ */
53
+ export declare const toolServerOAuthStatusSchema: v.ObjectSchema<{
54
+ readonly grant: v.PicklistSchema<["authorization_code", "client_credentials"], undefined>;
55
+ /**
56
+ * Whether this workspace holds a grant for the server.
57
+ *
58
+ * For `client_credentials` this is a fact about a CACHED token rather than about a human
59
+ * decision: nothing needs granting, so a false here means only that no token has been minted
60
+ * yet, and a dispatch mints one. The surface therefore renders the two grants differently and
61
+ * this field is deliberately not overloaded to say so.
62
+ */
63
+ readonly connected: v.BooleanSchema<undefined>;
64
+ /** Scopes the authorization server actually granted, when it named them. */
65
+ readonly scopes: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
66
+ /** When the grant was established (epoch ms). */
67
+ readonly connectedAt: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
68
+ /** The user who granted it, so a board can tell whose vendor account its runs authenticate as. */
69
+ readonly connectedBy: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
70
+ /** When the current access token expires (epoch ms), when the server stated an expiry. */
71
+ readonly expiresAt: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
72
+ /**
73
+ * Whether a refresh token was issued.
74
+ *
75
+ * `false` on an `authorization_code` grant is a real and reportable state, not a detail: the
76
+ * connection works until the access token expires and then needs granting again by hand, which
77
+ * an operator can only plan around if the surface says so before it happens.
78
+ */
79
+ readonly refreshable: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
80
+ /**
81
+ * Why the last token exchange failed, when one did. Present ALONGSIDE `connected: true`, which
82
+ * is the point: the grant is still on file and is no longer producing tokens, and reporting that
83
+ * as a clean connection is how an operator ends up debugging the agent instead of the vendor.
84
+ * Scrubbed at the emit site.
85
+ */
86
+ readonly lastError: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
87
+ }, undefined>;
88
+ export type ToolServerOAuthStatus = v.InferOutput<typeof toolServerOAuthStatusSchema>;
41
89
  /**
42
90
  * One declared tool server, as an operator sees it.
43
91
  *
@@ -87,6 +135,46 @@ export declare const toolServerViewSchema: v.ObjectSchema<{
87
135
  readonly required: v.BooleanSchema<undefined>;
88
136
  readonly usage: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
89
137
  }, undefined>, undefined>;
138
+ /**
139
+ * The OAuth declaration's state for THIS workspace, when the server declares one. Absent ⇒ the
140
+ * server authenticates with static credentials (or none), and the Connect affordance does not
141
+ * apply to it at all.
142
+ */
143
+ readonly oauth: v.OptionalSchema<v.ObjectSchema<{
144
+ readonly grant: v.PicklistSchema<["authorization_code", "client_credentials"], undefined>;
145
+ /**
146
+ * Whether this workspace holds a grant for the server.
147
+ *
148
+ * For `client_credentials` this is a fact about a CACHED token rather than about a human
149
+ * decision: nothing needs granting, so a false here means only that no token has been minted
150
+ * yet, and a dispatch mints one. The surface therefore renders the two grants differently and
151
+ * this field is deliberately not overloaded to say so.
152
+ */
153
+ readonly connected: v.BooleanSchema<undefined>;
154
+ /** Scopes the authorization server actually granted, when it named them. */
155
+ readonly scopes: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
156
+ /** When the grant was established (epoch ms). */
157
+ readonly connectedAt: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
158
+ /** The user who granted it, so a board can tell whose vendor account its runs authenticate as. */
159
+ readonly connectedBy: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
160
+ /** When the current access token expires (epoch ms), when the server stated an expiry. */
161
+ readonly expiresAt: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
162
+ /**
163
+ * Whether a refresh token was issued.
164
+ *
165
+ * `false` on an `authorization_code` grant is a real and reportable state, not a detail: the
166
+ * connection works until the access token expires and then needs granting again by hand, which
167
+ * an operator can only plan around if the surface says so before it happens.
168
+ */
169
+ readonly refreshable: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
170
+ /**
171
+ * Why the last token exchange failed, when one did. Present ALONGSIDE `connected: true`, which
172
+ * is the point: the grant is still on file and is no longer producing tokens, and reporting that
173
+ * as a clean connection is how an operator ends up debugging the agent instead of the vendor.
174
+ * Scrubbed at the emit site.
175
+ */
176
+ readonly lastError: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
177
+ }, undefined>, undefined>;
90
178
  /** Whether this deployment can reach the server to probe it. */
91
179
  readonly probeable: v.BooleanSchema<undefined>;
92
180
  /** Why not, when `probeable` is false. Always present in that case, absent otherwise. */
@@ -135,6 +223,46 @@ export declare const toolServersViewSchema: v.ObjectSchema<{
135
223
  readonly required: v.BooleanSchema<undefined>;
136
224
  readonly usage: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
137
225
  }, undefined>, undefined>;
226
+ /**
227
+ * The OAuth declaration's state for THIS workspace, when the server declares one. Absent ⇒ the
228
+ * server authenticates with static credentials (or none), and the Connect affordance does not
229
+ * apply to it at all.
230
+ */
231
+ readonly oauth: v.OptionalSchema<v.ObjectSchema<{
232
+ readonly grant: v.PicklistSchema<["authorization_code", "client_credentials"], undefined>;
233
+ /**
234
+ * Whether this workspace holds a grant for the server.
235
+ *
236
+ * For `client_credentials` this is a fact about a CACHED token rather than about a human
237
+ * decision: nothing needs granting, so a false here means only that no token has been minted
238
+ * yet, and a dispatch mints one. The surface therefore renders the two grants differently and
239
+ * this field is deliberately not overloaded to say so.
240
+ */
241
+ readonly connected: v.BooleanSchema<undefined>;
242
+ /** Scopes the authorization server actually granted, when it named them. */
243
+ readonly scopes: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
244
+ /** When the grant was established (epoch ms). */
245
+ readonly connectedAt: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
246
+ /** The user who granted it, so a board can tell whose vendor account its runs authenticate as. */
247
+ readonly connectedBy: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
248
+ /** When the current access token expires (epoch ms), when the server stated an expiry. */
249
+ readonly expiresAt: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
250
+ /**
251
+ * Whether a refresh token was issued.
252
+ *
253
+ * `false` on an `authorization_code` grant is a real and reportable state, not a detail: the
254
+ * connection works until the access token expires and then needs granting again by hand, which
255
+ * an operator can only plan around if the surface says so before it happens.
256
+ */
257
+ readonly refreshable: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
258
+ /**
259
+ * Why the last token exchange failed, when one did. Present ALONGSIDE `connected: true`, which
260
+ * is the point: the grant is still on file and is no longer producing tokens, and reporting that
261
+ * as a clean connection is how an operator ends up debugging the agent instead of the vendor.
262
+ * Scrubbed at the emit site.
263
+ */
264
+ readonly lastError: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
265
+ }, undefined>, undefined>;
138
266
  /** Whether this deployment can reach the server to probe it. */
139
267
  readonly probeable: v.BooleanSchema<undefined>;
140
268
  /** Why not, when `probeable` is false. Always present in that case, absent otherwise. */
@@ -161,10 +289,16 @@ export type ToolServersView = v.InferOutput<typeof toolServersViewSchema>;
161
289
  * - `protocol_error` — it answered, but not as an MCP server: a non-JSON body, a JSON-RPC error, a
162
290
  * protocol version it would not negotiate. The url probably names something that is not this
163
291
  * server.
292
+ * - `oauth_not_connected` — the declaration authenticates with OAuth and this workspace has not
293
+ * granted it. Kept apart from `credentials_missing` because there is no value to type: the
294
+ * remedy is the Connect flow, and an operator sent to the credential checklist would find no row.
295
+ * - `oauth_token_failed` — a grant is on file and produced no access token (revoked or expired
296
+ * refresh, an authorization server that refused, discovery that failed). The dispatch reports
297
+ * the same condition as `oauth_token_failed`; `error` carries the cause.
164
298
  * - `not_probeable` — the probe was refused before it began; see
165
299
  * {@link toolServerNotProbeableReasonSchema}.
166
300
  */
167
- export declare const toolServerProbeStatusSchema: v.PicklistSchema<["ok", "credentials_missing", "credential_refused", "unreachable", "http_error", "protocol_error", "not_probeable"], undefined>;
301
+ export declare const toolServerProbeStatusSchema: v.PicklistSchema<["ok", "credentials_missing", "credential_refused", "oauth_not_connected", "oauth_token_failed", "unreachable", "http_error", "protocol_error", "not_probeable"], undefined>;
168
302
  export type ToolServerProbeStatus = v.InferOutput<typeof toolServerProbeStatusSchema>;
169
303
  /**
170
304
  * Whether the tools the definition NARROWED to actually exist on the server.
@@ -192,7 +326,7 @@ export type ToolServerAllowedToolsCheck = v.InferOutput<typeof toolServerAllowed
192
326
  /** What one probe answered. */
193
327
  export declare const toolServerProbeResultSchema: v.ObjectSchema<{
194
328
  readonly serverId: v.StringSchema<undefined>;
195
- readonly status: v.PicklistSchema<["ok", "credentials_missing", "credential_refused", "unreachable", "http_error", "protocol_error", "not_probeable"], undefined>;
329
+ readonly status: v.PicklistSchema<["ok", "credentials_missing", "credential_refused", "oauth_not_connected", "oauth_token_failed", "unreachable", "http_error", "protocol_error", "not_probeable"], undefined>;
196
330
  /** Present when `status` is `not_probeable`, absent otherwise. */
197
331
  readonly notProbeableReason: v.OptionalSchema<v.PicklistSchema<["stdio_transport", "container_local_url", "url_not_allowed"], undefined>, undefined>;
198
332
  /** The `serverInfo` the handshake returned. Present on `ok`. */
@@ -233,6 +367,53 @@ export declare const toolServerProbeResultSchema: v.ObjectSchema<{
233
367
  readonly error: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
234
368
  }, undefined>;
235
369
  export type ToolServerProbeResult = v.InferOutput<typeof toolServerProbeResultSchema>;
370
+ /**
371
+ * What starting an OAuth grant answers: the vendor's own authorization URL, for the SPA to send
372
+ * the operator to.
373
+ *
374
+ * A url handed back rather than a 302, because the caller is a `fetch` from the settings panel and
375
+ * a redirect there would be followed by the browser into a cross-origin document the SPA cannot
376
+ * observe. It also keeps the refusals (`503` when the redirect URL is unconfigured, `409` when the
377
+ * declaration is not an `authorization_code` one) as ordinary error envelopes with a
378
+ * `details.reason` the panel can translate, which a redirect response cannot carry.
379
+ */
380
+ export declare const toolServerOAuthStartSchema: v.ObjectSchema<{
381
+ readonly url: v.StringSchema<undefined>;
382
+ }, undefined>;
383
+ export type ToolServerOAuthStart = v.InferOutput<typeof toolServerOAuthStartSchema>;
384
+ /**
385
+ * What the SPA hands back to finish a grant: the two values the vendor put in the redirect it sent
386
+ * the operator's browser to.
387
+ *
388
+ * POSTED BY THE SPA rather than read off a redirect the backend receives, and that is the whole
389
+ * security shape of this flow. A vendor's redirect is a third-party browser navigation carrying no
390
+ * `Authorization` header, so a backend route receiving it directly cannot know WHO is completing
391
+ * the grant, and the session and permission checks such a route makes are unreachable code on any
392
+ * deployment where sessions are bearer tokens. Landing the redirect on an SPA page that re-presents
393
+ * these two values over the authenticated API is what makes the user binding and the
394
+ * `secrets.manage` re-check real rather than decorative.
395
+ *
396
+ * Neither value is a secret this side minted: `code` is single-use at the authorization server and
397
+ * `state` is sealed, so the pair is inert to anyone who cannot also open the seal.
398
+ */
399
+ export declare const toolServerOAuthCompletionSchema: v.ObjectSchema<{
400
+ readonly code: v.StringSchema<undefined>;
401
+ readonly state: v.StringSchema<undefined>;
402
+ }, undefined>;
403
+ export type ToolServerOAuthCompletion = v.InferOutput<typeof toolServerOAuthCompletionSchema>;
404
+ /**
405
+ * What completing a grant answers: which server was connected, so the page that finishes the flow
406
+ * can name it before sending the operator back to the panel.
407
+ *
408
+ * The server id comes from the SEALED state rather than from anything the caller sent, which is
409
+ * why it is worth returning at all: it is the one fact the SPA could not otherwise know, having
410
+ * handed off to the vendor and come back on a fixed redirect URL that carries no board or server.
411
+ */
412
+ export declare const toolServerOAuthCompletedSchema: v.ObjectSchema<{
413
+ readonly serverId: v.StringSchema<undefined>;
414
+ readonly workspaceId: v.StringSchema<undefined>;
415
+ }, undefined>;
416
+ export type ToolServerOAuthCompleted = v.InferOutput<typeof toolServerOAuthCompletedSchema>;
236
417
  /**
237
418
  * How many tool NAMES a probe result carries back.
238
419
  *
@@ -1 +1 @@
1
- {"version":3,"file":"tool-servers.d.ts","sourceRoot":"","sources":["../src/tool-servers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AA8B5B,qFAAqF;AACrF,eAAO,MAAM,yBAAyB,gDAAgC,CAAA;AACtE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEjF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,kCAAkC,4FAI7C,CAAA;AACF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,kCAAkC,CAAC,CAAA;AAEnG;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B;;;;aAIrC,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEnF;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB;;;;IAI/B;;;;OAIG;;IAEH,8EAA8E;;IAE9E;;;;;;;OAOG;;IAEH;;;;;;;;;OASG;;IAEH,6FAA6F;;IAE7F,4CAA4C;;;;;;IAE5C,gEAAgE;;IAEhE,yFAAyF;;aAEzF,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE,0FAA0F;AAC1F,eAAO,MAAM,qBAAqB;;;;;QAxChC;;;;WAIG;;QAEH,8EAA8E;;QAE9E;;;;;;;WAOG;;QAEH;;;;;;;;;WASG;;QAEH,6FAA6F;;QAE7F,4CAA4C;;;;;;QAE5C,gEAAgE;;QAEhE,yFAAyF;;;aAQzF,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEzE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,2BAA2B,kJAQtC,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAErF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,iCAAiC;;IAE5C,gFAAgF;;IAEhF,6FAA6F;;aAE7F,CAAA;AACF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,iCAAiC,CAAC,CAAA;AAEjG,+BAA+B;AAC/B,eAAO,MAAM,2BAA2B;;;IAGtC,kEAAkE;;IAElE,gEAAgE;;;IAGhE,mEAAmE;;IAEnE;;;;;OAKG;;IAEH,0FAA0F;;IAE1F,oEAAoE;;IAEpE,mGAAmG;;;QA7BnG,gFAAgF;;QAEhF,6FAA6F;;;IA6B7F,oFAAoF;;IAEpF,4FAA4F;;IAE5F,mEAAmE;;IAEnE;;;;OAIG;;aAEH,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAErF;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,MAAM,CAAA;AAE1C;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAEpC,yEAAyE;AACzE,eAAO,MAAM,oBAAoB,QAAS,CAAA"}
1
+ {"version":3,"file":"tool-servers.d.ts","sourceRoot":"","sources":["../src/tool-servers.ts"],"names":[],"mappings":"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"}
@@ -66,6 +66,52 @@ export const toolServerCredentialSchema = v.object({
66
66
  required: v.boolean(),
67
67
  usage: v.optional(v.string()),
68
68
  });
69
+ /** Which OAuth grant a declaration uses, mirroring kernel's `McpOAuthConfig['grant']`. */
70
+ export const toolServerOAuthGrantSchema = v.picklist(['authorization_code', 'client_credentials']);
71
+ /**
72
+ * The non-secret state of a workspace's OAuth grant for one tool server: what is persisted beside
73
+ * the sealed tokens, and what the operator surface renders.
74
+ *
75
+ * Never a token, and never a refresh token's presence dressed up as one. The only reason this is a
76
+ * record rather than a boolean is that "connected" is four separate questions an operator asks in
77
+ * sequence — is there a grant, whose account is it, will it keep working, and did the last renewal
78
+ * fail — and a single flag answers the first while silently implying the other three.
79
+ */
80
+ export const toolServerOAuthStatusSchema = v.object({
81
+ grant: toolServerOAuthGrantSchema,
82
+ /**
83
+ * Whether this workspace holds a grant for the server.
84
+ *
85
+ * For `client_credentials` this is a fact about a CACHED token rather than about a human
86
+ * decision: nothing needs granting, so a false here means only that no token has been minted
87
+ * yet, and a dispatch mints one. The surface therefore renders the two grants differently and
88
+ * this field is deliberately not overloaded to say so.
89
+ */
90
+ connected: v.boolean(),
91
+ /** Scopes the authorization server actually granted, when it named them. */
92
+ scopes: v.optional(v.array(v.string())),
93
+ /** When the grant was established (epoch ms). */
94
+ connectedAt: v.optional(v.number()),
95
+ /** The user who granted it, so a board can tell whose vendor account its runs authenticate as. */
96
+ connectedBy: v.optional(v.string()),
97
+ /** When the current access token expires (epoch ms), when the server stated an expiry. */
98
+ expiresAt: v.optional(v.number()),
99
+ /**
100
+ * Whether a refresh token was issued.
101
+ *
102
+ * `false` on an `authorization_code` grant is a real and reportable state, not a detail: the
103
+ * connection works until the access token expires and then needs granting again by hand, which
104
+ * an operator can only plan around if the surface says so before it happens.
105
+ */
106
+ refreshable: v.optional(v.boolean()),
107
+ /**
108
+ * Why the last token exchange failed, when one did. Present ALONGSIDE `connected: true`, which
109
+ * is the point: the grant is still on file and is no longer producing tokens, and reporting that
110
+ * as a clean connection is how an operator ends up debugging the agent instead of the vendor.
111
+ * Scrubbed at the emit site.
112
+ */
113
+ lastError: v.optional(v.string()),
114
+ });
69
115
  /**
70
116
  * One declared tool server, as an operator sees it.
71
117
  *
@@ -111,6 +157,12 @@ export const toolServerViewSchema = v.object({
111
157
  allowedTools: v.optional(v.array(v.string())),
112
158
  /** The credentials it asks for, by name. */
113
159
  credentials: v.array(toolServerCredentialSchema),
160
+ /**
161
+ * The OAuth declaration's state for THIS workspace, when the server declares one. Absent ⇒ the
162
+ * server authenticates with static credentials (or none), and the Connect affordance does not
163
+ * apply to it at all.
164
+ */
165
+ oauth: v.optional(toolServerOAuthStatusSchema),
114
166
  /** Whether this deployment can reach the server to probe it. */
115
167
  probeable: v.boolean(),
116
168
  /** Why not, when `probeable` is false. Always present in that case, absent otherwise. */
@@ -139,6 +191,12 @@ export const toolServersViewSchema = v.object({
139
191
  * - `protocol_error` — it answered, but not as an MCP server: a non-JSON body, a JSON-RPC error, a
140
192
  * protocol version it would not negotiate. The url probably names something that is not this
141
193
  * server.
194
+ * - `oauth_not_connected` — the declaration authenticates with OAuth and this workspace has not
195
+ * granted it. Kept apart from `credentials_missing` because there is no value to type: the
196
+ * remedy is the Connect flow, and an operator sent to the credential checklist would find no row.
197
+ * - `oauth_token_failed` — a grant is on file and produced no access token (revoked or expired
198
+ * refresh, an authorization server that refused, discovery that failed). The dispatch reports
199
+ * the same condition as `oauth_token_failed`; `error` carries the cause.
142
200
  * - `not_probeable` — the probe was refused before it began; see
143
201
  * {@link toolServerNotProbeableReasonSchema}.
144
202
  */
@@ -146,6 +204,8 @@ export const toolServerProbeStatusSchema = v.picklist([
146
204
  'ok',
147
205
  'credentials_missing',
148
206
  'credential_refused',
207
+ 'oauth_not_connected',
208
+ 'oauth_token_failed',
149
209
  'unreachable',
150
210
  'http_error',
151
211
  'protocol_error',
@@ -210,6 +270,50 @@ export const toolServerProbeResultSchema = v.object({
210
270
  */
211
271
  error: v.optional(v.string()),
212
272
  });
273
+ /**
274
+ * What starting an OAuth grant answers: the vendor's own authorization URL, for the SPA to send
275
+ * the operator to.
276
+ *
277
+ * A url handed back rather than a 302, because the caller is a `fetch` from the settings panel and
278
+ * a redirect there would be followed by the browser into a cross-origin document the SPA cannot
279
+ * observe. It also keeps the refusals (`503` when the redirect URL is unconfigured, `409` when the
280
+ * declaration is not an `authorization_code` one) as ordinary error envelopes with a
281
+ * `details.reason` the panel can translate, which a redirect response cannot carry.
282
+ */
283
+ export const toolServerOAuthStartSchema = v.object({
284
+ url: v.string(),
285
+ });
286
+ /**
287
+ * What the SPA hands back to finish a grant: the two values the vendor put in the redirect it sent
288
+ * the operator's browser to.
289
+ *
290
+ * POSTED BY THE SPA rather than read off a redirect the backend receives, and that is the whole
291
+ * security shape of this flow. A vendor's redirect is a third-party browser navigation carrying no
292
+ * `Authorization` header, so a backend route receiving it directly cannot know WHO is completing
293
+ * the grant, and the session and permission checks such a route makes are unreachable code on any
294
+ * deployment where sessions are bearer tokens. Landing the redirect on an SPA page that re-presents
295
+ * these two values over the authenticated API is what makes the user binding and the
296
+ * `secrets.manage` re-check real rather than decorative.
297
+ *
298
+ * Neither value is a secret this side minted: `code` is single-use at the authorization server and
299
+ * `state` is sealed, so the pair is inert to anyone who cannot also open the seal.
300
+ */
301
+ export const toolServerOAuthCompletionSchema = v.object({
302
+ code: v.string(),
303
+ state: v.string(),
304
+ });
305
+ /**
306
+ * What completing a grant answers: which server was connected, so the page that finishes the flow
307
+ * can name it before sending the operator back to the panel.
308
+ *
309
+ * The server id comes from the SEALED state rather than from anything the caller sent, which is
310
+ * why it is worth returning at all: it is the one fact the SPA could not otherwise know, having
311
+ * handed off to the vendor and come back on a fixed redirect URL that carries no board or server.
312
+ */
313
+ export const toolServerOAuthCompletedSchema = v.object({
314
+ serverId: v.string(),
315
+ workspaceId: v.string(),
316
+ });
213
317
  /**
214
318
  * How many tool NAMES a probe result carries back.
215
319
  *
@@ -1 +1 @@
1
- {"version":3,"file":"tool-servers.js","sourceRoot":"","sources":["../src/tool-servers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-servers.js","sourceRoot":"","sources":["../src/tool-servers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/contracts",
3
- "version": "0.245.0",
3
+ "version": "0.246.0",
4
4
  "description": "Valibot wire contract shared between the Agent Architecture Board frontend and backend.",
5
5
  "repository": {
6
6
  "type": "git",