@tai42/studio-sdk 20.0.0 → 22.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.
Files changed (143) hide show
  1. package/dist/components/chip-group.d.ts +42 -0
  2. package/dist/components/chip-group.d.ts.map +1 -0
  3. package/dist/components/chip-group.js +85 -0
  4. package/dist/components/chip-group.js.map +1 -0
  5. package/dist/components/components.css +16 -3
  6. package/dist/components/execution-key-picker.js.map +1 -1
  7. package/dist/components/extension-grouping.d.ts +8 -12
  8. package/dist/components/extension-grouping.d.ts.map +1 -1
  9. package/dist/components/extension-grouping.js +12 -15
  10. package/dist/components/extension-grouping.js.map +1 -1
  11. package/dist/components/extension-picker.d.ts +3 -4
  12. package/dist/components/extension-picker.d.ts.map +1 -1
  13. package/dist/components/extension-picker.js +10 -10
  14. package/dist/components/extension-picker.js.map +1 -1
  15. package/dist/components/fleet-report.d.ts +10 -5
  16. package/dist/components/fleet-report.d.ts.map +1 -1
  17. package/dist/components/fleet-report.js +20 -3
  18. package/dist/components/fleet-report.js.map +1 -1
  19. package/dist/components/json-tree-model.d.ts +19 -7
  20. package/dist/components/json-tree-model.d.ts.map +1 -1
  21. package/dist/components/json-tree-model.js +32 -8
  22. package/dist/components/json-tree-model.js.map +1 -1
  23. package/dist/components/json-tree.d.ts +10 -1
  24. package/dist/components/json-tree.d.ts.map +1 -1
  25. package/dist/components/json-tree.js +7 -4
  26. package/dist/components/json-tree.js.map +1 -1
  27. package/dist/components/select.d.ts +6 -0
  28. package/dist/components/select.d.ts.map +1 -1
  29. package/dist/components/select.js +3 -2
  30. package/dist/components/select.js.map +1 -1
  31. package/dist/components/served-media.d.ts +50 -4
  32. package/dist/components/served-media.d.ts.map +1 -1
  33. package/dist/components/served-media.js +69 -19
  34. package/dist/components/served-media.js.map +1 -1
  35. package/dist/env-markers.d.ts +25 -0
  36. package/dist/env-markers.d.ts.map +1 -0
  37. package/dist/env-markers.js +63 -0
  38. package/dist/env-markers.js.map +1 -0
  39. package/dist/hooks/interactions-stream.d.ts.map +1 -1
  40. package/dist/hooks/interactions-stream.js +9 -7
  41. package/dist/hooks/interactions-stream.js.map +1 -1
  42. package/dist/hooks/useApi.d.ts +2264 -912
  43. package/dist/hooks/useApi.d.ts.map +1 -1
  44. package/dist/hooks/useCapabilities.d.ts +5 -9
  45. package/dist/hooks/useCapabilities.d.ts.map +1 -1
  46. package/dist/hooks/useCapabilities.js +8 -33
  47. package/dist/hooks/useCapabilities.js.map +1 -1
  48. package/dist/host.d.ts +2 -0
  49. package/dist/host.d.ts.map +1 -1
  50. package/dist/host.js +8 -0
  51. package/dist/host.js.map +1 -1
  52. package/dist/index.d.ts +12 -6
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +5 -3
  55. package/dist/index.js.map +1 -1
  56. package/dist/plugin/coverage.d.ts +14 -0
  57. package/dist/plugin/coverage.d.ts.map +1 -0
  58. package/dist/plugin/coverage.js +14 -0
  59. package/dist/plugin/coverage.js.map +1 -0
  60. package/dist/plugin/registry.d.ts +11 -1
  61. package/dist/plugin/registry.d.ts.map +1 -1
  62. package/dist/plugin/registry.js +33 -4
  63. package/dist/plugin/registry.js.map +1 -1
  64. package/dist/plugin/types.d.ts +43 -1
  65. package/dist/plugin/types.d.ts.map +1 -1
  66. package/dist/schema-form/SchemaForm.d.ts +11 -1
  67. package/dist/schema-form/SchemaForm.d.ts.map +1 -1
  68. package/dist/schema-form/SchemaForm.js +2 -2
  69. package/dist/schema-form/SchemaForm.js.map +1 -1
  70. package/dist/schema-form/classify.d.ts.map +1 -1
  71. package/dist/schema-form/classify.js +54 -2
  72. package/dist/schema-form/classify.js.map +1 -1
  73. package/dist/schema-form/date-range-field.d.ts +44 -0
  74. package/dist/schema-form/date-range-field.d.ts.map +1 -0
  75. package/dist/schema-form/date-range-field.js +72 -0
  76. package/dist/schema-form/date-range-field.js.map +1 -0
  77. package/dist/schema-form/enum-field.d.ts +3 -1
  78. package/dist/schema-form/enum-field.d.ts.map +1 -1
  79. package/dist/schema-form/enum-field.js +8 -2
  80. package/dist/schema-form/enum-field.js.map +1 -1
  81. package/dist/schema-form/field-model.d.ts +20 -1
  82. package/dist/schema-form/field-model.d.ts.map +1 -1
  83. package/dist/schema-form/field-node.d.ts +10 -0
  84. package/dist/schema-form/field-node.d.ts.map +1 -1
  85. package/dist/schema-form/field-node.js +6 -3
  86. package/dist/schema-form/field-node.js.map +1 -1
  87. package/dist/schema-form/index.d.ts +3 -1
  88. package/dist/schema-form/index.d.ts.map +1 -1
  89. package/dist/schema-form/index.js +1 -0
  90. package/dist/schema-form/index.js.map +1 -1
  91. package/dist/schema-form/multiselect-field.d.ts.map +1 -1
  92. package/dist/schema-form/multiselect-field.js +11 -0
  93. package/dist/schema-form/multiselect-field.js.map +1 -1
  94. package/dist/schema-form/object-fields.d.ts +9 -1
  95. package/dist/schema-form/object-fields.d.ts.map +1 -1
  96. package/dist/schema-form/object-fields.js +16 -3
  97. package/dist/schema-form/object-fields.js.map +1 -1
  98. package/dist/schema-form/string-field.d.ts +6 -1
  99. package/dist/schema-form/string-field.d.ts.map +1 -1
  100. package/dist/schema-form/string-field.js +42 -8
  101. package/dist/schema-form/string-field.js.map +1 -1
  102. package/dist/schema-form/types.d.ts +36 -0
  103. package/dist/schema-form/types.d.ts.map +1 -1
  104. package/dist/state-binding/UpdateRow.d.ts +2 -2
  105. package/dist/state-binding/UpdateRow.js +1 -1
  106. package/dist/state-binding/UpdateRow.js.map +1 -1
  107. package/dist/state-binding/adapter.d.ts +12 -8
  108. package/dist/state-binding/adapter.d.ts.map +1 -1
  109. package/dist/state-binding/adapter.js +30 -13
  110. package/dist/state-binding/adapter.js.map +1 -1
  111. package/package.json +5 -4
  112. package/src/components/chip-group.tsx +157 -0
  113. package/src/components/components.css +16 -3
  114. package/src/components/execution-key-picker.tsx +1 -1
  115. package/src/components/extension-grouping.ts +22 -22
  116. package/src/components/extension-picker.tsx +13 -14
  117. package/src/components/fleet-report.tsx +66 -7
  118. package/src/components/json-tree-model.ts +36 -8
  119. package/src/components/json-tree.tsx +24 -4
  120. package/src/components/select.tsx +11 -1
  121. package/src/components/served-media.tsx +150 -16
  122. package/src/env-markers.ts +70 -0
  123. package/src/hooks/interactions-stream.ts +9 -7
  124. package/src/hooks/useCapabilities.ts +8 -31
  125. package/src/host.ts +2 -0
  126. package/src/index.ts +22 -2
  127. package/src/plugin/coverage.ts +23 -0
  128. package/src/plugin/registry.ts +58 -3
  129. package/src/plugin/types.ts +45 -1
  130. package/src/schema-form/SchemaForm.tsx +10 -0
  131. package/src/schema-form/classify.ts +59 -3
  132. package/src/schema-form/date-range-field.tsx +167 -0
  133. package/src/schema-form/enum-field.tsx +20 -0
  134. package/src/schema-form/field-model.ts +24 -2
  135. package/src/schema-form/field-node.tsx +19 -0
  136. package/src/schema-form/index.ts +10 -1
  137. package/src/schema-form/multiselect-field.tsx +21 -0
  138. package/src/schema-form/object-fields.tsx +36 -2
  139. package/src/schema-form/string-field.tsx +72 -1
  140. package/src/schema-form/types.ts +38 -0
  141. package/src/state-binding/README.md +10 -7
  142. package/src/state-binding/UpdateRow.tsx +3 -3
  143. package/src/state-binding/adapter.ts +31 -16
