@loopbacktools/server 0.0.0-stage → 0.4.1

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 (54) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +26 -2
  3. package/dist/package.json +57 -0
  4. package/dist/src/domain/ask.d.ts +78 -0
  5. package/dist/src/domain/ask.js +161 -0
  6. package/dist/src/domain/errors.d.ts +70 -0
  7. package/dist/src/domain/errors.js +57 -0
  8. package/dist/src/generated/app.gen.d.ts +2311 -0
  9. package/dist/src/generated/app.gen.js +400 -0
  10. package/dist/src/generated/runtime.gen.d.ts +357 -0
  11. package/dist/src/generated/runtime.gen.js +298 -0
  12. package/dist/src/generated/schemas.gen.d.ts +6416 -0
  13. package/dist/src/generated/schemas.gen.js +306 -0
  14. package/dist/src/generated/wire-contract.gen.d.ts +77 -0
  15. package/dist/src/generated/wire-contract.gen.js +3 -0
  16. package/dist/src/index.d.ts +11 -0
  17. package/dist/src/index.js +8 -0
  18. package/dist/src/loopback.d.ts +27 -0
  19. package/dist/src/loopback.js +16 -0
  20. package/dist/src/space/arguments.d.ts +8 -0
  21. package/dist/src/space/arguments.js +52 -0
  22. package/dist/src/space/migrations.d.ts +10 -0
  23. package/dist/src/space/migrations.js +106 -0
  24. package/dist/src/space/object.d.ts +30 -0
  25. package/dist/src/space/object.js +169 -0
  26. package/dist/src/space/operations.d.ts +149 -0
  27. package/dist/src/space/operations.js +568 -0
  28. package/dist/src/space/read.d.ts +8 -0
  29. package/dist/src/space/read.js +33 -0
  30. package/dist/src/space/rpc.d.ts +61 -0
  31. package/dist/src/space/rpc.js +96 -0
  32. package/dist/src/space/services.d.ts +41 -0
  33. package/dist/src/space/services.js +58 -0
  34. package/dist/src/space/store.d.ts +87 -0
  35. package/dist/src/space/store.js +276 -0
  36. package/dist/src/version.d.ts +2 -0
  37. package/dist/src/version.js +3 -0
  38. package/dist/src/worker/env.d.ts +19 -0
  39. package/dist/src/worker/env.js +3 -0
  40. package/dist/src/worker/files.d.ts +21 -0
  41. package/dist/src/worker/files.js +42 -0
  42. package/dist/src/worker/gate.d.ts +55 -0
  43. package/dist/src/worker/gate.js +83 -0
  44. package/dist/src/worker/http.d.ts +2092 -0
  45. package/dist/src/worker/http.js +291 -0
  46. package/dist/src/worker/jwt.d.ts +49 -0
  47. package/dist/src/worker/jwt.js +142 -0
  48. package/dist/src/worker/mcp.d.ts +15 -0
  49. package/dist/src/worker/mcp.js +401 -0
  50. package/dist/src/worker/run.d.ts +45 -0
  51. package/dist/src/worker/run.js +71 -0
  52. package/dist/src/worker/spaces.d.ts +24 -0
  53. package/dist/src/worker/spaces.js +64 -0
  54. package/package.json +51 -3
