@tai42/api-client 27.0.0 → 28.0.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.
@@ -60,8 +60,8 @@ export declare const conversationAnswerStatus: z.ZodEnum<{
60
60
  }>;
61
61
  export type ConversationAnswerStatus = z.infer<typeof conversationAnswerStatus>;
62
62
  /**
63
- * Who authored a record's outgoing side. `client` is the ordinary turn the flow
64
- * answered; `operator` is a message a human sent into the thread; `send` is a
63
+ * Who authored a record's outgoing side. `client` is the ordinary turn the route's
64
+ * target answered; `operator` is a message a human sent into the thread; `send` is a
65
65
  * message the platform sent on its own (a notification, an ask, a notice), named
66
66
  * by `sent_by`. An `operator` or `send` record answers no message: its text rides
67
67
  * `answer` and its `inbound_text` is empty.
@@ -1553,9 +1553,9 @@ export declare const conversationMessageSearchPage: z.ZodObject<{
1553
1553
  }, z.core.$strip>;
1554
1554
  export type ConversationMessageSearchPage = z.infer<typeof conversationMessageSearchPage>;
1555
1555
  /**
1556
- * Who answers a thread's incoming messages: `agent` lets the flow reply on its
1557
- * own; `manual` holds the flow back so a human answers. `source` says whether the
1558
- * setting is the thread's own (`thread`) or inherited from its route (`route`).
1556
+ * Who answers a thread's incoming messages: `agent` lets the route's target reply on
1557
+ * its own; `manual` holds the target back so a human answers. `source` says whether
1558
+ * the setting is the thread's own (`thread`) or inherited from its route (`route`).
1559
1559
  */