@@ -14,10 +14,10 @@ export declare const ApiProvider: import("react").Provider<{
14
14
  readonly streamInteractions: (signal?: AbortSignal, lastEventId?: string) => Promise<AsyncGenerator<import("@tai42/api-client").SseFrame, any, any>>;
15
15
  readonly getHealth: (signal?: AbortSignal) => Promise<string>;
16
16
  readonly getSystemKinds: (signal?: AbortSignal) => Promise<{
17
+ detail: string;
17
18
  kind: string;
18
- state: "default" | "active" | "off";
19
19
  plugin: string | null;
20
- detail: string;
20
+ state: "default" | "active" | "off";
21
21
  }[]>;
22
22
  readonly searchMarketplace: (query?: import("@tai42/api-client").MarketplaceSearchQuery, signal?: AbortSignal) => Promise<{
23
23
  listings: {
@@ -81,7 +81,7 @@ export declare const ApiProvider: import("react").Provider<{
81
81
  base: string;
82
82
  paths: {
83
83
  path: string;
84
- methods: ("GET" | "POST" | "PUT" | "PATCH" | "DELETE")[];
84
+ methods: ("GET" | "DELETE" | "PATCH" | "POST" | "PUT")[];
85
85
  public: boolean;
86
86
  }[];
87
87
  } | null | undefined;
@@ -105,70 +105,120 @@ export declare const ApiProvider: import("react").Provider<{
105
105
  readonly listMarketplaceKinds: (signal?: AbortSignal) => Promise<string[]>;
106
106
  readonly listInstalledMarketplacePlugins: (signal?: AbortSignal) => Promise<{
107
107
  installed: {
108
- ref: string;
109
- version: string;
110
- source: string;
111
- delivery: "package" | "descriptor";
112
- installed_at: string;
113
- latest: string | null;
114
- update_available: boolean;
115
- incompatible_newer: string | null;
116
- missing_upstream: boolean;
117
108
  compat: {
118
- status: "unknown" | "compatible" | "incompatible";
119
109
  reason: string | null;
110
+ status: "unknown" | "compatible" | "incompatible";
120
111
  };
112
+ delivery: "package" | "descriptor";
113
+ incompatible_newer: string | null;
114
+ installed_at: string;
121
115
  items: {
122
- name: string;
123
116
  kind: string;
117
+ name: string;
124
118
  }[];
119
+ latest: string | null;
120
+ missing_upstream: boolean;
121
+ ref: string;
125
122
  route_mounts: Record<string, string>;
123
+ source: string;
124
+ update_available: boolean;
125
+ version: string;
126
126
  }[];
127
127
  }>;
128
128
  readonly previewMarketplaceInstall: (body: import("@tai42/api-client").MarketplaceInstallPreviewBody, signal?: AbortSignal) => Promise<{
129
- ref: string;
130
- version: string;
131
- items: {
129
+ collisions: {
130
+ conflict_owner: string;
131
+ conflict_path: string;
132
+ full_path: string;
132
133
  item: string;
133
- kind: string;
134
+ methods: ("GET" | "DELETE" | "PATCH" | "POST" | "PUT")[];
135
+ }[];
136
+ delivery: "package" | "descriptor";
137
+ items: {
134
138
  base: string;
135
139
  default_base: string;
140
+ item: string;
141
+ kind: string;
136
142
  routes: {
137
- path: string;
138
143
  full_path: string;
139
- methods: ("GET" | "POST" | "PUT" | "PATCH" | "DELETE")[];
144
+ methods: ("GET" | "DELETE" | "PATCH" | "POST" | "PUT")[];
145
+ path: string;
140
146
  public: boolean;
141
147
  }[];
142
148
  }[];
143
- collisions: {
144
- item: string;
149
+ missing_env: string[];
150
+ new_public_routes: {
145
151
  full_path: string;
146
- methods: ("GET" | "POST" | "PUT" | "PATCH" | "DELETE")[];
147
- conflict_owner: string;
148
- conflict_path: string;
152
+ item: string;
153
+ methods: ("GET" | "DELETE" | "PATCH" | "POST" | "PUT")[];
149
154
  }[];
150
155
  public_routes: {
151
- item: string;
152
156
  full_path: string;
153
- methods: ("GET" | "POST" | "PUT" | "PATCH" | "DELETE")[];
154
- }[];
155
- new_public_routes: {
156
157
  item: string;
157
- full_path: string;
158
- methods: ("GET" | "POST" | "PUT" | "PATCH" | "DELETE")[];
158
+ methods: ("GET" | "DELETE" | "PATCH" | "POST" | "PUT")[];
159
159
  }[];
160
- requires_public_acceptance: boolean;
160
+ ref: string;
161
161
  required_env: {
162
162
  name: string;
163
163
  secret: boolean;
164
164
  }[];
165
- missing_env: string[];
166
- delivery: "package" | "descriptor";
165
+ requires_public_acceptance: boolean;
166
+ version: string;
167
167
  }>;
168
168
  readonly installMarketplacePlugin: (body: import("@tai42/api-client").MarketplaceInstallBody) => Promise<{
169
+ notes: string[];
170
+ package: string | null;
171
+ pip_output: string | null;
169
172
  ref: string;
173
+ reload: {
174
+ awaiting_respawn: {
175
+ keys: string[];
176
+ name: string;
177
+ }[];
178
+ env_keys: number;
179
+ fanout: {
180
+ error: string | null;
181
+ local_only: boolean | null;
182
+ mode: string;
183
+ note: string | null;
184
+ op: string | null;
185
+ reachable: boolean | null;
186
+ results: {
187
+ detail: string | null;
188
+ error: string | null;
189
+ name: string;
190
+ outcome: string;
191
+ payload: unknown;
192
+ }[] | null;
193
+ };
194
+ recycle: {
195
+ fresh: {
196
+ generation: number;
197
+ kind: string;
198
+ name: string;
199
+ }[];
200
+ recycle: {
201
+ detail: string | null;
202
+ generation_before: number;
203
+ kind: string;
204
+ name: string;
205
+ status: string;
206
+ }[];
207
+ recycle_stopped: {
208
+ detail: string;
209
+ kind: string;
210
+ name: string | null;
211
+ } | null;
212
+ } | null;
213
+ status: string;
214
+ };
215
+ routes: {
216
+ full_path: string;
217
+ item: string;
218
+ methods: ("GET" | "DELETE" | "PATCH" | "POST" | "PUT")[];
219
+ public: boolean;
220
+ }[];
170
221
  version: string;
171
- notes: string[];
172
222
  advisories: {
173
223
  id: number;
174
224
  listing: string;
@@ -178,22 +228,108 @@ export declare const ApiProvider: import("react").Provider<{
178
228
  created_at: string;
179
229
  withdrawn_at: string | null;
180
230
  }[];
181
- routes: {
182
- item: string;
183
- full_path: string;
184
- methods: ("GET" | "POST" | "PUT" | "PATCH" | "DELETE")[];
185
- public: boolean;
186
- }[];
187
231
  }>;
188
232
  readonly uninstallMarketplacePlugin: (body: import("@tai42/api-client").MarketplaceUninstallBody) => Promise<{
189
- ref: string;
190
- uninstalled: true;
191
233
  notes: string[];
234
+ ref: string;
235
+ reload: {
236
+ awaiting_respawn: {
237
+ keys: string[];
238
+ name: string;
239
+ }[];
240
+ env_keys: number;
241
+ fanout: {
242
+ error: string | null;
243
+ local_only: boolean | null;
244
+ mode: string;
245
+ note: string | null;
246
+ op: string | null;
247
+ reachable: boolean | null;
248
+ results: {
249
+ detail: string | null;
250
+ error: string | null;
251
+ name: string;
252
+ outcome: string;
253
+ payload: unknown;
254
+ }[] | null;
255
+ };
256
+ recycle: {
257
+ fresh: {
258
+ generation: number;
259
+ kind: string;
260
+ name: string;
261
+ }[];
262
+ recycle: {
263
+ detail: string | null;
264
+ generation_before: number;
265
+ kind: string;
266
+ name: string;
267
+ status: string;
268
+ }[];
269
+ recycle_stopped: {
270
+ detail: string;
271
+ kind: string;
272
+ name: string | null;
273
+ } | null;
274
+ } | null;
275
+ status: string;
276
+ } | null;
277
+ uninstalled: boolean;
192
278
  }>;
193
279
  readonly updateMarketplacePlugin: (body: import("@tai42/api-client").MarketplaceInstallBody) => Promise<{
280
+ notes: string[];
281
+ package: string | null;
282
+ pip_output: string | null;
194
283
  ref: string;
284
+ reload: {
285
+ awaiting_respawn: {
286
+ keys: string[];
287
+ name: string;
288
+ }[];
289
+ env_keys: number;
290
+ fanout: {
291
+ error: string | null;
292
+ local_only: boolean | null;
293
+ mode: string;
294
+ note: string | null;
295
+ op: string | null;
296
+ reachable: boolean | null;
297
+ results: {
298
+ detail: string | null;
299
+ error: string | null;
300
+ name: string;
301
+ outcome: string;
302
+ payload: unknown;
303
+ }[] | null;
304
+ };
305
+ recycle: {
306
+ fresh: {
307
+ generation: number;
308
+ kind: string;
309
+ name: string;
310
+ }[];
311
+ recycle: {
312
+ detail: string | null;
313
+ generation_before: number;
314
+ kind: string;
315
+ name: string;
316
+ status: string;
317
+ }[];
318
+ recycle_stopped: {
319
+ detail: string;
320
+ kind: string;
321
+ name: string | null;
322
+ } | null;
323
+ } | null;
324
+ status: string;
325
+ };
326
+ routes: {
327
+ full_path: string;
328
+ item: string;
329
+ methods: ("GET" | "DELETE" | "PATCH" | "POST" | "PUT")[];
330
+ public: boolean;
331
+ }[];
195
332
  version: string;
196
- notes: string[];
197
333
  advisories: {
198
334
  id: number;
199
335
  listing: string;
@@ -203,21 +339,16 @@ export declare const ApiProvider: import("react").Provider<{
203
339
  created_at: string;
204
340
  withdrawn_at: string | null;
205
341
  }[];
206
- routes: {
207
- item: string;
208
- full_path: string;
209
- methods: ("GET" | "POST" | "PUT" | "PATCH" | "DELETE")[];
210
- public: boolean;
211
- }[];
212
342
  }>;
213
343
  readonly upgradeAllMarketplacePlugins: () => Promise<{
214
344
  results: {
215
- ref: string;
216
- outcome: "failed" | "upgraded" | "up-to-date" | "no-compatible-version";
217
345
  detail: string;
346
+ outcome: "failed" | "upgraded" | "up-to-date" | "no-compatible-version";
347
+ ref: string;
218
348
  }[];
219
349
  }>;
220
350
  readonly getMarketplaceAdvisories: (signal?: AbortSignal) => Promise<{
351
+ fetched_at: string;
221
352
  advisories: {
222
353
  id: number;
223
354
  listing: string;
@@ -227,89 +358,142 @@ export declare const ApiProvider: import("react").Provider<{
227
358
  created_at: string;
228
359
  withdrawn_at: string | null;
229
360
  }[];
230
- fetched_at: string;
231
361
  }>;
232
362
  readonly getObservabilityMetrics: (params?: import("@tai42/api-client").MetricsQuery, signal?: AbortSignal) => Promise<{
233
- summary: {
234
- totalRuns: number;
235
- totalCost: number;
363
+ byModel: {
364
+ avgLatencyMs: number;
365
+ calls: number;
366
+ cost: number;
367
+ model: string;
236
368
  totalTokens: number;
369
+ }[];
370
+ byModelAvailable: boolean;
371
+ granularity: "hour" | "day" | "week";
372
+ summary: {
237
373
  averageLatencyMs: number;
238
374
  avgCostPerRun: number;
239
375
  avgTokensPerRun: number;
240
376
  timeToFirstTokenMs: number | null;
377
+ totalCost: number;
378
+ totalRuns: number;
379
+ totalTokens: number;
241
380
  };
242
381
  timeSeries: {
243
- bucket: string | null;
244
- runs: number;
245
- cost: number;
246
382
  avgLatencyMs: number;
247
- totalTokens: number;
248
- }[];
249
- byModel: {
250
- model: string;
251
- calls: number;
383
+ bucket: string | null;
252
384
  cost: number;
385
+ runs: number;
253
386
  totalTokens: number;
254
- avgLatencyMs: number;
255
387
  }[];
256
- byModelAvailable: boolean;
257
- granularity: "hour" | "day" | "week";
258
388
  }>;
259
389
  readonly listRuns: (params?: import("@tai42/api-client").RunsQuery, signal?: AbortSignal) => Promise<{
260
390
  items: {
261
- id: string;
262
- traceId: string;
263
- createdAt: string | null;
264
- tags: string[];
265
- status: "error" | "success";
266
391
  cost: number | null;
267
- latencyMs: number | null;
268
- totalTokens: number | null;
392
+ createdAt: string | null;
393
+ id: string;
269
394
  inputPreview: unknown;
395
+ latencyMs: number | null;
270
396
  outputPreview: unknown;
397
+ status: "error" | "success";
398
+ tags: string[];
399
+ totalTokens: number | null;
400
+ traceId: string;
271
401
  }[];
272
- page: number;
273
402
  nextPage: number | null;
403
+ page: number;
404
+ }>;
405
+ readonly getObservabilityCapabilities: (signal?: AbortSignal) => Promise<{
406
+ incompatibleFilters: Record<string, string[]>;
407
+ metrics: {
408
+ dimensions: string[];
409
+ measures: string[];
410
+ };
411
+ pageSizeMax: number;
412
+ sortKeys: ("totalTokens" | "cost" | "createdAt" | "latencyMs")[];
274
413
  }>;
275
414
  readonly getRunTrace: (traceId: string, signal?: AbortSignal) => Promise<{
276
- traceId: string;
277
- timestamp: string | null;
278
- tags: string[];
279
- totalCost: number | null;
280
415
  input: unknown;
281
- output: unknown;
282
416
  metadata: unknown;
417
+ output: unknown;
283
418
  spans: {
419
+ end: string | null;
284
420
  id: string;
285
- parentId: string | null;
286
- traceId: string | null;
287
- name: string | null;
288
- type: string | null;
421
+ input: unknown;
422
+ inputTokens: number | null;
423
+ kind: "LLM" | "TOOL" | "CHAIN" | "EVENT" | null;
289
424
  level: string | null;
290
- statusMessage: string | null;
425
+ metadata: unknown;
426
+ model: string | null;
427
+ name: string | null;
428
+ output: unknown;
429
+ outputTokens: number | null;
430
+ parentId: string | null;
291
431
  start: string | null;
432
+ statusMessage: string | null;
433
+ totalTokens: number | null;
434
+ traceId: string | null;
435
+ }[];
436
+ tags: string[];
437
+ timestamp: string | null;
438
+ totalCost: number | null;
439
+ traceId: string;
440
+ }>;
441
+ readonly getRunTraceOutline: (traceId: string, signal?: AbortSignal) => Promise<{
442
+ spans: {
292
443
  end: string | null;
293
- model: string | null;
294
- usage: unknown;
444
+ id: string;
445
+ inputTokens: number | null;
446
+ kind: "LLM" | "TOOL" | "CHAIN" | "EVENT" | null;
447
+ level: string | null;
295
448
  metadata: unknown;
296
- input: unknown;
297
- output: unknown;
298
- nodeId: string | null;
449
+ model: string | null;
450
+ name: string | null;
451
+ outputTokens: number | null;
452
+ parentId: string | null;
453
+ start: string | null;
454
+ statusMessage: string | null;
455
+ totalTokens: number | null;
456
+ traceId: string | null;
299
457
  }[];
458
+ traceId: string;
300
459
  }>;
301
- readonly exportTrace: (traceId: string, signal?: AbortSignal) => Promise<Blob>;
460
+ readonly getResolvedSpanValue: (traceId: string, spanId: string, field: "input" | "output", options?: {
461
+ readonly pointer?: string;
462
+ }, signal?: AbortSignal) => Promise<{
463
+ field: "output" | "input";
464
+ pointer: string;
465
+ spanId: string;
466
+ traceId: string;
467
+ value: unknown;
468
+ }>;
469
+ readonly exportTrace: (traceId: string, options?: {
470
+ readonly resolve?: boolean;
471
+ }, signal?: AbortSignal) => Promise<Blob>;
302
472
  readonly exportRuns: (params: import("@tai42/api-client").RunsQuery & {
303
473
  format: "csv" | "json";
304
474
  }, signal?: AbortSignal) => Promise<Blob>;
305
475
  readonly listSchedules: (signal?: AbortSignal) => Promise<{
306
- [x: string]: unknown;
476
+ cadence: {
477
+ day_of_month: string;
478
+ day_of_week: string;
479
+ hour: string;
480
+ kind: "crontab";
481
+ minute: string;
482
+ month_of_year: string;
483
+ } | {
484
+ every: number;
485
+ kind: "interval";
486
+ relative: boolean;
487
+ };
488
+ enabled: boolean;
489
+ error: {
490
+ at_iso: string | null;
491
+ message: string;
492
+ } | null;
307
493
  name: string;
308
- enabled?: boolean | undefined;
309
- schedule?: unknown;
310
- target?: unknown;
311
- args?: unknown[] | undefined;
312
- kwargs?: Record<string, unknown> | undefined;
494
+ next_run_at_iso: string | null;
495
+ next_run_at_ts: number | null;
496
+ tool: string;
313
497
  }[]>;
314
498
  readonly getServerDateTime: (signal?: AbortSignal) => Promise<{
315
499
  [x: string]: unknown;
@@ -317,17 +501,7 @@ export declare const ApiProvider: import("react").Provider<{
317
501
  local?: unknown;
318
502
  system?: unknown;
319
503
  }>;
320
- readonly addSchedule: (body: {
321
- tool_name: string;
322
- tool_kwargs: Record<string, unknown>;
323
- schedule_kwargs: Record<string, unknown>;
324
- execution_key?: string | null;
325
- state_binding?: import("@tai42/api-client").StateBinding | null;
326
- start_expr?: import("@tai42/api-client").TemplatedText | null;
327
- cancel_expr?: import("@tai42/api-client").TemplatedText | null;
328
- resume_expr?: import("@tai42/api-client").TemplatedText | null;
329
- extras_expr?: import("@tai42/api-client").TemplatedText | null;
330
- }) => Promise<unknown>;
504
+ readonly addSchedule: (body: import("@tai42/api-client").ScheduleCreate) => Promise<unknown>;
331
505
  readonly deleteSchedule: (name: string) => Promise<unknown>;
332
506
  readonly listBackupSections: (signal?: AbortSignal) => Promise<{
333
507
  name: string;
@@ -340,45 +514,71 @@ export declare const ApiProvider: import("react").Provider<{
340
514
  }) => Promise<{
341
515
  ok: boolean;
342
516
  sections: Record<string, {
517
+ awaiting_respawn: {
518
+ keys: string[];
519
+ name: string;
520
+ }[];
343
521
  created: number;
344
- updated: number;
345
- skipped: number;
346
522
  errors: string[];
347
- new_api_keys?: {
348
- user_id: string;
349
- description: string;
350
- api_key: string;
351
- }[] | undefined;
352
- fanout?: {
353
- mode: "local-only";
354
- note: string;
355
- } | {
356
- op: string;
357
- reachable: boolean;
358
- local_only: boolean;
359
- results: {
523
+ recycle: {
524
+ fresh: {
525
+ generation: number;
526
+ kind: string;
360
527
  name: string;
361
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
362
- payload: unknown;
363
- error: string | null;
528
+ }[];
529
+ recycle: {
364
530
  detail: string | null;
531
+ generation_before: number;
532
+ kind: string;
533
+ name: string;
534
+ status: string;
365
535
  }[];
536
+ recycle_stopped: {
537
+ detail: string;
538
+ kind: string;
539
+ name: string | null;
540
+ } | null;
541
+ } | null;
542
+ skipped: number;
543
+ updated: number;
544
+ fanout: {
545
+ mode: "local-only";
546
+ note: string;
547
+ } | {
366
548
  error: string | null;
549
+ local_only: boolean;
550
+ op: string;
551
+ reachable: boolean;
552
+ results: {
553
+ detail: string | null;
554
+ error: string | null;
555
+ name: string;
556
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
557
+ payload: unknown;
558
+ }[];
367
559
  mode: "fleet";
368
560
  } | {
561
+ error: string | null;
562
+ local_only: boolean;
369
563
  op: string;
370
564
  reachable: boolean;
371
- local_only: boolean;
372
565
  results: {
566
+ detail: string | null;
567
+ error: string | null;
373
568
  name: string;
374
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
569
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
375
570
  payload: unknown;
376
- error: string | null;
377
- detail: string | null;
378
571
  }[];
379
- error: string | null;
380
572
  mode: "unreachable";
381
- } | undefined;
573
+ } | null;
574
+ details: {
575
+ [x: string]: unknown;
576
+ new_api_keys?: {
577
+ user_id: string;
578
+ description: string;
579
+ api_key: string;
580
+ }[] | undefined;
581
+ };
382
582
  }>;
383
583
  }>;
384
584
  readonly validateCondition: (body: import("@tai42/api-client").ValidateConditionBody) => Promise<{
@@ -386,6 +586,9 @@ export declare const ApiProvider: import("react").Provider<{
386
586
  result: boolean | null;
387
587
  }>;
388
588
  readonly listPolicyVersions: (userId: string, signal?: AbortSignal) => Promise<{
589
+ created_at: string;
590
+ is_current: boolean;
591
+ tags: string[];
389
592
  version: number;
390
593
  body: {
391
594
  condition: {
@@ -396,13 +599,10 @@ export declare const ApiProvider: import("react").Provider<{
396
599
  policy_data: Record<string, unknown>;
397
600
  scopes: string[];
398
601
  };
399
- tags: string[];
400
- created_at: string;
401
- is_current: boolean;
402
602
  }[]>;
403
603
  readonly rollbackPolicy: (userId: string, version: number) => Promise<{
404
- user_id: string;
405
604
  active_version: number;
605
+ user_id: string;
406
606
  }>;
407
607
  readonly logout: () => Promise<{
408
608
  revoked: boolean;
@@ -410,36 +610,37 @@ export declare const ApiProvider: import("react").Provider<{
410
610
  readonly getAuthCapabilities: (signal?: AbortSignal) => Promise<{
411
611
  mintable: boolean;
412
612
  providers: {
413
- name: string;
414
613
  mintable: boolean;
614
+ name: string;
415
615
  }[];
416
616
  }>;
417
617
  readonly getLoginMethods: (options?: {
418
618
  signal?: AbortSignal;
419
619
  }) => Promise<{
620
+ claim_fragment_key: string;
420
621
  methods: ({
421
- shape: "form";
622
+ href: string;
623
+ icon: string | null;
422
624
  id: string;
423
- title: string;
424
- purpose: "login" | "invite";
625
+ label: string;
626
+ shape: "button";
627
+ } | {
425
628
  fields: {
426
- name: string;
629
+ autocomplete: string | null;
427
630
  label: string;
631
+ name: string;
428
632
  secret: boolean;
429
- autocomplete?: string | undefined;
430
633
  }[];
431
- submit_path: string;
432
- } | {
433
- shape: "button";
434
634
  id: string;
435
- label: string;
436
- href: string;
437
- icon?: string | undefined;
635
+ purpose: "login" | "invite";
636
+ shape: "form";
637
+ submit_path: string;
638
+ title: string;
438
639
  })[];
439
640
  needs_setup: boolean;
440
- setup_login?: {
641
+ setup_login: {
441
642
  kinds: ("invite" | "password")[];
442
- } | null | undefined;
643
+ } | null;
443
644
  }>;
444
645
  readonly submitLoginForm: (path: string, values: Record<string, string>) => Promise<{
445
646
  token: string;
@@ -456,69 +657,149 @@ export declare const ApiProvider: import("react").Provider<{
456
657
  user_id: string;
457
658
  }>;
458
659
  readonly submitSetup: (body: import("@tai42/api-client").SetupBody) => Promise<{
459
- owner_user_id: string;
460
- key_user_id: string;
461
660
  api_key: string;
661
+ invite_token: string | null;
462
662
  key_fingerprint: string;
663
+ key_user_id: string;
463
664
  login_attached: boolean;
464
- invite_token?: string | null | undefined;
465
- login_path?: string | null | undefined;
665
+ login_path: string | null;
666
+ owner_user_id: string;
466
667
  }>;
467
668
  readonly getMe: (signal?: AbortSignal) => Promise<{
468
- user_id: string;
469
- owner_user_id: string | null;
470
669
  admin: boolean;
471
- scopes: string[];
472
- routes: {
473
- path: string;
474
- methods: string[];
475
- }[];
670
+ agents: string[];
671
+ mintable: boolean;
672
+ owner_user_id: string | null;
673
+ principal: {
674
+ display_name: string;
675
+ kind: "human" | "service";
676
+ user_id: string;
677
+ } | null;
678
+ public_resource_id: string;
476
679
  route_patterns: {
680
+ open_prefix: string | null;
477
681
  pattern: string;
478
682
  scope_id: string;
479
683
  }[];
684
+ routes: {
685
+ methods: string[];
686
+ path: string;
687
+ }[];
688
+ scopes: string[];
480
689
  sub_mcp: {
690
+ access_pattern: string;
691
+ mount_url: string;
692
+ slug: string;
481
693
  tools: string[];
482
694
  transport: string;
483
- slug: string;
484
695
  }[];
485
696
  tools: string[];
486
- agents: string[];
487
- mintable: boolean;
488
- principal?: {
489
- user_id: string;
490
- kind: "human" | "service";
491
- display_name: string;
492
- } | null | undefined;
697
+ user_id: string;
493
698
  }>;
494
- readonly listScopes: (signal?: AbortSignal) => Promise<Record<string, string>>;
495
- readonly addUrlToScope: (body: import("@tai42/api-client").AddUrlToScopeBody) => Promise<{
496
- scope_id: string;
497
- url: string;
699
+ readonly listPrincipals: (signal?: AbortSignal) => Promise<{
700
+ created_at: string;
701
+ created_by: string | null;
702
+ disabled: boolean;
703
+ display_name: string;
704
+ kind: "human" | "service";
705
+ user_id: string;
706
+ }[]>;
707
+ readonly createPrincipal: (body: {
708
+ user_id?: string;
709
+ kind: import("@tai42/api-client").PrincipalKind;
710
+ display_name: string;
711
+ role: string;
712
+ }) => Promise<{
713
+ created_at: string;
714
+ created_by: string | null;
715
+ disabled: boolean;
716
+ display_name: string;
717
+ kind: "human" | "service";
718
+ user_id: string;
498
719
  }>;
499
- readonly removeUrlFromScope: (body: {
500
- url: string;
720
+ readonly updatePrincipal: (userId: string, body: {
721
+ display_name?: string;
722
+ disabled?: boolean;
501
723
  }) => Promise<{
502
- url: string;
724
+ created_at: string;
725
+ created_by: string | null;
726
+ disabled: boolean;
727
+ display_name: string;
728
+ kind: "human" | "service";
729
+ user_id: string;
503
730
  }>;
504
- readonly removeScope: (scopeId: string) => Promise<{
505
- scope_id: string;
506
- deleted_keys: number;
731
+ readonly deletePrincipal: (userId: string) => Promise<{
732
+ deleted: boolean;
733
+ user_id: string;
507
734
  }>;
508
- readonly listAuthRoutes: (signal?: AbortSignal) => Promise<{
509
- path: string;
510
- methods: string[];
511
- mapped: string | null;
512
- tags: string[];
513
- summary: string;
514
- action: "read" | "write" | "fenced" | "secret" | null;
735
+ readonly listTokensPayload: (signal?: AbortSignal) => Promise<{
736
+ condition: {
737
+ content?: string | undefined;
738
+ id?: string | undefined;
739
+ kwargs?: Record<string, unknown> | undefined;
740
+ } | null;
741
+ description: string;
742
+ orphaned: boolean;
743
+ policy_data: Record<string, unknown> | null;
744
+ principal: {
745
+ display_name: string;
746
+ kind: "human" | "service";
747
+ user_id: string;
748
+ } | null;
749
+ scopes: string[] | null;
750
+ user_id: string;
515
751
  }[]>;
516
- readonly listPublicRoutes: (signal?: AbortSignal) => Promise<string[]>;
517
- readonly pinRoutePublic: (body: import("@tai42/api-client").PinRoutePublicBody) => Promise<{
518
- url: string;
752
+ readonly createApiKey: (body: import("@tai42/api-client").ApiKeyBody) => Promise<string>;
753
+ readonly editApiKey: (userId: string, body: Omit<import("@tai42/api-client").ApiKeyBody, "user_id">) => Promise<{
754
+ updated: boolean;
755
+ user_id: string;
519
756
  }>;
520
- readonly unpinPublicRoute: (url: string) => Promise<{
521
- url: string;
757
+ readonly revokeApiKey: (userId: string) => Promise<{
758
+ revoked: boolean;
759
+ user_id: string;
760
+ }>;
761
+ readonly createClaimLink: (body: import("@tai42/api-client").ClaimLinkBody) => Promise<{
762
+ claim_path: string;
763
+ expires_at: string;
764
+ token: string;
765
+ }>;
766
+ readonly listMembers: (signal?: AbortSignal) => Promise<{
767
+ invites: {
768
+ action_keys: string[];
769
+ created_at: string;
770
+ email: string;
771
+ expires_at: string;
772
+ handle: string;
773
+ id: string;
774
+ role: string | null;
775
+ }[];
776
+ members: {
777
+ action_keys: string[];
778
+ created_at: string;
779
+ disabled: boolean;
780
+ email: string;
781
+ handle: string;
782
+ id: string;
783
+ principals: {
784
+ disabled: boolean;
785
+ role: string | null;
786
+ user_id: string;
787
+ }[];
788
+ role: string | null;
789
+ }[];
790
+ }>;
791
+ readonly listMemberActions: (signal?: AbortSignal) => Promise<{
792
+ actions: {
793
+ destructive: boolean;
794
+ input_schema: Record<string, unknown>;
795
+ key: string;
796
+ label: string;
797
+ result_schema: Record<string, unknown>;
798
+ scope: "page" | "member_row" | "invite_row";
799
+ }[];
800
+ }>;
801
+ readonly invokeMemberAction: (body: import("../../../api-client/dist/client/auth-client").InvokeMemberActionBody) => Promise<{
802
+ result: Record<string, unknown>;
522
803
  }>;
523
804
  readonly listRoles: (signal?: AbortSignal) => Promise<{
524
805
  allow_all: boolean;
@@ -560,163 +841,89 @@ export declare const ApiProvider: import("react").Provider<{
560
841
  scopes: string[];
561
842
  }>;
562
843
  readonly deleteRole: (name: string) => Promise<{
563
- name: string;
564
844
  deleted: boolean;
845
+ name: string;
565
846
  }>;
566
847
  readonly listRoleVersions: (name: string, signal?: AbortSignal) => Promise<{
567
848
  versions: {
568
- version: number;
569
- body: {
570
- allow_all: boolean;
571
- base_tier: string | null;
572
- condition: {
573
- content?: string | undefined;
574
- id?: string | undefined;
575
- kwargs?: Record<string, unknown> | undefined;
576
- } | null;
577
- description: string;
578
- grants: Record<string, "none" | "read" | "write">;
579
- name: string;
580
- scopes: string[];
581
- };
582
- tags: string[];
583
849
  created_at: string;
584
850
  is_current: boolean;
585
- }[];
586
- audit: {
851
+ tags: string[];
587
852
  version: number;
588
853
  body: {
589
- action: string;
590
- actor: string | null;
591
- before: unknown;
592
- after: unknown;
593
- };
594
- tags: string[];
595
- created_at: string;
596
- is_current: boolean;
597
- }[];
598
- }>;
599
- readonly rollbackRole: (name: string, version: number) => Promise<{
600
- allow_all: boolean;
601
- base_tier: string | null;
602
- condition: {
603
- content?: string | undefined;
604
- id?: string | undefined;
605
- kwargs?: Record<string, unknown> | undefined;
606
- } | null;
607
- description: string;
608
- grants: Record<string, "none" | "read" | "write">;
609
- name: string;
610
- scopes: string[];
611
- }>;
612
- readonly listTokensPayload: (signal?: AbortSignal) => Promise<{
613
- user_id: string;
614
- description: string;
615
- scopes: string[];
616
- policy_data: unknown;
617
- condition?: {
618
- content?: string | undefined;
619
- id?: string | undefined;
620
- kwargs?: Record<string, unknown> | undefined;
621
- } | null | undefined;
622
- principal?: {
623
- user_id: string;
624
- kind: "human" | "service";
625
- display_name: string;
626
- } | null | undefined;
627
- orphaned?: boolean | undefined;
628
- }[]>;
629
- readonly createApiKey: (body: import("@tai42/api-client").ApiKeyBody) => Promise<string>;
630
- readonly editApiKey: (userId: string, body: Omit<import("@tai42/api-client").ApiKeyBody, "user_id">) => Promise<{
631
- user_id: string;
632
- updated: boolean;
633
- }>;
634
- readonly revokeApiKey: (userId: string) => Promise<{
635
- user_id: string;
636
- revoked: boolean;
637
- }>;
638
- readonly createClaimLink: (body: import("@tai42/api-client").ClaimLinkBody) => Promise<{
639
- claim_path: string;
640
- token: string;
641
- expires_at: string;
642
- }>;
643
- readonly listMembers: (signal?: AbortSignal) => Promise<{
644
- members: {
645
- id: string;
646
- email: string;
647
- role: string;
648
- created_at: string;
649
- principals: {
650
- user_id: string;
651
- disabled: boolean;
652
- }[];
653
- disabled: boolean;
654
- handle: string;
655
- action_keys: string[];
854
+ allow_all: boolean;
855
+ base_tier: string | null;
856
+ condition: {
857
+ content?: string | undefined;
858
+ id?: string | undefined;
859
+ kwargs?: Record<string, unknown> | undefined;
860
+ } | null;
861
+ description: string;
862
+ grants: Record<string, "none" | "read" | "write">;
863
+ name: string;
864
+ scopes: string[];
865
+ };
656
866
  }[];
657
- invites: {
658
- id: string;
659
- email: string;
660
- role: string;
867
+ audit: {
661
868
  created_at: string;
662
- expires_at: string;
663
- handle: string;
664
- action_keys: string[];
869
+ is_current: boolean;
870
+ tags: string[];
871
+ version: number;
872
+ body: {
873
+ action: string;
874
+ actor: string | null;
875
+ before: unknown;
876
+ after: unknown;
877
+ };
665
878
  }[];
666
879
  }>;
667
- readonly listMemberActions: (signal?: AbortSignal) => Promise<{
668
- actions: {
669
- key: string;
670
- label: string;
671
- scope: "page" | "member_row" | "invite_row";
672
- destructive: boolean;
673
- input_schema: Record<string, unknown>;
674
- result_schema: Record<string, unknown>;
675
- }[];
880
+ readonly rollbackRole: (name: string, version: number) => Promise<{
881
+ allow_all: boolean;
882
+ base_tier: string | null;
883
+ condition: {
884
+ content?: string | undefined;
885
+ id?: string | undefined;
886
+ kwargs?: Record<string, unknown> | undefined;
887
+ } | null;
888
+ description: string;
889
+ grants: Record<string, "none" | "read" | "write">;
890
+ name: string;
891
+ scopes: string[];
676
892
  }>;
677
- readonly invokeMemberAction: (body: import("../../../api-client/dist/client/auth-client").InvokeMemberActionBody) => Promise<{
678
- result: Record<string, unknown>;
893
+ readonly listScopes: (signal?: AbortSignal) => Promise<Record<string, string>>;
894
+ readonly addUrlToScope: (body: import("@tai42/api-client").AddUrlToScopeBody) => Promise<{
895
+ scope_id: string;
896
+ url: string;
679
897
  }>;
680
- readonly listPrincipals: (signal?: AbortSignal) => Promise<{
681
- user_id: string;
682
- kind: "human" | "service";
683
- display_name: string;
684
- created_by: string | null;
685
- disabled: boolean;
686
- created_at: string;
687
- }[]>;
688
- readonly createPrincipal: (body: {
689
- user_id?: string;
690
- kind: "human" | "service";
691
- display_name: string;
692
- role: string;
898
+ readonly removeUrlFromScope: (body: {
899
+ url: string;
693
900
  }) => Promise<{
694
- user_id: string;
695
- kind: "human" | "service";
696
- display_name: string;
697
- created_by: string | null;
698
- disabled: boolean;
699
- created_at: string;
901
+ url: string;
700
902
  }>;
701
- readonly updatePrincipal: (userId: string, body: {
702
- display_name?: string;
703
- disabled?: boolean;
704
- }) => Promise<{
705
- user_id: string;
706
- kind: "human" | "service";
707
- display_name: string;
708
- created_by: string | null;
709
- disabled: boolean;
710
- created_at: string;
903
+ readonly removeScope: (scopeId: string) => Promise<{
904
+ deleted_keys: number;
905
+ scope_id: string;
711
906
  }>;
712
- readonly deletePrincipal: (userId: string) => Promise<{
713
- user_id: string;
714
- deleted: boolean;
907
+ readonly listAuthRoutes: (signal?: AbortSignal) => Promise<{
908
+ action: "read" | "write" | "secret" | "fenced" | null;
909
+ declared_public: boolean;
910
+ mapped: string | null;
911
+ methods: string[];
912
+ path: string;
913
+ summary: string;
914
+ tags: string[];
915
+ }[]>;
916
+ readonly listPublicRoutes: (signal?: AbortSignal) => Promise<string[]>;
917
+ readonly pinRoutePublic: (body: import("@tai42/api-client").PinRoutePublicBody) => Promise<{
918
+ url: string;
919
+ }>;
920
+ readonly unpinPublicRoute: (url: string) => Promise<{
921
+ url: string;
715
922
  }>;
716
923
  readonly getSettingsSchema: (signal?: AbortSignal) => Promise<{
717
924
  groups: {
718
- name: string;
719
925
  module: string;
926
+ name: string;
720
927
  qualname: string;
721
928
  fields: {
722
929
  name: string;
@@ -734,29 +941,31 @@ export declare const ApiProvider: import("react").Provider<{
734
941
  }>;
735
942
  readonly getMcpConfigSchema: (signal?: AbortSignal) => Promise<Record<string, unknown>>;
736
943
  readonly createTriggerLink: (body: import("@tai42/api-client").TriggerLinkCreateBody) => Promise<{
944
+ expires_at: string | null;
737
945
  name: string;
738
- trigger_path: string;
739
946
  token: string;
740
947
  topic: string;
741
- expires_at: string | null;
948
+ trigger_path: string;
742
949
  }>;
743
950
  readonly listTriggerLinks: (signal?: AbortSignal) => Promise<{
744
951
  items: {
745
- name: string;
746
- topic: string;
747
- execution_key: string;
748
- trigger_auth: "token" | "public" | "verifier" | "token+api_key" | "out-of-service";
749
- tool_kwargs: Record<string, unknown> | null;
750
- created_by: string | null;
751
952
  created_at: string;
953
+ created_by: string | null;
954
+ execution_key: string;
955
+ execution_key_fingerprint: string;
752
956
  expires_at: string | null;
957
+ name: string;
958
+ require_api_key: boolean;
753
959
  token_hash_prefix: string;
960
+ tool_kwargs: Record<string, unknown> | null;
961
+ topic: string;
962
+ trigger_auth: "token" | "public" | "verifier" | "token+api_key" | "out-of-service";
754
963
  }[];
755
964
  total: number;
756
965
  }>;
757
966
  readonly deleteTriggerLink: (name: string) => Promise<{
758
- removed: boolean;
759
967
  name: string;
968
+ removed: boolean;
760
969
  }>;
761
970
  readonly listHooks: (topic?: string, signal?: AbortSignal) => Promise<{
762
971
  items: {
@@ -846,19 +1055,19 @@ export declare const ApiProvider: import("react").Provider<{
846
1055
  topic: string;
847
1056
  }[];
848
1057
  total: number;
1058
+ trigger_auth: Record<string, "token" | "public" | "verifier" | "token+api_key" | "out-of-service">;
849
1059
  topic_verifiers: Record<string, {
850
1060
  verifier: string;
851
1061
  config: Record<string, unknown>;
852
1062
  }>;
853
- trigger_auth: Record<string, "token" | "public" | "verifier" | "token+api_key" | "out-of-service">;
854
1063
  }>;
855
1064
  readonly registerHook: (params: import("@tai42/api-client").HookRegister) => Promise<{
856
- registered: boolean;
857
1065
  name: string;
1066
+ registered: boolean;
858
1067
  }>;
859
1068
  readonly unregisterHook: (name: string) => Promise<{
860
- removed: boolean;
861
1069
  name: string;
1070
+ removed: boolean;
862
1071
  }>;
863
1072
  readonly listHookVerifiers: (signal?: AbortSignal) => Promise<string[]>;
864
1073
  readonly setTopicVerifier: (topic: string, body: import("@tai42/api-client").TopicVerifierBody) => Promise<{
@@ -893,51 +1102,67 @@ export declare const ApiProvider: import("react").Provider<{
893
1102
  readonly streamAuthoredAgentRun: (name: string, input: unknown, signal?: AbortSignal) => Promise<AsyncGenerator<import("@tai42/api-client").ParsedAgentEvent, any, any>>;
894
1103
  readonly listNotifications: (signal?: AbortSignal) => Promise<{
895
1104
  notifications: {
1105
+ audience: string | null;
1106
+ created_at: string;
1107
+ footer: string | null;
1108
+ header: {
1109
+ caption: string | null;
1110
+ filename: string | null;
1111
+ kind: "image" | "link" | "document" | "video" | "audio";
1112
+ url: string;
1113
+ } | null;
896
1114
  id: string;
1115
+ location: {
1116
+ address: string | null;
1117
+ latitude: number;
1118
+ longitude: number;
1119
+ name: string | null;
1120
+ } | null;
1121
+ media: {
1122
+ caption: string | null;
1123
+ filename: string | null;
1124
+ kind: "image" | "link" | "document" | "video" | "audio";
1125
+ url: string;
1126
+ }[] | null;
897
1127
  message: string;
1128
+ options: ({
1129
+ kind: "link";
1130
+ label: string;
1131
+ url: string;
1132
+ } | {
1133
+ description: string | null;
1134
+ id: string | null;
1135
+ kind: "reply";
1136
+ text: string;
1137
+ })[] | null;
898
1138
  recipient: string | null;
899
- created_at: string;
900
- audience?: string | null | undefined;
901
- media?: unknown[] | null | undefined;
902
- template?: {
1139
+ schema: unknown;
1140
+ sections: {
1141
+ rows: {
1142
+ description: string | null;
1143
+ id: string | null;
1144
+ kind: "reply";
1145
+ text: string;
1146
+ }[];
1147
+ title: string;
1148
+ }[] | null;
1149
+ template: {
903
1150
  language: string;
904
1151
  name: string;
905
1152
  parameters: Record<string, unknown> | null;
906
- } | null | undefined;
907
- options?: string[] | null | undefined;
908
- }[];
909
- }>;
910
- readonly getWebEntryGate: (identity: string, signal?: AbortSignal) => Promise<{
911
- enabled: boolean;
912
- codes: {
913
- code_id: string;
914
- label: string | null;
915
- created_at: string;
916
- expires_at: string | null;
1153
+ } | null;
917
1154
  }[];
918
1155
  }>;
919
- readonly setWebEntryGate: (identity: string, enabled: boolean) => Promise<{
920
- enabled: boolean;
921
- }>;
922
- readonly mintWebEntryCode: (identity: string, body: import("@tai42/api-client").WebEntryCodeMintBody) => Promise<{
923
- code: string;
924
- code_id: string;
925
- expires_at: string | null;
926
- }>;
927
- readonly revokeWebEntryCode: (identity: string, codeId: string) => Promise<{
928
- status: "revoked";
929
- }>;
930
1156
  readonly listConversationRoutes: (signal?: AbortSignal) => Promise<{
931
- items: {
932
- callback_secret: string | null;
1157
+ items: ({
933
1158
  callback_url: string | null;
934
1159
  cancel_expr: {
935
1160
  content?: string | undefined;
936
1161
  id?: string | undefined;
937
1162
  kwargs?: Record<string, unknown> | undefined;
938
1163
  } | null;
939
- channel: string | null;
940
- door: "channel" | "api";
1164
+ channel: null;
1165
+ door: "api";
941
1166
  error_reply_text: string | null;
942
1167
  execution_key: string;
943
1168
  execution_key_fingerprint: string;
@@ -948,7 +1173,7 @@ export declare const ApiProvider: import("react").Provider<{
948
1173
  } | null;
949
1174
  initial_mode: "agent" | "manual";
950
1175
  locale: string | null;
951
- our_identity: string | null;
1176
+ our_identity: null;
952
1177
  overlap: {
953
1178
  deliver: "one" | "all";
954
1179
  running: "continue" | "cancel";
@@ -973,22 +1198,66 @@ export declare const ApiProvider: import("react").Provider<{
973
1198
  target_kind: "tool" | "agent";
974
1199
  target_name: string;
975
1200
  turns_per_hour_override: number | null;
976
- }[];
1201
+ } | {
1202
+ callback_url: null;
1203
+ cancel_expr: {
1204
+ content?: string | undefined;
1205
+ id?: string | undefined;
1206
+ kwargs?: Record<string, unknown> | undefined;
1207
+ } | null;
1208
+ channel: string;
1209
+ door: "channel";
1210
+ error_reply_text: string | null;
1211
+ execution_key: string;
1212
+ execution_key_fingerprint: string;
1213
+ extras_expr: {
1214
+ content?: string | undefined;
1215
+ id?: string | undefined;
1216
+ kwargs?: Record<string, unknown> | undefined;
1217
+ } | null;
1218
+ initial_mode: "agent" | "manual";
1219
+ locale: string | null;
1220
+ our_identity: string;
1221
+ overlap: {
1222
+ deliver: "one" | "all";
1223
+ running: "continue" | "cancel";
1224
+ settle_seconds: number;
1225
+ };
1226
+ reply_expr: {
1227
+ content?: string | undefined;
1228
+ id?: string | undefined;
1229
+ kwargs?: Record<string, unknown> | undefined;
1230
+ } | null;
1231
+ resume_expr: {
1232
+ content?: string | undefined;
1233
+ id?: string | undefined;
1234
+ kwargs?: Record<string, unknown> | undefined;
1235
+ } | null;
1236
+ route_name: string;
1237
+ start_expr: {
1238
+ content?: string | undefined;
1239
+ id?: string | undefined;
1240
+ kwargs?: Record<string, unknown> | undefined;
1241
+ } | null;
1242
+ target_kind: "tool" | "agent";
1243
+ target_name: string;
1244
+ turns_per_hour_override: number | null;
1245
+ })[];
977
1246
  total: number;
1247
+ unreadable: number;
978
1248
  }>;
979
1249
  readonly createOrReplaceConversationRoute: (route: import("@tai42/api-client").ConversationRouteCreate) => Promise<{
1250
+ callback_secret: string | null;
980
1251
  created: boolean;
981
- route_name: string;
982
1252
  route: {
983
- callback_secret: string | null;
984
1253
  callback_url: string | null;
985
1254
  cancel_expr: {
986
1255
  content?: string | undefined;
987
1256
  id?: string | undefined;
988
1257
  kwargs?: Record<string, unknown> | undefined;
989
1258
  } | null;
990
- channel: string | null;
991
- door: "channel" | "api";
1259
+ channel: null;
1260
+ door: "api";
992
1261
  error_reply_text: string | null;
993
1262
  execution_key: string;
994
1263
  execution_key_fingerprint: string;
@@ -999,7 +1268,51 @@ export declare const ApiProvider: import("react").Provider<{
999
1268
  } | null;
1000
1269
  initial_mode: "agent" | "manual";
1001
1270
  locale: string | null;
1002
- our_identity: string | null;
1271
+ our_identity: null;
1272
+ overlap: {
1273
+ deliver: "one" | "all";
1274
+ running: "continue" | "cancel";
1275
+ settle_seconds: number;
1276
+ };
1277
+ reply_expr: {
1278
+ content?: string | undefined;
1279
+ id?: string | undefined;
1280
+ kwargs?: Record<string, unknown> | undefined;
1281
+ } | null;
1282
+ resume_expr: {
1283
+ content?: string | undefined;
1284
+ id?: string | undefined;
1285
+ kwargs?: Record<string, unknown> | undefined;
1286
+ } | null;
1287
+ route_name: string;
1288
+ start_expr: {
1289
+ content?: string | undefined;
1290
+ id?: string | undefined;
1291
+ kwargs?: Record<string, unknown> | undefined;
1292
+ } | null;
1293
+ target_kind: "tool" | "agent";
1294
+ target_name: string;
1295
+ turns_per_hour_override: number | null;
1296
+ } | {
1297
+ callback_url: null;
1298
+ cancel_expr: {
1299
+ content?: string | undefined;
1300
+ id?: string | undefined;
1301
+ kwargs?: Record<string, unknown> | undefined;
1302
+ } | null;
1303
+ channel: string;
1304
+ door: "channel";
1305
+ error_reply_text: string | null;
1306
+ execution_key: string;
1307
+ execution_key_fingerprint: string;
1308
+ extras_expr: {
1309
+ content?: string | undefined;
1310
+ id?: string | undefined;
1311
+ kwargs?: Record<string, unknown> | undefined;
1312
+ } | null;
1313
+ initial_mode: "agent" | "manual";
1314
+ locale: string | null;
1315
+ our_identity: string;
1003
1316
  overlap: {
1004
1317
  deliver: "one" | "all";
1005
1318
  running: "continue" | "cancel";
@@ -1025,88 +1338,266 @@ export declare const ApiProvider: import("react").Provider<{
1025
1338
  target_name: string;
1026
1339
  turns_per_hour_override: number | null;
1027
1340
  };
1028
- callback_secret: string | null;
1341
+ route_name: string;
1029
1342
  }>;
1030
1343
  readonly deleteConversationRoute: (routeName: string) => Promise<{
1031
1344
  removed: boolean;
1032
1345
  route_name: string;
1033
1346
  }>;
1034
1347
  readonly listConversationThreads: (routeName: string, page: number, pageSize: number, filters?: import("@tai42/api-client").ConversationThreadFilters, signal?: AbortSignal) => Promise<{
1035
- total: number;
1036
- page: number;
1037
- page_size: number;
1038
- next_page: number | null;
1039
- truncated: boolean;
1040
1348
  items: {
1041
- thread_id: string;
1042
1349
  client_address: string;
1043
1350
  last_activity_at: number;
1351
+ last_delivery_status: "superseded" | "failed" | "silent" | "merged" | "accepted" | "pending_delivery" | "provisional" | "delivered" | "shed";
1044
1352
  message_count: number;
1045
- last_delivery_status: "accepted" | "pending_delivery" | "provisional" | "delivered" | "failed" | "shed" | "silent" | "merged" | "superseded";
1353
+ thread_id: string;
1046
1354
  }[];
1047
- }>;
1048
- readonly readConversationTranscript: (query: import("@tai42/api-client").ConversationTranscriptQuery, signal?: AbortSignal) => Promise<{
1049
- order: "asc" | "desc";
1050
- total: number;
1355
+ next_page: number | null;
1051
1356
  page: number;
1052
1357
  page_size: number;
1053
- next_page: number | null;
1358
+ total: number;
1054
1359
  truncated: boolean;
1360
+ unreadable: number;
1361
+ }>;
1362
+ readonly readConversationTranscript: (query: import("@tai42/api-client").ConversationTranscriptQuery, signal?: AbortSignal) => Promise<{
1055
1363
  items: {
1056
- message_id: string;
1057
- route_name: string;
1058
- door: "channel" | "api";
1059
- thread_id: string;
1060
- client_address: string;
1364
+ answer: string | null;
1365
+ answer_parts: {
1366
+ data: {
1367
+ options: Record<string, {
1368
+ label: string | null;
1369
+ value: string;
1370
+ }[]>;
1371
+ values: Record<string, unknown>;
1372
+ } | null;
1373
+ footer: string | null;
1374
+ form_tag: string | null;
1375
+ header: {
1376
+ caption: string | null;
1377
+ filename: string | null;
1378
+ kind: "image" | "link" | "document" | "video" | "audio";
1379
+ url: string;
1380
+ } | null;
1381
+ location: {
1382
+ address: string | null;
1383
+ latitude: number;
1384
+ longitude: number;
1385
+ name: string | null;
1386
+ } | null;
1387
+ media: {
1388
+ caption: string | null;
1389
+ filename: string | null;
1390
+ kind: "image" | "link" | "document" | "video" | "audio";
1391
+ url: string;
1392
+ }[] | null;
1393
+ message: string;
1394
+ options: ({
1395
+ kind: "link";
1396
+ label: string;
1397
+ url: string;
1398
+ } | {
1399
+ description: string | null;
1400
+ id: string | null;
1401
+ kind: "reply";
1402
+ text: string;
1403
+ })[] | null;
1404
+ pages: {
1405
+ display: {
1406
+ alt: string | null;
1407
+ kind: "heading" | "body" | "image";
1408
+ slot: string | null;
1409
+ src: string | null;
1410
+ text: string | null;
1411
+ }[];
1412
+ fields: string[];
1413
+ kind: "input" | "review";
1414
+ title: string;
1415
+ }[] | null;
1416
+ schema: Record<string, unknown> | null;
1417
+ sections: {
1418
+ rows: {
1419
+ description: string | null;
1420
+ id: string | null;
1421
+ kind: "reply";
1422
+ text: string;
1423
+ }[];
1424
+ title: string;
1425
+ }[] | null;
1426
+ template: {
1427
+ language: string;
1428
+ name: string;
1429
+ parameters: Record<string, unknown> | null;
1430
+ } | null;
1431
+ }[] | null;
1432
+ answer_status: "error" | "superseded" | "answered" | "silent" | "merged" | null;
1433
+ attempts: number | null;
1434
+ callback_url: string | null;
1061
1435
  caller_principal: string | null;
1436
+ channel: string | null;
1437
+ client_address: string;
1438
+ created_at: number;
1439
+ delivery_status: "superseded" | "failed" | "silent" | "merged" | "accepted" | "pending_delivery" | "provisional" | "delivered" | "shed";
1440
+ door: "channel" | "api";
1441
+ error: string | null;
1442
+ inbound_attachments: {
1443
+ caption: string | null;
1444
+ filename: string | null;
1445
+ kind: "image" | "link" | "document" | "video" | "audio";
1446
+ url: string;
1447
+ }[] | null;
1448
+ inbound_event: Record<string, unknown> | null;
1449
+ inbound_form: Record<string, unknown> | null;
1450
+ inbound_form_tag: string | null;
1451
+ inbound_kind: "message" | "event";
1452
+ inbound_locale: string | null;
1453
+ inbound_location: {
1454
+ address: string | null;
1455
+ latitude: number;
1456
+ longitude: number;
1457
+ name: string | null;
1458
+ } | null;
1062
1459
  inbound_text: string;
1063
- inbound_attachments: unknown[] | null;
1064
- answer_status: "error" | "silent" | "merged" | "superseded" | "answered" | null;
1065
- answer: string | null;
1460
+ message_id: string;
1461
+ operator_send: boolean;
1462
+ origin: "operator" | "client";
1463
+ our_identity: string | null;
1464
+ outbound_message_ids: string[] | null;
1465
+ pending_receipt: "superseded" | "failed" | "silent" | "merged" | "accepted" | "pending_delivery" | "provisional" | "delivered" | "shed" | null;
1466
+ provider_message_id: string | null;
1467
+ route_missing: boolean;
1468
+ route_name: string;
1469
+ submitted_by: string | null;
1066
1470
  successor_id: string | null;
1067
- origin: "client" | "operator";
1068
- delivery_status: "accepted" | "pending_delivery" | "provisional" | "delivered" | "failed" | "shed" | "silent" | "merged" | "superseded";
1069
- created_at: number;
1471
+ thread_id: string;
1070
1472
  updated_at: number;
1071
- channel?: string | null | undefined;
1072
- our_identity?: string | null | undefined;
1073
- provider_message_id?: string | null | undefined;
1074
- callback_url?: string | null | undefined;
1075
- error?: string | null | undefined;
1076
- outbound_message_ids?: string[] | undefined;
1077
- attempts?: number | undefined;
1078
1473
  }[];
1079
- }>;
1080
- readonly searchConversationMessages: (query: import("@tai42/api-client").ConversationMessageSearchQuery, signal?: AbortSignal) => Promise<{
1081
- total: number;
1474
+ next_page: number | null;
1475
+ order: "asc" | "desc";
1082
1476
  page: number;
1083
1477
  page_size: number;
1084
- next_page: number | null;
1478
+ person_id: string | null;
1479
+ total: number;
1085
1480
  truncated: boolean;
1481
+ unreadable: number;
1482
+ }>;
1483
+ readonly searchConversationMessages: (query: import("@tai42/api-client").ConversationMessageSearchQuery, signal?: AbortSignal) => Promise<{
1086
1484
  items: {
1087
- message_id: string;
1088
- route_name: string;
1089
- door: "channel" | "api";
1090
- thread_id: string;
1091
- client_address: string;
1485
+ answer: string | null;
1486
+ answer_parts: {
1487
+ data: {
1488
+ options: Record<string, {
1489
+ label: string | null;
1490
+ value: string;
1491
+ }[]>;
1492
+ values: Record<string, unknown>;
1493
+ } | null;
1494
+ footer: string | null;
1495
+ form_tag: string | null;
1496
+ header: {
1497
+ caption: string | null;
1498
+ filename: string | null;
1499
+ kind: "image" | "link" | "document" | "video" | "audio";
1500
+ url: string;
1501
+ } | null;
1502
+ location: {
1503
+ address: string | null;
1504
+ latitude: number;
1505
+ longitude: number;
1506
+ name: string | null;
1507
+ } | null;
1508
+ media: {
1509
+ caption: string | null;
1510
+ filename: string | null;
1511
+ kind: "image" | "link" | "document" | "video" | "audio";
1512
+ url: string;
1513
+ }[] | null;
1514
+ message: string;
1515
+ options: ({
1516
+ kind: "link";
1517
+ label: string;
1518
+ url: string;
1519
+ } | {
1520
+ description: string | null;
1521
+ id: string | null;
1522
+ kind: "reply";
1523
+ text: string;
1524
+ })[] | null;
1525
+ pages: {
1526
+ display: {
1527
+ alt: string | null;
1528
+ kind: "heading" | "body" | "image";
1529
+ slot: string | null;
1530
+ src: string | null;
1531
+ text: string | null;
1532
+ }[];
1533
+ fields: string[];
1534
+ kind: "input" | "review";
1535
+ title: string;
1536
+ }[] | null;
1537
+ schema: Record<string, unknown> | null;
1538
+ sections: {
1539
+ rows: {
1540
+ description: string | null;
1541
+ id: string | null;
1542
+ kind: "reply";
1543
+ text: string;
1544
+ }[];
1545
+ title: string;
1546
+ }[] | null;
1547
+ template: {
1548
+ language: string;
1549
+ name: string;
1550
+ parameters: Record<string, unknown> | null;
1551
+ } | null;
1552
+ }[] | null;
1553
+ answer_status: "error" | "superseded" | "answered" | "silent" | "merged" | null;
1554
+ attempts: number | null;
1555
+ callback_url: string | null;
1092
1556
  caller_principal: string | null;
1557
+ channel: string | null;
1558
+ client_address: string;
1559
+ created_at: number;
1560
+ delivery_status: "superseded" | "failed" | "silent" | "merged" | "accepted" | "pending_delivery" | "provisional" | "delivered" | "shed";
1561
+ door: "channel" | "api";
1562
+ error: string | null;
1563
+ inbound_attachments: {
1564
+ caption: string | null;
1565
+ filename: string | null;
1566
+ kind: "image" | "link" | "document" | "video" | "audio";
1567
+ url: string;
1568
+ }[] | null;
1569
+ inbound_event: Record<string, unknown> | null;
1570
+ inbound_form: Record<string, unknown> | null;
1571
+ inbound_form_tag: string | null;
1572
+ inbound_kind: "message" | "event";
1573
+ inbound_locale: string | null;
1574
+ inbound_location: {
1575
+ address: string | null;
1576
+ latitude: number;
1577
+ longitude: number;
1578
+ name: string | null;
1579
+ } | null;
1093
1580
  inbound_text: string;
1094
- inbound_attachments: unknown[] | null;
1095
- answer_status: "error" | "silent" | "merged" | "superseded" | "answered" | null;
1096
- answer: string | null;
1581
+ message_id: string;
1582
+ operator_send: boolean;
1583
+ origin: "operator" | "client";
1584
+ our_identity: string | null;
1585
+ outbound_message_ids: string[] | null;
1586
+ pending_receipt: "superseded" | "failed" | "silent" | "merged" | "accepted" | "pending_delivery" | "provisional" | "delivered" | "shed" | null;
1587
+ provider_message_id: string | null;
1588
+ route_missing: boolean;
1589
+ route_name: string;
1590
+ submitted_by: string | null;
1097
1591
  successor_id: string | null;
1098
- origin: "client" | "operator";
1099
- delivery_status: "accepted" | "pending_delivery" | "provisional" | "delivered" | "failed" | "shed" | "silent" | "merged" | "superseded";
1100
- created_at: number;
1592
+ thread_id: string;
1101
1593
  updated_at: number;
1102
- channel?: string | null | undefined;
1103
- our_identity?: string | null | undefined;
1104
- provider_message_id?: string | null | undefined;
1105
- callback_url?: string | null | undefined;
1106
- error?: string | null | undefined;
1107
- outbound_message_ids?: string[] | undefined;
1108
- attempts?: number | undefined;
1109
1594
  }[];
1595
+ next_page: number | null;
1596
+ page: number;
1597
+ page_size: number;
1598
+ total: number;
1599
+ truncated: boolean;
1600
+ unreadable: number;
1110
1601
  }>;
1111
1602
  readonly sendConversationThreadMessage: (routeName: string, body: import("@tai42/api-client").ConversationThreadMessageBody) => Promise<{
1112
1603
  message_id: string;
@@ -1171,6 +1662,7 @@ export declare const ApiProvider: import("react").Provider<{
1171
1662
  target_name: string;
1172
1663
  }[];
1173
1664
  total: number;
1665
+ unreadable: number;
1174
1666
  }>;
1175
1667
  readonly getConversationConfig: (targetKind: import("@tai42/api-client").ConversationTargetKind, targetName: string, signal?: AbortSignal) => Promise<{
1176
1668
  greeting_template: string | null;
@@ -1222,9 +1714,6 @@ export declare const ApiProvider: import("react").Provider<{
1222
1714
  target_name: string;
1223
1715
  }>;
1224
1716
  readonly setConversationConfig: (config: import("@tai42/api-client").TargetConversationConfig) => Promise<{
1225
- created: boolean;
1226
- target_kind: "tool" | "agent";
1227
- target_name: string;
1228
1717
  config: {
1229
1718
  greeting_template: string | null;
1230
1719
  multichannel: boolean;
@@ -1274,6 +1763,9 @@ export declare const ApiProvider: import("react").Provider<{
1274
1763
  target_kind: "tool" | "agent";
1275
1764
  target_name: string;
1276
1765
  };
1766
+ created: boolean;
1767
+ target_kind: "tool" | "agent";
1768
+ target_name: string;
1277
1769
  }>;
1278
1770
  readonly deleteConversationConfig: (targetKind: import("@tai42/api-client").ConversationTargetKind, targetName: string) => Promise<{
1279
1771
  removed: boolean;
@@ -1282,30 +1774,118 @@ export declare const ApiProvider: import("react").Provider<{
1282
1774
  }>;
1283
1775
  readonly listFailedConversationMessages: (signal?: AbortSignal) => Promise<{
1284
1776
  items: {
1285
- message_id: string;
1286
- route_name: string;
1287
- door: "channel" | "api";
1288
- thread_id: string;
1289
- client_address: string;
1777
+ answer: string | null;
1778
+ answer_parts: {
1779
+ data: {
1780
+ options: Record<string, {
1781
+ label: string | null;
1782
+ value: string;
1783
+ }[]>;
1784
+ values: Record<string, unknown>;
1785
+ } | null;
1786
+ footer: string | null;
1787
+ form_tag: string | null;
1788
+ header: {
1789
+ caption: string | null;
1790
+ filename: string | null;
1791
+ kind: "image" | "link" | "document" | "video" | "audio";
1792
+ url: string;
1793
+ } | null;
1794
+ location: {
1795
+ address: string | null;
1796
+ latitude: number;
1797
+ longitude: number;
1798
+ name: string | null;
1799
+ } | null;
1800
+ media: {
1801
+ caption: string | null;
1802
+ filename: string | null;
1803
+ kind: "image" | "link" | "document" | "video" | "audio";
1804
+ url: string;
1805
+ }[] | null;
1806
+ message: string;
1807
+ options: ({
1808
+ kind: "link";
1809
+ label: string;
1810
+ url: string;
1811
+ } | {
1812
+ description: string | null;
1813
+ id: string | null;
1814
+ kind: "reply";
1815
+ text: string;
1816
+ })[] | null;
1817
+ pages: {
1818
+ display: {
1819
+ alt: string | null;
1820
+ kind: "heading" | "body" | "image";
1821
+ slot: string | null;
1822
+ src: string | null;
1823
+ text: string | null;
1824
+ }[];
1825
+ fields: string[];
1826
+ kind: "input" | "review";
1827
+ title: string;
1828
+ }[] | null;
1829
+ schema: Record<string, unknown> | null;
1830
+ sections: {
1831
+ rows: {
1832
+ description: string | null;
1833
+ id: string | null;
1834
+ kind: "reply";
1835
+ text: string;
1836
+ }[];
1837
+ title: string;
1838
+ }[] | null;
1839
+ template: {
1840
+ language: string;
1841
+ name: string;
1842
+ parameters: Record<string, unknown> | null;
1843
+ } | null;
1844
+ }[] | null;
1845
+ answer_status: "error" | "superseded" | "answered" | "silent" | "merged" | null;
1846
+ attempts: number | null;
1847
+ callback_url: string | null;
1290
1848
  caller_principal: string | null;
1849
+ channel: string | null;
1850
+ client_address: string;
1851
+ created_at: number;
1852
+ delivery_status: "superseded" | "failed" | "silent" | "merged" | "accepted" | "pending_delivery" | "provisional" | "delivered" | "shed";
1853
+ door: "channel" | "api";
1854
+ error: string | null;
1855
+ inbound_attachments: {
1856
+ caption: string | null;
1857
+ filename: string | null;
1858
+ kind: "image" | "link" | "document" | "video" | "audio";
1859
+ url: string;
1860
+ }[] | null;
1861
+ inbound_event: Record<string, unknown> | null;
1862
+ inbound_form: Record<string, unknown> | null;
1863
+ inbound_form_tag: string | null;
1864
+ inbound_kind: "message" | "event";
1865
+ inbound_locale: string | null;
1866
+ inbound_location: {
1867
+ address: string | null;
1868
+ latitude: number;
1869
+ longitude: number;
1870
+ name: string | null;
1871
+ } | null;
1291
1872
  inbound_text: string;
1292
- inbound_attachments: unknown[] | null;
1293
- answer_status: "error" | "silent" | "merged" | "superseded" | "answered" | null;
1294
- answer: string | null;
1873
+ message_id: string;
1874
+ operator_send: boolean;
1875
+ origin: "operator" | "client";
1876
+ our_identity: string | null;
1877
+ outbound_message_ids: string[] | null;
1878
+ pending_receipt: "superseded" | "failed" | "silent" | "merged" | "accepted" | "pending_delivery" | "provisional" | "delivered" | "shed" | null;
1879
+ provider_message_id: string | null;
1880
+ route_missing: boolean;
1881
+ route_name: string;
1882
+ submitted_by: string | null;
1295
1883
  successor_id: string | null;
1296
- origin: "client" | "operator";
1297
- delivery_status: "accepted" | "pending_delivery" | "provisional" | "delivered" | "failed" | "shed" | "silent" | "merged" | "superseded";
1298
- created_at: number;
1884
+ thread_id: string;
1299
1885
  updated_at: number;
1300
- channel?: string | null | undefined;
1301
- our_identity?: string | null | undefined;
1302
- provider_message_id?: string | null | undefined;
1303
- callback_url?: string | null | undefined;
1304
- error?: string | null | undefined;
1305
- outbound_message_ids?: string[] | undefined;
1306
- attempts?: number | undefined;
1307
1886
  }[];
1308
1887
  total: number;
1888
+ unreadable: number;
1309
1889
  }>;
1310
1890
  readonly deleteConversationThread: (routeName: string, threadId: string) => Promise<{
1311
1891
  removed: number;
@@ -1313,34 +1893,39 @@ export declare const ApiProvider: import("react").Provider<{
1313
1893
  thread_id: string;
1314
1894
  }>;
1315
1895
  readonly deleteConversationPerson: (personId: string) => Promise<{
1896
+ erased: boolean;
1316
1897
  person_id: string;
1317
1898
  removed: number;
1318
- erased: boolean;
1319
1899
  }>;
1320
1900
  readonly listChannels: (signal?: AbortSignal) => Promise<{
1321
1901
  channels: string[];
1322
1902
  }>;
1323
1903
  readonly listInteractions: (page: number, pageSize: number, signal?: AbortSignal) => Promise<{
1324
- total: number;
1904
+ next_page: number | null;
1325
1905
  page: number;
1326
1906
  page_size: number;
1327
- next_page: number | null;
1907
+ total: number;
1328
1908
  truncated: boolean;
1329
1909
  items: {
1330
- interaction_id: string;
1910
+ answer_format: "text" | "free" | "confirm" | "form" | "select" | "external";
1911
+ audience: string | null;
1912
+ channel: string | null;
1913
+ created_at: string;
1331
1914
  group_id: string;
1915
+ interaction_id: string;
1916
+ media: {
1917
+ caption: string | null;
1918
+ filename: string | null;
1919
+ kind: "image" | "link" | "document" | "video" | "audio";
1920
+ url: string;
1921
+ }[] | null;
1922
+ origin: string | null;
1332
1923
  question: string;
1333
- answer_format: "text" | "external" | "confirm" | "select" | "form";
1334
- format_payload: Record<string, unknown>;
1335
- created_at: string;
1336
- timeout_at: string;
1924
+ recipient: string | null;
1337
1925
  sensitive: boolean;
1338
- server_verified?: boolean | undefined;
1339
- channel?: string | undefined;
1340
- recipient?: string | undefined;
1341
- origin?: string | undefined;
1342
- audience?: string | undefined;
1343
- media?: unknown[] | undefined;
1926
+ server_verified: boolean | null;
1927
+ timeout_at: string;
1928
+ format_payload: Record<string, unknown>;
1344
1929
  }[];
1345
1930
  }>;
1346
1931
  readonly answerInteraction: (interactionId: string, answer: unknown) => Promise<{
@@ -1350,8 +1935,8 @@ export declare const ApiProvider: import("react").Provider<{
1350
1935
  readonly reactInteraction: (interactionId: string, event: import("@tai42/api-client").ReactionEvent, values: unknown) => Promise<{
1351
1936
  values: Record<string, unknown>;
1352
1937
  options: Record<string, {
1938
+ label: string | null;
1353
1939
  value: string;
1354
- label?: string | null | undefined;
1355
1940
  }[]>;
1356
1941
  errors: Record<string, string>;
1357
1942
  display: Record<string, unknown>;
@@ -1361,267 +1946,459 @@ export declare const ApiProvider: import("react").Provider<{
1361
1946
  status: string;
1362
1947
  }>;
1363
1948
  readonly listStudioPlugins: (signal?: AbortSignal) => Promise<{
1364
- name: string;
1365
- version: string;
1366
1949
  api_version: number;
1367
- entry: string;
1368
- integrity: Record<string, string>;
1369
1950
  contributions: {
1370
- tool_panels: Record<string, string>;
1951
+ nav_entries: string[];
1371
1952
  pages: string[];
1953
+ route_panels: string[];
1372
1954
  settings_tabs: string[];
1373
- nav_entries: string[];
1955
+ tool_panels: Record<string, string>;
1374
1956
  };
1957
+ entry: string;
1958
+ integrity: Record<string, string>;
1959
+ mounts: Record<string, string>;
1960
+ name: string;
1961
+ version: string;
1375
1962
  }[]>;
1963
+ readonly discoverServer: (target: import("@tai42/api-client").DiscoverServerTarget) => Promise<{
1964
+ authorization_servers: string[];
1965
+ automatic_client: boolean;
1966
+ client_issuer: string | null;
1967
+ issuer: string;
1968
+ redirect_uri: string | null;
1969
+ registration_supported: boolean;
1970
+ resource: string;
1971
+ resource_name: string | null;
1972
+ scopes_supported: string[];
1973
+ suggested_display_name: string;
1974
+ suggested_id: string;
1975
+ url: string;
1976
+ }>;
1977
+ readonly addServer: (args: import("@tai42/api-client").AddServerArgs) => Promise<{
1978
+ provider: {
1979
+ category: string;
1980
+ client_source: "manual" | "env" | "dynamic" | "unset" | null;
1981
+ config_fields: {
1982
+ key: string;
1983
+ label: string;
1984
+ required: boolean;
1985
+ secret: boolean;
1986
+ target: "header" | "env";
1987
+ }[];
1988
+ description: string;
1989
+ display_name: string;
1990
+ icon_url: string | null;
1991
+ id: string;
1992
+ kind: "none" | "oauth";
1993
+ origin: "system" | "community";
1994
+ removable: boolean;
1995
+ sub_services: {
1996
+ description: string;
1997
+ display_name: string;
1998
+ id: string;
1999
+ scopes: string[];
2000
+ }[];
2001
+ };
2002
+ fanout: {
2003
+ mode: "local-only";
2004
+ note: string;
2005
+ } | {
2006
+ error: string | null;
2007
+ local_only: boolean;
2008
+ op: string;
2009
+ reachable: boolean;
2010
+ results: {
2011
+ detail: string | null;
2012
+ error: string | null;
2013
+ name: string;
2014
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
2015
+ payload: unknown;
2016
+ }[];
2017
+ mode: "fleet";
2018
+ } | {
2019
+ error: string | null;
2020
+ local_only: boolean;
2021
+ op: string;
2022
+ reachable: boolean;
2023
+ results: {
2024
+ detail: string | null;
2025
+ error: string | null;
2026
+ name: string;
2027
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
2028
+ payload: unknown;
2029
+ }[];
2030
+ mode: "unreachable";
2031
+ } | null;
2032
+ }>;
2033
+ readonly removeProvider: (id: string) => Promise<{
2034
+ provider_id: string;
2035
+ removed_clients: number;
2036
+ fanout: {
2037
+ mode: "local-only";
2038
+ note: string;
2039
+ } | {
2040
+ error: string | null;
2041
+ local_only: boolean;
2042
+ op: string;
2043
+ reachable: boolean;
2044
+ results: {
2045
+ detail: string | null;
2046
+ error: string | null;
2047
+ name: string;
2048
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
2049
+ payload: unknown;
2050
+ }[];
2051
+ mode: "fleet";
2052
+ } | {
2053
+ error: string | null;
2054
+ local_only: boolean;
2055
+ op: string;
2056
+ reachable: boolean;
2057
+ results: {
2058
+ detail: string | null;
2059
+ error: string | null;
2060
+ name: string;
2061
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
2062
+ payload: unknown;
2063
+ }[];
2064
+ mode: "unreachable";
2065
+ } | null;
2066
+ }>;
2067
+ readonly setProviderClient: (id: string, args: import("@tai42/api-client").SetProviderClientArgs) => Promise<{
2068
+ provider: {
2069
+ category: string;
2070
+ client_source: "manual" | "env" | "dynamic" | "unset" | null;
2071
+ config_fields: {
2072
+ key: string;
2073
+ label: string;
2074
+ required: boolean;
2075
+ secret: boolean;
2076
+ target: "header" | "env";
2077
+ }[];
2078
+ description: string;
2079
+ display_name: string;
2080
+ icon_url: string | null;
2081
+ id: string;
2082
+ kind: "none" | "oauth";
2083
+ origin: "system" | "community";
2084
+ removable: boolean;
2085
+ sub_services: {
2086
+ description: string;
2087
+ display_name: string;
2088
+ id: string;
2089
+ scopes: string[];
2090
+ }[];
2091
+ };
2092
+ fanout: {
2093
+ mode: "local-only";
2094
+ note: string;
2095
+ } | {
2096
+ error: string | null;
2097
+ local_only: boolean;
2098
+ op: string;
2099
+ reachable: boolean;
2100
+ results: {
2101
+ detail: string | null;
2102
+ error: string | null;
2103
+ name: string;
2104
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
2105
+ payload: unknown;
2106
+ }[];
2107
+ mode: "fleet";
2108
+ } | {
2109
+ error: string | null;
2110
+ local_only: boolean;
2111
+ op: string;
2112
+ reachable: boolean;
2113
+ results: {
2114
+ detail: string | null;
2115
+ error: string | null;
2116
+ name: string;
2117
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
2118
+ payload: unknown;
2119
+ }[];
2120
+ mode: "unreachable";
2121
+ } | null;
2122
+ }>;
1376
2123
  readonly listProviders: (signal?: AbortSignal) => Promise<{
1377
- providers: {
1378
- id: string;
2124
+ categories: {
1379
2125
  display_name: string;
1380
- description: string;
1381
- icon_url: string;
1382
- kind: "none" | "oauth";
1383
- origin: "system" | "community";
2126
+ id: string;
2127
+ sort_order: number;
2128
+ }[];
2129
+ providers: {
1384
2130
  category: string;
1385
- sub_services: {
1386
- id: string;
1387
- display_name: string;
1388
- description: string;
1389
- scopes: string[];
1390
- }[];
2131
+ client_source: "manual" | "env" | "dynamic" | "unset" | null;
1391
2132
  config_fields: {
1392
2133
  key: string;
1393
2134
  label: string;
1394
- target: "env" | "header";
1395
2135
  required: boolean;
1396
2136
  secret: boolean;
2137
+ target: "header" | "env";
1397
2138
  }[];
1398
- }[];
1399
- categories: {
1400
- id: string;
2139
+ description: string;
1401
2140
  display_name: string;
1402
- sort_order: number;
2141
+ icon_url: string | null;
2142
+ id: string;
2143
+ kind: "none" | "oauth";
2144
+ origin: "system" | "community";
2145
+ removable: boolean;
2146
+ sub_services: {
2147
+ description: string;
2148
+ display_name: string;
2149
+ id: string;
2150
+ scopes: string[];
2151
+ }[];
1403
2152
  }[];
1404
2153
  }>;
1405
2154
  readonly listConnections: (signal?: AbortSignal) => Promise<{
1406
2155
  items: {
1407
- connection_id: string;
1408
- provider_id: string;
1409
- alias: string;
1410
- kind: "none" | "oauth";
1411
2156
  account_identity: string | null;
2157
+ alias: string;
2158
+ auth_health_state: "healthy" | "reconnect_required" | "refresh_failing";
2159
+ connection_id: string;
2160
+ created_at: string;
1412
2161
  enabled_sub_services: string[];
1413
2162
  granted_scopes: string[];
2163
+ kind: "none" | "oauth";
2164
+ provider_id: string;
2165
+ scopes_wanted: string[];
1414
2166
  unreachable_sub_services: string[];
1415
- auth_health_state: "healthy" | "reconnect_required" | "refresh_failing";
1416
- created_at: string;
1417
2167
  }[];
1418
2168
  total: number;
1419
- unhealthy?: number | undefined;
2169
+ unhealthy: number;
1420
2170
  }>;
1421
2171
  readonly getConnection: (id: string, signal?: AbortSignal) => Promise<{
1422
- connection_id: string;
1423
- provider_id: string;
1424
- alias: string;
1425
- kind: "none" | "oauth";
1426
2172
  account_identity: string | null;
2173
+ alias: string;
2174
+ auth_health_state: "healthy" | "reconnect_required" | "refresh_failing";
2175
+ connection_id: string;
2176
+ created_at: string;
1427
2177
  enabled_sub_services: string[];
1428
2178
  granted_scopes: string[];
2179
+ kind: "none" | "oauth";
2180
+ provider_id: string;
2181
+ scopes_wanted: string[];
1429
2182
  unreachable_sub_services: string[];
1430
- auth_health_state: "healthy" | "reconnect_required" | "refresh_failing";
1431
- created_at: string;
1432
2183
  }>;
1433
2184
  readonly startConnect: (args: import("@tai42/api-client").StartConnectArgs) => Promise<{
1434
- flow_id: string;
1435
2185
  authorize_url: string;
2186
+ flow_id: string;
1436
2187
  } | {
1437
- connection_id: string;
1438
2188
  added_manifest_entries: string[];
2189
+ connection_id: string;
1439
2190
  fanout: {
1440
2191
  mode: "local-only";
1441
2192
  note: string;
1442
2193
  } | {
2194
+ error: string | null;
2195
+ local_only: boolean;
1443
2196
  op: string;
1444
2197
  reachable: boolean;
1445
- local_only: boolean;
1446
2198
  results: {
2199
+ detail: string | null;
2200
+ error: string | null;
1447
2201
  name: string;
1448
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2202
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1449
2203
  payload: unknown;
1450
- error: string | null;
1451
- detail: string | null;
1452
2204
  }[];
1453
- error: string | null;
1454
2205
  mode: "fleet";
1455
2206
  } | {
2207
+ error: string | null;
2208
+ local_only: boolean;
1456
2209
  op: string;
1457
2210
  reachable: boolean;
1458
- local_only: boolean;
1459
2211
  results: {
2212
+ detail: string | null;
2213
+ error: string | null;
1460
2214
  name: string;
1461
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2215
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1462
2216
  payload: unknown;
1463
- error: string | null;
1464
- detail: string | null;
1465
2217
  }[];
1466
- error: string | null;
1467
2218
  mode: "unreachable";
1468
2219
  } | null;
1469
2220
  }>;
1470
2221
  readonly disconnect: (id: string) => Promise<{
1471
2222
  connection_id: string;
1472
- upstream_revoke_outcome: "success" | "failed" | "skipped";
1473
- upstream_revoke_status: number | null;
1474
2223
  removed_manifest_entries: string[];
2224
+ upstream_revoke_outcome: "success" | "skipped" | "failed";
2225
+ upstream_revoke_status: number | null;
1475
2226
  fanout: {
1476
2227
  mode: "local-only";
1477
2228
  note: string;
1478
2229
  } | {
2230
+ error: string | null;
2231
+ local_only: boolean;
1479
2232
  op: string;
1480
2233
  reachable: boolean;
1481
- local_only: boolean;
1482
2234
  results: {
2235
+ detail: string | null;
2236
+ error: string | null;
1483
2237
  name: string;
1484
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2238
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1485
2239
  payload: unknown;
1486
- error: string | null;
1487
- detail: string | null;
1488
2240
  }[];
1489
- error: string | null;
1490
2241
  mode: "fleet";
1491
2242
  } | {
2243
+ error: string | null;
2244
+ local_only: boolean;
1492
2245
  op: string;
1493
2246
  reachable: boolean;
1494
- local_only: boolean;
1495
2247
  results: {
2248
+ detail: string | null;
2249
+ error: string | null;
1496
2250
  name: string;
1497
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2251
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1498
2252
  payload: unknown;
1499
- error: string | null;
1500
- detail: string | null;
1501
2253
  }[];
1502
- error: string | null;
1503
2254
  mode: "unreachable";
1504
2255
  } | null;
1505
2256
  }>;
1506
2257
  readonly reconnect: (id: string, enabled_sub_services: string[], return_url?: string) => Promise<{
1507
- flow_id: string;
1508
2258
  authorize_url: string;
2259
+ flow_id: string;
1509
2260
  }>;
1510
2261
  readonly patchSubServices: (id: string, enabled_sub_services: string[], return_url?: string) => Promise<{
2262
+ added_manifest_entries: string[];
2263
+ authorize_url: string | null;
1511
2264
  connection_id: string;
1512
- enabled_sub_services: string[];
1513
2265
  consent_required: boolean;
2266
+ enabled_sub_services: string[];
1514
2267
  flow_id: string | null;
1515
- authorize_url: string | null;
1516
- added_manifest_entries: string[];
1517
2268
  removed_manifest_entries: string[];
1518
2269
  fanout: {
1519
2270
  mode: "local-only";
1520
2271
  note: string;
1521
2272
  } | {
2273
+ error: string | null;
2274
+ local_only: boolean;
1522
2275
  op: string;
1523
2276
  reachable: boolean;
1524
- local_only: boolean;
1525
2277
  results: {
2278
+ detail: string | null;
2279
+ error: string | null;
1526
2280
  name: string;
1527
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2281
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1528
2282
  payload: unknown;
1529
- error: string | null;
1530
- detail: string | null;
1531
2283
  }[];
1532
- error: string | null;
1533
2284
  mode: "fleet";
1534
2285
  } | {
2286
+ error: string | null;
2287
+ local_only: boolean;
1535
2288
  op: string;
1536
2289
  reachable: boolean;
1537
- local_only: boolean;
1538
2290
  results: {
2291
+ detail: string | null;
2292
+ error: string | null;
1539
2293
  name: string;
1540
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2294
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1541
2295
  payload: unknown;
1542
- error: string | null;
1543
- detail: string | null;
1544
2296
  }[];
1545
- error: string | null;
1546
2297
  mode: "unreachable";
1547
2298
  } | null;
1548
2299
  }>;
1549
- readonly completeOAuth: (state: string, code: string, error?: string) => Promise<{
1550
- kind: "success";
2300
+ readonly completeOAuth: (state: string, code: string, error?: string, iss?: string) => Promise<{
2301
+ kind: "cancelled";
2302
+ message: string;
2303
+ } | {
2304
+ kind: "failed";
2305
+ reason: string;
2306
+ } | {
2307
+ kind: "not_configured";
2308
+ } | {
1551
2309
  connection_id: string;
2310
+ kind: "success";
1552
2311
  return_url: string;
1553
2312
  fanout: {
1554
2313
  mode: "local-only";
1555
2314
  note: string;
1556
2315
  } | {
2316
+ error: string | null;
2317
+ local_only: boolean;
1557
2318
  op: string;
1558
2319
  reachable: boolean;
1559
- local_only: boolean;
1560
2320
  results: {
2321
+ detail: string | null;
2322
+ error: string | null;
1561
2323
  name: string;
1562
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2324
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1563
2325
  payload: unknown;
1564
- error: string | null;
1565
- detail: string | null;
1566
2326
  }[];
1567
- error: string | null;
1568
2327
  mode: "fleet";
1569
2328
  } | {
2329
+ error: string | null;
2330
+ local_only: boolean;
1570
2331
  op: string;
1571
2332
  reachable: boolean;
1572
- local_only: boolean;
1573
2333
  results: {
2334
+ detail: string | null;
2335
+ error: string | null;
1574
2336
  name: string;
1575
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2337
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1576
2338
  payload: unknown;
1577
- error: string | null;
1578
- detail: string | null;
1579
2339
  }[];
1580
- error: string | null;
1581
2340
  mode: "unreachable";
1582
- } | null;
1583
- } | {
1584
- kind: "failed";
1585
- reason: string;
1586
- } | {
1587
- kind: "cancelled";
1588
- message: string;
2341
+ };
1589
2342
  }>;
1590
2343
  readonly setMcpSecretEnv: (body: import("../../../api-client/dist/client/manifest-client").SetMcpSecretEnvBody) => Promise<{
1591
- status: string;
2344
+ awaiting_respawn: {
2345
+ keys: string[];
2346
+ name: string;
2347
+ }[];
1592
2348
  env_keys: number;
2349
+ recycle: {
2350
+ fresh: {
2351
+ generation: number;
2352
+ kind: string;
2353
+ name: string;
2354
+ }[];
2355
+ recycle: {
2356
+ detail: string | null;
2357
+ generation_before: number;
2358
+ kind: string;
2359
+ name: string;
2360
+ status: string;
2361
+ }[];
2362
+ recycle_stopped: {
2363
+ detail: string;
2364
+ kind: string;
2365
+ name: string | null;
2366
+ } | null;
2367
+ } | null;
2368
+ status: string;
1593
2369
  fanout: {
1594
2370
  mode: "local-only";
1595
2371
  note: string;
1596
2372
  } | {
2373
+ error: string | null;
2374
+ local_only: boolean;
1597
2375
  op: string;
1598
2376
  reachable: boolean;
1599
- local_only: boolean;
1600
2377
  results: {
2378
+ detail: string | null;
2379
+ error: string | null;
1601
2380
  name: string;
1602
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2381
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1603
2382
  payload: unknown;
1604
- error: string | null;
1605
- detail: string | null;
1606
2383
  }[];
1607
- error: string | null;
1608
2384
  mode: "fleet";
1609
2385
  } | {
2386
+ error: string | null;
2387
+ local_only: boolean;
1610
2388
  op: string;
1611
2389
  reachable: boolean;
1612
- local_only: boolean;
1613
2390
  results: {
2391
+ detail: string | null;
2392
+ error: string | null;
1614
2393
  name: string;
1615
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2394
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1616
2395
  payload: unknown;
1617
- error: string | null;
1618
- detail: string | null;
1619
2396
  }[];
1620
- error: string | null;
1621
2397
  mode: "unreachable";
1622
2398
  };
1623
2399
  }>;
1624
2400
  readonly getManifestPreserved: (signal?: AbortSignal) => Promise<{
2401
+ user_tools: string[];
1625
2402
  mcp: {
1626
2403
  [x: string]: unknown;
1627
2404
  managed?: {
@@ -1630,17 +2407,16 @@ export declare const ApiProvider: import("react").Provider<{
1630
2407
  sub_service: string;
1631
2408
  } | null | undefined;
1632
2409
  }[];
1633
- user_tools: string[];
1634
2410
  }>;
1635
2411
  readonly getMcpEnvRefs: (signal?: AbortSignal) => Promise<{
1636
- var: string;
1637
- pointer: string;
1638
2412
  has_default: boolean;
2413
+ pointer: string;
1639
2414
  set: boolean;
2415
+ var: string;
1640
2416
  }[]>;
1641
2417
  readonly listSettingsProfiles: (signal?: AbortSignal) => Promise<{
1642
- name: string;
1643
2418
  description: string;
2419
+ name: string;
1644
2420
  }[]>;
1645
2421
  readonly getSettingsProfile: (name: string, signal?: AbortSignal) => Promise<{
1646
2422
  description: string;
@@ -1648,127 +2424,160 @@ export declare const ApiProvider: import("react").Provider<{
1648
2424
  secret_keys: string[];
1649
2425
  }>;
1650
2426
  readonly putSettingsProfile: (name: string, body: import("../../../api-client/dist/schemas").SettingsProfileBody) => Promise<{
1651
- ok: true;
1652
- version?: number | undefined;
2427
+ ok: boolean;
2428
+ version: number;
1653
2429
  }>;
1654
2430
  readonly deleteSettingsProfile: (name: string) => Promise<{
1655
- ok: true;
2431
+ ok: boolean;
1656
2432
  }>;
1657
2433
  readonly diffSettingsProfile: (name: string) => Promise<{
1658
2434
  added: string[];
1659
- removed: string[];
1660
2435
  changed: {
1661
2436
  key: string;
1662
- old: string;
1663
2437
  new: string;
2438
+ old: string;
1664
2439
  }[];
1665
2440
  recycle_keys: string[];
1666
2441
  refused_keys: string[];
2442
+ removed: string[];
1667
2443
  }>;
1668
2444
  readonly applySettingsProfile: (name: string) => Promise<{
1669
- hot: string[];
1670
- recycle: {
2445
+ awaiting_respawn: {
2446
+ keys: string[];
1671
2447
  name: string;
1672
- kind: string;
1673
- status: string;
1674
- generation_before: number;
1675
2448
  }[];
1676
2449
  fresh: {
1677
- name: string;
1678
- kind: string;
1679
2450
  generation: number;
2451
+ kind: string;
2452
+ name: string;
1680
2453
  }[];
1681
- refused: {
1682
- key: string;
1683
- reason: string;
2454
+ hot: string[];
2455
+ recycle: {
2456
+ detail: string | null;
2457
+ generation_before: number;
2458
+ kind: string;
2459
+ name: string;
2460
+ status: string;
1684
2461
  }[];
2462
+ recycle_stopped: {
2463
+ detail: string;
2464
+ kind: string;
2465
+ name: string | null;
2466
+ } | null;
2467
+ refused: string[];
1685
2468
  fanout: {
1686
2469
  mode: "local-only";
1687
2470
  note: string;
1688
2471
  } | {
2472
+ error: string | null;
2473
+ local_only: boolean;
1689
2474
  op: string;
1690
2475
  reachable: boolean;
1691
- local_only: boolean;
1692
2476
  results: {
2477
+ detail: string | null;
2478
+ error: string | null;
1693
2479
  name: string;
1694
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2480
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1695
2481
  payload: unknown;
1696
- error: string | null;
1697
- detail: string | null;
1698
2482
  }[];
1699
- error: string | null;
1700
2483
  mode: "fleet";
1701
2484
  } | {
2485
+ error: string | null;
2486
+ local_only: boolean;
1702
2487
  op: string;
1703
2488
  reachable: boolean;
1704
- local_only: boolean;
1705
2489
  results: {
2490
+ detail: string | null;
2491
+ error: string | null;
1706
2492
  name: string;
1707
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2493
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1708
2494
  payload: unknown;
1709
- error: string | null;
1710
- detail: string | null;
1711
2495
  }[];
1712
- error: string | null;
1713
2496
  mode: "unreachable";
1714
2497
  };
1715
2498
  }>;
1716
2499
  readonly listSettingsProfileVersions: (name: string, signal?: AbortSignal) => Promise<{
1717
- version: number;
1718
- tags: string[];
1719
2500
  created_at: string;
1720
2501
  is_current: boolean;
2502
+ tags: string[];
2503
+ version: number;
1721
2504
  }[]>;
1722
2505
  readonly getSettingsProfileVersion: (name: string, version: number, signal?: AbortSignal) => Promise<{
1723
- version: number;
1724
- tags: string[];
1725
- created_at: string;
1726
- is_current: boolean;
1727
2506
  body: {
1728
2507
  description: string;
1729
2508
  env: Record<string, string>;
1730
2509
  secret_keys: string[];
1731
2510
  };
2511
+ created_at: string;
2512
+ is_current: boolean;
2513
+ tags: string[];
2514
+ version: number;
1732
2515
  }>;
1733
2516
  readonly rollbackSettingsProfile: (name: string, version: number) => Promise<{
1734
- ok: true;
2517
+ ok: boolean;
1735
2518
  version: number;
1736
2519
  }>;
1737
2520
  readonly getEnvConfig: (signal?: AbortSignal) => Promise<{
1738
2521
  env: Record<string, string>;
1739
2522
  secret_keys: string[];
1740
2523
  }>;
1741
- readonly setEnvConfig: (env: Record<string, string>) => Promise<{
1742
- status: string;
2524
+ readonly setEnvConfig: (body: {
2525
+ env: Record<string, string>;
2526
+ secret_keys?: string[] | null;
2527
+ }) => Promise<{
2528
+ awaiting_respawn: {
2529
+ keys: string[];
2530
+ name: string;
2531
+ }[];
1743
2532
  env_keys: number;
2533
+ recycle: {
2534
+ fresh: {
2535
+ generation: number;
2536
+ kind: string;
2537
+ name: string;
2538
+ }[];
2539
+ recycle: {
2540
+ detail: string | null;
2541
+ generation_before: number;
2542
+ kind: string;
2543
+ name: string;
2544
+ status: string;
2545
+ }[];
2546
+ recycle_stopped: {
2547
+ detail: string;
2548
+ kind: string;
2549
+ name: string | null;
2550
+ } | null;
2551
+ } | null;
2552
+ status: string;
1744
2553
  fanout: {
1745
2554
  mode: "local-only";
1746
2555
  note: string;
1747
2556
  } | {
2557
+ error: string | null;
2558
+ local_only: boolean;
1748
2559
  op: string;
1749
2560
  reachable: boolean;
1750
- local_only: boolean;
1751
2561
  results: {
2562
+ detail: string | null;
2563
+ error: string | null;
1752
2564
  name: string;
1753
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2565
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1754
2566
  payload: unknown;
1755
- error: string | null;
1756
- detail: string | null;
1757
2567
  }[];
1758
- error: string | null;
1759
2568
  mode: "fleet";
1760
2569
  } | {
2570
+ error: string | null;
2571
+ local_only: boolean;
1761
2572
  op: string;
1762
2573
  reachable: boolean;
1763
- local_only: boolean;
1764
2574
  results: {
2575
+ detail: string | null;
2576
+ error: string | null;
1765
2577
  name: string;
1766
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2578
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1767
2579
  payload: unknown;
1768
- error: string | null;
1769
- detail: string | null;
1770
2580
  }[];
1771
- error: string | null;
1772
2581
  mode: "unreachable";
1773
2582
  };
1774
2583
  }>;
@@ -1777,19 +2586,22 @@ export declare const ApiProvider: import("react").Provider<{
1777
2586
  read_only: boolean;
1778
2587
  }>;
1779
2588
  readonly reloadConfig: (targets?: string[] | null) => Promise<{
2589
+ error: string | null;
2590
+ local_only: boolean;
2591
+ ok: boolean;
1780
2592
  op: string;
1781
2593
  reachable: boolean;
1782
- local_only: boolean;
1783
2594
  results: {
2595
+ detail: string | null;
2596
+ error: string | null;
1784
2597
  name: string;
1785
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2598
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1786
2599
  payload: unknown;
1787
- error: string | null;
1788
- detail: string | null;
1789
2600
  }[];
1790
- error: string | null;
1791
2601
  }>;
1792
2602
  readonly listSubMcp: (signal?: AbortSignal) => Promise<Record<string, {
2603
+ access_pattern: string;
2604
+ mount_url: string;
1793
2605
  tools: string[];
1794
2606
  transport: string;
1795
2607
  }>>;
@@ -1799,10 +2611,11 @@ export declare const ApiProvider: import("react").Provider<{
1799
2611
  transport: string;
1800
2612
  }>;
1801
2613
  readonly deleteSubMcp: (slug: string) => Promise<{
2614
+ removed: boolean;
1802
2615
  slug: string;
1803
- removed: true;
1804
2616
  }>;
1805
2617
  readonly getManifest: (signal?: AbortSignal) => Promise<{
2618
+ user_tools: string[];
1806
2619
  mcp: {
1807
2620
  [x: string]: unknown;
1808
2621
  managed?: {
@@ -1811,404 +2624,637 @@ export declare const ApiProvider: import("react").Provider<{
1811
2624
  sub_service: string;
1812
2625
  } | null | undefined;
1813
2626
  }[];
1814
- user_tools: string[];
1815
2627
  }>;
1816
2628
  readonly setMcpConfig: (mcp: unknown[]) => Promise<{
1817
- status: string;
2629
+ awaiting_respawn: {
2630
+ keys: string[];
2631
+ name: string;
2632
+ }[];
1818
2633
  env_keys: number;
2634
+ recycle: {
2635
+ fresh: {
2636
+ generation: number;
2637
+ kind: string;
2638
+ name: string;
2639
+ }[];
2640
+ recycle: {
2641
+ detail: string | null;
2642
+ generation_before: number;
2643
+ kind: string;
2644
+ name: string;
2645
+ status: string;
2646
+ }[];
2647
+ recycle_stopped: {
2648
+ detail: string;
2649
+ kind: string;
2650
+ name: string | null;
2651
+ } | null;
2652
+ } | null;
2653
+ status: string;
1819
2654
  fanout: {
1820
2655
  mode: "local-only";
1821
2656
  note: string;
1822
2657
  } | {
2658
+ error: string | null;
2659
+ local_only: boolean;
1823
2660
  op: string;
1824
2661
  reachable: boolean;
1825
- local_only: boolean;
1826
2662
  results: {
2663
+ detail: string | null;
2664
+ error: string | null;
1827
2665
  name: string;
1828
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2666
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1829
2667
  payload: unknown;
1830
- error: string | null;
1831
- detail: string | null;
1832
2668
  }[];
1833
- error: string | null;
1834
2669
  mode: "fleet";
1835
2670
  } | {
2671
+ error: string | null;
2672
+ local_only: boolean;
1836
2673
  op: string;
1837
2674
  reachable: boolean;
1838
- local_only: boolean;
1839
2675
  results: {
2676
+ detail: string | null;
2677
+ error: string | null;
1840
2678
  name: string;
1841
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2679
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1842
2680
  payload: unknown;
1843
- error: string | null;
1844
- detail: string | null;
1845
2681
  }[];
1846
- error: string | null;
1847
2682
  mode: "unreachable";
1848
2683
  };
1849
2684
  }>;
1850
2685
  readonly getMcpStatus: (signal?: AbortSignal) => Promise<{
1851
2686
  bound: Record<string, string[]>;
1852
2687
  failed: {
1853
- title: string;
2688
+ category: string;
2689
+ http_status: number | null;
2690
+ message: string;
1854
2691
  status: string;
1855
- category?: string | undefined;
1856
- message?: string | undefined;
1857
- http_status?: number | null | undefined;
2692
+ title: string;
1858
2693
  }[];
2694
+ health: Record<string, {
2695
+ consecutive_failures: number;
2696
+ failing_since: string | null;
2697
+ last_error: Record<string, string> | null;
2698
+ last_success: string | null;
2699
+ }>;
1859
2700
  }>;
1860
2701
  readonly reloadMcp: (title: string) => Promise<{
2702
+ error: string | null;
2703
+ local_only: boolean;
2704
+ ok: boolean;
1861
2705
  op: string;
1862
2706
  reachable: boolean;
1863
- local_only: boolean;
1864
2707
  results: {
2708
+ detail: string | null;
2709
+ error: string | null;
1865
2710
  name: string;
1866
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2711
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1867
2712
  payload: unknown;
1868
- error: string | null;
1869
- detail: string | null;
1870
2713
  }[];
1871
- error: string | null;
1872
2714
  }>;
1873
2715
  readonly addToolsEntries: (entries: readonly unknown[], replace?: boolean) => Promise<{
1874
- status: string;
2716
+ awaiting_respawn: {
2717
+ keys: string[];
2718
+ name: string;
2719
+ }[];
1875
2720
  env_keys: number;
2721
+ recycle: {
2722
+ fresh: {
2723
+ generation: number;
2724
+ kind: string;
2725
+ name: string;
2726
+ }[];
2727
+ recycle: {
2728
+ detail: string | null;
2729
+ generation_before: number;
2730
+ kind: string;
2731
+ name: string;
2732
+ status: string;
2733
+ }[];
2734
+ recycle_stopped: {
2735
+ detail: string;
2736
+ kind: string;
2737
+ name: string | null;
2738
+ } | null;
2739
+ } | null;
2740
+ status: string;
1876
2741
  fanout: {
1877
2742
  mode: "local-only";
1878
2743
  note: string;
1879
2744
  } | {
2745
+ error: string | null;
2746
+ local_only: boolean;
1880
2747
  op: string;
1881
2748
  reachable: boolean;
1882
- local_only: boolean;
1883
2749
  results: {
2750
+ detail: string | null;
2751
+ error: string | null;
1884
2752
  name: string;
1885
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2753
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1886
2754
  payload: unknown;
1887
- error: string | null;
1888
- detail: string | null;
1889
2755
  }[];
1890
- error: string | null;
1891
2756
  mode: "fleet";
1892
2757
  } | {
2758
+ error: string | null;
2759
+ local_only: boolean;
1893
2760
  op: string;
1894
2761
  reachable: boolean;
1895
- local_only: boolean;
1896
2762
  results: {
2763
+ detail: string | null;
2764
+ error: string | null;
1897
2765
  name: string;
1898
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2766
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1899
2767
  payload: unknown;
1900
- error: string | null;
1901
- detail: string | null;
1902
2768
  }[];
1903
- error: string | null;
1904
2769
  mode: "unreachable";
1905
2770
  };
1906
2771
  }>;
1907
2772
  readonly removeToolsEntry: (title: string) => Promise<{
1908
- status: string;
2773
+ awaiting_respawn: {
2774
+ keys: string[];
2775
+ name: string;
2776
+ }[];
1909
2777
  env_keys: number;
2778
+ recycle: {
2779
+ fresh: {
2780
+ generation: number;
2781
+ kind: string;
2782
+ name: string;
2783
+ }[];
2784
+ recycle: {
2785
+ detail: string | null;
2786
+ generation_before: number;
2787
+ kind: string;
2788
+ name: string;
2789
+ status: string;
2790
+ }[];
2791
+ recycle_stopped: {
2792
+ detail: string;
2793
+ kind: string;
2794
+ name: string | null;
2795
+ } | null;
2796
+ } | null;
2797
+ status: string;
1910
2798
  fanout: {
1911
2799
  mode: "local-only";
1912
2800
  note: string;
1913
2801
  } | {
2802
+ error: string | null;
2803
+ local_only: boolean;
1914
2804
  op: string;
1915
2805
  reachable: boolean;
1916
- local_only: boolean;
1917
2806
  results: {
2807
+ detail: string | null;
2808
+ error: string | null;
1918
2809
  name: string;
1919
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2810
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1920
2811
  payload: unknown;
1921
- error: string | null;
1922
- detail: string | null;
1923
2812
  }[];
1924
- error: string | null;
1925
2813
  mode: "fleet";
1926
2814
  } | {
2815
+ error: string | null;
2816
+ local_only: boolean;
1927
2817
  op: string;
1928
2818
  reachable: boolean;
1929
- local_only: boolean;
1930
2819
  results: {
2820
+ detail: string | null;
2821
+ error: string | null;
1931
2822
  name: string;
1932
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2823
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1933
2824
  payload: unknown;
1934
- error: string | null;
1935
- detail: string | null;
1936
2825
  }[];
1937
- error: string | null;
1938
2826
  mode: "unreachable";
1939
2827
  };
1940
2828
  }>;
1941
2829
  readonly addAgentsEntries: (entries: readonly unknown[], replace?: boolean) => Promise<{
1942
- status: string;
2830
+ awaiting_respawn: {
2831
+ keys: string[];
2832
+ name: string;
2833
+ }[];
1943
2834
  env_keys: number;
2835
+ recycle: {
2836
+ fresh: {
2837
+ generation: number;
2838
+ kind: string;
2839
+ name: string;
2840
+ }[];
2841
+ recycle: {
2842
+ detail: string | null;
2843
+ generation_before: number;
2844
+ kind: string;
2845
+ name: string;
2846
+ status: string;
2847
+ }[];
2848
+ recycle_stopped: {
2849
+ detail: string;
2850
+ kind: string;
2851
+ name: string | null;
2852
+ } | null;
2853
+ } | null;
2854
+ status: string;
1944
2855
  fanout: {
1945
2856
  mode: "local-only";
1946
2857
  note: string;
1947
2858
  } | {
2859
+ error: string | null;
2860
+ local_only: boolean;
1948
2861
  op: string;
1949
2862
  reachable: boolean;
1950
- local_only: boolean;
1951
2863
  results: {
2864
+ detail: string | null;
2865
+ error: string | null;
1952
2866
  name: string;
1953
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2867
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1954
2868
  payload: unknown;
1955
- error: string | null;
1956
- detail: string | null;
1957
2869
  }[];
1958
- error: string | null;
1959
2870
  mode: "fleet";
1960
2871
  } | {
2872
+ error: string | null;
2873
+ local_only: boolean;
1961
2874
  op: string;
1962
2875
  reachable: boolean;
1963
- local_only: boolean;
1964
2876
  results: {
2877
+ detail: string | null;
2878
+ error: string | null;
1965
2879
  name: string;
1966
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2880
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1967
2881
  payload: unknown;
1968
- error: string | null;
1969
- detail: string | null;
1970
2882
  }[];
1971
- error: string | null;
1972
2883
  mode: "unreachable";
1973
2884
  };
1974
2885
  }>;
1975
2886
  readonly removeAgentsEntry: (title: string) => Promise<{
1976
- status: string;
2887
+ awaiting_respawn: {
2888
+ keys: string[];
2889
+ name: string;
2890
+ }[];
1977
2891
  env_keys: number;
2892
+ recycle: {
2893
+ fresh: {
2894
+ generation: number;
2895
+ kind: string;
2896
+ name: string;
2897
+ }[];
2898
+ recycle: {
2899
+ detail: string | null;
2900
+ generation_before: number;
2901
+ kind: string;
2902
+ name: string;
2903
+ status: string;
2904
+ }[];
2905
+ recycle_stopped: {
2906
+ detail: string;
2907
+ kind: string;
2908
+ name: string | null;
2909
+ } | null;
2910
+ } | null;
2911
+ status: string;
1978
2912
  fanout: {
1979
2913
  mode: "local-only";
1980
2914
  note: string;
1981
2915
  } | {
2916
+ error: string | null;
2917
+ local_only: boolean;
1982
2918
  op: string;
1983
2919
  reachable: boolean;
1984
- local_only: boolean;
1985
2920
  results: {
2921
+ detail: string | null;
2922
+ error: string | null;
1986
2923
  name: string;
1987
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2924
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
1988
2925
  payload: unknown;
1989
- error: string | null;
1990
- detail: string | null;
1991
2926
  }[];
1992
- error: string | null;
1993
2927
  mode: "fleet";
1994
2928
  } | {
2929
+ error: string | null;
2930
+ local_only: boolean;
1995
2931
  op: string;
1996
2932
  reachable: boolean;
1997
- local_only: boolean;
1998
2933
  results: {
2934
+ detail: string | null;
2935
+ error: string | null;
1999
2936
  name: string;
2000
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2937
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
2001
2938
  payload: unknown;
2002
- error: string | null;
2003
- detail: string | null;
2004
2939
  }[];
2005
- error: string | null;
2006
2940
  mode: "unreachable";
2007
2941
  };
2008
2942
  }>;
2009
2943
  readonly updateApiTools: (body: import("@tai42/api-client").ApiToolsListsBody) => Promise<{
2010
- status: string;
2944
+ awaiting_respawn: {
2945
+ keys: string[];
2946
+ name: string;
2947
+ }[];
2011
2948
  env_keys: number;
2949
+ recycle: {
2950
+ fresh: {
2951
+ generation: number;
2952
+ kind: string;
2953
+ name: string;
2954
+ }[];
2955
+ recycle: {
2956
+ detail: string | null;
2957
+ generation_before: number;
2958
+ kind: string;
2959
+ name: string;
2960
+ status: string;
2961
+ }[];
2962
+ recycle_stopped: {
2963
+ detail: string;
2964
+ kind: string;
2965
+ name: string | null;
2966
+ } | null;
2967
+ } | null;
2968
+ status: string;
2012
2969
  fanout: {
2013
2970
  mode: "local-only";
2014
2971
  note: string;
2015
2972
  } | {
2973
+ error: string | null;
2974
+ local_only: boolean;
2016
2975
  op: string;
2017
2976
  reachable: boolean;
2018
- local_only: boolean;
2019
2977
  results: {
2978
+ detail: string | null;
2979
+ error: string | null;
2020
2980
  name: string;
2021
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2981
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
2022
2982
  payload: unknown;
2023
- error: string | null;
2024
- detail: string | null;
2025
2983
  }[];
2026
- error: string | null;
2027
2984
  mode: "fleet";
2028
2985
  } | {
2986
+ error: string | null;
2987
+ local_only: boolean;
2029
2988
  op: string;
2030
2989
  reachable: boolean;
2031
- local_only: boolean;
2032
2990
  results: {
2991
+ detail: string | null;
2992
+ error: string | null;
2033
2993
  name: string;
2034
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
2994
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
2035
2995
  payload: unknown;
2036
- error: string | null;
2037
- detail: string | null;
2038
2996
  }[];
2039
- error: string | null;
2040
2997
  mode: "unreachable";
2041
2998
  };
2042
2999
  }>;
2043
3000
  readonly listFailedMcps: (signal?: AbortSignal) => Promise<{
3001
+ error: string | null;
3002
+ local_only: boolean;
3003
+ ok: boolean;
2044
3004
  op: string;
2045
3005
  reachable: boolean;
2046
- local_only: boolean;
2047
3006
  results: {
3007
+ detail: string | null;
3008
+ error: string | null;
2048
3009
  name: string;
2049
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
3010
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
2050
3011
  payload: unknown;
2051
- error: string | null;
2052
- detail: string | null;
2053
3012
  }[];
2054
- error: string | null;
2055
3013
  }>;
2056
3014
  readonly reloadFailedMcps: () => Promise<{
3015
+ error: string | null;
3016
+ local_only: boolean;
3017
+ ok: boolean;
2057
3018
  op: string;
2058
3019
  reachable: boolean;
2059
- local_only: boolean;
2060
3020
  results: {
3021
+ detail: string | null;
3022
+ error: string | null;
2061
3023
  name: string;
2062
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
3024
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
2063
3025
  payload: unknown;
2064
- error: string | null;
2065
- detail: string | null;
2066
3026
  }[];
2067
- error: string | null;
2068
3027
  }>;
2069
3028
  readonly deregisterMcp: (title: string) => Promise<{
3029
+ error: string | null;
3030
+ local_only: boolean;
3031
+ ok: boolean;
2070
3032
  op: string;
2071
3033
  reachable: boolean;
2072
- local_only: boolean;
2073
3034
  results: {
3035
+ detail: string | null;
3036
+ error: string | null;
2074
3037
  name: string;
2075
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
3038
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
2076
3039
  payload: unknown;
2077
- error: string | null;
2078
- detail: string | null;
2079
3040
  }[];
2080
- error: string | null;
2081
3041
  }>;
2082
3042
  readonly listTemplates: (signal?: AbortSignal) => Promise<string[]>;
2083
3043
  readonly getTemplate: (templateId: string) => Promise<{
2084
- template: string;
2085
3044
  schema: Record<string, unknown>;
3045
+ template: string;
2086
3046
  }>;
2087
3047
  readonly uploadTemplate: (path: string, content: string) => Promise<{
3048
+ fanout: {
3049
+ error: string | null;
3050
+ local_only: boolean | null;
3051
+ mode: string;
3052
+ note: string | null;
3053
+ op: string | null;
3054
+ reachable: boolean | null;
3055
+ results: {
3056
+ detail: string | null;
3057
+ error: string | null;
3058
+ name: string;
3059
+ outcome: string;
3060
+ payload: unknown;
3061
+ }[] | null;
3062
+ };
2088
3063
  path: string;
2089
- uploaded: true;
3064
+ uploaded: boolean;
2090
3065
  }>;
2091
3066
  readonly deleteTemplate: (path: string) => Promise<{
3067
+ deleted: boolean;
3068
+ fanout: {
3069
+ error: string | null;
3070
+ local_only: boolean | null;
3071
+ mode: string;
3072
+ note: string | null;
3073
+ op: string | null;
3074
+ reachable: boolean | null;
3075
+ results: {
3076
+ detail: string | null;
3077
+ error: string | null;
3078
+ name: string;
3079
+ outcome: string;
3080
+ payload: unknown;
3081
+ }[] | null;
3082
+ };
2092
3083
  path: string;
2093
- deleted: true;
2094
3084
  }>;
2095
3085
  readonly deleteTemplateDir: (path: string) => Promise<{
3086
+ deleted: boolean;
3087
+ fanout: {
3088
+ error: string | null;
3089
+ local_only: boolean | null;
3090
+ mode: string;
3091
+ note: string | null;
3092
+ op: string | null;
3093
+ reachable: boolean | null;
3094
+ results: {
3095
+ detail: string | null;
3096
+ error: string | null;
3097
+ name: string;
3098
+ outcome: string;
3099
+ payload: unknown;
3100
+ }[] | null;
3101
+ };
2096
3102
  path: string;
2097
- deleted: true;
2098
3103
  }>;
2099
3104
  readonly renderTemplate: (text: import("@tai42/api-client").TemplatedText) => Promise<{
2100
3105
  rendered: string;
2101
3106
  }>;
2102
3107
  readonly clearTemplatesCache: () => Promise<{
2103
- cleared: true;
3108
+ cleared: boolean;
3109
+ fanout: {
3110
+ error: string | null;
3111
+ local_only: boolean | null;
3112
+ mode: string;
3113
+ note: string | null;
3114
+ op: string | null;
3115
+ reachable: boolean | null;
3116
+ results: {
3117
+ detail: string | null;
3118
+ error: string | null;
3119
+ name: string;
3120
+ outcome: string;
3121
+ payload: unknown;
3122
+ }[] | null;
3123
+ };
2104
3124
  }>;
2105
3125
  readonly listExtensions: (signal?: AbortSignal) => Promise<{
2106
- name: string;
2107
3126
  kind: string;
3127
+ multiple: boolean;
3128
+ name: string;
2108
3129
  }[]>;
2109
3130
  readonly getToolExtensions: (name: string, signal?: AbortSignal) => Promise<{
3131
+ available: {
3132
+ kind: string;
3133
+ multiple: boolean;
3134
+ name: string;
3135
+ }[];
2110
3136
  combos: (string | {
2111
3137
  name: string;
2112
3138
  config: Record<string, unknown>;
2113
3139
  })[][];
2114
- available: {
2115
- name: string;
2116
- kind: string;
2117
- }[];
2118
3140
  }>;
2119
3141
  readonly setToolExtensions: (name: string, combos: readonly import("@tai42/api-client").PresetExtensionElement[][]) => Promise<{
2120
- status: string;
3142
+ awaiting_respawn: {
3143
+ keys: string[];
3144
+ name: string;
3145
+ }[];
2121
3146
  env_keys: number;
3147
+ recycle: {
3148
+ fresh: {
3149
+ generation: number;
3150
+ kind: string;
3151
+ name: string;
3152
+ }[];
3153
+ recycle: {
3154
+ detail: string | null;
3155
+ generation_before: number;
3156
+ kind: string;
3157
+ name: string;
3158
+ status: string;
3159
+ }[];
3160
+ recycle_stopped: {
3161
+ detail: string;
3162
+ kind: string;
3163
+ name: string | null;
3164
+ } | null;
3165
+ } | null;
3166
+ status: string;
2122
3167
  fanout: {
2123
3168
  mode: "local-only";
2124
3169
  note: string;
2125
3170
  } | {
3171
+ error: string | null;
3172
+ local_only: boolean;
2126
3173
  op: string;
2127
3174
  reachable: boolean;
2128
- local_only: boolean;
2129
3175
  results: {
3176
+ detail: string | null;
3177
+ error: string | null;
2130
3178
  name: string;
2131
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
3179
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
2132
3180
  payload: unknown;
2133
- error: string | null;
2134
- detail: string | null;
2135
3181
  }[];
2136
- error: string | null;
2137
3182
  mode: "fleet";
2138
3183
  } | {
3184
+ error: string | null;
3185
+ local_only: boolean;
2139
3186
  op: string;
2140
3187
  reachable: boolean;
2141
- local_only: boolean;
2142
3188
  results: {
3189
+ detail: string | null;
3190
+ error: string | null;
2143
3191
  name: string;
2144
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
3192
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
2145
3193
  payload: unknown;
2146
- error: string | null;
2147
- detail: string | null;
2148
3194
  }[];
2149
- error: string | null;
2150
3195
  mode: "unreachable";
2151
3196
  };
2152
3197
  }>;
2153
3198
  readonly getBackendInfo: (signal?: AbortSignal) => Promise<{
2154
- present: boolean;
2155
3199
  backend: string | null;
2156
3200
  module: string | null;
3201
+ present: boolean;
2157
3202
  }>;
2158
3203
  readonly listFleetWorkers: (signal?: AbortSignal) => Promise<{
2159
3204
  workers: {
2160
- name: string;
2161
- kind: "backend" | "serve";
2162
- pid: number;
3205
+ beat_at: string;
2163
3206
  generation: number;
2164
3207
  joined_at: string;
2165
- beat_at: string;
2166
- state: "ready" | "resyncing" | "recycling";
2167
- stale: boolean;
3208
+ kind: "backend" | "serve";
2168
3209
  last_op: {
3210
+ at: string;
2169
3211
  op: string;
2170
3212
  outcome: string;
2171
- at: string;
2172
3213
  } | null;
3214
+ name: string;
3215
+ pid: number;
3216
+ stale: boolean;
3217
+ state: "resyncing" | "recycling" | "ready";
2173
3218
  }[];
2174
3219
  }>;
2175
3220
  readonly reloadFleetConfig: (targets: string[] | null) => Promise<{
3221
+ error: string | null;
3222
+ local_only: boolean;
3223
+ ok: boolean;
2176
3224
  op: string;
2177
3225
  reachable: boolean;
2178
- local_only: boolean;
2179
3226
  results: {
3227
+ detail: string | null;
3228
+ error: string | null;
2180
3229
  name: string;
2181
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
3230
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
2182
3231
  payload: unknown;
2183
- error: string | null;
2184
- detail: string | null;
2185
3232
  }[];
2186
- error: string | null;
2187
3233
  }>;
2188
3234
  readonly getStorageInfo: (signal?: AbortSignal) => Promise<{
3235
+ module: string | null;
2189
3236
  present: boolean;
2190
3237
  provider: string | null;
2191
- module: string | null;
2192
3238
  }>;
2193
3239
  readonly listStorageResources: (signal?: AbortSignal) => Promise<{
2194
3240
  resources: string[];
2195
3241
  }>;
2196
3242
  readonly statStorageResource: (id: string, signal?: AbortSignal) => Promise<{
2197
- id: string;
2198
3243
  content_type: string | null;
3244
+ id: string;
2199
3245
  }>;
2200
3246
  readonly downloadStorageResource: (id: string, signal?: AbortSignal) => Promise<Blob>;
2201
3247
  readonly uploadStorageResource: (body: import("@tai42/api-client").StorageUploadBody) => Promise<{
2202
3248
  id: string;
2203
- stored: true;
3249
+ stored: boolean;
2204
3250
  }>;
2205
3251
  readonly deleteStorageResource: (id: string) => Promise<{
3252
+ deleted: boolean;
2206
3253
  id: string;
2207
- deleted: true;
2208
3254
  }>;
2209
3255
  readonly deleteStorageDir: (path: string) => Promise<{
3256
+ deleted: boolean;
2210
3257
  dir: string;
2211
- deleted: true;
2212
3258
  }>;
2213
3259
  readonly listToolMeta: (signal?: AbortSignal) => Promise<{
2214
3260
  folders: {
@@ -2217,25 +3263,25 @@ export declare const ApiProvider: import("react").Provider<{
2217
3263
  parent_id: string | null;
2218
3264
  }[];
2219
3265
  meta: {
2220
- tool_name: string;
3266
+ badges: string[];
2221
3267
  display_name: string | null;
2222
3268
  folder_id: string | null;
2223
- tags: string[];
2224
- badges: string[];
2225
3269
  hidden: boolean | null;
3270
+ tags: string[];
3271
+ tool_name: string;
2226
3272
  }[];
2227
3273
  }>;
2228
3274
  readonly upsertToolMeta: (toolName: string, patch: import("@tai42/api-client").ToolMetaPatch) => Promise<{
2229
- tool_name: string;
3275
+ badges: string[];
2230
3276
  display_name: string | null;
2231
3277
  folder_id: string | null;
2232
- tags: string[];
2233
- badges: string[];
2234
3278
  hidden: boolean | null;
3279
+ tags: string[];
3280
+ tool_name: string;
2235
3281
  }>;
2236
3282
  readonly deleteToolMeta: (toolName: string) => Promise<{
3283
+ deleted: boolean;
2237
3284
  tool_name: string;
2238
- deleted: true;
2239
3285
  }>;
2240
3286
  readonly createFolder: (name: string, parentId?: string | null) => Promise<{
2241
3287
  id: string;
@@ -2253,15 +3299,18 @@ export declare const ApiProvider: import("react").Provider<{
2253
3299
  parent_id: string | null;
2254
3300
  }>;
2255
3301
  readonly deleteFolder: (folderId: string) => Promise<{
3302
+ deleted: boolean;
2256
3303
  folder_id: string;
2257
- deleted: true;
2258
3304
  }>;
2259
3305
  readonly listStates: (signal?: AbortSignal) => Promise<{
2260
3306
  default_subject_kind: string;
2261
3307
  description: string;
2262
3308
  effective_schema: Record<string, unknown> | null;
2263
3309
  name: string;
2264
- regimes: Record<string, unknown>[] | null;
3310
+ regimes: {
3311
+ path: string[];
3312
+ regime: "single" | "composing" | "free";
3313
+ }[] | null;
2265
3314
  retention_days: number | null;
2266
3315
  subject_kinds: string[];
2267
3316
  updated_at: string | null;
@@ -2276,15 +3325,18 @@ export declare const ApiProvider: import("react").Provider<{
2276
3325
  description: string;
2277
3326
  effective_schema: Record<string, unknown> | null;
2278
3327
  name: string;
2279
- regimes: Record<string, unknown>[] | null;
3328
+ regimes: {
3329
+ path: string[];
3330
+ regime: "single" | "composing" | "free";
3331
+ }[] | null;
2280
3332
  retention_days: number | null;
2281
3333
  subject_kinds: string[];
2282
3334
  updated_at: string | null;
2283
3335
  attachments: {
2284
- template: string;
2285
- path: string[];
2286
- parameters: Record<string, unknown>;
2287
3336
  declarations: Record<string, unknown>;
3337
+ parameters: Record<string, unknown>;
3338
+ path: string[];
3339
+ template: string;
2288
3340
  }[];
2289
3341
  schema?: Record<string, unknown> | {
2290
3342
  content?: string | undefined;
@@ -2297,16 +3349,23 @@ export declare const ApiProvider: import("react").Provider<{
2297
3349
  description: string;
2298
3350
  effective_schema: Record<string, unknown> | null;
2299
3351
  name: string;
2300
- regimes: Record<string, unknown>[] | null;
3352
+ regimes: {
3353
+ path: string[];
3354
+ regime: "single" | "composing" | "free";
3355
+ }[] | null;
2301
3356
  retention_days: number | null;
2302
3357
  subject_kinds: string[];
2303
3358
  updated_at: string | null;
2304
- attachments: {
2305
- template: string;
2306
- path: string[];
2307
- parameters: Record<string, unknown>;
2308
- declarations: Record<string, unknown>;
2309
- }[];
3359
+ held?: {
3360
+ held_by: string;
3361
+ save_id: string;
3362
+ subjects: {
3363
+ key: string;
3364
+ kind: string;
3365
+ target_kind: "tool" | "agent";
3366
+ target_name: string;
3367
+ }[];
3368
+ }[] | undefined;
2310
3369
  schema?: Record<string, unknown> | {
2311
3370
  content?: string | undefined;
2312
3371
  id?: string | undefined;
@@ -2314,138 +3373,179 @@ export declare const ApiProvider: import("react").Provider<{
2314
3373
  } | undefined;
2315
3374
  }>;
2316
3375
  readonly deleteState: (name: string) => Promise<{
3376
+ deleted: boolean;
2317
3377
  name: string;
2318
- deleted: true;
2319
3378
  }>;
2320
3379
  readonly getStateStats: (name: string, signal?: AbortSignal) => Promise<{
2321
- records: number;
3380
+ consumers: number;
2322
3381
  per_field: Record<string, number>;
2323
3382
  per_kind: Record<string, number>;
2324
- consumers: number;
3383
+ records: number;
3384
+ held?: {
3385
+ held_by: string;
3386
+ save_id: string;
3387
+ subjects: {
3388
+ key: string;
3389
+ kind: string;
3390
+ target_kind: "tool" | "agent";
3391
+ target_name: string;
3392
+ }[];
3393
+ }[] | undefined;
2325
3394
  }>;
2326
3395
  readonly listStateAttachments: (name: string, signal?: AbortSignal) => Promise<{
2327
- template: string;
2328
- path: string[];
2329
- parameters: Record<string, unknown>;
2330
3396
  declarations: Record<string, unknown>;
3397
+ parameters: Record<string, unknown>;
3398
+ path: string[];
3399
+ state: string;
3400
+ template: string;
2331
3401
  }[]>;
2332
3402
  readonly getStateAttachment: (name: string, template: string, signal?: AbortSignal) => Promise<{
2333
- template: string;
2334
- path: string[];
2335
- parameters: Record<string, unknown>;
2336
3403
  declarations: Record<string, unknown>;
3404
+ parameters: Record<string, unknown>;
3405
+ path: string[];
3406
+ template: string;
2337
3407
  }>;
2338
3408
  readonly attachStateTemplate: (name: string, template: string, body: import("@tai42/api-client").StateAttachmentBody) => Promise<{
2339
- attached: true;
3409
+ attached: boolean;
2340
3410
  state: string;
2341
3411
  template: string;
3412
+ held?: {
3413
+ held_by: string;
3414
+ save_id: string;
3415
+ subjects: {
3416
+ key: string;
3417
+ kind: string;
3418
+ target_kind: "tool" | "agent";
3419
+ target_name: string;
3420
+ }[];
3421
+ }[] | undefined;
2342
3422
  }>;
2343
3423
  readonly patchStateAttachment: (name: string, template: string, body: import("@tai42/api-client").StateAttachmentBody) => Promise<{
2344
- updated: true;
2345
3424
  state: string;
2346
3425
  template: string;
3426
+ updated: boolean;
2347
3427
  }>;
2348
3428
  readonly detachStateTemplate: (name: string, template: string) => Promise<{
2349
- detached: true;
3429
+ detached: boolean;
2350
3430
  state: string;
2351
3431
  template: string;
2352
3432
  }>;
2353
3433
  readonly listStateSubjects: (name: string, params: {
2354
3434
  kind?: string;
2355
3435
  } & import("@tai42/api-client").StatePageQuery, signal?: AbortSignal) => Promise<{
3436
+ next_cursor: string | null;
2356
3437
  subjects: {
2357
3438
  subject: {
3439
+ key: string;
3440
+ kind: string;
2358
3441
  target_kind: "tool" | "agent";
2359
3442
  target_name: string;
2360
- kind: string;
2361
- key: string;
2362
3443
  };
2363
3444
  updated_at: number;
2364
3445
  }[];
2365
- next_cursor: string | null;
3446
+ held?: {
3447
+ held_by: string;
3448
+ save_id: string;
3449
+ subjects: {
3450
+ key: string;
3451
+ kind: string;
3452
+ target_kind: "tool" | "agent";
3453
+ target_name: string;
3454
+ }[];
3455
+ }[] | undefined;
2366
3456
  }>;
2367
3457
  readonly searchStateRecords: (name: string, body: {
2368
3458
  filters: Record<string, unknown>;
2369
3459
  } & import("@tai42/api-client").StatePageQuery, signal?: AbortSignal) => Promise<{
2370
3460
  matches: {
2371
3461
  subject: {
3462
+ key: string;
3463
+ kind: string;
2372
3464
  target_kind: "tool" | "agent";
2373
3465
  target_name: string;
2374
- kind: string;
2375
- key: string;
2376
3466
  };
2377
3467
  updated_at: number;
2378
3468
  }[];
2379
3469
  next_cursor: string | null;
3470
+ held?: {
3471
+ held_by: string;
3472
+ save_id: string;
3473
+ subjects: {
3474
+ key: string;
3475
+ kind: string;
3476
+ target_kind: "tool" | "agent";
3477
+ target_name: string;
3478
+ }[];
3479
+ }[] | undefined;
2380
3480
  }>;
2381
3481
  readonly getStateRecord: (name: string, subject: import("@tai42/api-client").StateSubjectRef, signal?: AbortSignal) => Promise<{
2382
- state: string;
2383
- subject: {
2384
- target_kind: "tool" | "agent";
2385
- target_name: string;
2386
- kind: string;
2387
- key: string;
2388
- };
2389
- data: Record<string, unknown>;
2390
- seq: number;
2391
3482
  canonical_subject: {
3483
+ key: string;
3484
+ kind: string;
2392
3485
  target_kind: "tool" | "agent";
2393
3486
  target_name: string;
2394
- kind: string;
2395
- key: string;
2396
3487
  };
3488
+ data: Record<string, unknown>;
2397
3489
  folded_from: {
3490
+ key: string;
3491
+ kind: string;
2398
3492
  target_kind: "tool" | "agent";
2399
3493
  target_name: string;
2400
- kind: string;
2401
- key: string;
2402
3494
  }[];
2403
- } | null>;
2404
- readonly putStateRecord: (name: string, subject: import("@tai42/api-client").StateSubjectRef, data: Record<string, unknown>) => Promise<{
3495
+ seq: number;
2405
3496
  state: string;
2406
3497
  subject: {
3498
+ key: string;
3499
+ kind: string;
2407
3500
  target_kind: "tool" | "agent";
2408
3501
  target_name: string;
2409
- kind: string;
2410
- key: string;
2411
3502
  };
2412
- data: Record<string, unknown>;
2413
- seq: number;
3503
+ } | null>;
3504
+ readonly putStateRecord: (name: string, subject: import("@tai42/api-client").StateSubjectRef, data: Record<string, unknown>) => Promise<{
2414
3505
  canonical_subject: {
3506
+ key: string;
3507
+ kind: string;
2415
3508
  target_kind: "tool" | "agent";
2416
3509
  target_name: string;
2417
- kind: string;
2418
- key: string;
2419
3510
  };
3511
+ data: Record<string, unknown>;
2420
3512
  folded_from: {
3513
+ key: string;
3514
+ kind: string;
2421
3515
  target_kind: "tool" | "agent";
2422
3516
  target_name: string;
2423
- kind: string;
2424
- key: string;
2425
3517
  }[];
2426
- }>;
2427
- readonly patchStateRecord: (name: string, subject: import("@tai42/api-client").StateSubjectRef, data: Record<string, unknown>) => Promise<{
3518
+ seq: number;
2428
3519
  state: string;
2429
3520
  subject: {
3521
+ key: string;
3522
+ kind: string;
3523
+ target_kind: "tool" | "agent";
3524
+ target_name: string;
3525
+ };
3526
+ }>;
3527
+ readonly patchStateRecord: (name: string, subject: import("@tai42/api-client").StateSubjectRef, data: Record<string, unknown>) => Promise<{
3528
+ canonical_subject: {
3529
+ key: string;
3530
+ kind: string;
2430
3531
  target_kind: "tool" | "agent";
2431
3532
  target_name: string;
2432
- kind: string;
2433
- key: string;
2434
3533
  };
2435
3534
  data: Record<string, unknown>;
2436
- seq: number;
2437
- canonical_subject: {
3535
+ folded_from: {
3536
+ key: string;
3537
+ kind: string;
2438
3538
  target_kind: "tool" | "agent";
2439
3539
  target_name: string;
2440
- kind: string;
3540
+ }[];
3541
+ seq: number;
3542
+ state: string;
3543
+ subject: {
2441
3544
  key: string;
2442
- };
2443
- folded_from: {
3545
+ kind: string;
2444
3546
  target_kind: "tool" | "agent";
2445
3547
  target_name: string;
2446
- kind: string;
2447
- key: string;
2448
- }[];
3548
+ };
2449
3549
  }>;
2450
3550
  readonly applyStateRecord: (name: string, subject: import("@tai42/api-client").StateSubjectRef, ops: readonly Record<string, unknown>[]) => Promise<{
2451
3551
  applied: boolean;
@@ -2462,55 +3562,56 @@ export declare const ApiProvider: import("react").Provider<{
2462
3562
  input?: unknown;
2463
3563
  op_id?: string;
2464
3564
  }) => Promise<{
2465
- name: string;
2466
3565
  applied: boolean;
2467
3566
  data: Record<string, unknown> | null;
3567
+ name: string;
2468
3568
  seq: number | null;
2469
3569
  skipped: Record<string, unknown>[];
2470
3570
  }>;
2471
3571
  readonly deleteStateRecord: (name: string, subject: import("@tai42/api-client").StateSubjectRef) => Promise<{
2472
- erased: true;
3572
+ erased: boolean;
2473
3573
  }>;
2474
3574
  readonly foldStateRecord: (name: string, subject: import("@tai42/api-client").StateSubjectRef, into: import("@tai42/api-client").StateSubjectRef, mode: "switch" | "merge") => Promise<{
2475
- mode: "switch" | "merge";
3575
+ already: boolean;
3576
+ flattened: number;
2476
3577
  from: {
2477
- kind: string;
2478
3578
  key: string;
3579
+ kind: string;
2479
3580
  };
2480
3581
  into: {
2481
- kind: string;
2482
3582
  key: string;
3583
+ kind: string;
2483
3584
  };
2484
- already: boolean;
2485
- flattened: number;
3585
+ merged_members: string[] | null;
3586
+ mode: "switch" | "merge";
2486
3587
  }>;
2487
3588
  readonly listStateWrites: (name: string, subject: import("@tai42/api-client").StateSubjectRef, params?: import("@tai42/api-client").StatePageQuery, signal?: AbortSignal) => Promise<{
2488
3589
  items: {
2489
- seq: number;
2490
3590
  at: string;
2491
3591
  origin: {
3592
+ actor: string | null;
2492
3593
  consumer: string | null;
3594
+ door: "tool" | "api" | "conversation" | "hook" | "schedule" | "operator";
3595
+ inbound_id: string | null;
2493
3596
  meta: Record<string, unknown> | null;
2494
- run_id: string | null;
2495
3597
  op_id: string | null;
2496
- door: string;
2497
- actor: string | null;
3598
+ run_id: string | null;
2498
3599
  turn_id: string | null;
2499
- inbound_id: string | null;
2500
3600
  };
2501
3601
  paths: (string | number)[][];
3602
+ seq: number;
2502
3603
  }[];
2503
3604
  next_cursor: string | null;
2504
3605
  }>;
2505
3606
  readonly stateConsumers: (name: string, signal?: AbortSignal) => Promise<{
2506
- kind: string;
2507
- name: string | null;
2508
3607
  detail: string | null;
3608
+ kind: string;
2509
3609
  link: {
2510
- token: string | null;
2511
3610
  plugin_path: string | null;
2512
3611
  search: Record<string, unknown> | null;
3612
+ token: string | null;
2513
3613
  } | null;
3614
+ name: string | null;
2514
3615
  unavailable: string | null;
2515
3616
  }[]>;
2516
3617
  readonly listStateTemplates: (signal?: AbortSignal) => Promise<{
@@ -2525,7 +3626,10 @@ export declare const ApiProvider: import("react").Provider<{
2525
3626
  description: string;
2526
3627
  kind: "state-template";
2527
3628
  name: string;
2528
- parameters: Record<string, unknown>;
3629
+ parameters: Record<string, {
3630
+ schema: Record<string, unknown>;
3631
+ default?: unknown;
3632
+ }>;
2529
3633
  reconcile: {
2530
3634
  close: {
2531
3635
  content?: string | undefined;
@@ -2543,7 +3647,10 @@ export declare const ApiProvider: import("react").Provider<{
2543
3647
  kwargs?: Record<string, unknown> | undefined;
2544
3648
  };
2545
3649
  } | null;
2546
- regimes: Record<string, unknown>[];
3650
+ regimes: {
3651
+ path: string[];
3652
+ regime: "single" | "composing" | "free";
3653
+ }[];
2547
3654
  template_jq: Record<string, {
2548
3655
  description: string;
2549
3656
  jq: {
@@ -2556,7 +3663,6 @@ export declare const ApiProvider: import("react").Provider<{
2556
3663
  reads: string[][];
2557
3664
  writes: string[][];
2558
3665
  }> | null;
2559
- trace: Record<string, unknown>;
2560
3666
  attached_to: number;
2561
3667
  shipped_default: boolean;
2562
3668
  schema?: Record<string, unknown> | {
@@ -2564,6 +3670,9 @@ export declare const ApiProvider: import("react").Provider<{
2564
3670
  id?: string | undefined;
2565
3671
  kwargs?: Record<string, unknown> | undefined;
2566
3672
  } | undefined;
3673
+ trace?: {
3674
+ enabled: boolean;
3675
+ } | undefined;
2567
3676
  }[]>;
2568
3677
  readonly getStateTemplate: (name: string, signal?: AbortSignal) => Promise<{
2569
3678
  declarations: {
@@ -2577,7 +3686,10 @@ export declare const ApiProvider: import("react").Provider<{
2577
3686
  description: string;
2578
3687
  kind: "state-template";
2579
3688
  name: string;
2580
- parameters: Record<string, unknown>;
3689
+ parameters: Record<string, {
3690
+ schema: Record<string, unknown>;
3691
+ default?: unknown;
3692
+ }>;
2581
3693
  reconcile: {
2582
3694
  close: {
2583
3695
  content?: string | undefined;
@@ -2595,7 +3707,10 @@ export declare const ApiProvider: import("react").Provider<{
2595
3707
  kwargs?: Record<string, unknown> | undefined;
2596
3708
  };
2597
3709
  } | null;
2598
- regimes: Record<string, unknown>[];
3710
+ regimes: {
3711
+ path: string[];
3712
+ regime: "single" | "composing" | "free";
3713
+ }[];
2599
3714
  template_jq: Record<string, {
2600
3715
  description: string;
2601
3716
  jq: {
@@ -2608,12 +3723,14 @@ export declare const ApiProvider: import("react").Provider<{
2608
3723
  reads: string[][];
2609
3724
  writes: string[][];
2610
3725
  }> | null;
2611
- trace: Record<string, unknown>;
2612
3726
  schema?: Record<string, unknown> | {
2613
3727
  content?: string | undefined;
2614
3728
  id?: string | undefined;
2615
3729
  kwargs?: Record<string, unknown> | undefined;
2616
3730
  } | undefined;
3731
+ trace?: {
3732
+ enabled: boolean;
3733
+ } | undefined;
2617
3734
  }>;
2618
3735
  readonly putStateTemplate: (name: string, body: import("@tai42/api-client").StateTemplateBody, replace?: boolean) => Promise<{
2619
3736
  declarations: {
@@ -2627,7 +3744,10 @@ export declare const ApiProvider: import("react").Provider<{
2627
3744
  description: string;
2628
3745
  kind: "state-template";
2629
3746
  name: string;
2630
- parameters: Record<string, unknown>;
3747
+ parameters: Record<string, {
3748
+ schema: Record<string, unknown>;
3749
+ default?: unknown;
3750
+ }>;
2631
3751
  reconcile: {
2632
3752
  close: {
2633
3753
  content?: string | undefined;
@@ -2645,7 +3765,10 @@ export declare const ApiProvider: import("react").Provider<{
2645
3765
  kwargs?: Record<string, unknown> | undefined;
2646
3766
  };
2647
3767
  } | null;
2648
- regimes: Record<string, unknown>[];
3768
+ regimes: {
3769
+ path: string[];
3770
+ regime: "single" | "composing" | "free";
3771
+ }[];
2649
3772
  template_jq: Record<string, {
2650
3773
  description: string;
2651
3774
  jq: {
@@ -2658,70 +3781,124 @@ export declare const ApiProvider: import("react").Provider<{
2658
3781
  reads: string[][];
2659
3782
  writes: string[][];
2660
3783
  }> | null;
2661
- trace: Record<string, unknown>;
2662
3784
  schema?: Record<string, unknown> | {
2663
3785
  content?: string | undefined;
2664
3786
  id?: string | undefined;
2665
3787
  kwargs?: Record<string, unknown> | undefined;
2666
3788
  } | undefined;
3789
+ trace?: {
3790
+ enabled: boolean;
3791
+ } | undefined;
2667
3792
  }>;
2668
3793
  readonly deleteStateTemplate: (name: string) => Promise<{
3794
+ deleted: boolean;
2669
3795
  name: string;
2670
- deleted: true;
2671
3796
  }>;
2672
3797
  readonly pruneStateRetention: () => Promise<{
2673
3798
  pruned: Record<string, number>;
3799
+ held?: {
3800
+ held_by: string;
3801
+ save_id: string;
3802
+ subjects: {
3803
+ key: string;
3804
+ kind: string;
3805
+ target_kind: "tool" | "agent";
3806
+ target_name: string;
3807
+ }[];
3808
+ }[] | undefined;
3809
+ }>;
3810
+ readonly listPendingSaves: (params: {
3811
+ status?: "outstanding" | "failed";
3812
+ } & import("@tai42/api-client").StatePageQuery, signal?: AbortSignal) => Promise<{
3813
+ failed: number;
3814
+ items: {
3815
+ attempts: number;
3816
+ calls: {
3817
+ kind: string;
3818
+ target: string;
3819
+ }[];
3820
+ created_at: string;
3821
+ failed_at: string | null;
3822
+ failed_phase: "calls" | "records" | null;
3823
+ id: string;
3824
+ last_error: string | null;
3825
+ run_id: string | null;
3826
+ states: string[];
3827
+ status: "running" | "failed" | "calls" | "pending";
3828
+ subjects: {
3829
+ state: string;
3830
+ subject: {
3831
+ key: string;
3832
+ kind: string;
3833
+ target_kind: "tool" | "agent";
3834
+ target_name: string;
3835
+ };
3836
+ }[];
3837
+ }[];
3838
+ next_cursor: string | null;
3839
+ outstanding: number;
3840
+ }>;
3841
+ readonly retryPendingSave: (id: string) => Promise<{
3842
+ id: string;
3843
+ last_error: string | null;
3844
+ status: "running" | "applied" | "failed" | "calls" | "pending";
3845
+ }>;
3846
+ readonly discardPendingSave: (id: string) => Promise<{
3847
+ discarded: string;
2674
3848
  }>;
2675
3849
  readonly listPresets: (signal?: AbortSignal) => Promise<{
2676
- name: string;
3850
+ active_version: number;
2677
3851
  base_tool: string;
3852
+ conflicted: boolean;
3853
+ conflicted_reason: string | null;
2678
3854
  description: string;
2679
- active_version: number;
3855
+ input_schema: Record<string, unknown> | null;
3856
+ name: string;
3857
+ output_schema: Record<string, unknown> | null;
3858
+ used_by: string[];
3859
+ uses: string[];
2680
3860
  extensions: (string | {
2681
3861
  name: string;
2682
3862
  config: Record<string, unknown>;
2683
3863
  })[][];
2684
- output_schema: Record<string, unknown> | null;
2685
- input_schema: Record<string, unknown> | null;
2686
- conflicted: boolean;
2687
- conflicted_reason: string | null;
2688
- uses: string[];
2689
- used_by: string[];
2690
3864
  }[]>;
2691
3865
  readonly createPreset: (body: import("@tai42/api-client").CreatePresetBody) => Promise<{
2692
- name: string;
3866
+ active_version: number;
2693
3867
  base_tool: string;
3868
+ conflicted: boolean;
3869
+ conflicted_reason: string | null;
2694
3870
  description: string;
2695
- active_version: number;
3871
+ input_schema: Record<string, unknown> | null;
3872
+ name: string;
3873
+ output_schema: Record<string, unknown> | null;
3874
+ used_by: string[];
3875
+ uses: string[];
2696
3876
  extensions: (string | {
2697
3877
  name: string;
2698
3878
  config: Record<string, unknown>;
2699
3879
  })[][];
2700
- output_schema: Record<string, unknown> | null;
2701
- input_schema: Record<string, unknown> | null;
2702
- conflicted: boolean;
2703
- conflicted_reason: string | null;
2704
- uses: string[];
2705
- used_by: string[];
2706
3880
  }>;
2707
3881
  readonly getPreset: (name: string, signal?: AbortSignal) => Promise<{
2708
- name: string;
3882
+ active_version: number;
2709
3883
  base_tool: string;
3884
+ conflicted: boolean;
3885
+ conflicted_reason: string | null;
2710
3886
  description: string;
2711
- active_version: number;
3887
+ fixed_kwargs: Record<string, unknown>;
3888
+ input_schema: Record<string, unknown> | null;
3889
+ name: string;
3890
+ output_schema: Record<string, unknown> | null;
3891
+ used_by: string[];
3892
+ uses: string[];
2712
3893
  extensions: (string | {
2713
3894
  name: string;
2714
3895
  config: Record<string, unknown>;
2715
3896
  })[][];
2716
- output_schema: Record<string, unknown> | null;
2717
- input_schema: Record<string, unknown> | null;
2718
- conflicted: boolean;
2719
- conflicted_reason: string | null;
2720
- uses: string[];
2721
- used_by: string[];
2722
- fixed_kwargs: Record<string, unknown>;
2723
3897
  }>;
2724
3898
  readonly listPresetVersions: (name: string, signal?: AbortSignal) => Promise<{
3899
+ created_at: string;
3900
+ is_current: boolean;
3901
+ tags: string[];
2725
3902
  version: number;
2726
3903
  body: {
2727
3904
  base_tool: string;
@@ -2782,11 +3959,11 @@ export declare const ApiProvider: import("react").Provider<{
2782
3959
  }[];
2783
3960
  } | null;
2784
3961
  };
2785
- tags: string[];
2786
- created_at: string;
2787
- is_current: boolean;
2788
3962
  }[]>;
2789
3963
  readonly getPresetVersion: (name: string, version: number, signal?: AbortSignal) => Promise<{
3964
+ created_at: string;
3965
+ is_current: boolean;
3966
+ tags: string[];
2790
3967
  version: number;
2791
3968
  body: {
2792
3969
  base_tool: string;
@@ -2847,11 +4024,11 @@ export declare const ApiProvider: import("react").Provider<{
2847
4024
  }[];
2848
4025
  } | null;
2849
4026
  };
2850
- tags: string[];
2851
- created_at: string;
2852
- is_current: boolean;
2853
4027
  }>;
2854
4028
  readonly savePresetVersion: (name: string, body: import("@tai42/api-client").SavePresetVersionBody) => Promise<{
4029
+ created_at: string;
4030
+ is_current: boolean;
4031
+ tags: string[];
2855
4032
  version: number;
2856
4033
  body: {
2857
4034
  base_tool: string;
@@ -2912,101 +4089,276 @@ export declare const ApiProvider: import("react").Provider<{
2912
4089
  }[];
2913
4090
  } | null;
2914
4091
  };
2915
- tags: string[];
2916
- created_at: string;
2917
- is_current: boolean;
2918
4092
  }>;
2919
4093
  readonly rollbackPreset: (name: string, version: number) => Promise<{
2920
- name: string;
2921
4094
  active_version: number;
4095
+ fanout: {
4096
+ error: string | null;
4097
+ local_only: boolean | null;
4098
+ mode: string;
4099
+ note: string | null;
4100
+ op: string | null;
4101
+ reachable: boolean | null;
4102
+ results: {
4103
+ detail: string | null;
4104
+ error: string | null;
4105
+ name: string;
4106
+ outcome: string;
4107
+ payload: unknown;
4108
+ }[] | null;
4109
+ };
4110
+ name: string;
2922
4111
  }>;
2923
4112
  readonly deletePreset: (name: string) => Promise<{
4113
+ deleted: boolean;
4114
+ fanout: {
4115
+ error: string | null;
4116
+ local_only: boolean | null;
4117
+ mode: string;
4118
+ note: string | null;
4119
+ op: string | null;
4120
+ reachable: boolean | null;
4121
+ results: {
4122
+ detail: string | null;
4123
+ error: string | null;
4124
+ name: string;
4125
+ outcome: string;
4126
+ payload: unknown;
4127
+ }[] | null;
4128
+ };
2924
4129
  name: string;
2925
- deleted: true;
2926
4130
  }>;
2927
4131
  readonly renamePreset: (name: string, newName: string) => Promise<{
4132
+ active_version: number;
4133
+ fanout: {
4134
+ error: string | null;
4135
+ local_only: boolean | null;
4136
+ mode: string;
4137
+ note: string | null;
4138
+ op: string | null;
4139
+ reachable: boolean | null;
4140
+ results: {
4141
+ detail: string | null;
4142
+ error: string | null;
4143
+ name: string;
4144
+ outcome: string;
4145
+ payload: unknown;
4146
+ }[] | null;
4147
+ };
2928
4148
  name: string;
2929
4149
  renamed_from: string;
2930
- active_version: number;
2931
4150
  }>;
2932
4151
  readonly getPresetReferees: (name: string, signal?: AbortSignal) => Promise<{
2933
4152
  name: string;
2934
4153
  referees: string[];
2935
4154
  }>;
2936
4155
  readonly validatePreset: (body: import("@tai42/api-client").ValidatePresetBody) => Promise<{
2937
- valid: boolean;
2938
4156
  error: string | null;
4157
+ valid: boolean;
2939
4158
  }>;
2940
4159
  readonly setPresetVersionTags: (name: string, version: number, tags: readonly string[]) => Promise<{
2941
4160
  name: string;
2942
- version: number;
2943
4161
  tags: string[];
4162
+ version: number;
2944
4163
  }>;
2945
4164
  readonly listTools: (signal?: AbortSignal) => Promise<string[]>;
2946
4165
  readonly getToolSchema: (name: string, signal?: AbortSignal) => Promise<{
4166
+ description: string | null;
2947
4167
  input: Record<string, unknown>;
2948
4168
  output: Record<string, unknown> | null;
2949
- description: string | null;
2950
4169
  }>;
2951
4170
  readonly getAllToolSchemas: (signal?: AbortSignal) => Promise<Record<string, {
4171
+ description: string | null;
2952
4172
  input: Record<string, unknown>;
2953
4173
  output: Record<string, unknown> | null;
2954
- description: string | null;
2955
4174
  }>>;
2956
- readonly runTool: (args: import("@tai42/api-client").RunToolArgs, signal?: AbortSignal) => Promise<unknown>;
4175
+ readonly runTool: (args: import("@tai42/api-client").RunToolArgs, signal?: AbortSignal) => Promise<{
4176
+ asks: {
4177
+ answer_format: string | null;
4178
+ asked_by: string[] | null;
4179
+ audience: string | null;
4180
+ channel: string | null;
4181
+ created_at: string | null;
4182
+ error: unknown;
4183
+ expiry_at: string | null;
4184
+ format_payload: Record<string, unknown> | null;
4185
+ group_id: string | null;
4186
+ id: string;
4187
+ media: Record<string, unknown>[] | null;
4188
+ on_expiry: "kill" | "resume" | null;
4189
+ payload: Record<string, unknown> | null;
4190
+ question: string | null;
4191
+ recipient: string | null;
4192
+ result: unknown;
4193
+ status: "running" | "asking" | "failed" | "finished";
4194
+ thread_id: string | null;
4195
+ to: "caller" | "user" | null;
4196
+ }[];
4197
+ kind: "asks";
4198
+ suspended: {
4199
+ caller_interaction_ids: string[];
4200
+ expiry_at: string | null;
4201
+ interaction_id: string;
4202
+ interaction_ids: string[];
4203
+ resume_owner: string | null;
4204
+ };
4205
+ } | {
4206
+ kind: "none";
4207
+ } | {
4208
+ kind: "parked";
4209
+ suspended: {
4210
+ caller_interaction_ids: string[];
4211
+ expiry_at: string | null;
4212
+ interaction_id: string;
4213
+ interaction_ids: string[];
4214
+ resume_owner: string | null;
4215
+ };
4216
+ } | {
4217
+ kind: "result";
4218
+ result: unknown;
4219
+ }>;
2957
4220
  readonly reloadTool: (args: import("@tai42/api-client").ToolAdminArgs) => Promise<{
4221
+ error: string | null;
4222
+ local_only: boolean;
4223
+ ok: boolean;
2958
4224
  op: string;
2959
4225
  reachable: boolean;
2960
- local_only: boolean;
2961
4226
  results: {
4227
+ detail: string | null;
4228
+ error: string | null;
2962
4229
  name: string;
2963
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
4230
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
2964
4231
  payload: unknown;
2965
- error: string | null;
2966
- detail: string | null;
2967
4232
  }[];
2968
- error: string | null;
2969
4233
  }>;
2970
4234
  readonly removeTool: (args: import("@tai42/api-client").ToolAdminArgs) => Promise<{
4235
+ error: string | null;
4236
+ local_only: boolean;
4237
+ ok: boolean;
2971
4238
  op: string;
2972
4239
  reachable: boolean;
2973
- local_only: boolean;
2974
4240
  results: {
4241
+ detail: string | null;
4242
+ error: string | null;
2975
4243
  name: string;
2976
- outcome: "failed" | "applied" | "resyncing" | "recycling" | "stale" | "missing" | "departed" | "timed_out";
4244
+ outcome: "applied" | "failed" | "missing" | "departed" | "timed_out" | "resyncing" | "recycling" | "stale";
2977
4245
  payload: unknown;
2978
- error: string | null;
2979
- detail: string | null;
2980
4246
  }[];
2981
- error: string | null;
2982
4247
  }>;
2983
4248
  readonly submitToolRun: (args: import("@tai42/api-client").SubmitToolRunArgs, signal?: AbortSignal) => Promise<{
2984
4249
  run_id: string;
2985
4250
  }>;
2986
4251
  readonly getToolRun: (runId: string, signal?: AbortSignal) => Promise<{
4252
+ error: string | null;
4253
+ finished_at: string | null;
4254
+ outcome: unknown;
4255
+ result: unknown;
4256
+ resumed_interactions: string[] | null;
2987
4257
  run_id: string;
4258
+ started_at: string;
4259
+ tool_name: string;
4260
+ status: "running";
4261
+ } | {
4262
+ error: string | null;
4263
+ finished_at: string | null;
4264
+ outcome: unknown;
4265
+ result: unknown;
4266
+ resumed_interactions: string[] | null;
4267
+ run_id: string;
4268
+ started_at: string;
4269
+ tool_name: string;
4270
+ status: "succeeded";
4271
+ } | {
4272
+ error: string | null;
4273
+ finished_at: string | null;
4274
+ outcome: unknown;
4275
+ result: unknown;
4276
+ resumed_interactions: string[] | null;
4277
+ run_id: string;
4278
+ started_at: string;
4279
+ tool_name: string;
4280
+ status: "failed";
4281
+ } | {
4282
+ error: string | null;
4283
+ finished_at: string | null;
4284
+ outcome: unknown;
4285
+ result: unknown;
4286
+ resumed_interactions: string[] | null;
4287
+ run_id: string;
4288
+ started_at: string;
2988
4289
  tool_name: string;
2989
- status: "running" | "failed" | "parked" | "succeeded" | "lost";
4290
+ status: "lost";
4291
+ } | {
4292
+ error: string | null;
4293
+ finished_at: string | null;
4294
+ outcome: unknown;
4295
+ resumed_interactions: string[] | null;
4296
+ run_id: string;
2990
4297
  started_at: string;
2991
- finished_at?: string | undefined;
2992
- result?: unknown;
2993
- error?: string | undefined;
2994
- resumed_interactions?: string[] | undefined;
4298
+ tool_name: string;
4299
+ status: "parked";
4300
+ result: {
4301
+ asks: {
4302
+ answer_format: string | null;
4303
+ asked_by: string[] | null;
4304
+ audience: string | null;
4305
+ channel: string | null;
4306
+ created_at: string | null;
4307
+ error: unknown;
4308
+ expiry_at: string | null;
4309
+ format_payload: Record<string, unknown> | null;
4310
+ group_id: string | null;
4311
+ id: string;
4312
+ media: Record<string, unknown>[] | null;
4313
+ on_expiry: "kill" | "resume" | null;
4314
+ payload: Record<string, unknown> | null;
4315
+ question: string | null;
4316
+ recipient: string | null;
4317
+ result: unknown;
4318
+ status: "running" | "asking" | "failed" | "finished";
4319
+ thread_id: string | null;
4320
+ to: "caller" | "user" | null;
4321
+ }[];
4322
+ kind: "asks";
4323
+ suspended: {
4324
+ caller_interaction_ids: string[];
4325
+ expiry_at: string | null;
4326
+ interaction_id: string;
4327
+ interaction_ids: string[];
4328
+ resume_owner: string | null;
4329
+ };
4330
+ } | {
4331
+ kind: "parked";
4332
+ suspended: {
4333
+ caller_interaction_ids: string[];
4334
+ expiry_at: string | null;
4335
+ interaction_id: string;
4336
+ interaction_ids: string[];
4337
+ resume_owner: string | null;
4338
+ };
4339
+ };
2995
4340
  }>;
2996
4341
  readonly listToolRuns: (toolName: string, signal?: AbortSignal) => Promise<{
4342
+ finished_at: string | null;
2997
4343
  run_id: string;
2998
- tool_name: string;
2999
- status: "running" | "failed" | "parked" | "succeeded" | "lost";
3000
4344
  started_at: string;
3001
- finished_at?: string | undefined;
4345
+ tool_name: string;
4346
+ status: "running" | "parked" | "failed" | "succeeded" | "lost";
3002
4347
  }[]>;
3003
4348
  readonly listToolTags: (signal?: AbortSignal) => Promise<{
3004
- name: string;
3005
- tags: string[];
3006
4349
  badges: string[];
3007
4350
  hidden: boolean;
4351
+ name: string;
4352
+ schedulable: boolean;
4353
+ tags: string[];
3008
4354
  }[]>;
3009
4355
  readonly baseUrl: string;
4356
+ readonly constants: {
4357
+ readonly MEDIA_ID_PATTERN: "[A-Za-z0-9_-]{43}";
4358
+ readonly MEDIA_ROUTE_PREFIX: "/api/interactions/media/";
4359
+ readonly PERSON_KIND: "person";
4360
+ };
4361
+ readonly request: <S extends Parameters<typeof import("@tai42/api-client").apiRequest>[2]>(path: string, schema: S, options?: Parameters<typeof import("@tai42/api-client").apiRequest>[3]) => Promise<import("zod").infer<S>>;
3010
4362
  } | null>;
3011
4363
  export declare function useApi(): ApiClient;
3012
4364
  export type { ApiClient };