@@ -0,0 +1,2311 @@
1
+ import { Hono } from "hono";
2
+ import type { Context, Input } from "hono";
3
+ import { z } from "zod";
4
+ import type { AppEnv, Awaitable, ByteStream, RouteDeps } from "./runtime.gen.js";
5
+ import { Asks_listQuery, Asks_readPath, Asks_replyPath, Files_readPath, Uploads_storeHeader, Uploads_storePath, askPageSchema, askSchema, eventTicketSchema, problemSchema, replySchema, snapshotSchema, uploadReceiptSchema, whoamiSchema } from "./schemas.gen.js";
6
+ /**
7
+ * A validator's fields, or nothing at all when it declares none.
8
+ *
9
+ * **Zod 4 infers `Record<string, never>` for `z.object({})`.** That is a fair reading on its own -
10
+ * no string key may exist - and lethal in an intersection: `{ id: string } & Record<string, never>`
11
+ * makes `id` into `string & never`, so the input type is uninhabitable and the call site below
12
+ * cannot compile. An empty model contributes nothing to an operation's input, so it becomes `{}`,
13
+ * which is the identity of `&` over the object types an input is made of.
14
+ *
15
+ * **`{}`, not `unknown`.** `unknown` is the identity too, but an input made of nothing else
16
+ * then WAS `unknown`: a handler for `putEmpty(@body body: EmptyInput)` could not hand its input
17
+ * to anything typed `{}`, the empty object the contract types state for it.
18
+ *
19
+ * A DICTIONARY body is not this: `Record<unknown>` has a value type, so it survives untouched.
20
+ */
21
+ type Fields<T> = string extends keyof T ? ([T[string]] extends [never] ? {} : T) : T;
22
+ /**
23
+ * What a handler must SUPPLY, as opposed to what it receives.
24
+ *
25
+ * **Two things that are true of an inferred type are not obligations on a producer**, and each one
26
+ * made a value the application already held unreturnable:
27
+ *
28
+ * - an index signature, which an open model infers because its validator really does pass unknown
29
+ * keys through. TypeScript gives an interface no implicit index signature, so returning one meant
30
+ * spreading every level of the tree - a structural deep copy per response.
31
+ * **Only where the shape has declared keys beside it**: an index signature also arrives as a
32
+ * property's own declared type (`Record<unknown>`), where it is stated identically in both
33
+ * artefacts and stripping it would destroy the property. A string indexer means "dictionary" only
34
+ * when nothing is declared next to it, which is the same rule the contract types use;
35
+ * - `readonly`, which a codebase commonly puts on the views its layers hand back. `readonly T[]`
36
+ * and `T[]` serialise to identical bytes, so mutability says nothing about a payload.
37
+ *
38
+ * The input types above keep both, deliberately: they describe the value in hand.
39
+ *
40
+ * **It is applied to the schema's INPUT, `z.input`, because that is what the server checks a
41
+ * result against.** So a property with a default may be left out, and is served with it; an optional
42
+ * property is `?: T`, because `.exactOptional()` refuses an explicit `undefined` and the
43
+ * server would answer 500 for one. Both are what the contract types state for the same result, so a
44
+ * value typed by them is returned as it is.
45
+ *
46
+ * Returning extra properties still works - excess-property checks apply to object literals, not to a
47
+ * value the application already holds.
48
+ */
49
+ type ProducedKeyOf<T> = keyof {
50
+ [K in keyof T as string extends K ? never : number extends K ? never : symbol extends K ? never : K]: 0;
51
+ };
52
+ type Produced<T> = T extends (...args: never[]) => unknown ? T : T extends readonly (infer Element)[] ? readonly Produced<Element>[] : T extends object ? [ProducedKeyOf<T>] extends [never] ? {
53
+ readonly [K in keyof T]: Produced<T[K]>;
54
+ } : {
55
+ readonly [K in keyof T as string extends K ? never : number extends K ? never : symbol extends K ? never : K]: Produced<T[K]>;
56
+ } : T;
57
+ /**
58
+ * What each operation may answer with: one member per response the document declares.
59
+ *
60
+ * A handler returns `{ status, body, headers }` for whichever response it means. The generated route
61
+ * serves it with the Hono call for that status, so `hc` sees a typed body per status, and a status
62
+ * or body the document does not declare does not compile.
63
+ */
64
+ export type Session_whoamiResult = {
65
+ readonly status: 200;
66
+ readonly body: Produced<z.input<typeof whoamiSchema>>;
67
+ } | {
68
+ readonly status: 401;
69
+ readonly body: Produced<z.input<typeof problemSchema>>;
70
+ };
71
+ export type EventTickets_issueResult = {
72
+ readonly status: 201;
73
+ readonly body: Produced<z.input<typeof eventTicketSchema>>;
74
+ } | {
75
+ readonly status: 401;
76
+ readonly body: Produced<z.input<typeof problemSchema>>;
77
+ };
78
+ export type Snapshots_readResult = {
79
+ readonly status: 200;
80
+ readonly body: Produced<z.input<typeof snapshotSchema>>;
81
+ } | {
82
+ readonly status: 401;
83
+ readonly body: Produced<z.input<typeof problemSchema>>;
84
+ };
85
+ export type Asks_listResult = {
86
+ readonly status: 200;
87
+ readonly body: Produced<z.input<typeof askPageSchema>>;
88
+ } | {
89
+ readonly status: 401;
90
+ readonly body: Produced<z.input<typeof problemSchema>>;
91
+ };
92
+ export type Asks_readResult = {
93
+ readonly status: 200;
94
+ readonly body: Produced<z.input<typeof askSchema>>;
95
+ } | {
96
+ readonly status: 401;
97
+ readonly body: Produced<z.input<typeof problemSchema>>;
98
+ } | {
99
+ readonly status: 404;
100
+ readonly body: Produced<z.input<typeof problemSchema>>;
101
+ };
102
+ export type Asks_replyResult = {
103
+ readonly status: 200;
104
+ readonly body: Produced<z.input<typeof askSchema>>;
105
+ } | {
106
+ readonly status: 401;
107
+ readonly body: Produced<z.input<typeof problemSchema>>;
108
+ } | {
109
+ readonly status: 404;
110
+ readonly body: Produced<z.input<typeof problemSchema>>;
111
+ } | {
112
+ readonly status: 409;
113
+ readonly body: Produced<z.input<typeof problemSchema>>;
114
+ } | {
115
+ readonly status: 422;
116
+ readonly body: Produced<z.input<typeof problemSchema>>;
117
+ };
118
+ export type Files_readResult = {
119
+ readonly status: 200;
120
+ readonly contentType: "image/png";
121
+ readonly body: ByteStream | Uint8Array<ArrayBuffer> | ArrayBuffer;
122
+ } | {
123
+ readonly status: 200;
124
+ readonly contentType: "image/jpeg";
125
+ readonly body: ByteStream | Uint8Array<ArrayBuffer> | ArrayBuffer;
126
+ } | {
127
+ readonly status: 200;
128
+ readonly contentType: "image/webp";
129
+ readonly body: ByteStream | Uint8Array<ArrayBuffer> | ArrayBuffer;
130
+ } | {
131
+ readonly status: 200;
132
+ readonly contentType: "image/gif";
133
+ readonly body: ByteStream | Uint8Array<ArrayBuffer> | ArrayBuffer;
134
+ } | {
135
+ readonly status: 401;
136
+ readonly body: Produced<z.input<typeof problemSchema>>;
137
+ } | {
138
+ readonly status: 404;
139
+ readonly body: Produced<z.input<typeof problemSchema>>;
140
+ };
141
+ export type Uploads_storeResult = {
142
+ readonly status: 201;
143
+ readonly body: Produced<z.input<typeof uploadReceiptSchema>>;
144
+ } | {
145
+ readonly status: 404;
146
+ readonly body: Produced<z.input<typeof problemSchema>>;
147
+ } | {
148
+ readonly status: 410;
149
+ readonly body: Produced<z.input<typeof problemSchema>>;
150
+ } | {
151
+ readonly status: 413;
152
+ readonly body: Produced<z.input<typeof problemSchema>>;
153
+ } | {
154
+ readonly status: 422;
155
+ readonly body: Produced<z.input<typeof problemSchema>>;
156
+ };
157
+ /**
158
+ * One handler per operation, each concretely typed from the schemas it validates against.
159
+ *
160
+ * `C` is the caller context, inferred by `registerRoutes` from `deps.context`. There is no cast
161
+ * anywhere in this file, and no dynamic lookup: the generated call sites name the handler, so an
162
+ * implementation whose input or result does not match the contract fails to compile.
163
+ */
164
+ export interface Operations<C = unknown> {
165
+ /** The space the credentials open. */
166
+ readonly Session_whoami: (ctx: C, input: Record<string, never>) => Awaitable<Session_whoamiResult>;
167
+ /** A one-time pass onto the event socket, `/api/v1/events`. */
168
+ readonly EventTickets_issue: (ctx: C, input: Record<string, never>) => Awaitable<EventTickets_issueResult>;
169
+ /** Every open ask and the fifty most recently closed: what an inbox starts from. */
170
+ readonly Snapshots_read: (ctx: C, input: Record<string, never>) => Awaitable<Snapshots_readResult>;
171
+ /** Closed asks, newest first, for paging back through history. */
172
+ readonly Asks_list: (ctx: C, input: Fields<z.infer<typeof Asks_listQuery>>) => Awaitable<Asks_listResult>;
173
+ readonly Asks_read: (ctx: C, input: Fields<z.infer<typeof Asks_readPath>>) => Awaitable<Asks_readResult>;
174
+ /**
175
+ * Reply to an ask. Refused with 409 when the ask is closed or it is the agent's turn, except that
176
+ * a briefing may be dismissed during the agent's turn. Refused with 422 when the reply does not
177
+ * fit: `answered` is for questions and needs a choice or text, with choices among those offered
178
+ * and only one unless several are allowed; `approved` and `changes_requested` are for reviews;
179
+ * `responded` is for briefings, names each of their points at most once with words or resolved,
180
+ * and either resolves every point or leaves the agent a point to answer. A briefing takes no
181
+ * `follow_up`.
182
+ */
183
+ readonly Asks_reply: (ctx: C, input: Fields<z.infer<typeof Asks_replyPath>> & {
184
+ reply: z.infer<typeof replySchema>;
185
+ }) => Awaitable<Asks_replyResult>;
186
+ /** An uploaded image. */
187
+ readonly Files_read: (ctx: C, input: Fields<z.infer<typeof Files_readPath>>) => Awaitable<Files_readResult>;
188
+ /**
189
+ * Store an image against an upload ticket. The URL is the credential: it works once, for
190
+ * fifteen minutes, for the declared content type, up to the ticket's `maxBytes`.
191
+ */
192
+ readonly Uploads_store: (ctx: C, input: Fields<z.infer<typeof Uploads_storePath>> & Fields<z.infer<typeof Uploads_storeHeader>> & {
193
+ body: ReadableStream<Uint8Array> | null;
194
+ }) => Awaitable<Uploads_storeResult>;
195
+ }
196
+ /**
197
+ * One alias per operation, so a handler can live beside the module it belongs to.
198
+ *
199
+ * **Derived by indexed access, never restated.** An indexed access into Operations cannot drift
200
+ * from the interface; a second hand-written signature could, and a signature that silently disagrees
201
+ * with the contract is the whole failure mode this emitter exists to remove.
202
+ */
203
+ export type Session_whoamiHandler<C = unknown> = Operations<C>["Session_whoami"];
204
+ export type EventTickets_issueHandler<C = unknown> = Operations<C>["EventTickets_issue"];
205
+ export type Snapshots_readHandler<C = unknown> = Operations<C>["Snapshots_read"];
206
+ export type Asks_listHandler<C = unknown> = Operations<C>["Asks_list"];
207
+ export type Asks_readHandler<C = unknown> = Operations<C>["Asks_read"];
208
+ export type Asks_replyHandler<C = unknown> = Operations<C>["Asks_reply"];
209
+ export type Files_readHandler<C = unknown> = Operations<C>["Files_read"];
210
+ export type Uploads_storeHandler<C = unknown> = Operations<C>["Uploads_store"];
211
+ /**
212
+ * **There is deliberately NO exported HandlersFor alias to annotate the factory with.**
213
+ *
214
+ * There was one, and it silently disabled the guard below. Annotating widens the value to
215
+ * Operations, so T infers as Operations, Exclude<keyof T, keyof Operations> is never, and the
216
+ * surplus-key constraint evaporates. Measured: a handler for an operation the spec no longer
217
+ * declares produced no error at all through the annotated form, and TS2345 without it.
218
+ *
219
+ * Write the factory unannotated, inference then carries the real shape into registerRoutes:
220
+ *
221
+ * const handlersFor = (c) => backendFor(c.env);
222
+ * registerRoutes(app, handlersFor, deps);
223
+ */
224
+ /**
225
+ * Refuses a handler set carrying an operation the spec no longer declares.
226
+ *
227
+ * **Removal is the change the type system misses, and it is the one that matters most.** Adding an
228
+ * operation is a missing property; changing one is a wrong signature; both fail loudly. Removing one
229
+ * leaves a handler that compiles forever against a route nobody mounts.
230
+ *
231
+ * The excess-property check catches it, but ONLY on an object literal assigned straight to an
232
+ * annotated target. Mapping every surplus key to never makes the refusal structural instead: a key
233
+ * outside Operations can only be satisfied by a value that cannot exist.
234
+ */
235
+ export type Exhaustive<T> = T & Record<Exclude<keyof T, keyof Operations>, never>;
236
+ /** Mount every operation the service declares. */
237
+ export declare function registerRoutes<C, T extends Operations<C>>(app: Hono<AppEnv>, handlersFor: <P extends string, I extends Input>(c: Context<AppEnv, P, I>) => Exhaustive<T>, deps: RouteDeps<AppEnv, C>): import("hono/hono-base").HonoBase<AppEnv, import("hono/types").BlankSchema | import("hono/types").MergeSchemaPath<import("hono/types").MergeSchemaPath<{
238
+ "/": {
239
+ $get: {
240
+ output: {
241
+ items: ({
242
+ kind: "question";
243
+ prompt: {
244
+ question: string;
245
+ options: {
246
+ label: string;
247
+ description?: string | undefined;
248
+ }[];
249
+ multiple: boolean;
250
+ context?: string | undefined;
251
+ };
252
+ id: string;
253
+ status: "awaiting_agent" | "awaiting_human" | "closed";
254
+ waiting: boolean;
255
+ project?: string | undefined;
256
+ client?: string | undefined;
257
+ raisedBy?: {
258
+ id: string;
259
+ name?: string | undefined;
260
+ } | undefined;
261
+ thread: ({
262
+ author: "human";
263
+ reply: {
264
+ outcome: "answered";
265
+ selected: string[];
266
+ text?: string | undefined;
267
+ } | {
268
+ outcome: "approved";
269
+ note?: string | undefined;
270
+ } | {
271
+ outcome: "changes_requested";
272
+ feedback: string;
273
+ } | {
274
+ outcome: "follow_up";
275
+ question: string;
276
+ } | {
277
+ outcome: "dismissed";
278
+ } | {
279
+ outcome: "responded";
280
+ points: {
281
+ point: string;
282
+ text?: string | undefined;
283
+ resolved?: boolean | undefined;
284
+ }[];
285
+ };
286
+ by?: {
287
+ id: string;
288
+ name?: string | undefined;
289
+ } | undefined;
290
+ at: string;
291
+ } | {
292
+ author: "agent";
293
+ answer: string;
294
+ content?: ({
295
+ type: "markdown";
296
+ text: string;
297
+ } | {
298
+ type: "code";
299
+ code: string;
300
+ language?: string | undefined;
301
+ filename?: string | undefined;
302
+ } | {
303
+ type: "diff";
304
+ diff: string;
305
+ filename?: string | undefined;
306
+ } | {
307
+ type: "image";
308
+ uploadId: string;
309
+ caption?: string | undefined;
310
+ })[] | undefined;
311
+ point?: string | undefined;
312
+ points?: {
313
+ id: string;
314
+ title: string;
315
+ detail?: string | undefined;
316
+ content?: ({
317
+ type: "markdown";
318
+ text: string;
319
+ } | {
320
+ type: "code";
321
+ code: string;
322
+ language?: string | undefined;
323
+ filename?: string | undefined;
324
+ } | {
325
+ type: "diff";
326
+ diff: string;
327
+ filename?: string | undefined;
328
+ } | {
329
+ type: "image";
330
+ uploadId: string;
331
+ caption?: string | undefined;
332
+ })[] | undefined;
333
+ }[] | undefined;
334
+ at: string;
335
+ })[];
336
+ createdAt: string;
337
+ updatedAt: string;
338
+ closedAt?: string | undefined;
339
+ } | {
340
+ kind: "review";
341
+ prompt: {
342
+ title: string;
343
+ content: ({
344
+ type: "markdown";
345
+ text: string;
346
+ } | {
347
+ type: "code";
348
+ code: string;
349
+ language?: string | undefined;
350
+ filename?: string | undefined;
351
+ } | {
352
+ type: "diff";
353
+ diff: string;
354
+ filename?: string | undefined;
355
+ } | {
356
+ type: "image";
357
+ uploadId: string;
358
+ caption?: string | undefined;
359
+ })[];
360
+ summary?: string | undefined;
361
+ };
362
+ revises?: string | undefined;
363
+ id: string;
364
+ status: "awaiting_agent" | "awaiting_human" | "closed";
365
+ waiting: boolean;
366
+ project?: string | undefined;
367
+ client?: string | undefined;
368
+ raisedBy?: {
369
+ id: string;
370
+ name?: string | undefined;
371
+ } | undefined;
372
+ thread: ({
373
+ author: "human";
374
+ reply: {
375
+ outcome: "answered";
376
+ selected: string[];
377
+ text?: string | undefined;
378
+ } | {
379
+ outcome: "approved";
380
+ note?: string | undefined;
381
+ } | {
382
+ outcome: "changes_requested";
383
+ feedback: string;
384
+ } | {
385
+ outcome: "follow_up";
386
+ question: string;
387
+ } | {
388
+ outcome: "dismissed";
389
+ } | {
390
+ outcome: "responded";
391
+ points: {
392
+ point: string;
393
+ text?: string | undefined;
394
+ resolved?: boolean | undefined;
395
+ }[];
396
+ };
397
+ by?: {
398
+ id: string;
399
+ name?: string | undefined;
400
+ } | undefined;
401
+ at: string;
402
+ } | {
403
+ author: "agent";
404
+ answer: string;
405
+ content?: ({
406
+ type: "markdown";
407
+ text: string;
408
+ } | {
409
+ type: "code";
410
+ code: string;
411
+ language?: string | undefined;
412
+ filename?: string | undefined;
413
+ } | {
414
+ type: "diff";
415
+ diff: string;
416
+ filename?: string | undefined;
417
+ } | {
418
+ type: "image";
419
+ uploadId: string;
420
+ caption?: string | undefined;
421
+ })[] | undefined;
422
+ point?: string | undefined;
423
+ points?: {
424
+ id: string;
425
+ title: string;
426
+ detail?: string | undefined;
427
+ content?: ({
428
+ type: "markdown";
429
+ text: string;
430
+ } | {
431
+ type: "code";
432
+ code: string;
433
+ language?: string | undefined;
434
+ filename?: string | undefined;
435
+ } | {
436
+ type: "diff";
437
+ diff: string;
438
+ filename?: string | undefined;
439
+ } | {
440
+ type: "image";
441
+ uploadId: string;
442
+ caption?: string | undefined;
443
+ })[] | undefined;
444
+ }[] | undefined;
445
+ at: string;
446
+ })[];
447
+ createdAt: string;
448
+ updatedAt: string;
449
+ closedAt?: string | undefined;
450
+ } | {
451
+ kind: "briefing";
452
+ prompt: {
453
+ title: string;
454
+ summary?: string | undefined;
455
+ sections: {
456
+ title?: string | undefined;
457
+ points: {
458
+ id: string;
459
+ title: string;
460
+ detail?: string | undefined;
461
+ content?: ({
462
+ type: "markdown";
463
+ text: string;
464
+ } | {
465
+ type: "code";
466
+ code: string;
467
+ language?: string | undefined;
468
+ filename?: string | undefined;
469
+ } | {
470
+ type: "diff";
471
+ diff: string;
472
+ filename?: string | undefined;
473
+ } | {
474
+ type: "image";
475
+ uploadId: string;
476
+ caption?: string | undefined;
477
+ })[] | undefined;
478
+ }[];
479
+ }[];
480
+ };
481
+ id: string;
482
+ status: "awaiting_agent" | "awaiting_human" | "closed";
483
+ waiting: boolean;
484
+ project?: string | undefined;
485
+ client?: string | undefined;
486
+ raisedBy?: {
487
+ id: string;
488
+ name?: string | undefined;
489
+ } | undefined;
490
+ thread: ({
491
+ author: "human";
492
+ reply: {
493
+ outcome: "answered";
494
+ selected: string[];
495
+ text?: string | undefined;
496
+ } | {
497
+ outcome: "approved";
498
+ note?: string | undefined;
499
+ } | {
500
+ outcome: "changes_requested";
501
+ feedback: string;
502
+ } | {
503
+ outcome: "follow_up";
504
+ question: string;
505
+ } | {
506
+ outcome: "dismissed";
507
+ } | {
508
+ outcome: "responded";
509
+ points: {
510
+ point: string;
511
+ text?: string | undefined;
512
+ resolved?: boolean | undefined;
513
+ }[];
514
+ };
515
+ by?: {
516
+ id: string;
517
+ name?: string | undefined;
518
+ } | undefined;
519
+ at: string;
520
+ } | {
521
+ author: "agent";
522
+ answer: string;
523
+ content?: ({
524
+ type: "markdown";
525
+ text: string;
526
+ } | {
527
+ type: "code";
528
+ code: string;
529
+ language?: string | undefined;
530
+ filename?: string | undefined;
531
+ } | {
532
+ type: "diff";
533
+ diff: string;
534
+ filename?: string | undefined;
535
+ } | {
536
+ type: "image";
537
+ uploadId: string;
538
+ caption?: string | undefined;
539
+ })[] | undefined;
540
+ point?: string | undefined;
541
+ points?: {
542
+ id: string;
543
+ title: string;
544
+ detail?: string | undefined;
545
+ content?: ({
546
+ type: "markdown";
547
+ text: string;
548
+ } | {
549
+ type: "code";
550
+ code: string;
551
+ language?: string | undefined;
552
+ filename?: string | undefined;
553
+ } | {
554
+ type: "diff";
555
+ diff: string;
556
+ filename?: string | undefined;
557
+ } | {
558
+ type: "image";
559
+ uploadId: string;
560
+ caption?: string | undefined;
561
+ })[] | undefined;
562
+ }[] | undefined;
563
+ at: string;
564
+ })[];
565
+ createdAt: string;
566
+ updatedAt: string;
567
+ closedAt?: string | undefined;
568
+ })[];
569
+ nextBefore?: string | undefined;
570
+ };
571
+ outputFormat: "json";
572
+ status: 200;
573
+ input: {
574
+ query: {
575
+ before?: string;
576
+ limit?: string | string[];
577
+ };
578
+ };
579
+ } | {
580
+ output: {
581
+ code: string;
582
+ message: string;
583
+ };
584
+ outputFormat: "json";
585
+ status: 401;
586
+ input: {
587
+ query: {
588
+ before?: string;
589
+ limit?: string | string[];
590
+ };
591
+ };
592
+ };
593
+ };
594
+ } & {
595
+ "/:id": {
596
+ $get: {
597
+ output: {
598
+ code: string;
599
+ message: string;
600
+ };
601
+ outputFormat: "json";
602
+ status: 401;
603
+ input: {
604
+ param: {
605
+ id: string;
606
+ };
607
+ };
608
+ } | {
609
+ output: {
610
+ code: string;
611
+ message: string;
612
+ };
613
+ outputFormat: "json";
614
+ status: 404;
615
+ input: {
616
+ param: {
617
+ id: string;
618
+ };
619
+ };
620
+ } | {
621
+ output: {
622
+ kind: "question";
623
+ prompt: {
624
+ question: string;
625
+ options: {
626
+ label: string;
627
+ description?: string | undefined;
628
+ }[];
629
+ multiple: boolean;
630
+ context?: string | undefined;
631
+ };
632
+ id: string;
633
+ status: "awaiting_agent" | "awaiting_human" | "closed";
634
+ waiting: boolean;
635
+ project?: string | undefined;
636
+ client?: string | undefined;
637
+ raisedBy?: {
638
+ id: string;
639
+ name?: string | undefined;
640
+ } | undefined;
641
+ thread: ({
642
+ author: "human";
643
+ reply: {
644
+ outcome: "answered";
645
+ selected: string[];
646
+ text?: string | undefined;
647
+ } | {
648
+ outcome: "approved";
649
+ note?: string | undefined;
650
+ } | {
651
+ outcome: "changes_requested";
652
+ feedback: string;
653
+ } | {
654
+ outcome: "follow_up";
655
+ question: string;
656
+ } | {
657
+ outcome: "dismissed";
658
+ } | {
659
+ outcome: "responded";
660
+ points: {
661
+ point: string;
662
+ text?: string | undefined;
663
+ resolved?: boolean | undefined;
664
+ }[];
665
+ };
666
+ by?: {
667
+ id: string;
668
+ name?: string | undefined;
669
+ } | undefined;
670
+ at: string;
671
+ } | {
672
+ author: "agent";
673
+ answer: string;
674
+ content?: ({
675
+ type: "markdown";
676
+ text: string;
677
+ } | {
678
+ type: "code";
679
+ code: string;
680
+ language?: string | undefined;
681
+ filename?: string | undefined;
682
+ } | {
683
+ type: "diff";
684
+ diff: string;
685
+ filename?: string | undefined;
686
+ } | {
687
+ type: "image";
688
+ uploadId: string;
689
+ caption?: string | undefined;
690
+ })[] | undefined;
691
+ point?: string | undefined;
692
+ points?: {
693
+ id: string;
694
+ title: string;
695
+ detail?: string | undefined;
696
+ content?: ({
697
+ type: "markdown";
698
+ text: string;
699
+ } | {
700
+ type: "code";
701
+ code: string;
702
+ language?: string | undefined;
703
+ filename?: string | undefined;
704
+ } | {
705
+ type: "diff";
706
+ diff: string;
707
+ filename?: string | undefined;
708
+ } | {
709
+ type: "image";
710
+ uploadId: string;
711
+ caption?: string | undefined;
712
+ })[] | undefined;
713
+ }[] | undefined;
714
+ at: string;
715
+ })[];
716
+ createdAt: string;
717
+ updatedAt: string;
718
+ closedAt?: string | undefined;
719
+ } | {
720
+ kind: "review";
721
+ prompt: {
722
+ title: string;
723
+ content: ({
724
+ type: "markdown";
725
+ text: string;
726
+ } | {
727
+ type: "code";
728
+ code: string;
729
+ language?: string | undefined;
730
+ filename?: string | undefined;
731
+ } | {
732
+ type: "diff";
733
+ diff: string;
734
+ filename?: string | undefined;
735
+ } | {
736
+ type: "image";
737
+ uploadId: string;
738
+ caption?: string | undefined;
739
+ })[];
740
+ summary?: string | undefined;
741
+ };
742
+ revises?: string | undefined;
743
+ id: string;
744
+ status: "awaiting_agent" | "awaiting_human" | "closed";
745
+ waiting: boolean;
746
+ project?: string | undefined;
747
+ client?: string | undefined;
748
+ raisedBy?: {
749
+ id: string;
750
+ name?: string | undefined;
751
+ } | undefined;
752
+ thread: ({
753
+ author: "human";
754
+ reply: {
755
+ outcome: "answered";
756
+ selected: string[];
757
+ text?: string | undefined;
758
+ } | {
759
+ outcome: "approved";
760
+ note?: string | undefined;
761
+ } | {
762
+ outcome: "changes_requested";
763
+ feedback: string;
764
+ } | {
765
+ outcome: "follow_up";
766
+ question: string;
767
+ } | {
768
+ outcome: "dismissed";
769
+ } | {
770
+ outcome: "responded";
771
+ points: {
772
+ point: string;
773
+ text?: string | undefined;
774
+ resolved?: boolean | undefined;
775
+ }[];
776
+ };
777
+ by?: {
778
+ id: string;
779
+ name?: string | undefined;
780
+ } | undefined;
781
+ at: string;
782
+ } | {
783
+ author: "agent";
784
+ answer: string;
785
+ content?: ({
786
+ type: "markdown";
787
+ text: string;
788
+ } | {
789
+ type: "code";
790
+ code: string;
791
+ language?: string | undefined;
792
+ filename?: string | undefined;
793
+ } | {
794
+ type: "diff";
795
+ diff: string;
796
+ filename?: string | undefined;
797
+ } | {
798
+ type: "image";
799
+ uploadId: string;
800
+ caption?: string | undefined;
801
+ })[] | undefined;
802
+ point?: string | undefined;
803
+ points?: {
804
+ id: string;
805
+ title: string;
806
+ detail?: string | undefined;
807
+ content?: ({
808
+ type: "markdown";
809
+ text: string;
810
+ } | {
811
+ type: "code";
812
+ code: string;
813
+ language?: string | undefined;
814
+ filename?: string | undefined;
815
+ } | {
816
+ type: "diff";
817
+ diff: string;
818
+ filename?: string | undefined;
819
+ } | {
820
+ type: "image";
821
+ uploadId: string;
822
+ caption?: string | undefined;
823
+ })[] | undefined;
824
+ }[] | undefined;
825
+ at: string;
826
+ })[];
827
+ createdAt: string;
828
+ updatedAt: string;
829
+ closedAt?: string | undefined;
830
+ } | {
831
+ kind: "briefing";
832
+ prompt: {
833
+ title: string;
834
+ summary?: string | undefined;
835
+ sections: {
836
+ title?: string | undefined;
837
+ points: {
838
+ id: string;
839
+ title: string;
840
+ detail?: string | undefined;
841
+ content?: ({
842
+ type: "markdown";
843
+ text: string;
844
+ } | {
845
+ type: "code";
846
+ code: string;
847
+ language?: string | undefined;
848
+ filename?: string | undefined;
849
+ } | {
850
+ type: "diff";
851
+ diff: string;
852
+ filename?: string | undefined;
853
+ } | {
854
+ type: "image";
855
+ uploadId: string;
856
+ caption?: string | undefined;
857
+ })[] | undefined;
858
+ }[];
859
+ }[];
860
+ };
861
+ id: string;
862
+ status: "awaiting_agent" | "awaiting_human" | "closed";
863
+ waiting: boolean;
864
+ project?: string | undefined;
865
+ client?: string | undefined;
866
+ raisedBy?: {
867
+ id: string;
868
+ name?: string | undefined;
869
+ } | undefined;
870
+ thread: ({
871
+ author: "human";
872
+ reply: {
873
+ outcome: "answered";
874
+ selected: string[];
875
+ text?: string | undefined;
876
+ } | {
877
+ outcome: "approved";
878
+ note?: string | undefined;
879
+ } | {
880
+ outcome: "changes_requested";
881
+ feedback: string;
882
+ } | {
883
+ outcome: "follow_up";
884
+ question: string;
885
+ } | {
886
+ outcome: "dismissed";
887
+ } | {
888
+ outcome: "responded";
889
+ points: {
890
+ point: string;
891
+ text?: string | undefined;
892
+ resolved?: boolean | undefined;
893
+ }[];
894
+ };
895
+ by?: {
896
+ id: string;
897
+ name?: string | undefined;
898
+ } | undefined;
899
+ at: string;
900
+ } | {
901
+ author: "agent";
902
+ answer: string;
903
+ content?: ({
904
+ type: "markdown";
905
+ text: string;
906
+ } | {
907
+ type: "code";
908
+ code: string;
909
+ language?: string | undefined;
910
+ filename?: string | undefined;
911
+ } | {
912
+ type: "diff";
913
+ diff: string;
914
+ filename?: string | undefined;
915
+ } | {
916
+ type: "image";
917
+ uploadId: string;
918
+ caption?: string | undefined;
919
+ })[] | undefined;
920
+ point?: string | undefined;
921
+ points?: {
922
+ id: string;
923
+ title: string;
924
+ detail?: string | undefined;
925
+ content?: ({
926
+ type: "markdown";
927
+ text: string;
928
+ } | {
929
+ type: "code";
930
+ code: string;
931
+ language?: string | undefined;
932
+ filename?: string | undefined;
933
+ } | {
934
+ type: "diff";
935
+ diff: string;
936
+ filename?: string | undefined;
937
+ } | {
938
+ type: "image";
939
+ uploadId: string;
940
+ caption?: string | undefined;
941
+ })[] | undefined;
942
+ }[] | undefined;
943
+ at: string;
944
+ })[];
945
+ createdAt: string;
946
+ updatedAt: string;
947
+ closedAt?: string | undefined;
948
+ };
949
+ outputFormat: "json";
950
+ status: 200;
951
+ input: {
952
+ param: {
953
+ id: string;
954
+ };
955
+ };
956
+ };
957
+ };
958
+ } & {
959
+ "/:id/reply": {
960
+ $post: {
961
+ output: {
962
+ code: string;
963
+ message: string;
964
+ };
965
+ outputFormat: "json";
966
+ status: 401;
967
+ input: {
968
+ param: {
969
+ id: string;
970
+ };
971
+ } & {
972
+ json: {
973
+ outcome: "answered";
974
+ selected: string[];
975
+ text?: string;
976
+ } | {
977
+ outcome: "approved";
978
+ note?: string;
979
+ } | {
980
+ outcome: "changes_requested";
981
+ feedback: string;
982
+ } | {
983
+ outcome: "follow_up";
984
+ question: string;
985
+ } | {
986
+ outcome: "dismissed";
987
+ } | {
988
+ outcome: "responded";
989
+ points: {
990
+ point: string;
991
+ text?: string;
992
+ resolved?: boolean;
993
+ }[];
994
+ };
995
+ };
996
+ } | {
997
+ output: {
998
+ code: string;
999
+ message: string;
1000
+ };
1001
+ outputFormat: "json";
1002
+ status: 404;
1003
+ input: {
1004
+ param: {
1005
+ id: string;
1006
+ };
1007
+ } & {
1008
+ json: {
1009
+ outcome: "answered";
1010
+ selected: string[];
1011
+ text?: string;
1012
+ } | {
1013
+ outcome: "approved";
1014
+ note?: string;
1015
+ } | {
1016
+ outcome: "changes_requested";
1017
+ feedback: string;
1018
+ } | {
1019
+ outcome: "follow_up";
1020
+ question: string;
1021
+ } | {
1022
+ outcome: "dismissed";
1023
+ } | {
1024
+ outcome: "responded";
1025
+ points: {
1026
+ point: string;
1027
+ text?: string;
1028
+ resolved?: boolean;
1029
+ }[];
1030
+ };
1031
+ };
1032
+ } | {
1033
+ output: {
1034
+ code: string;
1035
+ message: string;
1036
+ };
1037
+ outputFormat: "json";
1038
+ status: 409;
1039
+ input: {
1040
+ param: {
1041
+ id: string;
1042
+ };
1043
+ } & {
1044
+ json: {
1045
+ outcome: "answered";
1046
+ selected: string[];
1047
+ text?: string;
1048
+ } | {
1049
+ outcome: "approved";
1050
+ note?: string;
1051
+ } | {
1052
+ outcome: "changes_requested";
1053
+ feedback: string;
1054
+ } | {
1055
+ outcome: "follow_up";
1056
+ question: string;
1057
+ } | {
1058
+ outcome: "dismissed";
1059
+ } | {
1060
+ outcome: "responded";
1061
+ points: {
1062
+ point: string;
1063
+ text?: string;
1064
+ resolved?: boolean;
1065
+ }[];
1066
+ };
1067
+ };
1068
+ } | {
1069
+ output: {
1070
+ code: string;
1071
+ message: string;
1072
+ };
1073
+ outputFormat: "json";
1074
+ status: 422;
1075
+ input: {
1076
+ param: {
1077
+ id: string;
1078
+ };
1079
+ } & {
1080
+ json: {
1081
+ outcome: "answered";
1082
+ selected: string[];
1083
+ text?: string;
1084
+ } | {
1085
+ outcome: "approved";
1086
+ note?: string;
1087
+ } | {
1088
+ outcome: "changes_requested";
1089
+ feedback: string;
1090
+ } | {
1091
+ outcome: "follow_up";
1092
+ question: string;
1093
+ } | {
1094
+ outcome: "dismissed";
1095
+ } | {
1096
+ outcome: "responded";
1097
+ points: {
1098
+ point: string;
1099
+ text?: string;
1100
+ resolved?: boolean;
1101
+ }[];
1102
+ };
1103
+ };
1104
+ } | {
1105
+ output: {
1106
+ kind: "question";
1107
+ prompt: {
1108
+ question: string;
1109
+ options: {
1110
+ label: string;
1111
+ description?: string | undefined;
1112
+ }[];
1113
+ multiple: boolean;
1114
+ context?: string | undefined;
1115
+ };
1116
+ id: string;
1117
+ status: "awaiting_agent" | "awaiting_human" | "closed";
1118
+ waiting: boolean;
1119
+ project?: string | undefined;
1120
+ client?: string | undefined;
1121
+ raisedBy?: {
1122
+ id: string;
1123
+ name?: string | undefined;
1124
+ } | undefined;
1125
+ thread: ({
1126
+ author: "human";
1127
+ reply: {
1128
+ outcome: "answered";
1129
+ selected: string[];
1130
+ text?: string | undefined;
1131
+ } | {
1132
+ outcome: "approved";
1133
+ note?: string | undefined;
1134
+ } | {
1135
+ outcome: "changes_requested";
1136
+ feedback: string;
1137
+ } | {
1138
+ outcome: "follow_up";
1139
+ question: string;
1140
+ } | {
1141
+ outcome: "dismissed";
1142
+ } | {
1143
+ outcome: "responded";
1144
+ points: {
1145
+ point: string;
1146
+ text?: string | undefined;
1147
+ resolved?: boolean | undefined;
1148
+ }[];
1149
+ };
1150
+ by?: {
1151
+ id: string;
1152
+ name?: string | undefined;
1153
+ } | undefined;
1154
+ at: string;
1155
+ } | {
1156
+ author: "agent";
1157
+ answer: string;
1158
+ content?: ({
1159
+ type: "markdown";
1160
+ text: string;
1161
+ } | {
1162
+ type: "code";
1163
+ code: string;
1164
+ language?: string | undefined;
1165
+ filename?: string | undefined;
1166
+ } | {
1167
+ type: "diff";
1168
+ diff: string;
1169
+ filename?: string | undefined;
1170
+ } | {
1171
+ type: "image";
1172
+ uploadId: string;
1173
+ caption?: string | undefined;
1174
+ })[] | undefined;
1175
+ point?: string | undefined;
1176
+ points?: {
1177
+ id: string;
1178
+ title: string;
1179
+ detail?: string | undefined;
1180
+ content?: ({
1181
+ type: "markdown";
1182
+ text: string;
1183
+ } | {
1184
+ type: "code";
1185
+ code: string;
1186
+ language?: string | undefined;
1187
+ filename?: string | undefined;
1188
+ } | {
1189
+ type: "diff";
1190
+ diff: string;
1191
+ filename?: string | undefined;
1192
+ } | {
1193
+ type: "image";
1194
+ uploadId: string;
1195
+ caption?: string | undefined;
1196
+ })[] | undefined;
1197
+ }[] | undefined;
1198
+ at: string;
1199
+ })[];
1200
+ createdAt: string;
1201
+ updatedAt: string;
1202
+ closedAt?: string | undefined;
1203
+ } | {
1204
+ kind: "review";
1205
+ prompt: {
1206
+ title: string;
1207
+ content: ({
1208
+ type: "markdown";
1209
+ text: string;
1210
+ } | {
1211
+ type: "code";
1212
+ code: string;
1213
+ language?: string | undefined;
1214
+ filename?: string | undefined;
1215
+ } | {
1216
+ type: "diff";
1217
+ diff: string;
1218
+ filename?: string | undefined;
1219
+ } | {
1220
+ type: "image";
1221
+ uploadId: string;
1222
+ caption?: string | undefined;
1223
+ })[];
1224
+ summary?: string | undefined;
1225
+ };
1226
+ revises?: string | undefined;
1227
+ id: string;
1228
+ status: "awaiting_agent" | "awaiting_human" | "closed";
1229
+ waiting: boolean;
1230
+ project?: string | undefined;
1231
+ client?: string | undefined;
1232
+ raisedBy?: {
1233
+ id: string;
1234
+ name?: string | undefined;
1235
+ } | undefined;
1236
+ thread: ({
1237
+ author: "human";
1238
+ reply: {
1239
+ outcome: "answered";
1240
+ selected: string[];
1241
+ text?: string | undefined;
1242
+ } | {
1243
+ outcome: "approved";
1244
+ note?: string | undefined;
1245
+ } | {
1246
+ outcome: "changes_requested";
1247
+ feedback: string;
1248
+ } | {
1249
+ outcome: "follow_up";
1250
+ question: string;
1251
+ } | {
1252
+ outcome: "dismissed";
1253
+ } | {
1254
+ outcome: "responded";
1255
+ points: {
1256
+ point: string;
1257
+ text?: string | undefined;
1258
+ resolved?: boolean | undefined;
1259
+ }[];
1260
+ };
1261
+ by?: {
1262
+ id: string;
1263
+ name?: string | undefined;
1264
+ } | undefined;
1265
+ at: string;
1266
+ } | {
1267
+ author: "agent";
1268
+ answer: string;
1269
+ content?: ({
1270
+ type: "markdown";
1271
+ text: string;
1272
+ } | {
1273
+ type: "code";
1274
+ code: string;
1275
+ language?: string | undefined;
1276
+ filename?: string | undefined;
1277
+ } | {
1278
+ type: "diff";
1279
+ diff: string;
1280
+ filename?: string | undefined;
1281
+ } | {
1282
+ type: "image";
1283
+ uploadId: string;
1284
+ caption?: string | undefined;
1285
+ })[] | undefined;
1286
+ point?: string | undefined;
1287
+ points?: {
1288
+ id: string;
1289
+ title: string;
1290
+ detail?: string | undefined;
1291
+ content?: ({
1292
+ type: "markdown";
1293
+ text: string;
1294
+ } | {
1295
+ type: "code";
1296
+ code: string;
1297
+ language?: string | undefined;
1298
+ filename?: string | undefined;
1299
+ } | {
1300
+ type: "diff";
1301
+ diff: string;
1302
+ filename?: string | undefined;
1303
+ } | {
1304
+ type: "image";
1305
+ uploadId: string;
1306
+ caption?: string | undefined;
1307
+ })[] | undefined;
1308
+ }[] | undefined;
1309
+ at: string;
1310
+ })[];
1311
+ createdAt: string;
1312
+ updatedAt: string;
1313
+ closedAt?: string | undefined;
1314
+ } | {
1315
+ kind: "briefing";
1316
+ prompt: {
1317
+ title: string;
1318
+ summary?: string | undefined;
1319
+ sections: {
1320
+ title?: string | undefined;
1321
+ points: {
1322
+ id: string;
1323
+ title: string;
1324
+ detail?: string | undefined;
1325
+ content?: ({
1326
+ type: "markdown";
1327
+ text: string;
1328
+ } | {
1329
+ type: "code";
1330
+ code: string;
1331
+ language?: string | undefined;
1332
+ filename?: string | undefined;
1333
+ } | {
1334
+ type: "diff";
1335
+ diff: string;
1336
+ filename?: string | undefined;
1337
+ } | {
1338
+ type: "image";
1339
+ uploadId: string;
1340
+ caption?: string | undefined;
1341
+ })[] | undefined;
1342
+ }[];
1343
+ }[];
1344
+ };
1345
+ id: string;
1346
+ status: "awaiting_agent" | "awaiting_human" | "closed";
1347
+ waiting: boolean;
1348
+ project?: string | undefined;
1349
+ client?: string | undefined;
1350
+ raisedBy?: {
1351
+ id: string;
1352
+ name?: string | undefined;
1353
+ } | undefined;
1354
+ thread: ({
1355
+ author: "human";
1356
+ reply: {
1357
+ outcome: "answered";
1358
+ selected: string[];
1359
+ text?: string | undefined;
1360
+ } | {
1361
+ outcome: "approved";
1362
+ note?: string | undefined;
1363
+ } | {
1364
+ outcome: "changes_requested";
1365
+ feedback: string;
1366
+ } | {
1367
+ outcome: "follow_up";
1368
+ question: string;
1369
+ } | {
1370
+ outcome: "dismissed";
1371
+ } | {
1372
+ outcome: "responded";
1373
+ points: {
1374
+ point: string;
1375
+ text?: string | undefined;
1376
+ resolved?: boolean | undefined;
1377
+ }[];
1378
+ };
1379
+ by?: {
1380
+ id: string;
1381
+ name?: string | undefined;
1382
+ } | undefined;
1383
+ at: string;
1384
+ } | {
1385
+ author: "agent";
1386
+ answer: string;
1387
+ content?: ({
1388
+ type: "markdown";
1389
+ text: string;
1390
+ } | {
1391
+ type: "code";
1392
+ code: string;
1393
+ language?: string | undefined;
1394
+ filename?: string | undefined;
1395
+ } | {
1396
+ type: "diff";
1397
+ diff: string;
1398
+ filename?: string | undefined;
1399
+ } | {
1400
+ type: "image";
1401
+ uploadId: string;
1402
+ caption?: string | undefined;
1403
+ })[] | undefined;
1404
+ point?: string | undefined;
1405
+ points?: {
1406
+ id: string;
1407
+ title: string;
1408
+ detail?: string | undefined;
1409
+ content?: ({
1410
+ type: "markdown";
1411
+ text: string;
1412
+ } | {
1413
+ type: "code";
1414
+ code: string;
1415
+ language?: string | undefined;
1416
+ filename?: string | undefined;
1417
+ } | {
1418
+ type: "diff";
1419
+ diff: string;
1420
+ filename?: string | undefined;
1421
+ } | {
1422
+ type: "image";
1423
+ uploadId: string;
1424
+ caption?: string | undefined;
1425
+ })[] | undefined;
1426
+ }[] | undefined;
1427
+ at: string;
1428
+ })[];
1429
+ createdAt: string;
1430
+ updatedAt: string;
1431
+ closedAt?: string | undefined;
1432
+ };
1433
+ outputFormat: "json";
1434
+ status: 200;
1435
+ input: {
1436
+ param: {
1437
+ id: string;
1438
+ };
1439
+ } & {
1440
+ json: {
1441
+ outcome: "answered";
1442
+ selected: string[];
1443
+ text?: string;
1444
+ } | {
1445
+ outcome: "approved";
1446
+ note?: string;
1447
+ } | {
1448
+ outcome: "changes_requested";
1449
+ feedback: string;
1450
+ } | {
1451
+ outcome: "follow_up";
1452
+ question: string;
1453
+ } | {
1454
+ outcome: "dismissed";
1455
+ } | {
1456
+ outcome: "responded";
1457
+ points: {
1458
+ point: string;
1459
+ text?: string;
1460
+ resolved?: boolean;
1461
+ }[];
1462
+ };
1463
+ };
1464
+ };
1465
+ };
1466
+ }, "/asks"> | ({
1467
+ "/whoami": {
1468
+ $get: {
1469
+ output: {
1470
+ code: string;
1471
+ message: string;
1472
+ };
1473
+ outputFormat: "json";
1474
+ status: 401;
1475
+ input: {};
1476
+ } | {
1477
+ output: {
1478
+ space: string;
1479
+ actor: {
1480
+ id: string;
1481
+ name?: string | undefined;
1482
+ };
1483
+ };
1484
+ outputFormat: "json";
1485
+ status: 200;
1486
+ input: {};
1487
+ };
1488
+ };
1489
+ } & {
1490
+ "/events/tickets": {
1491
+ $post: {
1492
+ output: {
1493
+ code: string;
1494
+ message: string;
1495
+ };
1496
+ outputFormat: "json";
1497
+ status: 401;
1498
+ input: {};
1499
+ } | {
1500
+ output: {
1501
+ ticket: string;
1502
+ expiresAt: string;
1503
+ };
1504
+ outputFormat: "json";
1505
+ status: 201;
1506
+ input: {};
1507
+ };
1508
+ };
1509
+ } & {
1510
+ "/snapshot": {
1511
+ $get: {
1512
+ output: {
1513
+ code: string;
1514
+ message: string;
1515
+ };
1516
+ outputFormat: "json";
1517
+ status: 401;
1518
+ input: {};
1519
+ } | {
1520
+ output: {
1521
+ open: ({
1522
+ kind: "question";
1523
+ prompt: {
1524
+ question: string;
1525
+ options: {
1526
+ label: string;
1527
+ description?: string | undefined;
1528
+ }[];
1529
+ multiple: boolean;
1530
+ context?: string | undefined;
1531
+ };
1532
+ id: string;
1533
+ status: "awaiting_agent" | "awaiting_human" | "closed";
1534
+ waiting: boolean;
1535
+ project?: string | undefined;
1536
+ client?: string | undefined;
1537
+ raisedBy?: {
1538
+ id: string;
1539
+ name?: string | undefined;
1540
+ } | undefined;
1541
+ thread: ({
1542
+ author: "human";
1543
+ reply: {
1544
+ outcome: "answered";
1545
+ selected: string[];
1546
+ text?: string | undefined;
1547
+ } | {
1548
+ outcome: "approved";
1549
+ note?: string | undefined;
1550
+ } | {
1551
+ outcome: "changes_requested";
1552
+ feedback: string;
1553
+ } | {
1554
+ outcome: "follow_up";
1555
+ question: string;
1556
+ } | {
1557
+ outcome: "dismissed";
1558
+ } | {
1559
+ outcome: "responded";
1560
+ points: {
1561
+ point: string;
1562
+ text?: string | undefined;
1563
+ resolved?: boolean | undefined;
1564
+ }[];
1565
+ };
1566
+ by?: {
1567
+ id: string;
1568
+ name?: string | undefined;
1569
+ } | undefined;
1570
+ at: string;
1571
+ } | {
1572
+ author: "agent";
1573
+ answer: string;
1574
+ content?: ({
1575
+ type: "markdown";
1576
+ text: string;
1577
+ } | {
1578
+ type: "code";
1579
+ code: string;
1580
+ language?: string | undefined;
1581
+ filename?: string | undefined;
1582
+ } | {
1583
+ type: "diff";
1584
+ diff: string;
1585
+ filename?: string | undefined;
1586
+ } | {
1587
+ type: "image";
1588
+ uploadId: string;
1589
+ caption?: string | undefined;
1590
+ })[] | undefined;
1591
+ point?: string | undefined;
1592
+ points?: {
1593
+ id: string;
1594
+ title: string;
1595
+ detail?: string | undefined;
1596
+ content?: ({
1597
+ type: "markdown";
1598
+ text: string;
1599
+ } | {
1600
+ type: "code";
1601
+ code: string;
1602
+ language?: string | undefined;
1603
+ filename?: string | undefined;
1604
+ } | {
1605
+ type: "diff";
1606
+ diff: string;
1607
+ filename?: string | undefined;
1608
+ } | {
1609
+ type: "image";
1610
+ uploadId: string;
1611
+ caption?: string | undefined;
1612
+ })[] | undefined;
1613
+ }[] | undefined;
1614
+ at: string;
1615
+ })[];
1616
+ createdAt: string;
1617
+ updatedAt: string;
1618
+ closedAt?: string | undefined;
1619
+ } | {
1620
+ kind: "review";
1621
+ prompt: {
1622
+ title: string;
1623
+ content: ({
1624
+ type: "markdown";
1625
+ text: string;
1626
+ } | {
1627
+ type: "code";
1628
+ code: string;
1629
+ language?: string | undefined;
1630
+ filename?: string | undefined;
1631
+ } | {
1632
+ type: "diff";
1633
+ diff: string;
1634
+ filename?: string | undefined;
1635
+ } | {
1636
+ type: "image";
1637
+ uploadId: string;
1638
+ caption?: string | undefined;
1639
+ })[];
1640
+ summary?: string | undefined;
1641
+ };
1642
+ revises?: string | undefined;
1643
+ id: string;
1644
+ status: "awaiting_agent" | "awaiting_human" | "closed";
1645
+ waiting: boolean;
1646
+ project?: string | undefined;
1647
+ client?: string | undefined;
1648
+ raisedBy?: {
1649
+ id: string;
1650
+ name?: string | undefined;
1651
+ } | undefined;
1652
+ thread: ({
1653
+ author: "human";
1654
+ reply: {
1655
+ outcome: "answered";
1656
+ selected: string[];
1657
+ text?: string | undefined;
1658
+ } | {
1659
+ outcome: "approved";
1660
+ note?: string | undefined;
1661
+ } | {
1662
+ outcome: "changes_requested";
1663
+ feedback: string;
1664
+ } | {
1665
+ outcome: "follow_up";
1666
+ question: string;
1667
+ } | {
1668
+ outcome: "dismissed";
1669
+ } | {
1670
+ outcome: "responded";
1671
+ points: {
1672
+ point: string;
1673
+ text?: string | undefined;
1674
+ resolved?: boolean | undefined;
1675
+ }[];
1676
+ };
1677
+ by?: {
1678
+ id: string;
1679
+ name?: string | undefined;
1680
+ } | undefined;
1681
+ at: string;
1682
+ } | {
1683
+ author: "agent";
1684
+ answer: string;
1685
+ content?: ({
1686
+ type: "markdown";
1687
+ text: string;
1688
+ } | {
1689
+ type: "code";
1690
+ code: string;
1691
+ language?: string | undefined;
1692
+ filename?: string | undefined;
1693
+ } | {
1694
+ type: "diff";
1695
+ diff: string;
1696
+ filename?: string | undefined;
1697
+ } | {
1698
+ type: "image";
1699
+ uploadId: string;
1700
+ caption?: string | undefined;
1701
+ })[] | undefined;
1702
+ point?: string | undefined;
1703
+ points?: {
1704
+ id: string;
1705
+ title: string;
1706
+ detail?: string | undefined;
1707
+ content?: ({
1708
+ type: "markdown";
1709
+ text: string;
1710
+ } | {
1711
+ type: "code";
1712
+ code: string;
1713
+ language?: string | undefined;
1714
+ filename?: string | undefined;
1715
+ } | {
1716
+ type: "diff";
1717
+ diff: string;
1718
+ filename?: string | undefined;
1719
+ } | {
1720
+ type: "image";
1721
+ uploadId: string;
1722
+ caption?: string | undefined;
1723
+ })[] | undefined;
1724
+ }[] | undefined;
1725
+ at: string;
1726
+ })[];
1727
+ createdAt: string;
1728
+ updatedAt: string;
1729
+ closedAt?: string | undefined;
1730
+ } | {
1731
+ kind: "briefing";
1732
+ prompt: {
1733
+ title: string;
1734
+ summary?: string | undefined;
1735
+ sections: {
1736
+ title?: string | undefined;
1737
+ points: {
1738
+ id: string;
1739
+ title: string;
1740
+ detail?: string | undefined;
1741
+ content?: ({
1742
+ type: "markdown";
1743
+ text: string;
1744
+ } | {
1745
+ type: "code";
1746
+ code: string;
1747
+ language?: string | undefined;
1748
+ filename?: string | undefined;
1749
+ } | {
1750
+ type: "diff";
1751
+ diff: string;
1752
+ filename?: string | undefined;
1753
+ } | {
1754
+ type: "image";
1755
+ uploadId: string;
1756
+ caption?: string | undefined;
1757
+ })[] | undefined;
1758
+ }[];
1759
+ }[];
1760
+ };
1761
+ id: string;
1762
+ status: "awaiting_agent" | "awaiting_human" | "closed";
1763
+ waiting: boolean;
1764
+ project?: string | undefined;
1765
+ client?: string | undefined;
1766
+ raisedBy?: {
1767
+ id: string;
1768
+ name?: string | undefined;
1769
+ } | undefined;
1770
+ thread: ({
1771
+ author: "human";
1772
+ reply: {
1773
+ outcome: "answered";
1774
+ selected: string[];
1775
+ text?: string | undefined;
1776
+ } | {
1777
+ outcome: "approved";
1778
+ note?: string | undefined;
1779
+ } | {
1780
+ outcome: "changes_requested";
1781
+ feedback: string;
1782
+ } | {
1783
+ outcome: "follow_up";
1784
+ question: string;
1785
+ } | {
1786
+ outcome: "dismissed";
1787
+ } | {
1788
+ outcome: "responded";
1789
+ points: {
1790
+ point: string;
1791
+ text?: string | undefined;
1792
+ resolved?: boolean | undefined;
1793
+ }[];
1794
+ };
1795
+ by?: {
1796
+ id: string;
1797
+ name?: string | undefined;
1798
+ } | undefined;
1799
+ at: string;
1800
+ } | {
1801
+ author: "agent";
1802
+ answer: string;
1803
+ content?: ({
1804
+ type: "markdown";
1805
+ text: string;
1806
+ } | {
1807
+ type: "code";
1808
+ code: string;
1809
+ language?: string | undefined;
1810
+ filename?: string | undefined;
1811
+ } | {
1812
+ type: "diff";
1813
+ diff: string;
1814
+ filename?: string | undefined;
1815
+ } | {
1816
+ type: "image";
1817
+ uploadId: string;
1818
+ caption?: string | undefined;
1819
+ })[] | undefined;
1820
+ point?: string | undefined;
1821
+ points?: {
1822
+ id: string;
1823
+ title: string;
1824
+ detail?: string | undefined;
1825
+ content?: ({
1826
+ type: "markdown";
1827
+ text: string;
1828
+ } | {
1829
+ type: "code";
1830
+ code: string;
1831
+ language?: string | undefined;
1832
+ filename?: string | undefined;
1833
+ } | {
1834
+ type: "diff";
1835
+ diff: string;
1836
+ filename?: string | undefined;
1837
+ } | {
1838
+ type: "image";
1839
+ uploadId: string;
1840
+ caption?: string | undefined;
1841
+ })[] | undefined;
1842
+ }[] | undefined;
1843
+ at: string;
1844
+ })[];
1845
+ createdAt: string;
1846
+ updatedAt: string;
1847
+ closedAt?: string | undefined;
1848
+ })[];
1849
+ recent: ({
1850
+ kind: "question";
1851
+ prompt: {
1852
+ question: string;
1853
+ options: {
1854
+ label: string;
1855
+ description?: string | undefined;
1856
+ }[];
1857
+ multiple: boolean;
1858
+ context?: string | undefined;
1859
+ };
1860
+ id: string;
1861
+ status: "awaiting_agent" | "awaiting_human" | "closed";
1862
+ waiting: boolean;
1863
+ project?: string | undefined;
1864
+ client?: string | undefined;
1865
+ raisedBy?: {
1866
+ id: string;
1867
+ name?: string | undefined;
1868
+ } | undefined;
1869
+ thread: ({
1870
+ author: "human";
1871
+ reply: {
1872
+ outcome: "answered";
1873
+ selected: string[];
1874
+ text?: string | undefined;
1875
+ } | {
1876
+ outcome: "approved";
1877
+ note?: string | undefined;
1878
+ } | {
1879
+ outcome: "changes_requested";
1880
+ feedback: string;
1881
+ } | {
1882
+ outcome: "follow_up";
1883
+ question: string;
1884
+ } | {
1885
+ outcome: "dismissed";
1886
+ } | {
1887
+ outcome: "responded";
1888
+ points: {
1889
+ point: string;
1890
+ text?: string | undefined;
1891
+ resolved?: boolean | undefined;
1892
+ }[];
1893
+ };
1894
+ by?: {
1895
+ id: string;
1896
+ name?: string | undefined;
1897
+ } | undefined;
1898
+ at: string;
1899
+ } | {
1900
+ author: "agent";
1901
+ answer: string;
1902
+ content?: ({
1903
+ type: "markdown";
1904
+ text: string;
1905
+ } | {
1906
+ type: "code";
1907
+ code: string;
1908
+ language?: string | undefined;
1909
+ filename?: string | undefined;
1910
+ } | {
1911
+ type: "diff";
1912
+ diff: string;
1913
+ filename?: string | undefined;
1914
+ } | {
1915
+ type: "image";
1916
+ uploadId: string;
1917
+ caption?: string | undefined;
1918
+ })[] | undefined;
1919
+ point?: string | undefined;
1920
+ points?: {
1921
+ id: string;
1922
+ title: string;
1923
+ detail?: string | undefined;
1924
+ content?: ({
1925
+ type: "markdown";
1926
+ text: string;
1927
+ } | {
1928
+ type: "code";
1929
+ code: string;
1930
+ language?: string | undefined;
1931
+ filename?: string | undefined;
1932
+ } | {
1933
+ type: "diff";
1934
+ diff: string;
1935
+ filename?: string | undefined;
1936
+ } | {
1937
+ type: "image";
1938
+ uploadId: string;
1939
+ caption?: string | undefined;
1940
+ })[] | undefined;
1941
+ }[] | undefined;
1942
+ at: string;
1943
+ })[];
1944
+ createdAt: string;
1945
+ updatedAt: string;
1946
+ closedAt?: string | undefined;
1947
+ } | {
1948
+ kind: "review";
1949
+ prompt: {
1950
+ title: string;
1951
+ content: ({
1952
+ type: "markdown";
1953
+ text: string;
1954
+ } | {
1955
+ type: "code";
1956
+ code: string;
1957
+ language?: string | undefined;
1958
+ filename?: string | undefined;
1959
+ } | {
1960
+ type: "diff";
1961
+ diff: string;
1962
+ filename?: string | undefined;
1963
+ } | {
1964
+ type: "image";
1965
+ uploadId: string;
1966
+ caption?: string | undefined;
1967
+ })[];
1968
+ summary?: string | undefined;
1969
+ };
1970
+ revises?: string | undefined;
1971
+ id: string;
1972
+ status: "awaiting_agent" | "awaiting_human" | "closed";
1973
+ waiting: boolean;
1974
+ project?: string | undefined;
1975
+ client?: string | undefined;
1976
+ raisedBy?: {
1977
+ id: string;
1978
+ name?: string | undefined;
1979
+ } | undefined;
1980
+ thread: ({
1981
+ author: "human";
1982
+ reply: {
1983
+ outcome: "answered";
1984
+ selected: string[];
1985
+ text?: string | undefined;
1986
+ } | {
1987
+ outcome: "approved";
1988
+ note?: string | undefined;
1989
+ } | {
1990
+ outcome: "changes_requested";
1991
+ feedback: string;
1992
+ } | {
1993
+ outcome: "follow_up";
1994
+ question: string;
1995
+ } | {
1996
+ outcome: "dismissed";
1997
+ } | {
1998
+ outcome: "responded";
1999
+ points: {
2000
+ point: string;
2001
+ text?: string | undefined;
2002
+ resolved?: boolean | undefined;
2003
+ }[];
2004
+ };
2005
+ by?: {
2006
+ id: string;
2007
+ name?: string | undefined;
2008
+ } | undefined;
2009
+ at: string;
2010
+ } | {
2011
+ author: "agent";
2012
+ answer: string;
2013
+ content?: ({
2014
+ type: "markdown";
2015
+ text: string;
2016
+ } | {
2017
+ type: "code";
2018
+ code: string;
2019
+ language?: string | undefined;
2020
+ filename?: string | undefined;
2021
+ } | {
2022
+ type: "diff";
2023
+ diff: string;
2024
+ filename?: string | undefined;
2025
+ } | {
2026
+ type: "image";
2027
+ uploadId: string;
2028
+ caption?: string | undefined;
2029
+ })[] | undefined;
2030
+ point?: string | undefined;
2031
+ points?: {
2032
+ id: string;
2033
+ title: string;
2034
+ detail?: string | undefined;
2035
+ content?: ({
2036
+ type: "markdown";
2037
+ text: string;
2038
+ } | {
2039
+ type: "code";
2040
+ code: string;
2041
+ language?: string | undefined;
2042
+ filename?: string | undefined;
2043
+ } | {
2044
+ type: "diff";
2045
+ diff: string;
2046
+ filename?: string | undefined;
2047
+ } | {
2048
+ type: "image";
2049
+ uploadId: string;
2050
+ caption?: string | undefined;
2051
+ })[] | undefined;
2052
+ }[] | undefined;
2053
+ at: string;
2054
+ })[];
2055
+ createdAt: string;
2056
+ updatedAt: string;
2057
+ closedAt?: string | undefined;
2058
+ } | {
2059
+ kind: "briefing";
2060
+ prompt: {
2061
+ title: string;
2062
+ summary?: string | undefined;
2063
+ sections: {
2064
+ title?: string | undefined;
2065
+ points: {
2066
+ id: string;
2067
+ title: string;
2068
+ detail?: string | undefined;
2069
+ content?: ({
2070
+ type: "markdown";
2071
+ text: string;
2072
+ } | {
2073
+ type: "code";
2074
+ code: string;
2075
+ language?: string | undefined;
2076
+ filename?: string | undefined;
2077
+ } | {
2078
+ type: "diff";
2079
+ diff: string;
2080
+ filename?: string | undefined;
2081
+ } | {
2082
+ type: "image";
2083
+ uploadId: string;
2084
+ caption?: string | undefined;
2085
+ })[] | undefined;
2086
+ }[];
2087
+ }[];
2088
+ };
2089
+ id: string;
2090
+ status: "awaiting_agent" | "awaiting_human" | "closed";
2091
+ waiting: boolean;
2092
+ project?: string | undefined;
2093
+ client?: string | undefined;
2094
+ raisedBy?: {
2095
+ id: string;
2096
+ name?: string | undefined;
2097
+ } | undefined;
2098
+ thread: ({
2099
+ author: "human";
2100
+ reply: {
2101
+ outcome: "answered";
2102
+ selected: string[];
2103
+ text?: string | undefined;
2104
+ } | {
2105
+ outcome: "approved";
2106
+ note?: string | undefined;
2107
+ } | {
2108
+ outcome: "changes_requested";
2109
+ feedback: string;
2110
+ } | {
2111
+ outcome: "follow_up";
2112
+ question: string;
2113
+ } | {
2114
+ outcome: "dismissed";
2115
+ } | {
2116
+ outcome: "responded";
2117
+ points: {
2118
+ point: string;
2119
+ text?: string | undefined;
2120
+ resolved?: boolean | undefined;
2121
+ }[];
2122
+ };
2123
+ by?: {
2124
+ id: string;
2125
+ name?: string | undefined;
2126
+ } | undefined;
2127
+ at: string;
2128
+ } | {
2129
+ author: "agent";
2130
+ answer: string;
2131
+ content?: ({
2132
+ type: "markdown";
2133
+ text: string;
2134
+ } | {
2135
+ type: "code";
2136
+ code: string;
2137
+ language?: string | undefined;
2138
+ filename?: string | undefined;
2139
+ } | {
2140
+ type: "diff";
2141
+ diff: string;
2142
+ filename?: string | undefined;
2143
+ } | {
2144
+ type: "image";
2145
+ uploadId: string;
2146
+ caption?: string | undefined;
2147
+ })[] | undefined;
2148
+ point?: string | undefined;
2149
+ points?: {
2150
+ id: string;
2151
+ title: string;
2152
+ detail?: string | undefined;
2153
+ content?: ({
2154
+ type: "markdown";
2155
+ text: string;
2156
+ } | {
2157
+ type: "code";
2158
+ code: string;
2159
+ language?: string | undefined;
2160
+ filename?: string | undefined;
2161
+ } | {
2162
+ type: "diff";
2163
+ diff: string;
2164
+ filename?: string | undefined;
2165
+ } | {
2166
+ type: "image";
2167
+ uploadId: string;
2168
+ caption?: string | undefined;
2169
+ })[] | undefined;
2170
+ }[] | undefined;
2171
+ at: string;
2172
+ })[];
2173
+ createdAt: string;
2174
+ updatedAt: string;
2175
+ closedAt?: string | undefined;
2176
+ })[];
2177
+ };
2178
+ outputFormat: "json";
2179
+ status: 200;
2180
+ input: {};
2181
+ };
2182
+ };
2183
+ } & {
2184
+ "/files/:uploadId": {
2185
+ $get: {
2186
+ output: {
2187
+ code: string;
2188
+ message: string;
2189
+ };
2190
+ outputFormat: "json";
2191
+ status: 401;
2192
+ input: {
2193
+ param: {
2194
+ uploadId: string;
2195
+ };
2196
+ };
2197
+ } | {
2198
+ output: {
2199
+ code: string;
2200
+ message: string;
2201
+ };
2202
+ outputFormat: "json";
2203
+ status: 404;
2204
+ input: {
2205
+ param: {
2206
+ uploadId: string;
2207
+ };
2208
+ };
2209
+ } | {
2210
+ output: ArrayBuffer | ReadableStream<Uint8Array<ArrayBufferLike>> | Uint8Array<ArrayBuffer>;
2211
+ outputFormat: "body";
2212
+ status: 200;
2213
+ input: {
2214
+ param: {
2215
+ uploadId: string;
2216
+ };
2217
+ };
2218
+ };
2219
+ };
2220
+ } & {
2221
+ "/uploads/:spaceId/:token": {
2222
+ $put: {
2223
+ output: {
2224
+ code: string;
2225
+ message: string;
2226
+ };
2227
+ outputFormat: "json";
2228
+ status: 404;
2229
+ input: {
2230
+ param: {
2231
+ spaceId: string;
2232
+ token: string;
2233
+ };
2234
+ } & {
2235
+ header: {
2236
+ "Content-Type": string;
2237
+ };
2238
+ };
2239
+ } | {
2240
+ output: {
2241
+ code: string;
2242
+ message: string;
2243
+ };
2244
+ outputFormat: "json";
2245
+ status: 410;
2246
+ input: {
2247
+ param: {
2248
+ spaceId: string;
2249
+ token: string;
2250
+ };
2251
+ } & {
2252
+ header: {
2253
+ "Content-Type": string;
2254
+ };
2255
+ };
2256
+ } | {
2257
+ output: {
2258
+ code: string;
2259
+ message: string;
2260
+ };
2261
+ outputFormat: "json";
2262
+ status: 413;
2263
+ input: {
2264
+ param: {
2265
+ spaceId: string;
2266
+ token: string;
2267
+ };
2268
+ } & {
2269
+ header: {
2270
+ "Content-Type": string;
2271
+ };
2272
+ };
2273
+ } | {
2274
+ output: {
2275
+ code: string;
2276
+ message: string;
2277
+ };
2278
+ outputFormat: "json";
2279
+ status: 422;
2280
+ input: {
2281
+ param: {
2282
+ spaceId: string;
2283
+ token: string;
2284
+ };
2285
+ } & {
2286
+ header: {
2287
+ "Content-Type": string;
2288
+ };
2289
+ };
2290
+ } | {
2291
+ output: {
2292
+ uploadId: string;
2293
+ contentType: "image/gif" | "image/jpeg" | "image/png" | "image/webp";
2294
+ size: number;
2295
+ };
2296
+ outputFormat: "json";
2297
+ status: 201;
2298
+ input: {
2299
+ param: {
2300
+ spaceId: string;
2301
+ token: string;
2302
+ };
2303
+ } & {
2304
+ header: {
2305
+ "Content-Type": string;
2306
+ };
2307
+ };
2308
+ };
2309
+ };
2310
+ }), "/api/v1">, "/", "/">;
2311
+ export {};