1560
1560
  export declare const conversationThreadMode: z.ZodEnum<{
1561
1561
  agent: "agent";
@@ -36,8 +36,8 @@ export const conversationAnswerStatus = openapi.conversationRecordView.shape.ans
36
36
  .unwrap()
37
37
  .unwrap();
38
38
  /**
39
- * Who authored a record's outgoing side. `client` is the ordinary turn the flow
40
- * answered; `operator` is a message a human sent into the thread; `send` is a
39
+ * Who authored a record's outgoing side. `client` is the ordinary turn the route's
40
+ * target answered; `operator` is a message a human sent into the thread; `send` is a
41
41
  * message the platform sent on its own (a notification, an ask, a notice), named
42
42
  * by `sent_by`. An `operator` or `send` record answers no message: its text rides
43
43
  * `answer` and its `inbound_text` is empty.
@@ -105,9 +105,9 @@ export const conversationTranscriptPage = openapi.transcriptEnvelope;
105
105
  */
106
106
  export const conversationMessageSearchPage = openapi.messageSearchEnvelope;
107
107
  /**
108
- * Who answers a thread's incoming messages: `agent` lets the flow reply on its
109
- * own; `manual` holds the flow back so a human answers. `source` says whether the
110
- * setting is the thread's own (`thread`) or inherited from its route (`route`).
108
+ * Who answers a thread's incoming messages: `agent` lets the route's target reply on
109
+ * its own; `manual` holds the target back so a human answers. `source` says whether
110
+ * the setting is the thread's own (`thread`) or inherited from its route (`route`).
111
111
  */
112
112
  export const conversationThreadMode = openapi.threadModeView.shape.mode;
113
113
  export const conversationThreadModeState = openapi.threadModeView;
@@ -590,7 +590,7 @@ export declare const interactionAnswered: z.ZodObject<{
590
590
  export type InteractionAnswered = z.infer<typeof interactionAnswered>;
591
591
  /**
592
592
  * The cancel door's response — a pending ask was WITHDRAWN without an answer (the
593
- * asking flow does not resume). `status` is `"cancelled"`; the shape mirrors the
593
+ * asking run does not resume). `status` is `"cancelled"`; the shape mirrors the
594
594
  * answer door's terminal reply, but the door is distinct so it carries its own
595
595
  * schema.
596
596
  */
@@ -310,7 +310,7 @@ export const interaction = openapi.interactionFrame.extend({
310
310
  export const interactionAnswered = openapi.interactionActionResult;
311
311
  /**
312
312
  * The cancel door's response — a pending ask was WITHDRAWN without an answer (the
313
- * asking flow does not resume). `status` is `"cancelled"`; the shape mirrors the
313
+ * asking run does not resume). `status` is `"cancelled"`; the shape mirrors the
314
314
  * answer door's terminal reply, but the door is distinct so it carries its own
315
315
  * schema.
316
316
  */
@@ -38,8 +38,9 @@ export type MemberPrincipalState = z.infer<typeof memberPrincipalState>;
38
38
  * person with any enabled principal still reads active while the per-principal truth
39
39
  * stays visible. `handle` routes an invoke back to the producing provider and pins
40
40
  * this row; `action_keys` are the opaque catalog keys of the actions applicable to
41
- * it — Studio joins and echoes both, never parses them. `created_at` is an ISO-8601
42
- * instant.
41
+ * it — Studio joins and echoes both, never parses them. `provider_name` is the
42
+ * owning accounts provider's declared display name, shown on the row so rows of
43
+ * different providers read apart. `created_at` is an ISO-8601 instant.
43
44
  */
44
45
  export declare const memberRow: z.ZodObject<{
45
46
  action_keys: z.ZodDefault<z.ZodArray<z.ZodString>>;
@@ -53,6 +54,7 @@ export declare const memberRow: z.ZodObject<{
53
54
  role: z.ZodNullable<z.ZodString>;
54
55
  user_id: z.ZodString;
55
56
  }, z.core.$strict>>;
57
+ provider_name: z.ZodString;
56
58
  role: z.ZodNullable<z.ZodString>;
57
59
  }, z.core.$strict>;
58
60
  export type MemberRow = z.infer<typeof memberRow>;
@@ -62,8 +64,10 @@ export type MemberRow = z.infer<typeof memberRow>;
62
64
  * stable handle for the invited person; `email` is the invited address; `role` names
63
65
  * the platform role they will hold (name only, or `null` when not from a role template). An
64
66
  * invitation holds no principal, so it carries no principal state. `handle` and
65
- * `action_keys` are the opaque routing tokens (see {@link memberRow}). `created_at`
66
- * and `expires_at` are ISO-8601 instants.
67
+ * `action_keys` are the opaque routing tokens (see {@link memberRow}).
68
+ * `provider_name` is the owning accounts provider's declared display name, shown on
69
+ * the row so rows of different providers read apart. `created_at` and `expires_at`
70
+ * are ISO-8601 instants.
67
71
  */
68
72
  export declare const inviteRow: z.ZodObject<{
69
73
  action_keys: z.ZodDefault<z.ZodArray<z.ZodString>>;
@@ -72,6 +76,7 @@ export declare const inviteRow: z.ZodObject<{
72
76
  expires_at: z.ZodString;
73
77
  handle: z.ZodString;
74
78
  id: z.ZodString;
79
+ provider_name: z.ZodString;
75
80
  role: z.ZodNullable<z.ZodString>;
76
81
  }, z.core.$strict>;
77
82
  export type InviteRow = z.infer<typeof inviteRow>;
@@ -89,6 +94,7 @@ export declare const memberDirectory: z.ZodObject<{
89
94
  expires_at: z.ZodString;
90
95
  handle: z.ZodString;
91
96
  id: z.ZodString;
97
+ provider_name: z.ZodString;
92
98
  role: z.ZodNullable<z.ZodString>;
93
99
  }, z.core.$strict>>;
94
100
  members: z.ZodArray<z.ZodObject<{
@@ -103,6 +109,7 @@ export declare const memberDirectory: z.ZodObject<{
103
109
  role: z.ZodNullable<z.ZodString>;
104
110
  user_id: z.ZodString;
105
111
  }, z.core.$strict>>;
112
+ provider_name: z.ZodString;
106
113
  role: z.ZodNullable<z.ZodString>;
107
114
  }, z.core.$strict>>;
108
115
  }, z.core.$strict>;
@@ -110,17 +117,19 @@ export type MemberDirectory = z.infer<typeof memberDirectory>;
110
117
  /**
111
118
  * One declared member action, serialized for the catalog (`GET
112
119
  * /api/auth/member-actions` → `actions[]`). `key` is the opaque catalog key a caller
113
- * joins and echoes, never parses. `label` is the resolved wording. `scope` places
114
- * the action; `destructive` asks for a confirm before invoking. `input_schema` and
115
- * `result_schema` are the declared models' JSON Schema — a caller renders an input
116
- * form and a read-only result view from them generically, with no provider field
117
- * name known to Studio.
120
+ * joins and echoes, never parses. `label` is the resolved wording. `provider_name` is
121
+ * the owning accounts provider's declared display name. `scope` places the action;
122
+ * `destructive` asks for a confirm before invoking. `input_schema` and `result_schema`
123
+ * are the declared models' JSON Schema — a caller renders an input form and a
124
+ * read-only result view from them generically, with no provider field name known to
125
+ * Studio.
118
126
  */
119
127
  export declare const memberActionDescriptor: z.ZodObject<{
120
128
  destructive: z.ZodBoolean;
121
129
  input_schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
122
130
  key: z.ZodString;
123
131
  label: z.ZodString;
132
+ provider_name: z.ZodString;
124
133
  result_schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
125
134
  scope: z.ZodEnum<{
126
135
  page: "page";
@@ -140,6 +149,7 @@ export declare const memberActionCatalog: z.ZodObject<{
140
149
  input_schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
141
150
  key: z.ZodString;
142
151
  label: z.ZodString;
152
+ provider_name: z.ZodString;
143
153
  result_schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
144
154
  scope: z.ZodEnum<{
145
155
  page: "page";
@@ -1 +1 @@
1
- {"version":3,"file":"members.d.ts","sourceRoot":"","sources":["../../src/schemas/members.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAI7B;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;EAA6C,CAAC;AAC5E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB;;;;kBAA+B,CAAC;AACjE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;kBAAoB,CAAC;AAC3C,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS;;;;;;;;kBAAoB,CAAC;AAC3C,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;kBAA0B,CAAC;AACvD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;kBAAiC,CAAC;AACrE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE5E;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;kBAA8B,CAAC;AAC/D,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEtE;;;;GAIG;AACH,eAAO,MAAM,wBAAwB;;kBAAmC,CAAC;AACzE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
1
+ {"version":3,"file":"members.d.ts","sourceRoot":"","sources":["../../src/schemas/members.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAI7B;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;EAA6C,CAAC;AAC5E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB;;;;kBAA+B,CAAC;AACjE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;kBAAoB,CAAC;AAC3C,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS;;;;;;;;;kBAAoB,CAAC;AAC3C,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;kBAA0B,CAAC;AACvD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;kBAAiC,CAAC;AACrE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE5E;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;kBAA8B,CAAC;AAC/D,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEtE;;;;GAIG;AACH,eAAO,MAAM,wBAAwB;;kBAAmC,CAAC;AACzE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
@@ -27,8 +27,9 @@ export const memberPrincipalState = openapi.memberPrincipalState;
27
27
  * person with any enabled principal still reads active while the per-principal truth
28
28
  * stays visible. `handle` routes an invoke back to the producing provider and pins
29
29
  * this row; `action_keys` are the opaque catalog keys of the actions applicable to
30
- * it — Studio joins and echoes both, never parses them. `created_at` is an ISO-8601
31
- * instant.
30
+ * it — Studio joins and echoes both, never parses them. `provider_name` is the
31
+ * owning accounts provider's declared display name, shown on the row so rows of
32
+ * different providers read apart. `created_at` is an ISO-8601 instant.
32
33
  */
33
34
  export const memberRow = openapi.memberRow;
34
35
  /**
@@ -37,8 +38,10 @@ export const memberRow = openapi.memberRow;
37
38
  * stable handle for the invited person; `email` is the invited address; `role` names
38
39
  * the platform role they will hold (name only, or `null` when not from a role template). An
39
40
  * invitation holds no principal, so it carries no principal state. `handle` and
40
- * `action_keys` are the opaque routing tokens (see {@link memberRow}). `created_at`
41
- * and `expires_at` are ISO-8601 instants.
41
+ * `action_keys` are the opaque routing tokens (see {@link memberRow}).
42
+ * `provider_name` is the owning accounts provider's declared display name, shown on
43
+ * the row so rows of different providers read apart. `created_at` and `expires_at`
44
+ * are ISO-8601 instants.
42
45
  */
43
46
  export const inviteRow = openapi.inviteRow;
44
47
  /**
@@ -51,11 +54,12 @@ export const memberDirectory = openapi.memberDirectory;
51
54
  /**
52
55
  * One declared member action, serialized for the catalog (`GET
53
56
  * /api/auth/member-actions` → `actions[]`). `key` is the opaque catalog key a caller
54
- * joins and echoes, never parses. `label` is the resolved wording. `scope` places
55
- * the action; `destructive` asks for a confirm before invoking. `input_schema` and
56
- * `result_schema` are the declared models' JSON Schema — a caller renders an input
57
- * form and a read-only result view from them generically, with no provider field
58
- * name known to Studio.
57
+ * joins and echoes, never parses. `label` is the resolved wording. `provider_name` is
58
+ * the owning accounts provider's declared display name. `scope` places the action;
59
+ * `destructive` asks for a confirm before invoking. `input_schema` and `result_schema`
60
+ * are the declared models' JSON Schema — a caller renders an input form and a
61
+ * read-only result view from them generically, with no provider field name known to
62
+ * Studio.
59
63
  */
60
64
  export const memberActionDescriptor = openapi.memberActionDescriptor;
61
65
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"members.js","sourceRoot":"","sources":["../../src/schemas/members.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAC;AAExD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC;AAG5E;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;AAGjE;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;AAG3C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;AAG3C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;AAGvD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;AAGrE;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;AAG/D;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC"}
1
+ {"version":3,"file":"members.js","sourceRoot":"","sources":["../../src/schemas/members.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAC;AAExD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC;AAG5E;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;AAGjE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;AAG3C;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;AAG3C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;AAGvD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;AAGrE;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;AAG/D;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC"}
@@ -660,10 +660,10 @@ export declare const consumerLink: z.ZodObject<{
660
660
  }, z.core.$strict>;
661
661
  export type ConsumerLink = z.infer<typeof consumerLink>;
662
662
  /**
663
- * One thing that binds a state (mirrors ConsumerRow): its `kind` (flow / hook / schedule
664
- * / agent), `name`, human `detail` and optional `link`. `unavailable` marks a consumer
665
- * family that cannot be listed on this deployment (e.g. no scheduling backend), surfaced
666
- * as a muted line — never swallowed.
663
+ * One thing that binds a state (mirrors ConsumerRow): its `kind` (hook / schedule / agent
664
+ * / preset / a consumer plugin's own kind), `name`, human `detail` and optional `link`.
665
+ * `unavailable` marks a consumer family that cannot be listed on this deployment (e.g.
666
+ * no scheduling backend), surfaced as a muted line — never swallowed.
667
667
  */
668
668
  export declare const consumerRow: z.ZodObject<{
669
669
  detail: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -127,10 +127,10 @@ export const writesPage = openapi.writesPage;
127
127
  /** Where the Studio opens a consumer (mirrors ConsumerLink): a token+search OR plugin path. */
128
128
  export const consumerLink = openapi.consumerLink;
129
129
  /**
130
- * One thing that binds a state (mirrors ConsumerRow): its `kind` (flow / hook / schedule
131
- * / agent), `name`, human `detail` and optional `link`. `unavailable` marks a consumer
132
- * family that cannot be listed on this deployment (e.g. no scheduling backend), surfaced
133
- * as a muted line — never swallowed.
130
+ * One thing that binds a state (mirrors ConsumerRow): its `kind` (hook / schedule / agent
131
+ * / preset / a consumer plugin's own kind), `name`, human `detail` and optional `link`.
132
+ * `unavailable` marks a consumer family that cannot be listed on this deployment (e.g.
133
+ * no scheduling backend), surfaced as a muted line — never swallowed.
134
134
  */
135
135
  export const consumerRow = openapi.consumerRow;
136
136
  /** `GET /api/states/{name}/consumers` — the union of every registered lister's rows. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tai42/api-client",
3
- "version": "27.0.0",
3
+ "version": "28.0.0",
4
4
  "description": "Typed client for the tai42-skeleton HTTP API.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "tai42 <oss@tai42.ai>",
@@ -177,7 +177,11 @@ function keyMemberMethods(t: Transport) {
177
177
  req(apiRoutes.get_api_auth_tokens_payload.path, s.tokensPayload, { signal }),
178
178
  createApiKey: (body: ApiKeyBody) =>
179
179
  req(apiRoutes.post_api_auth_api_keys.path, s.createdApiKey, { method: 'POST', body }),
180
- editApiKey: (userId: string, body: Omit<ApiKeyBody, 'user_id'>) =>
180
+ // PATCH-style PUT: an omitted `scopes` keeps the key's stored scopes.
181
+ editApiKey: (
182
+ userId: string,
183
+ body: Omit<ApiKeyBody, 'user_id' | 'scopes'> & { readonly scopes?: string[] },
184
+ ) =>
181
185
  req(
182
186
  buildPath(apiRoutes.put_api_auth_api_keys_user_id.path, { user_id: userId }),
183
187
  s.editApiKeyResult,
@@ -50,7 +50,7 @@ export function interactionsClient(t: Transport) {
50
50
  },
51
51
  ).then((reply) => reply.update),
52
52
  // Withdraw a pending ask WITHOUT answering it (a bodyless POST): the question is
53
- // resolved as cancelled and the flow that asked never resumes. Terminal like an
53
+ // resolved as cancelled and the run that asked never resumes. Terminal like an
54
54
  // answer, so the loud failure mappings mirror it — a 409 (already answered, so no
55
55
  // longer cancellable) surfaces as `ApiConflictError`, a 404 (unknown/already gone)
56
56
  // and a 403 (not this caller's audience) as `ApiError` — all via the shared
@@ -541,7 +541,7 @@ export type IntervalCadence = z.infer<typeof intervalCadence>;
541
541
  export const inviteCredential = z.object({ "email": z.string().min(1), "kind": z.literal("invite").default("invite") }).strict();
542
542
  export type InviteCredential = z.infer<typeof inviteCredential>;
543
543
 
544
- export const inviteRow = z.object({ "action_keys": z.array(z.string()).default([]), "created_at": z.string().datetime({ offset: true }), "email": z.string().min(1), "expires_at": z.string().datetime({ offset: true }), "handle": z.string().min(1), "id": z.string().min(1), "role": z.string().min(1).nullable() }).strict();
544
+ export const inviteRow = z.object({ "action_keys": z.array(z.string()).default([]), "created_at": z.string().datetime({ offset: true }), "email": z.string().min(1), "expires_at": z.string().datetime({ offset: true }), "handle": z.string().min(1), "id": z.string().min(1), "provider_name": z.string().min(1), "role": z.string().min(1).nullable() }).strict();
545
545
  export type InviteRow = z.infer<typeof inviteRow>;
546
546
 
547
547
  export const invokeMemberActionRequest = z.object({ "action_key": z.string().min(1), "input": z.record(z.string(), z.unknown()).default({}), "target_handle": z.string().nullable().default(null) });
@@ -625,7 +625,7 @@ export type McpTargets = z.infer<typeof mcpTargets>;
625
625
  export const mcpToolFilterUpdate = z.object({ "exclude": z.array(z.string()).default([]), "include": z.array(z.string()).default([]) });
626
626
  export type McpToolFilterUpdate = z.infer<typeof mcpToolFilterUpdate>;
627
627
 
628
- export const memberActionDescriptor = z.object({ "destructive": z.boolean(), "input_schema": z.record(z.string(), z.unknown()), "key": z.string().min(1), "label": z.string(), "result_schema": z.record(z.string(), z.unknown()), "scope": z.enum(["page","member_row","invite_row"]) }).strict();
628
+ export const memberActionDescriptor = z.object({ "destructive": z.boolean(), "input_schema": z.record(z.string(), z.unknown()), "key": z.string().min(1), "label": z.string(), "provider_name": z.string().min(1), "result_schema": z.record(z.string(), z.unknown()), "scope": z.enum(["page","member_row","invite_row"]) }).strict();
629
629
  export type MemberActionDescriptor = z.infer<typeof memberActionDescriptor>;
630
630
 
631
631
  export const memberActionCatalog = z.object({ "actions": z.array(memberActionDescriptor) }).strict();
@@ -634,7 +634,7 @@ export type MemberActionCatalog = z.infer<typeof memberActionCatalog>;
634
634
  export const memberPrincipalState = z.object({ "disabled": z.boolean(), "role": z.string().min(1).nullable(), "user_id": z.string().min(1) }).strict();
635
635
  export type MemberPrincipalState = z.infer<typeof memberPrincipalState>;
636
636
 
637
- export const memberRow = z.object({ "action_keys": z.array(z.string()).default([]), "created_at": z.string().datetime({ offset: true }), "disabled": z.boolean(), "email": z.string().min(1), "handle": z.string().min(1), "id": z.string().min(1), "principals": z.array(memberPrincipalState), "role": z.string().min(1).nullable() }).strict();
637
+ export const memberRow = z.object({ "action_keys": z.array(z.string()).default([]), "created_at": z.string().datetime({ offset: true }), "disabled": z.boolean(), "email": z.string().min(1), "handle": z.string().min(1), "id": z.string().min(1), "principals": z.array(memberPrincipalState), "provider_name": z.string().min(1), "role": z.string().min(1).nullable() }).strict();
638
638
  export type MemberRow = z.infer<typeof memberRow>;
639
639
 
640
640
  export const memberDirectory = z.object({ "invites": z.array(inviteRow), "members": z.array(memberRow) }).strict();
@@ -51,8 +51,8 @@ export const conversationAnswerStatus = openapi.conversationRecordView.shape.ans
51
51
  export type ConversationAnswerStatus = z.infer<typeof conversationAnswerStatus>;
52
52
 
53
53
  /**
54
- * Who authored a record's outgoing side. `client` is the ordinary turn the flow
55
- * answered; `operator` is a message a human sent into the thread; `send` is a
54
+ * Who authored a record's outgoing side. `client` is the ordinary turn the route's
55
+ * target answered; `operator` is a message a human sent into the thread; `send` is a
56
56
  * message the platform sent on its own (a notification, an ask, a notice), named
57
57
  * by `sent_by`. An `operator` or `send` record answers no message: its text rides
58
58
  * `answer` and its `inbound_text` is empty.
@@ -142,9 +142,9 @@ export const conversationMessageSearchPage = openapi.messageSearchEnvelope;
142
142
  export type ConversationMessageSearchPage = z.infer<typeof conversationMessageSearchPage>;
143
143
 
144
144
  /**
145
- * Who answers a thread's incoming messages: `agent` lets the flow reply on its
146
- * own; `manual` holds the flow back so a human answers. `source` says whether the
147
- * setting is the thread's own (`thread`) or inherited from its route (`route`).
145
+ * Who answers a thread's incoming messages: `agent` lets the route's target reply on
146
+ * its own; `manual` holds the target back so a human answers. `source` says whether
147
+ * the setting is the thread's own (`thread`) or inherited from its route (`route`).
148
148
  */
149
149
  export const conversationThreadMode = openapi.threadModeView.shape.mode;
150
150
  export type ConversationThreadMode = z.infer<typeof conversationThreadMode>;
@@ -374,7 +374,7 @@ export type InteractionAnswered = z.infer<typeof interactionAnswered>;
374
374
 
375
375
  /**
376
376
  * The cancel door's response — a pending ask was WITHDRAWN without an answer (the
377
- * asking flow does not resume). `status` is `"cancelled"`; the shape mirrors the
377
+ * asking run does not resume). `status` is `"cancelled"`; the shape mirrors the
378
378
  * answer door's terminal reply, but the door is distinct so it carries its own
379
379
  * schema.
380
380
  */
@@ -35,8 +35,9 @@ export type MemberPrincipalState = z.infer<typeof memberPrincipalState>;
35
35
  * person with any enabled principal still reads active while the per-principal truth
36
36
  * stays visible. `handle` routes an invoke back to the producing provider and pins
37
37
  * this row; `action_keys` are the opaque catalog keys of the actions applicable to
38
- * it — Studio joins and echoes both, never parses them. `created_at` is an ISO-8601
39
- * instant.
38
+ * it — Studio joins and echoes both, never parses them. `provider_name` is the
39
+ * owning accounts provider's declared display name, shown on the row so rows of
40
+ * different providers read apart. `created_at` is an ISO-8601 instant.
40
41
  */
41
42
  export const memberRow = openapi.memberRow;
42
43
  export type MemberRow = z.infer<typeof memberRow>;
@@ -47,8 +48,10 @@ export type MemberRow = z.infer<typeof memberRow>;
47
48
  * stable handle for the invited person; `email` is the invited address; `role` names
48
49
  * the platform role they will hold (name only, or `null` when not from a role template). An
49
50
  * invitation holds no principal, so it carries no principal state. `handle` and
50
- * `action_keys` are the opaque routing tokens (see {@link memberRow}). `created_at`
51
- * and `expires_at` are ISO-8601 instants.
51
+ * `action_keys` are the opaque routing tokens (see {@link memberRow}).
52
+ * `provider_name` is the owning accounts provider's declared display name, shown on
53
+ * the row so rows of different providers read apart. `created_at` and `expires_at`
54
+ * are ISO-8601 instants.
52
55
  */
53
56
  export const inviteRow = openapi.inviteRow;
54
57
  export type InviteRow = z.infer<typeof inviteRow>;
@@ -65,11 +68,12 @@ export type MemberDirectory = z.infer<typeof memberDirectory>;
65
68
  /**
66
69
  * One declared member action, serialized for the catalog (`GET
67
70
  * /api/auth/member-actions` → `actions[]`). `key` is the opaque catalog key a caller
68
- * joins and echoes, never parses. `label` is the resolved wording. `scope` places
69
- * the action; `destructive` asks for a confirm before invoking. `input_schema` and
70
- * `result_schema` are the declared models' JSON Schema — a caller renders an input
71
- * form and a read-only result view from them generically, with no provider field
72
- * name known to Studio.
71
+ * joins and echoes, never parses. `label` is the resolved wording. `provider_name` is
72
+ * the owning accounts provider's declared display name. `scope` places the action;
73
+ * `destructive` asks for a confirm before invoking. `input_schema` and `result_schema`
74
+ * are the declared models' JSON Schema — a caller renders an input form and a
75
+ * read-only result view from them generically, with no provider field name known to
76
+ * Studio.
73
77
  */
74
78
  export const memberActionDescriptor = openapi.memberActionDescriptor;
75
79
  export type MemberActionDescriptor = z.infer<typeof memberActionDescriptor>;
@@ -177,10 +177,10 @@ export const consumerLink = openapi.consumerLink;
177
177
  export type ConsumerLink = z.infer<typeof consumerLink>;
178
178
 
179
179
  /**
180
- * One thing that binds a state (mirrors ConsumerRow): its `kind` (flow / hook / schedule
181
- * / agent), `name`, human `detail` and optional `link`. `unavailable` marks a consumer
182
- * family that cannot be listed on this deployment (e.g. no scheduling backend), surfaced
183
- * as a muted line — never swallowed.
180
+ * One thing that binds a state (mirrors ConsumerRow): its `kind` (hook / schedule / agent
181
+ * / preset / a consumer plugin's own kind), `name`, human `detail` and optional `link`.
182
+ * `unavailable` marks a consumer family that cannot be listed on this deployment (e.g.
183
+ * no scheduling backend), surfaced as a muted line — never swallowed.
184
184
  */
185
185
  export const consumerRow = openapi.consumerRow;
186
186
  export type ConsumerRow = z.infer<typeof consumerRow>;