@loculabs/api-client 1.2.0 → 1.4.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.
- package/CHANGELOG.md +19 -0
- package/dist/index.d.mts +3769 -234
- package/dist/index.d.ts +3769 -234
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +5 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.d.mts
CHANGED
|
@@ -1,73 +1,3421 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
1
|
+
/**
|
|
2
|
+
* This file was auto-generated by openapi-typescript.
|
|
3
|
+
* Do not make direct changes to the file.
|
|
4
|
+
*/
|
|
5
|
+
interface paths {
|
|
6
|
+
"/me": {
|
|
7
|
+
parameters: {
|
|
8
|
+
query?: never;
|
|
9
|
+
header?: never;
|
|
10
|
+
path?: never;
|
|
11
|
+
cookie?: never;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Get current user
|
|
15
|
+
* @description Returns information about the authenticated user and workspace associated with the API token.
|
|
16
|
+
*/
|
|
17
|
+
get: {
|
|
18
|
+
parameters: {
|
|
19
|
+
query?: never;
|
|
20
|
+
header?: never;
|
|
21
|
+
path?: never;
|
|
22
|
+
cookie?: never;
|
|
23
|
+
};
|
|
24
|
+
requestBody?: never;
|
|
25
|
+
responses: {
|
|
26
|
+
/** @description Successful response */
|
|
27
|
+
200: {
|
|
28
|
+
headers: {
|
|
29
|
+
[name: string]: unknown;
|
|
30
|
+
};
|
|
31
|
+
content: {
|
|
32
|
+
"application/json": components["schemas"]["MeResponse"];
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
/** @description Bad request - validation error */
|
|
36
|
+
400: {
|
|
37
|
+
headers: {
|
|
38
|
+
[name: string]: unknown;
|
|
39
|
+
};
|
|
40
|
+
content: {
|
|
41
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
45
|
+
401: {
|
|
46
|
+
headers: {
|
|
47
|
+
[name: string]: unknown;
|
|
48
|
+
};
|
|
49
|
+
content: {
|
|
50
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
/** @description Resource not found */
|
|
54
|
+
404: {
|
|
55
|
+
headers: {
|
|
56
|
+
[name: string]: unknown;
|
|
57
|
+
};
|
|
58
|
+
content: {
|
|
59
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
/** @description Rate limit exceeded */
|
|
63
|
+
429: {
|
|
64
|
+
headers: {
|
|
65
|
+
[name: string]: unknown;
|
|
66
|
+
};
|
|
67
|
+
content: {
|
|
68
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
/** @description Internal server error */
|
|
72
|
+
500: {
|
|
73
|
+
headers: {
|
|
74
|
+
[name: string]: unknown;
|
|
75
|
+
};
|
|
76
|
+
content: {
|
|
77
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
put?: never;
|
|
83
|
+
post?: never;
|
|
84
|
+
delete?: never;
|
|
85
|
+
options?: never;
|
|
86
|
+
head?: never;
|
|
87
|
+
patch?: never;
|
|
88
|
+
trace?: never;
|
|
89
|
+
};
|
|
90
|
+
"/notes": {
|
|
91
|
+
parameters: {
|
|
92
|
+
query?: never;
|
|
93
|
+
header?: never;
|
|
94
|
+
path?: never;
|
|
95
|
+
cookie?: never;
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* List notes
|
|
99
|
+
* @description Retrieve a paginated list of notes. Supports filtering by folder.
|
|
100
|
+
*/
|
|
101
|
+
get: {
|
|
102
|
+
parameters: {
|
|
103
|
+
query?: {
|
|
104
|
+
/** @description Number of notes to return */
|
|
105
|
+
limit?: number;
|
|
106
|
+
/** @description Cursor for pagination */
|
|
107
|
+
cursor?: string;
|
|
108
|
+
/** @description Filter by parent folder ID */
|
|
109
|
+
folderId?: string;
|
|
110
|
+
/** @description Include HTML representation of the note content */
|
|
111
|
+
includeHtml?: boolean | null;
|
|
112
|
+
};
|
|
113
|
+
header?: never;
|
|
114
|
+
path?: never;
|
|
115
|
+
cookie?: never;
|
|
116
|
+
};
|
|
117
|
+
requestBody?: never;
|
|
118
|
+
responses: {
|
|
119
|
+
/** @description Successful response */
|
|
120
|
+
200: {
|
|
121
|
+
headers: {
|
|
122
|
+
[name: string]: unknown;
|
|
123
|
+
};
|
|
124
|
+
content: {
|
|
125
|
+
"application/json": components["schemas"]["NoteListResponse"];
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
/** @description Bad request - validation error */
|
|
129
|
+
400: {
|
|
130
|
+
headers: {
|
|
131
|
+
[name: string]: unknown;
|
|
132
|
+
};
|
|
133
|
+
content: {
|
|
134
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
135
|
+
};
|
|
136
|
+
};
|
|
137
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
138
|
+
401: {
|
|
139
|
+
headers: {
|
|
140
|
+
[name: string]: unknown;
|
|
141
|
+
};
|
|
142
|
+
content: {
|
|
143
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
144
|
+
};
|
|
145
|
+
};
|
|
146
|
+
/** @description Resource not found */
|
|
147
|
+
404: {
|
|
148
|
+
headers: {
|
|
149
|
+
[name: string]: unknown;
|
|
150
|
+
};
|
|
151
|
+
content: {
|
|
152
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
153
|
+
};
|
|
154
|
+
};
|
|
155
|
+
/** @description Rate limit exceeded */
|
|
156
|
+
429: {
|
|
157
|
+
headers: {
|
|
158
|
+
[name: string]: unknown;
|
|
159
|
+
};
|
|
160
|
+
content: {
|
|
161
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
162
|
+
};
|
|
163
|
+
};
|
|
164
|
+
/** @description Internal server error */
|
|
165
|
+
500: {
|
|
166
|
+
headers: {
|
|
167
|
+
[name: string]: unknown;
|
|
168
|
+
};
|
|
169
|
+
content: {
|
|
170
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
171
|
+
};
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
};
|
|
175
|
+
put?: never;
|
|
176
|
+
/**
|
|
177
|
+
* Create note
|
|
178
|
+
* @description Create a new note.
|
|
179
|
+
*/
|
|
180
|
+
post: {
|
|
181
|
+
parameters: {
|
|
182
|
+
query?: {
|
|
183
|
+
/** @description Include HTML representation of the note content */
|
|
184
|
+
includeHtml?: boolean | null;
|
|
185
|
+
};
|
|
186
|
+
header?: never;
|
|
187
|
+
path?: never;
|
|
188
|
+
cookie?: never;
|
|
189
|
+
};
|
|
190
|
+
requestBody: {
|
|
191
|
+
content: {
|
|
192
|
+
"application/json": components["schemas"]["CreateNoteRequest"];
|
|
193
|
+
};
|
|
194
|
+
};
|
|
195
|
+
responses: {
|
|
196
|
+
/** @description Successful response */
|
|
197
|
+
200: {
|
|
198
|
+
headers: {
|
|
199
|
+
[name: string]: unknown;
|
|
200
|
+
};
|
|
201
|
+
content: {
|
|
202
|
+
"application/json": components["schemas"]["Note"];
|
|
203
|
+
};
|
|
204
|
+
};
|
|
205
|
+
/** @description Bad request - validation error */
|
|
206
|
+
400: {
|
|
207
|
+
headers: {
|
|
208
|
+
[name: string]: unknown;
|
|
209
|
+
};
|
|
210
|
+
content: {
|
|
211
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
212
|
+
};
|
|
213
|
+
};
|
|
214
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
215
|
+
401: {
|
|
216
|
+
headers: {
|
|
217
|
+
[name: string]: unknown;
|
|
218
|
+
};
|
|
219
|
+
content: {
|
|
220
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
221
|
+
};
|
|
222
|
+
};
|
|
223
|
+
/** @description Resource not found */
|
|
224
|
+
404: {
|
|
225
|
+
headers: {
|
|
226
|
+
[name: string]: unknown;
|
|
227
|
+
};
|
|
228
|
+
content: {
|
|
229
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
230
|
+
};
|
|
231
|
+
};
|
|
232
|
+
/** @description Rate limit exceeded */
|
|
233
|
+
429: {
|
|
234
|
+
headers: {
|
|
235
|
+
[name: string]: unknown;
|
|
236
|
+
};
|
|
237
|
+
content: {
|
|
238
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
239
|
+
};
|
|
240
|
+
};
|
|
241
|
+
/** @description Internal server error */
|
|
242
|
+
500: {
|
|
243
|
+
headers: {
|
|
244
|
+
[name: string]: unknown;
|
|
245
|
+
};
|
|
246
|
+
content: {
|
|
247
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
248
|
+
};
|
|
249
|
+
};
|
|
250
|
+
};
|
|
251
|
+
};
|
|
252
|
+
delete?: never;
|
|
253
|
+
options?: never;
|
|
254
|
+
head?: never;
|
|
255
|
+
patch?: never;
|
|
256
|
+
trace?: never;
|
|
257
|
+
};
|
|
258
|
+
"/notes/{id}": {
|
|
259
|
+
parameters: {
|
|
260
|
+
query?: never;
|
|
261
|
+
header?: never;
|
|
262
|
+
path?: never;
|
|
263
|
+
cookie?: never;
|
|
264
|
+
};
|
|
265
|
+
/**
|
|
266
|
+
* Get note
|
|
267
|
+
* @description Retrieve a single note by ID.
|
|
268
|
+
*/
|
|
269
|
+
get: {
|
|
270
|
+
parameters: {
|
|
271
|
+
query?: {
|
|
272
|
+
/** @description Include HTML representation of the note content */
|
|
273
|
+
includeHtml?: boolean | null;
|
|
274
|
+
};
|
|
275
|
+
header?: never;
|
|
276
|
+
path: {
|
|
277
|
+
/** @description Note ID */
|
|
278
|
+
id: string;
|
|
279
|
+
};
|
|
280
|
+
cookie?: never;
|
|
281
|
+
};
|
|
282
|
+
requestBody?: never;
|
|
283
|
+
responses: {
|
|
284
|
+
/** @description Successful response */
|
|
285
|
+
200: {
|
|
286
|
+
headers: {
|
|
287
|
+
[name: string]: unknown;
|
|
288
|
+
};
|
|
289
|
+
content: {
|
|
290
|
+
"application/json": components["schemas"]["Note"];
|
|
291
|
+
};
|
|
292
|
+
};
|
|
293
|
+
/** @description Bad request - validation error */
|
|
294
|
+
400: {
|
|
295
|
+
headers: {
|
|
296
|
+
[name: string]: unknown;
|
|
297
|
+
};
|
|
298
|
+
content: {
|
|
299
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
300
|
+
};
|
|
301
|
+
};
|
|
302
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
303
|
+
401: {
|
|
304
|
+
headers: {
|
|
305
|
+
[name: string]: unknown;
|
|
306
|
+
};
|
|
307
|
+
content: {
|
|
308
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
309
|
+
};
|
|
310
|
+
};
|
|
311
|
+
/** @description Resource not found */
|
|
312
|
+
404: {
|
|
313
|
+
headers: {
|
|
314
|
+
[name: string]: unknown;
|
|
315
|
+
};
|
|
316
|
+
content: {
|
|
317
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
318
|
+
};
|
|
319
|
+
};
|
|
320
|
+
/** @description Rate limit exceeded */
|
|
321
|
+
429: {
|
|
322
|
+
headers: {
|
|
323
|
+
[name: string]: unknown;
|
|
324
|
+
};
|
|
325
|
+
content: {
|
|
326
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
327
|
+
};
|
|
328
|
+
};
|
|
329
|
+
/** @description Internal server error */
|
|
330
|
+
500: {
|
|
331
|
+
headers: {
|
|
332
|
+
[name: string]: unknown;
|
|
333
|
+
};
|
|
334
|
+
content: {
|
|
335
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
336
|
+
};
|
|
337
|
+
};
|
|
338
|
+
};
|
|
339
|
+
};
|
|
340
|
+
put?: never;
|
|
341
|
+
post?: never;
|
|
342
|
+
/**
|
|
343
|
+
* Delete note
|
|
344
|
+
* @description Delete a note.
|
|
345
|
+
*/
|
|
346
|
+
delete: {
|
|
347
|
+
parameters: {
|
|
348
|
+
query?: never;
|
|
349
|
+
header?: never;
|
|
350
|
+
path: {
|
|
351
|
+
/** @description Note ID */
|
|
352
|
+
id: string;
|
|
353
|
+
};
|
|
354
|
+
cookie?: never;
|
|
355
|
+
};
|
|
356
|
+
requestBody?: never;
|
|
357
|
+
responses: {
|
|
358
|
+
/** @description Successful response */
|
|
359
|
+
200: {
|
|
360
|
+
headers: {
|
|
361
|
+
[name: string]: unknown;
|
|
362
|
+
};
|
|
363
|
+
content: {
|
|
364
|
+
"application/json": components["schemas"]["DeleteNoteResponse"];
|
|
365
|
+
};
|
|
366
|
+
};
|
|
367
|
+
/** @description Bad request - validation error */
|
|
368
|
+
400: {
|
|
369
|
+
headers: {
|
|
370
|
+
[name: string]: unknown;
|
|
371
|
+
};
|
|
372
|
+
content: {
|
|
373
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
374
|
+
};
|
|
375
|
+
};
|
|
376
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
377
|
+
401: {
|
|
378
|
+
headers: {
|
|
379
|
+
[name: string]: unknown;
|
|
380
|
+
};
|
|
381
|
+
content: {
|
|
382
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
383
|
+
};
|
|
384
|
+
};
|
|
385
|
+
/** @description Resource not found */
|
|
386
|
+
404: {
|
|
387
|
+
headers: {
|
|
388
|
+
[name: string]: unknown;
|
|
389
|
+
};
|
|
390
|
+
content: {
|
|
391
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
392
|
+
};
|
|
393
|
+
};
|
|
394
|
+
/** @description Rate limit exceeded */
|
|
395
|
+
429: {
|
|
396
|
+
headers: {
|
|
397
|
+
[name: string]: unknown;
|
|
398
|
+
};
|
|
399
|
+
content: {
|
|
400
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
401
|
+
};
|
|
402
|
+
};
|
|
403
|
+
/** @description Internal server error */
|
|
404
|
+
500: {
|
|
405
|
+
headers: {
|
|
406
|
+
[name: string]: unknown;
|
|
407
|
+
};
|
|
408
|
+
content: {
|
|
409
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
410
|
+
};
|
|
411
|
+
};
|
|
412
|
+
};
|
|
413
|
+
};
|
|
414
|
+
options?: never;
|
|
415
|
+
head?: never;
|
|
416
|
+
/**
|
|
417
|
+
* Update note
|
|
418
|
+
* @description Update an existing note. Only provided fields will be modified.
|
|
419
|
+
*/
|
|
420
|
+
patch: {
|
|
421
|
+
parameters: {
|
|
422
|
+
query?: {
|
|
423
|
+
/** @description Include HTML representation of the note content */
|
|
424
|
+
includeHtml?: boolean | null;
|
|
425
|
+
};
|
|
426
|
+
header?: never;
|
|
427
|
+
path: {
|
|
428
|
+
/** @description Note ID */
|
|
429
|
+
id: string;
|
|
430
|
+
};
|
|
431
|
+
cookie?: never;
|
|
432
|
+
};
|
|
433
|
+
requestBody: {
|
|
434
|
+
content: {
|
|
435
|
+
"application/json": components["schemas"]["UpdateNoteRequest"];
|
|
436
|
+
};
|
|
437
|
+
};
|
|
438
|
+
responses: {
|
|
439
|
+
/** @description Successful response */
|
|
440
|
+
200: {
|
|
441
|
+
headers: {
|
|
442
|
+
[name: string]: unknown;
|
|
443
|
+
};
|
|
444
|
+
content: {
|
|
445
|
+
"application/json": components["schemas"]["Note"];
|
|
446
|
+
};
|
|
447
|
+
};
|
|
448
|
+
/** @description Bad request - validation error */
|
|
449
|
+
400: {
|
|
450
|
+
headers: {
|
|
451
|
+
[name: string]: unknown;
|
|
452
|
+
};
|
|
453
|
+
content: {
|
|
454
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
455
|
+
};
|
|
456
|
+
};
|
|
457
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
458
|
+
401: {
|
|
459
|
+
headers: {
|
|
460
|
+
[name: string]: unknown;
|
|
461
|
+
};
|
|
462
|
+
content: {
|
|
463
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
464
|
+
};
|
|
465
|
+
};
|
|
466
|
+
/** @description Resource not found */
|
|
467
|
+
404: {
|
|
468
|
+
headers: {
|
|
469
|
+
[name: string]: unknown;
|
|
470
|
+
};
|
|
471
|
+
content: {
|
|
472
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
473
|
+
};
|
|
474
|
+
};
|
|
475
|
+
/** @description Rate limit exceeded */
|
|
476
|
+
429: {
|
|
477
|
+
headers: {
|
|
478
|
+
[name: string]: unknown;
|
|
479
|
+
};
|
|
480
|
+
content: {
|
|
481
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
482
|
+
};
|
|
483
|
+
};
|
|
484
|
+
/** @description Internal server error */
|
|
485
|
+
500: {
|
|
486
|
+
headers: {
|
|
487
|
+
[name: string]: unknown;
|
|
488
|
+
};
|
|
489
|
+
content: {
|
|
490
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
491
|
+
};
|
|
492
|
+
};
|
|
493
|
+
};
|
|
494
|
+
};
|
|
495
|
+
trace?: never;
|
|
496
|
+
};
|
|
497
|
+
"/projects": {
|
|
498
|
+
parameters: {
|
|
499
|
+
query?: never;
|
|
500
|
+
header?: never;
|
|
501
|
+
path?: never;
|
|
502
|
+
cookie?: never;
|
|
503
|
+
};
|
|
504
|
+
/**
|
|
505
|
+
* List projects
|
|
506
|
+
* @description Retrieve a paginated list of projects. Supports filtering by state.
|
|
507
|
+
*/
|
|
508
|
+
get: {
|
|
509
|
+
parameters: {
|
|
510
|
+
query?: {
|
|
511
|
+
/** @description Number of projects to return */
|
|
512
|
+
limit?: number;
|
|
513
|
+
/** @description Cursor for pagination */
|
|
514
|
+
cursor?: string;
|
|
515
|
+
/** @description Field to order results by */
|
|
516
|
+
orderBy?: "updatedAt" | "createdAt";
|
|
517
|
+
/** @description Sort order (ascending or descending) */
|
|
518
|
+
order?: "asc" | "desc";
|
|
519
|
+
/** @description Filter by project state */
|
|
520
|
+
state?: "planned" | "completed";
|
|
521
|
+
/** @description Include HTML representation of the project description */
|
|
522
|
+
includeHtml?: boolean | null;
|
|
523
|
+
};
|
|
524
|
+
header?: never;
|
|
525
|
+
path?: never;
|
|
526
|
+
cookie?: never;
|
|
527
|
+
};
|
|
528
|
+
requestBody?: never;
|
|
529
|
+
responses: {
|
|
530
|
+
/** @description Successful response */
|
|
531
|
+
200: {
|
|
532
|
+
headers: {
|
|
533
|
+
[name: string]: unknown;
|
|
534
|
+
};
|
|
535
|
+
content: {
|
|
536
|
+
"application/json": components["schemas"]["ProjectListResponse"];
|
|
537
|
+
};
|
|
538
|
+
};
|
|
539
|
+
/** @description Bad request - validation error */
|
|
540
|
+
400: {
|
|
541
|
+
headers: {
|
|
542
|
+
[name: string]: unknown;
|
|
543
|
+
};
|
|
544
|
+
content: {
|
|
545
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
546
|
+
};
|
|
547
|
+
};
|
|
548
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
549
|
+
401: {
|
|
550
|
+
headers: {
|
|
551
|
+
[name: string]: unknown;
|
|
552
|
+
};
|
|
553
|
+
content: {
|
|
554
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
555
|
+
};
|
|
556
|
+
};
|
|
557
|
+
/** @description Resource not found */
|
|
558
|
+
404: {
|
|
559
|
+
headers: {
|
|
560
|
+
[name: string]: unknown;
|
|
561
|
+
};
|
|
562
|
+
content: {
|
|
563
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
564
|
+
};
|
|
565
|
+
};
|
|
566
|
+
/** @description Rate limit exceeded */
|
|
567
|
+
429: {
|
|
568
|
+
headers: {
|
|
569
|
+
[name: string]: unknown;
|
|
570
|
+
};
|
|
571
|
+
content: {
|
|
572
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
573
|
+
};
|
|
574
|
+
};
|
|
575
|
+
/** @description Internal server error */
|
|
576
|
+
500: {
|
|
577
|
+
headers: {
|
|
578
|
+
[name: string]: unknown;
|
|
579
|
+
};
|
|
580
|
+
content: {
|
|
581
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
582
|
+
};
|
|
583
|
+
};
|
|
584
|
+
};
|
|
585
|
+
};
|
|
586
|
+
put?: never;
|
|
587
|
+
/**
|
|
588
|
+
* Create project
|
|
589
|
+
* @description Create a new project.
|
|
590
|
+
*/
|
|
591
|
+
post: {
|
|
592
|
+
parameters: {
|
|
593
|
+
query?: {
|
|
594
|
+
/** @description Include HTML representation of the project description */
|
|
595
|
+
includeHtml?: boolean | null;
|
|
596
|
+
};
|
|
597
|
+
header?: never;
|
|
598
|
+
path?: never;
|
|
599
|
+
cookie?: never;
|
|
600
|
+
};
|
|
601
|
+
requestBody: {
|
|
602
|
+
content: {
|
|
603
|
+
"application/json": components["schemas"]["CreateProjectRequest"];
|
|
604
|
+
};
|
|
605
|
+
};
|
|
606
|
+
responses: {
|
|
607
|
+
/** @description Successful response */
|
|
608
|
+
200: {
|
|
609
|
+
headers: {
|
|
610
|
+
[name: string]: unknown;
|
|
611
|
+
};
|
|
612
|
+
content: {
|
|
613
|
+
"application/json": components["schemas"]["Project"];
|
|
614
|
+
};
|
|
615
|
+
};
|
|
616
|
+
/** @description Bad request - validation error */
|
|
617
|
+
400: {
|
|
618
|
+
headers: {
|
|
619
|
+
[name: string]: unknown;
|
|
620
|
+
};
|
|
621
|
+
content: {
|
|
622
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
623
|
+
};
|
|
624
|
+
};
|
|
625
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
626
|
+
401: {
|
|
627
|
+
headers: {
|
|
628
|
+
[name: string]: unknown;
|
|
629
|
+
};
|
|
630
|
+
content: {
|
|
631
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
632
|
+
};
|
|
633
|
+
};
|
|
634
|
+
/** @description Resource not found */
|
|
635
|
+
404: {
|
|
636
|
+
headers: {
|
|
637
|
+
[name: string]: unknown;
|
|
638
|
+
};
|
|
639
|
+
content: {
|
|
640
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
641
|
+
};
|
|
642
|
+
};
|
|
643
|
+
/** @description Rate limit exceeded */
|
|
644
|
+
429: {
|
|
645
|
+
headers: {
|
|
646
|
+
[name: string]: unknown;
|
|
647
|
+
};
|
|
648
|
+
content: {
|
|
649
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
650
|
+
};
|
|
651
|
+
};
|
|
652
|
+
/** @description Internal server error */
|
|
653
|
+
500: {
|
|
654
|
+
headers: {
|
|
655
|
+
[name: string]: unknown;
|
|
656
|
+
};
|
|
657
|
+
content: {
|
|
658
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
659
|
+
};
|
|
660
|
+
};
|
|
661
|
+
};
|
|
662
|
+
};
|
|
663
|
+
delete?: never;
|
|
664
|
+
options?: never;
|
|
665
|
+
head?: never;
|
|
666
|
+
patch?: never;
|
|
667
|
+
trace?: never;
|
|
668
|
+
};
|
|
669
|
+
"/projects/{id}": {
|
|
670
|
+
parameters: {
|
|
671
|
+
query?: never;
|
|
672
|
+
header?: never;
|
|
673
|
+
path?: never;
|
|
674
|
+
cookie?: never;
|
|
675
|
+
};
|
|
676
|
+
/**
|
|
677
|
+
* Get project
|
|
678
|
+
* @description Retrieve a single project by ID.
|
|
679
|
+
*/
|
|
680
|
+
get: {
|
|
681
|
+
parameters: {
|
|
682
|
+
query?: {
|
|
683
|
+
/** @description Include HTML representation of the project description */
|
|
684
|
+
includeHtml?: boolean | null;
|
|
685
|
+
};
|
|
686
|
+
header?: never;
|
|
687
|
+
path: {
|
|
688
|
+
/** @description Project ID */
|
|
689
|
+
id: string;
|
|
690
|
+
};
|
|
691
|
+
cookie?: never;
|
|
692
|
+
};
|
|
693
|
+
requestBody?: never;
|
|
694
|
+
responses: {
|
|
695
|
+
/** @description Successful response */
|
|
696
|
+
200: {
|
|
697
|
+
headers: {
|
|
698
|
+
[name: string]: unknown;
|
|
699
|
+
};
|
|
700
|
+
content: {
|
|
701
|
+
"application/json": components["schemas"]["Project"];
|
|
702
|
+
};
|
|
703
|
+
};
|
|
704
|
+
/** @description Bad request - validation error */
|
|
705
|
+
400: {
|
|
706
|
+
headers: {
|
|
707
|
+
[name: string]: unknown;
|
|
708
|
+
};
|
|
709
|
+
content: {
|
|
710
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
711
|
+
};
|
|
712
|
+
};
|
|
713
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
714
|
+
401: {
|
|
715
|
+
headers: {
|
|
716
|
+
[name: string]: unknown;
|
|
717
|
+
};
|
|
718
|
+
content: {
|
|
719
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
720
|
+
};
|
|
721
|
+
};
|
|
722
|
+
/** @description Resource not found */
|
|
723
|
+
404: {
|
|
724
|
+
headers: {
|
|
725
|
+
[name: string]: unknown;
|
|
726
|
+
};
|
|
727
|
+
content: {
|
|
728
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
729
|
+
};
|
|
730
|
+
};
|
|
731
|
+
/** @description Rate limit exceeded */
|
|
732
|
+
429: {
|
|
733
|
+
headers: {
|
|
734
|
+
[name: string]: unknown;
|
|
735
|
+
};
|
|
736
|
+
content: {
|
|
737
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
738
|
+
};
|
|
739
|
+
};
|
|
740
|
+
/** @description Internal server error */
|
|
741
|
+
500: {
|
|
742
|
+
headers: {
|
|
743
|
+
[name: string]: unknown;
|
|
744
|
+
};
|
|
745
|
+
content: {
|
|
746
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
747
|
+
};
|
|
748
|
+
};
|
|
749
|
+
};
|
|
750
|
+
};
|
|
751
|
+
put?: never;
|
|
752
|
+
post?: never;
|
|
753
|
+
/**
|
|
754
|
+
* Delete project
|
|
755
|
+
* @description Delete a project. This will also clear project references from associated tasks.
|
|
756
|
+
*/
|
|
757
|
+
delete: {
|
|
758
|
+
parameters: {
|
|
759
|
+
query?: never;
|
|
760
|
+
header?: never;
|
|
761
|
+
path: {
|
|
762
|
+
/** @description Project ID */
|
|
763
|
+
id: string;
|
|
764
|
+
};
|
|
765
|
+
cookie?: never;
|
|
766
|
+
};
|
|
767
|
+
requestBody?: never;
|
|
768
|
+
responses: {
|
|
769
|
+
/** @description Successful response */
|
|
770
|
+
200: {
|
|
771
|
+
headers: {
|
|
772
|
+
[name: string]: unknown;
|
|
773
|
+
};
|
|
774
|
+
content: {
|
|
775
|
+
"application/json": components["schemas"]["DeleteProjectResponse"];
|
|
776
|
+
};
|
|
777
|
+
};
|
|
778
|
+
/** @description Bad request - validation error */
|
|
779
|
+
400: {
|
|
780
|
+
headers: {
|
|
781
|
+
[name: string]: unknown;
|
|
782
|
+
};
|
|
783
|
+
content: {
|
|
784
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
785
|
+
};
|
|
786
|
+
};
|
|
787
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
788
|
+
401: {
|
|
789
|
+
headers: {
|
|
790
|
+
[name: string]: unknown;
|
|
791
|
+
};
|
|
792
|
+
content: {
|
|
793
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
794
|
+
};
|
|
795
|
+
};
|
|
796
|
+
/** @description Resource not found */
|
|
797
|
+
404: {
|
|
798
|
+
headers: {
|
|
799
|
+
[name: string]: unknown;
|
|
800
|
+
};
|
|
801
|
+
content: {
|
|
802
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
803
|
+
};
|
|
804
|
+
};
|
|
805
|
+
/** @description Rate limit exceeded */
|
|
806
|
+
429: {
|
|
807
|
+
headers: {
|
|
808
|
+
[name: string]: unknown;
|
|
809
|
+
};
|
|
810
|
+
content: {
|
|
811
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
812
|
+
};
|
|
813
|
+
};
|
|
814
|
+
/** @description Internal server error */
|
|
815
|
+
500: {
|
|
816
|
+
headers: {
|
|
817
|
+
[name: string]: unknown;
|
|
818
|
+
};
|
|
819
|
+
content: {
|
|
820
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
821
|
+
};
|
|
822
|
+
};
|
|
823
|
+
};
|
|
824
|
+
};
|
|
825
|
+
options?: never;
|
|
826
|
+
head?: never;
|
|
827
|
+
/**
|
|
828
|
+
* Update project
|
|
829
|
+
* @description Update an existing project. Only provided fields will be modified.
|
|
830
|
+
*/
|
|
831
|
+
patch: {
|
|
832
|
+
parameters: {
|
|
833
|
+
query?: {
|
|
834
|
+
/** @description Include HTML representation of the project description */
|
|
835
|
+
includeHtml?: boolean | null;
|
|
836
|
+
};
|
|
837
|
+
header?: never;
|
|
838
|
+
path: {
|
|
839
|
+
/** @description Project ID */
|
|
840
|
+
id: string;
|
|
841
|
+
};
|
|
842
|
+
cookie?: never;
|
|
843
|
+
};
|
|
844
|
+
requestBody: {
|
|
845
|
+
content: {
|
|
846
|
+
"application/json": components["schemas"]["UpdateProjectRequest"];
|
|
847
|
+
};
|
|
848
|
+
};
|
|
849
|
+
responses: {
|
|
850
|
+
/** @description Successful response */
|
|
851
|
+
200: {
|
|
852
|
+
headers: {
|
|
853
|
+
[name: string]: unknown;
|
|
854
|
+
};
|
|
855
|
+
content: {
|
|
856
|
+
"application/json": components["schemas"]["Project"];
|
|
857
|
+
};
|
|
858
|
+
};
|
|
859
|
+
/** @description Bad request - validation error */
|
|
860
|
+
400: {
|
|
861
|
+
headers: {
|
|
862
|
+
[name: string]: unknown;
|
|
863
|
+
};
|
|
864
|
+
content: {
|
|
865
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
866
|
+
};
|
|
867
|
+
};
|
|
868
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
869
|
+
401: {
|
|
870
|
+
headers: {
|
|
871
|
+
[name: string]: unknown;
|
|
872
|
+
};
|
|
873
|
+
content: {
|
|
874
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
875
|
+
};
|
|
876
|
+
};
|
|
877
|
+
/** @description Resource not found */
|
|
878
|
+
404: {
|
|
879
|
+
headers: {
|
|
880
|
+
[name: string]: unknown;
|
|
881
|
+
};
|
|
882
|
+
content: {
|
|
883
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
884
|
+
};
|
|
885
|
+
};
|
|
886
|
+
/** @description Rate limit exceeded */
|
|
887
|
+
429: {
|
|
888
|
+
headers: {
|
|
889
|
+
[name: string]: unknown;
|
|
890
|
+
};
|
|
891
|
+
content: {
|
|
892
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
893
|
+
};
|
|
894
|
+
};
|
|
895
|
+
/** @description Internal server error */
|
|
896
|
+
500: {
|
|
897
|
+
headers: {
|
|
898
|
+
[name: string]: unknown;
|
|
899
|
+
};
|
|
900
|
+
content: {
|
|
901
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
902
|
+
};
|
|
903
|
+
};
|
|
904
|
+
};
|
|
905
|
+
};
|
|
906
|
+
trace?: never;
|
|
907
|
+
};
|
|
908
|
+
"/sessions": {
|
|
909
|
+
parameters: {
|
|
910
|
+
query?: never;
|
|
911
|
+
header?: never;
|
|
912
|
+
path?: never;
|
|
913
|
+
cookie?: never;
|
|
914
|
+
};
|
|
915
|
+
/**
|
|
916
|
+
* List sessions
|
|
917
|
+
* @description Retrieve a paginated list of sessions. Supports filtering by date range.
|
|
918
|
+
*/
|
|
919
|
+
get: {
|
|
920
|
+
parameters: {
|
|
921
|
+
query?: {
|
|
922
|
+
/** @description Number of sessions to return */
|
|
923
|
+
limit?: number;
|
|
924
|
+
/** @description Cursor for pagination */
|
|
925
|
+
cursor?: string;
|
|
926
|
+
/** @description Field to order results by */
|
|
927
|
+
orderBy?: "updatedAt" | "createdAt" | "finishedAt";
|
|
928
|
+
/** @description Sort order (ascending or descending) */
|
|
929
|
+
order?: "asc" | "desc";
|
|
930
|
+
/** @description Filter sessions starting after this date (Unix seconds or ISO 8601) */
|
|
931
|
+
startAfter?: string;
|
|
932
|
+
/** @description Filter sessions starting before this date (Unix seconds or ISO 8601) */
|
|
933
|
+
startBefore?: string;
|
|
934
|
+
/** @description Include activities in response */
|
|
935
|
+
includeActivities?: boolean | null;
|
|
936
|
+
};
|
|
937
|
+
header?: never;
|
|
938
|
+
path?: never;
|
|
939
|
+
cookie?: never;
|
|
940
|
+
};
|
|
941
|
+
requestBody?: never;
|
|
942
|
+
responses: {
|
|
943
|
+
/** @description Successful response */
|
|
944
|
+
200: {
|
|
945
|
+
headers: {
|
|
946
|
+
[name: string]: unknown;
|
|
947
|
+
};
|
|
948
|
+
content: {
|
|
949
|
+
"application/json": components["schemas"]["SessionListResponse"];
|
|
950
|
+
};
|
|
951
|
+
};
|
|
952
|
+
/** @description Bad request - validation error */
|
|
953
|
+
400: {
|
|
954
|
+
headers: {
|
|
955
|
+
[name: string]: unknown;
|
|
956
|
+
};
|
|
957
|
+
content: {
|
|
958
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
959
|
+
};
|
|
960
|
+
};
|
|
961
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
962
|
+
401: {
|
|
963
|
+
headers: {
|
|
964
|
+
[name: string]: unknown;
|
|
965
|
+
};
|
|
966
|
+
content: {
|
|
967
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
968
|
+
};
|
|
969
|
+
};
|
|
970
|
+
/** @description Resource not found */
|
|
971
|
+
404: {
|
|
972
|
+
headers: {
|
|
973
|
+
[name: string]: unknown;
|
|
974
|
+
};
|
|
975
|
+
content: {
|
|
976
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
977
|
+
};
|
|
978
|
+
};
|
|
979
|
+
/** @description Rate limit exceeded */
|
|
980
|
+
429: {
|
|
981
|
+
headers: {
|
|
982
|
+
[name: string]: unknown;
|
|
983
|
+
};
|
|
984
|
+
content: {
|
|
985
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
986
|
+
};
|
|
987
|
+
};
|
|
988
|
+
/** @description Internal server error */
|
|
989
|
+
500: {
|
|
990
|
+
headers: {
|
|
991
|
+
[name: string]: unknown;
|
|
992
|
+
};
|
|
993
|
+
content: {
|
|
994
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
995
|
+
};
|
|
996
|
+
};
|
|
997
|
+
};
|
|
998
|
+
};
|
|
999
|
+
put?: never;
|
|
1000
|
+
/**
|
|
1001
|
+
* Create session
|
|
1002
|
+
* @description Create a new work session.
|
|
1003
|
+
*/
|
|
1004
|
+
post: {
|
|
1005
|
+
parameters: {
|
|
1006
|
+
query?: never;
|
|
1007
|
+
header?: never;
|
|
1008
|
+
path?: never;
|
|
1009
|
+
cookie?: never;
|
|
1010
|
+
};
|
|
1011
|
+
requestBody: {
|
|
1012
|
+
content: {
|
|
1013
|
+
"application/json": components["schemas"]["CreateSessionRequest"];
|
|
1014
|
+
};
|
|
1015
|
+
};
|
|
1016
|
+
responses: {
|
|
1017
|
+
/** @description Successful response */
|
|
1018
|
+
200: {
|
|
1019
|
+
headers: {
|
|
1020
|
+
[name: string]: unknown;
|
|
1021
|
+
};
|
|
1022
|
+
content: {
|
|
1023
|
+
"application/json": components["schemas"]["SessionWithActivities"];
|
|
1024
|
+
};
|
|
1025
|
+
};
|
|
1026
|
+
/** @description Bad request - validation error */
|
|
1027
|
+
400: {
|
|
1028
|
+
headers: {
|
|
1029
|
+
[name: string]: unknown;
|
|
1030
|
+
};
|
|
1031
|
+
content: {
|
|
1032
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1033
|
+
};
|
|
1034
|
+
};
|
|
1035
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
1036
|
+
401: {
|
|
1037
|
+
headers: {
|
|
1038
|
+
[name: string]: unknown;
|
|
1039
|
+
};
|
|
1040
|
+
content: {
|
|
1041
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1042
|
+
};
|
|
1043
|
+
};
|
|
1044
|
+
/** @description Resource not found */
|
|
1045
|
+
404: {
|
|
1046
|
+
headers: {
|
|
1047
|
+
[name: string]: unknown;
|
|
1048
|
+
};
|
|
1049
|
+
content: {
|
|
1050
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1051
|
+
};
|
|
1052
|
+
};
|
|
1053
|
+
/** @description Rate limit exceeded */
|
|
1054
|
+
429: {
|
|
1055
|
+
headers: {
|
|
1056
|
+
[name: string]: unknown;
|
|
1057
|
+
};
|
|
1058
|
+
content: {
|
|
1059
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1060
|
+
};
|
|
1061
|
+
};
|
|
1062
|
+
/** @description Internal server error */
|
|
1063
|
+
500: {
|
|
1064
|
+
headers: {
|
|
1065
|
+
[name: string]: unknown;
|
|
1066
|
+
};
|
|
1067
|
+
content: {
|
|
1068
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1069
|
+
};
|
|
1070
|
+
};
|
|
1071
|
+
};
|
|
1072
|
+
};
|
|
1073
|
+
delete?: never;
|
|
1074
|
+
options?: never;
|
|
1075
|
+
head?: never;
|
|
1076
|
+
patch?: never;
|
|
1077
|
+
trace?: never;
|
|
1078
|
+
};
|
|
1079
|
+
"/sessions/activities": {
|
|
1080
|
+
parameters: {
|
|
1081
|
+
query?: never;
|
|
1082
|
+
header?: never;
|
|
1083
|
+
path?: never;
|
|
1084
|
+
cookie?: never;
|
|
1085
|
+
};
|
|
1086
|
+
/**
|
|
1087
|
+
* List activities
|
|
1088
|
+
* @description Retrieve a paginated list of session activities. Supports filtering by task ID or session ID.
|
|
1089
|
+
*/
|
|
1090
|
+
get: {
|
|
1091
|
+
parameters: {
|
|
1092
|
+
query?: {
|
|
1093
|
+
/** @description Number of activities to return */
|
|
1094
|
+
limit?: number;
|
|
1095
|
+
/** @description Cursor for pagination */
|
|
1096
|
+
cursor?: string;
|
|
1097
|
+
/** @description Field to order results by */
|
|
1098
|
+
orderBy?: "updatedAt" | "createdAt";
|
|
1099
|
+
/** @description Sort order (ascending or descending) */
|
|
1100
|
+
order?: "asc" | "desc";
|
|
1101
|
+
/** @description Filter activities by task ID */
|
|
1102
|
+
taskId?: string;
|
|
1103
|
+
/** @description Filter activities by session ID */
|
|
1104
|
+
sessionId?: string;
|
|
1105
|
+
};
|
|
1106
|
+
header?: never;
|
|
1107
|
+
path?: never;
|
|
1108
|
+
cookie?: never;
|
|
1109
|
+
};
|
|
1110
|
+
requestBody?: never;
|
|
1111
|
+
responses: {
|
|
1112
|
+
/** @description Successful response */
|
|
1113
|
+
200: {
|
|
1114
|
+
headers: {
|
|
1115
|
+
[name: string]: unknown;
|
|
1116
|
+
};
|
|
1117
|
+
content: {
|
|
1118
|
+
"application/json": components["schemas"]["ActivityPaginatedListResponse"];
|
|
1119
|
+
};
|
|
1120
|
+
};
|
|
1121
|
+
/** @description Bad request - validation error */
|
|
1122
|
+
400: {
|
|
1123
|
+
headers: {
|
|
1124
|
+
[name: string]: unknown;
|
|
1125
|
+
};
|
|
1126
|
+
content: {
|
|
1127
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1128
|
+
};
|
|
1129
|
+
};
|
|
1130
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
1131
|
+
401: {
|
|
1132
|
+
headers: {
|
|
1133
|
+
[name: string]: unknown;
|
|
1134
|
+
};
|
|
1135
|
+
content: {
|
|
1136
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1137
|
+
};
|
|
1138
|
+
};
|
|
1139
|
+
/** @description Resource not found */
|
|
1140
|
+
404: {
|
|
1141
|
+
headers: {
|
|
1142
|
+
[name: string]: unknown;
|
|
1143
|
+
};
|
|
1144
|
+
content: {
|
|
1145
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1146
|
+
};
|
|
1147
|
+
};
|
|
1148
|
+
/** @description Rate limit exceeded */
|
|
1149
|
+
429: {
|
|
1150
|
+
headers: {
|
|
1151
|
+
[name: string]: unknown;
|
|
1152
|
+
};
|
|
1153
|
+
content: {
|
|
1154
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1155
|
+
};
|
|
1156
|
+
};
|
|
1157
|
+
/** @description Internal server error */
|
|
1158
|
+
500: {
|
|
1159
|
+
headers: {
|
|
1160
|
+
[name: string]: unknown;
|
|
1161
|
+
};
|
|
1162
|
+
content: {
|
|
1163
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1164
|
+
};
|
|
1165
|
+
};
|
|
1166
|
+
};
|
|
1167
|
+
};
|
|
1168
|
+
put?: never;
|
|
1169
|
+
post?: never;
|
|
1170
|
+
delete?: never;
|
|
1171
|
+
options?: never;
|
|
1172
|
+
head?: never;
|
|
1173
|
+
patch?: never;
|
|
1174
|
+
trace?: never;
|
|
1175
|
+
};
|
|
1176
|
+
"/sessions/{id}": {
|
|
1177
|
+
parameters: {
|
|
1178
|
+
query?: never;
|
|
1179
|
+
header?: never;
|
|
1180
|
+
path?: never;
|
|
1181
|
+
cookie?: never;
|
|
1182
|
+
};
|
|
1183
|
+
/**
|
|
1184
|
+
* Get session
|
|
1185
|
+
* @description Retrieve a single session by ID, including all activities.
|
|
1186
|
+
*/
|
|
1187
|
+
get: {
|
|
1188
|
+
parameters: {
|
|
1189
|
+
query?: never;
|
|
1190
|
+
header?: never;
|
|
1191
|
+
path: {
|
|
1192
|
+
/** @description Session ID */
|
|
1193
|
+
id: string;
|
|
1194
|
+
};
|
|
1195
|
+
cookie?: never;
|
|
1196
|
+
};
|
|
1197
|
+
requestBody?: never;
|
|
1198
|
+
responses: {
|
|
1199
|
+
/** @description Successful response */
|
|
1200
|
+
200: {
|
|
1201
|
+
headers: {
|
|
1202
|
+
[name: string]: unknown;
|
|
1203
|
+
};
|
|
1204
|
+
content: {
|
|
1205
|
+
"application/json": components["schemas"]["SessionWithActivities"];
|
|
1206
|
+
};
|
|
1207
|
+
};
|
|
1208
|
+
/** @description Bad request - validation error */
|
|
1209
|
+
400: {
|
|
1210
|
+
headers: {
|
|
1211
|
+
[name: string]: unknown;
|
|
1212
|
+
};
|
|
1213
|
+
content: {
|
|
1214
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1215
|
+
};
|
|
1216
|
+
};
|
|
1217
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
1218
|
+
401: {
|
|
1219
|
+
headers: {
|
|
1220
|
+
[name: string]: unknown;
|
|
1221
|
+
};
|
|
1222
|
+
content: {
|
|
1223
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1224
|
+
};
|
|
1225
|
+
};
|
|
1226
|
+
/** @description Resource not found */
|
|
1227
|
+
404: {
|
|
1228
|
+
headers: {
|
|
1229
|
+
[name: string]: unknown;
|
|
1230
|
+
};
|
|
1231
|
+
content: {
|
|
1232
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1233
|
+
};
|
|
1234
|
+
};
|
|
1235
|
+
/** @description Rate limit exceeded */
|
|
1236
|
+
429: {
|
|
1237
|
+
headers: {
|
|
1238
|
+
[name: string]: unknown;
|
|
1239
|
+
};
|
|
1240
|
+
content: {
|
|
1241
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1242
|
+
};
|
|
1243
|
+
};
|
|
1244
|
+
/** @description Internal server error */
|
|
1245
|
+
500: {
|
|
1246
|
+
headers: {
|
|
1247
|
+
[name: string]: unknown;
|
|
1248
|
+
};
|
|
1249
|
+
content: {
|
|
1250
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1251
|
+
};
|
|
1252
|
+
};
|
|
1253
|
+
};
|
|
1254
|
+
};
|
|
1255
|
+
put?: never;
|
|
1256
|
+
post?: never;
|
|
1257
|
+
/**
|
|
1258
|
+
* Delete session
|
|
1259
|
+
* @description Delete a session. This will also delete all associated activities.
|
|
1260
|
+
*/
|
|
1261
|
+
delete: {
|
|
1262
|
+
parameters: {
|
|
1263
|
+
query?: never;
|
|
1264
|
+
header?: never;
|
|
1265
|
+
path: {
|
|
1266
|
+
/** @description Session ID */
|
|
1267
|
+
id: string;
|
|
1268
|
+
};
|
|
1269
|
+
cookie?: never;
|
|
1270
|
+
};
|
|
1271
|
+
requestBody?: never;
|
|
1272
|
+
responses: {
|
|
1273
|
+
/** @description Successful response */
|
|
1274
|
+
200: {
|
|
1275
|
+
headers: {
|
|
1276
|
+
[name: string]: unknown;
|
|
1277
|
+
};
|
|
1278
|
+
content: {
|
|
1279
|
+
"application/json": components["schemas"]["DeleteSessionResponse"];
|
|
1280
|
+
};
|
|
1281
|
+
};
|
|
1282
|
+
/** @description Bad request - validation error */
|
|
1283
|
+
400: {
|
|
1284
|
+
headers: {
|
|
1285
|
+
[name: string]: unknown;
|
|
1286
|
+
};
|
|
1287
|
+
content: {
|
|
1288
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1289
|
+
};
|
|
1290
|
+
};
|
|
1291
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
1292
|
+
401: {
|
|
1293
|
+
headers: {
|
|
1294
|
+
[name: string]: unknown;
|
|
1295
|
+
};
|
|
1296
|
+
content: {
|
|
1297
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1298
|
+
};
|
|
1299
|
+
};
|
|
1300
|
+
/** @description Resource not found */
|
|
1301
|
+
404: {
|
|
1302
|
+
headers: {
|
|
1303
|
+
[name: string]: unknown;
|
|
1304
|
+
};
|
|
1305
|
+
content: {
|
|
1306
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1307
|
+
};
|
|
1308
|
+
};
|
|
1309
|
+
/** @description Rate limit exceeded */
|
|
1310
|
+
429: {
|
|
1311
|
+
headers: {
|
|
1312
|
+
[name: string]: unknown;
|
|
1313
|
+
};
|
|
1314
|
+
content: {
|
|
1315
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1316
|
+
};
|
|
1317
|
+
};
|
|
1318
|
+
/** @description Internal server error */
|
|
1319
|
+
500: {
|
|
1320
|
+
headers: {
|
|
1321
|
+
[name: string]: unknown;
|
|
1322
|
+
};
|
|
1323
|
+
content: {
|
|
1324
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1325
|
+
};
|
|
1326
|
+
};
|
|
1327
|
+
};
|
|
1328
|
+
};
|
|
1329
|
+
options?: never;
|
|
1330
|
+
head?: never;
|
|
1331
|
+
/**
|
|
1332
|
+
* Update session
|
|
1333
|
+
* @description Update an existing session. Only provided fields will be modified.
|
|
1334
|
+
*/
|
|
1335
|
+
patch: {
|
|
1336
|
+
parameters: {
|
|
1337
|
+
query?: never;
|
|
1338
|
+
header?: never;
|
|
1339
|
+
path: {
|
|
1340
|
+
/** @description Session ID */
|
|
1341
|
+
id: string;
|
|
1342
|
+
};
|
|
1343
|
+
cookie?: never;
|
|
1344
|
+
};
|
|
1345
|
+
requestBody: {
|
|
1346
|
+
content: {
|
|
1347
|
+
"application/json": components["schemas"]["UpdateSessionRequest"];
|
|
1348
|
+
};
|
|
1349
|
+
};
|
|
1350
|
+
responses: {
|
|
1351
|
+
/** @description Successful response */
|
|
1352
|
+
200: {
|
|
1353
|
+
headers: {
|
|
1354
|
+
[name: string]: unknown;
|
|
1355
|
+
};
|
|
1356
|
+
content: {
|
|
1357
|
+
"application/json": components["schemas"]["SessionWithActivities"];
|
|
1358
|
+
};
|
|
1359
|
+
};
|
|
1360
|
+
/** @description Bad request - validation error */
|
|
1361
|
+
400: {
|
|
1362
|
+
headers: {
|
|
1363
|
+
[name: string]: unknown;
|
|
1364
|
+
};
|
|
1365
|
+
content: {
|
|
1366
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1367
|
+
};
|
|
1368
|
+
};
|
|
1369
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
1370
|
+
401: {
|
|
1371
|
+
headers: {
|
|
1372
|
+
[name: string]: unknown;
|
|
1373
|
+
};
|
|
1374
|
+
content: {
|
|
1375
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1376
|
+
};
|
|
1377
|
+
};
|
|
1378
|
+
/** @description Resource not found */
|
|
1379
|
+
404: {
|
|
1380
|
+
headers: {
|
|
1381
|
+
[name: string]: unknown;
|
|
1382
|
+
};
|
|
1383
|
+
content: {
|
|
1384
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1385
|
+
};
|
|
1386
|
+
};
|
|
1387
|
+
/** @description Rate limit exceeded */
|
|
1388
|
+
429: {
|
|
1389
|
+
headers: {
|
|
1390
|
+
[name: string]: unknown;
|
|
1391
|
+
};
|
|
1392
|
+
content: {
|
|
1393
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1394
|
+
};
|
|
1395
|
+
};
|
|
1396
|
+
/** @description Internal server error */
|
|
1397
|
+
500: {
|
|
1398
|
+
headers: {
|
|
1399
|
+
[name: string]: unknown;
|
|
1400
|
+
};
|
|
1401
|
+
content: {
|
|
1402
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1403
|
+
};
|
|
1404
|
+
};
|
|
1405
|
+
};
|
|
1406
|
+
};
|
|
1407
|
+
trace?: never;
|
|
1408
|
+
};
|
|
1409
|
+
"/sessions/{id}/activities": {
|
|
1410
|
+
parameters: {
|
|
1411
|
+
query?: never;
|
|
1412
|
+
header?: never;
|
|
1413
|
+
path?: never;
|
|
1414
|
+
cookie?: never;
|
|
1415
|
+
};
|
|
1416
|
+
/**
|
|
1417
|
+
* List session activities
|
|
1418
|
+
* @description Retrieve all activities for a specific session.
|
|
1419
|
+
*/
|
|
1420
|
+
get: {
|
|
1421
|
+
parameters: {
|
|
1422
|
+
query?: never;
|
|
1423
|
+
header?: never;
|
|
1424
|
+
path: {
|
|
1425
|
+
/** @description Session ID */
|
|
1426
|
+
id: string;
|
|
1427
|
+
};
|
|
1428
|
+
cookie?: never;
|
|
1429
|
+
};
|
|
1430
|
+
requestBody?: never;
|
|
1431
|
+
responses: {
|
|
1432
|
+
/** @description Successful response */
|
|
1433
|
+
200: {
|
|
1434
|
+
headers: {
|
|
1435
|
+
[name: string]: unknown;
|
|
1436
|
+
};
|
|
1437
|
+
content: {
|
|
1438
|
+
"application/json": components["schemas"]["ActivityListResponse"];
|
|
1439
|
+
};
|
|
1440
|
+
};
|
|
1441
|
+
/** @description Bad request - validation error */
|
|
1442
|
+
400: {
|
|
1443
|
+
headers: {
|
|
1444
|
+
[name: string]: unknown;
|
|
1445
|
+
};
|
|
1446
|
+
content: {
|
|
1447
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1448
|
+
};
|
|
1449
|
+
};
|
|
1450
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
1451
|
+
401: {
|
|
1452
|
+
headers: {
|
|
1453
|
+
[name: string]: unknown;
|
|
1454
|
+
};
|
|
1455
|
+
content: {
|
|
1456
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1457
|
+
};
|
|
1458
|
+
};
|
|
1459
|
+
/** @description Resource not found */
|
|
1460
|
+
404: {
|
|
1461
|
+
headers: {
|
|
1462
|
+
[name: string]: unknown;
|
|
1463
|
+
};
|
|
1464
|
+
content: {
|
|
1465
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1466
|
+
};
|
|
1467
|
+
};
|
|
1468
|
+
/** @description Rate limit exceeded */
|
|
1469
|
+
429: {
|
|
1470
|
+
headers: {
|
|
1471
|
+
[name: string]: unknown;
|
|
1472
|
+
};
|
|
1473
|
+
content: {
|
|
1474
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1475
|
+
};
|
|
1476
|
+
};
|
|
1477
|
+
/** @description Internal server error */
|
|
1478
|
+
500: {
|
|
1479
|
+
headers: {
|
|
1480
|
+
[name: string]: unknown;
|
|
1481
|
+
};
|
|
1482
|
+
content: {
|
|
1483
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1484
|
+
};
|
|
1485
|
+
};
|
|
1486
|
+
};
|
|
1487
|
+
};
|
|
1488
|
+
put?: never;
|
|
1489
|
+
/**
|
|
1490
|
+
* Add activity to session
|
|
1491
|
+
* @description Add a new task activity to an existing session. Only TASK activities can be created via API.
|
|
1492
|
+
*/
|
|
1493
|
+
post: {
|
|
1494
|
+
parameters: {
|
|
1495
|
+
query?: never;
|
|
1496
|
+
header?: never;
|
|
1497
|
+
path: {
|
|
1498
|
+
/** @description Session ID */
|
|
1499
|
+
id: string;
|
|
1500
|
+
};
|
|
1501
|
+
cookie?: never;
|
|
1502
|
+
};
|
|
1503
|
+
requestBody: {
|
|
1504
|
+
content: {
|
|
1505
|
+
"application/json": components["schemas"]["CreateActivityRequest"];
|
|
1506
|
+
};
|
|
1507
|
+
};
|
|
1508
|
+
responses: {
|
|
1509
|
+
/** @description Successful response */
|
|
1510
|
+
200: {
|
|
1511
|
+
headers: {
|
|
1512
|
+
[name: string]: unknown;
|
|
1513
|
+
};
|
|
1514
|
+
content: {
|
|
1515
|
+
"application/json": components["schemas"]["SessionActivity"];
|
|
1516
|
+
};
|
|
1517
|
+
};
|
|
1518
|
+
/** @description Bad request - validation error */
|
|
1519
|
+
400: {
|
|
1520
|
+
headers: {
|
|
1521
|
+
[name: string]: unknown;
|
|
1522
|
+
};
|
|
1523
|
+
content: {
|
|
1524
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1525
|
+
};
|
|
1526
|
+
};
|
|
1527
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
1528
|
+
401: {
|
|
1529
|
+
headers: {
|
|
1530
|
+
[name: string]: unknown;
|
|
1531
|
+
};
|
|
1532
|
+
content: {
|
|
1533
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1534
|
+
};
|
|
1535
|
+
};
|
|
1536
|
+
/** @description Resource not found */
|
|
1537
|
+
404: {
|
|
1538
|
+
headers: {
|
|
1539
|
+
[name: string]: unknown;
|
|
1540
|
+
};
|
|
1541
|
+
content: {
|
|
1542
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1543
|
+
};
|
|
1544
|
+
};
|
|
1545
|
+
/** @description Rate limit exceeded */
|
|
1546
|
+
429: {
|
|
1547
|
+
headers: {
|
|
1548
|
+
[name: string]: unknown;
|
|
1549
|
+
};
|
|
1550
|
+
content: {
|
|
1551
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1552
|
+
};
|
|
1553
|
+
};
|
|
1554
|
+
/** @description Internal server error */
|
|
1555
|
+
500: {
|
|
1556
|
+
headers: {
|
|
1557
|
+
[name: string]: unknown;
|
|
1558
|
+
};
|
|
1559
|
+
content: {
|
|
1560
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1561
|
+
};
|
|
1562
|
+
};
|
|
1563
|
+
};
|
|
1564
|
+
};
|
|
1565
|
+
delete?: never;
|
|
1566
|
+
options?: never;
|
|
1567
|
+
head?: never;
|
|
1568
|
+
patch?: never;
|
|
1569
|
+
trace?: never;
|
|
1570
|
+
};
|
|
1571
|
+
"/sessions/{id}/activities/{activityId}": {
|
|
1572
|
+
parameters: {
|
|
1573
|
+
query?: never;
|
|
1574
|
+
header?: never;
|
|
1575
|
+
path?: never;
|
|
1576
|
+
cookie?: never;
|
|
1577
|
+
};
|
|
1578
|
+
get?: never;
|
|
1579
|
+
put?: never;
|
|
1580
|
+
post?: never;
|
|
1581
|
+
/**
|
|
1582
|
+
* Delete activity
|
|
1583
|
+
* @description Delete an activity from a session.
|
|
1584
|
+
*/
|
|
1585
|
+
delete: {
|
|
1586
|
+
parameters: {
|
|
1587
|
+
query?: never;
|
|
1588
|
+
header?: never;
|
|
1589
|
+
path: {
|
|
1590
|
+
/** @description Session ID */
|
|
1591
|
+
id: string;
|
|
1592
|
+
/** @description Activity ID */
|
|
1593
|
+
activityId: string;
|
|
1594
|
+
};
|
|
1595
|
+
cookie?: never;
|
|
1596
|
+
};
|
|
1597
|
+
requestBody?: never;
|
|
1598
|
+
responses: {
|
|
1599
|
+
/** @description Successful response */
|
|
1600
|
+
200: {
|
|
1601
|
+
headers: {
|
|
1602
|
+
[name: string]: unknown;
|
|
1603
|
+
};
|
|
1604
|
+
content: {
|
|
1605
|
+
"application/json": components["schemas"]["DeleteActivityResponse"];
|
|
1606
|
+
};
|
|
1607
|
+
};
|
|
1608
|
+
/** @description Bad request - validation error */
|
|
1609
|
+
400: {
|
|
1610
|
+
headers: {
|
|
1611
|
+
[name: string]: unknown;
|
|
1612
|
+
};
|
|
1613
|
+
content: {
|
|
1614
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1615
|
+
};
|
|
1616
|
+
};
|
|
1617
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
1618
|
+
401: {
|
|
1619
|
+
headers: {
|
|
1620
|
+
[name: string]: unknown;
|
|
1621
|
+
};
|
|
1622
|
+
content: {
|
|
1623
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1624
|
+
};
|
|
1625
|
+
};
|
|
1626
|
+
/** @description Resource not found */
|
|
1627
|
+
404: {
|
|
1628
|
+
headers: {
|
|
1629
|
+
[name: string]: unknown;
|
|
1630
|
+
};
|
|
1631
|
+
content: {
|
|
1632
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1633
|
+
};
|
|
1634
|
+
};
|
|
1635
|
+
/** @description Rate limit exceeded */
|
|
1636
|
+
429: {
|
|
1637
|
+
headers: {
|
|
1638
|
+
[name: string]: unknown;
|
|
1639
|
+
};
|
|
1640
|
+
content: {
|
|
1641
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1642
|
+
};
|
|
1643
|
+
};
|
|
1644
|
+
/** @description Internal server error */
|
|
1645
|
+
500: {
|
|
1646
|
+
headers: {
|
|
1647
|
+
[name: string]: unknown;
|
|
1648
|
+
};
|
|
1649
|
+
content: {
|
|
1650
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1651
|
+
};
|
|
1652
|
+
};
|
|
1653
|
+
};
|
|
1654
|
+
};
|
|
1655
|
+
options?: never;
|
|
1656
|
+
head?: never;
|
|
1657
|
+
/**
|
|
1658
|
+
* Update activity
|
|
1659
|
+
* @description Update an existing activity. Only provided fields will be modified.
|
|
1660
|
+
*/
|
|
1661
|
+
patch: {
|
|
1662
|
+
parameters: {
|
|
1663
|
+
query?: never;
|
|
1664
|
+
header?: never;
|
|
1665
|
+
path: {
|
|
1666
|
+
/** @description Session ID */
|
|
1667
|
+
id: string;
|
|
1668
|
+
/** @description Activity ID */
|
|
1669
|
+
activityId: string;
|
|
1670
|
+
};
|
|
1671
|
+
cookie?: never;
|
|
1672
|
+
};
|
|
1673
|
+
requestBody: {
|
|
1674
|
+
content: {
|
|
1675
|
+
"application/json": components["schemas"]["UpdateActivityRequest"];
|
|
1676
|
+
};
|
|
1677
|
+
};
|
|
1678
|
+
responses: {
|
|
1679
|
+
/** @description Successful response */
|
|
1680
|
+
200: {
|
|
1681
|
+
headers: {
|
|
1682
|
+
[name: string]: unknown;
|
|
1683
|
+
};
|
|
1684
|
+
content: {
|
|
1685
|
+
"application/json": components["schemas"]["SessionActivity"];
|
|
1686
|
+
};
|
|
1687
|
+
};
|
|
1688
|
+
/** @description Bad request - validation error */
|
|
1689
|
+
400: {
|
|
1690
|
+
headers: {
|
|
1691
|
+
[name: string]: unknown;
|
|
1692
|
+
};
|
|
1693
|
+
content: {
|
|
1694
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1695
|
+
};
|
|
1696
|
+
};
|
|
1697
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
1698
|
+
401: {
|
|
1699
|
+
headers: {
|
|
1700
|
+
[name: string]: unknown;
|
|
1701
|
+
};
|
|
1702
|
+
content: {
|
|
1703
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1704
|
+
};
|
|
1705
|
+
};
|
|
1706
|
+
/** @description Resource not found */
|
|
1707
|
+
404: {
|
|
1708
|
+
headers: {
|
|
1709
|
+
[name: string]: unknown;
|
|
1710
|
+
};
|
|
1711
|
+
content: {
|
|
1712
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1713
|
+
};
|
|
1714
|
+
};
|
|
1715
|
+
/** @description Rate limit exceeded */
|
|
1716
|
+
429: {
|
|
1717
|
+
headers: {
|
|
1718
|
+
[name: string]: unknown;
|
|
1719
|
+
};
|
|
1720
|
+
content: {
|
|
1721
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1722
|
+
};
|
|
1723
|
+
};
|
|
1724
|
+
/** @description Internal server error */
|
|
1725
|
+
500: {
|
|
1726
|
+
headers: {
|
|
1727
|
+
[name: string]: unknown;
|
|
1728
|
+
};
|
|
1729
|
+
content: {
|
|
1730
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1731
|
+
};
|
|
1732
|
+
};
|
|
1733
|
+
};
|
|
1734
|
+
};
|
|
1735
|
+
trace?: never;
|
|
1736
|
+
};
|
|
1737
|
+
"/tasks": {
|
|
1738
|
+
parameters: {
|
|
1739
|
+
query?: never;
|
|
1740
|
+
header?: never;
|
|
1741
|
+
path?: never;
|
|
1742
|
+
cookie?: never;
|
|
1743
|
+
};
|
|
1744
|
+
/**
|
|
1745
|
+
* List tasks
|
|
1746
|
+
* @description Retrieve a paginated list of tasks. Supports filtering by completion status, project, parent task, and date range.
|
|
1747
|
+
*/
|
|
1748
|
+
get: {
|
|
1749
|
+
parameters: {
|
|
1750
|
+
query?: {
|
|
1751
|
+
/** @description Cursor for pagination */
|
|
1752
|
+
cursor?: string;
|
|
1753
|
+
/** @description Number of items to return (max 100) */
|
|
1754
|
+
limit?: string;
|
|
1755
|
+
/** @description Field to order results by. Note: doneAt ordering only applies to completed tasks */
|
|
1756
|
+
orderBy?: "updatedAt" | "doneAt";
|
|
1757
|
+
/** @description Sort order (ascending or descending) */
|
|
1758
|
+
order?: "asc" | "desc";
|
|
1759
|
+
/** @description Filter by completion status */
|
|
1760
|
+
done?: "true" | "false";
|
|
1761
|
+
/** @description Filter by project */
|
|
1762
|
+
projectId?: string;
|
|
1763
|
+
/** @description Filter by parent task */
|
|
1764
|
+
parentId?: string;
|
|
1765
|
+
/** @description Filter by section */
|
|
1766
|
+
section?: "today" | "sooner" | "later";
|
|
1767
|
+
/** @description Filter tasks completed after this date (Unix seconds or ISO 8601) */
|
|
1768
|
+
doneAfter?: string;
|
|
1769
|
+
/** @description Filter tasks completed before this date (Unix seconds or ISO 8601) */
|
|
1770
|
+
doneBefore?: string;
|
|
1771
|
+
/** @description Include HTML representation of the task description */
|
|
1772
|
+
includeHtml?: boolean | null;
|
|
1773
|
+
};
|
|
1774
|
+
header?: never;
|
|
1775
|
+
path?: never;
|
|
1776
|
+
cookie?: never;
|
|
1777
|
+
};
|
|
1778
|
+
requestBody?: never;
|
|
1779
|
+
responses: {
|
|
1780
|
+
/** @description Successful response */
|
|
1781
|
+
200: {
|
|
1782
|
+
headers: {
|
|
1783
|
+
[name: string]: unknown;
|
|
1784
|
+
};
|
|
1785
|
+
content: {
|
|
1786
|
+
"application/json": components["schemas"]["TaskListResponse"];
|
|
1787
|
+
};
|
|
1788
|
+
};
|
|
1789
|
+
/** @description Bad request - validation error */
|
|
1790
|
+
400: {
|
|
1791
|
+
headers: {
|
|
1792
|
+
[name: string]: unknown;
|
|
1793
|
+
};
|
|
1794
|
+
content: {
|
|
1795
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1796
|
+
};
|
|
1797
|
+
};
|
|
1798
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
1799
|
+
401: {
|
|
1800
|
+
headers: {
|
|
1801
|
+
[name: string]: unknown;
|
|
1802
|
+
};
|
|
1803
|
+
content: {
|
|
1804
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1805
|
+
};
|
|
1806
|
+
};
|
|
1807
|
+
/** @description Resource not found */
|
|
1808
|
+
404: {
|
|
1809
|
+
headers: {
|
|
1810
|
+
[name: string]: unknown;
|
|
1811
|
+
};
|
|
1812
|
+
content: {
|
|
1813
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1814
|
+
};
|
|
1815
|
+
};
|
|
1816
|
+
/** @description Rate limit exceeded */
|
|
1817
|
+
429: {
|
|
1818
|
+
headers: {
|
|
1819
|
+
[name: string]: unknown;
|
|
1820
|
+
};
|
|
1821
|
+
content: {
|
|
1822
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1823
|
+
};
|
|
1824
|
+
};
|
|
1825
|
+
/** @description Internal server error */
|
|
1826
|
+
500: {
|
|
1827
|
+
headers: {
|
|
1828
|
+
[name: string]: unknown;
|
|
1829
|
+
};
|
|
1830
|
+
content: {
|
|
1831
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1832
|
+
};
|
|
1833
|
+
};
|
|
1834
|
+
};
|
|
1835
|
+
};
|
|
1836
|
+
put?: never;
|
|
1837
|
+
/**
|
|
1838
|
+
* Create task
|
|
1839
|
+
* @description Create a new task. Optionally assign it to a parent task, project, or section.
|
|
1840
|
+
*/
|
|
1841
|
+
post: {
|
|
1842
|
+
parameters: {
|
|
1843
|
+
query?: {
|
|
1844
|
+
/** @description Include HTML representation of the task description */
|
|
1845
|
+
includeHtml?: boolean | null;
|
|
1846
|
+
};
|
|
1847
|
+
header?: never;
|
|
1848
|
+
path?: never;
|
|
1849
|
+
cookie?: never;
|
|
1850
|
+
};
|
|
1851
|
+
requestBody: {
|
|
1852
|
+
content: {
|
|
1853
|
+
"application/json": components["schemas"]["CreateTaskRequest"];
|
|
1854
|
+
};
|
|
1855
|
+
};
|
|
1856
|
+
responses: {
|
|
1857
|
+
/** @description Successful response */
|
|
1858
|
+
200: {
|
|
1859
|
+
headers: {
|
|
1860
|
+
[name: string]: unknown;
|
|
1861
|
+
};
|
|
1862
|
+
content: {
|
|
1863
|
+
"application/json": components["schemas"]["Task"];
|
|
1864
|
+
};
|
|
1865
|
+
};
|
|
1866
|
+
/** @description Bad request - validation error */
|
|
1867
|
+
400: {
|
|
1868
|
+
headers: {
|
|
1869
|
+
[name: string]: unknown;
|
|
1870
|
+
};
|
|
1871
|
+
content: {
|
|
1872
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1873
|
+
};
|
|
1874
|
+
};
|
|
1875
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
1876
|
+
401: {
|
|
1877
|
+
headers: {
|
|
1878
|
+
[name: string]: unknown;
|
|
1879
|
+
};
|
|
1880
|
+
content: {
|
|
1881
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1882
|
+
};
|
|
1883
|
+
};
|
|
1884
|
+
/** @description Resource not found */
|
|
1885
|
+
404: {
|
|
1886
|
+
headers: {
|
|
1887
|
+
[name: string]: unknown;
|
|
1888
|
+
};
|
|
1889
|
+
content: {
|
|
1890
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1891
|
+
};
|
|
1892
|
+
};
|
|
1893
|
+
/** @description Rate limit exceeded */
|
|
1894
|
+
429: {
|
|
1895
|
+
headers: {
|
|
1896
|
+
[name: string]: unknown;
|
|
1897
|
+
};
|
|
1898
|
+
content: {
|
|
1899
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1900
|
+
};
|
|
1901
|
+
};
|
|
1902
|
+
/** @description Internal server error */
|
|
1903
|
+
500: {
|
|
1904
|
+
headers: {
|
|
1905
|
+
[name: string]: unknown;
|
|
1906
|
+
};
|
|
1907
|
+
content: {
|
|
1908
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1909
|
+
};
|
|
1910
|
+
};
|
|
1911
|
+
};
|
|
1912
|
+
};
|
|
1913
|
+
delete?: never;
|
|
1914
|
+
options?: never;
|
|
1915
|
+
head?: never;
|
|
1916
|
+
patch?: never;
|
|
1917
|
+
trace?: never;
|
|
1918
|
+
};
|
|
1919
|
+
"/tasks/sections": {
|
|
1920
|
+
parameters: {
|
|
1921
|
+
query?: never;
|
|
1922
|
+
header?: never;
|
|
1923
|
+
path?: never;
|
|
1924
|
+
cookie?: never;
|
|
1925
|
+
};
|
|
1926
|
+
/**
|
|
1927
|
+
* Get tasks by section
|
|
1928
|
+
* @description Retrieve tasks organized by section (today, sooner, later).
|
|
1929
|
+
*/
|
|
1930
|
+
get: {
|
|
1931
|
+
parameters: {
|
|
1932
|
+
query?: {
|
|
1933
|
+
/** @description Filter by specific section */
|
|
1934
|
+
section?: "today" | "sooner" | "later";
|
|
1935
|
+
/** @description Include HTML representation of the task description */
|
|
1936
|
+
includeHtml?: boolean | null;
|
|
1937
|
+
};
|
|
1938
|
+
header?: never;
|
|
1939
|
+
path?: never;
|
|
1940
|
+
cookie?: never;
|
|
1941
|
+
};
|
|
1942
|
+
requestBody?: never;
|
|
1943
|
+
responses: {
|
|
1944
|
+
/** @description Successful response */
|
|
1945
|
+
200: {
|
|
1946
|
+
headers: {
|
|
1947
|
+
[name: string]: unknown;
|
|
1948
|
+
};
|
|
1949
|
+
content: {
|
|
1950
|
+
"application/json": components["schemas"]["TaskSectionsResponse"];
|
|
1951
|
+
};
|
|
1952
|
+
};
|
|
1953
|
+
/** @description Bad request - validation error */
|
|
1954
|
+
400: {
|
|
1955
|
+
headers: {
|
|
1956
|
+
[name: string]: unknown;
|
|
1957
|
+
};
|
|
1958
|
+
content: {
|
|
1959
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1960
|
+
};
|
|
1961
|
+
};
|
|
1962
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
1963
|
+
401: {
|
|
1964
|
+
headers: {
|
|
1965
|
+
[name: string]: unknown;
|
|
1966
|
+
};
|
|
1967
|
+
content: {
|
|
1968
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1969
|
+
};
|
|
1970
|
+
};
|
|
1971
|
+
/** @description Resource not found */
|
|
1972
|
+
404: {
|
|
1973
|
+
headers: {
|
|
1974
|
+
[name: string]: unknown;
|
|
1975
|
+
};
|
|
1976
|
+
content: {
|
|
1977
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1978
|
+
};
|
|
1979
|
+
};
|
|
1980
|
+
/** @description Rate limit exceeded */
|
|
1981
|
+
429: {
|
|
1982
|
+
headers: {
|
|
1983
|
+
[name: string]: unknown;
|
|
1984
|
+
};
|
|
1985
|
+
content: {
|
|
1986
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1987
|
+
};
|
|
1988
|
+
};
|
|
1989
|
+
/** @description Internal server error */
|
|
1990
|
+
500: {
|
|
1991
|
+
headers: {
|
|
1992
|
+
[name: string]: unknown;
|
|
1993
|
+
};
|
|
1994
|
+
content: {
|
|
1995
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1996
|
+
};
|
|
1997
|
+
};
|
|
1998
|
+
};
|
|
1999
|
+
};
|
|
2000
|
+
put?: never;
|
|
2001
|
+
post?: never;
|
|
2002
|
+
delete?: never;
|
|
2003
|
+
options?: never;
|
|
2004
|
+
head?: never;
|
|
2005
|
+
patch?: never;
|
|
2006
|
+
trace?: never;
|
|
2007
|
+
};
|
|
2008
|
+
"/tasks/{id}": {
|
|
2009
|
+
parameters: {
|
|
2010
|
+
query?: never;
|
|
2011
|
+
header?: never;
|
|
2012
|
+
path?: never;
|
|
2013
|
+
cookie?: never;
|
|
2014
|
+
};
|
|
2015
|
+
/**
|
|
2016
|
+
* Get task
|
|
2017
|
+
* @description Retrieve a single task by ID.
|
|
2018
|
+
*/
|
|
2019
|
+
get: {
|
|
2020
|
+
parameters: {
|
|
2021
|
+
query?: {
|
|
2022
|
+
/** @description Include HTML representation of the task description */
|
|
2023
|
+
includeHtml?: boolean | null;
|
|
2024
|
+
};
|
|
2025
|
+
header?: never;
|
|
2026
|
+
path: {
|
|
2027
|
+
/** @description Task ID */
|
|
2028
|
+
id: string;
|
|
2029
|
+
};
|
|
2030
|
+
cookie?: never;
|
|
2031
|
+
};
|
|
2032
|
+
requestBody?: never;
|
|
2033
|
+
responses: {
|
|
2034
|
+
/** @description Successful response */
|
|
2035
|
+
200: {
|
|
2036
|
+
headers: {
|
|
2037
|
+
[name: string]: unknown;
|
|
2038
|
+
};
|
|
2039
|
+
content: {
|
|
2040
|
+
"application/json": components["schemas"]["Task"];
|
|
2041
|
+
};
|
|
2042
|
+
};
|
|
2043
|
+
/** @description Bad request - validation error */
|
|
2044
|
+
400: {
|
|
2045
|
+
headers: {
|
|
2046
|
+
[name: string]: unknown;
|
|
2047
|
+
};
|
|
2048
|
+
content: {
|
|
2049
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2050
|
+
};
|
|
2051
|
+
};
|
|
2052
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
2053
|
+
401: {
|
|
2054
|
+
headers: {
|
|
2055
|
+
[name: string]: unknown;
|
|
2056
|
+
};
|
|
2057
|
+
content: {
|
|
2058
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2059
|
+
};
|
|
2060
|
+
};
|
|
2061
|
+
/** @description Resource not found */
|
|
2062
|
+
404: {
|
|
2063
|
+
headers: {
|
|
2064
|
+
[name: string]: unknown;
|
|
2065
|
+
};
|
|
2066
|
+
content: {
|
|
2067
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2068
|
+
};
|
|
2069
|
+
};
|
|
2070
|
+
/** @description Rate limit exceeded */
|
|
2071
|
+
429: {
|
|
2072
|
+
headers: {
|
|
2073
|
+
[name: string]: unknown;
|
|
2074
|
+
};
|
|
2075
|
+
content: {
|
|
2076
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2077
|
+
};
|
|
2078
|
+
};
|
|
2079
|
+
/** @description Internal server error */
|
|
2080
|
+
500: {
|
|
2081
|
+
headers: {
|
|
2082
|
+
[name: string]: unknown;
|
|
2083
|
+
};
|
|
2084
|
+
content: {
|
|
2085
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2086
|
+
};
|
|
2087
|
+
};
|
|
2088
|
+
};
|
|
2089
|
+
};
|
|
2090
|
+
put?: never;
|
|
2091
|
+
post?: never;
|
|
2092
|
+
/**
|
|
2093
|
+
* Delete task
|
|
2094
|
+
* @description Delete a task. This will also delete all subtasks and remove associated session activities.
|
|
2095
|
+
*/
|
|
2096
|
+
delete: {
|
|
2097
|
+
parameters: {
|
|
2098
|
+
query?: never;
|
|
2099
|
+
header?: never;
|
|
2100
|
+
path: {
|
|
2101
|
+
/** @description Task ID */
|
|
2102
|
+
id: string;
|
|
2103
|
+
};
|
|
2104
|
+
cookie?: never;
|
|
2105
|
+
};
|
|
2106
|
+
requestBody?: never;
|
|
2107
|
+
responses: {
|
|
2108
|
+
/** @description Successful response */
|
|
2109
|
+
200: {
|
|
2110
|
+
headers: {
|
|
2111
|
+
[name: string]: unknown;
|
|
2112
|
+
};
|
|
2113
|
+
content: {
|
|
2114
|
+
"application/json": components["schemas"]["DeleteTaskResponse"];
|
|
2115
|
+
};
|
|
2116
|
+
};
|
|
2117
|
+
/** @description Bad request - validation error */
|
|
2118
|
+
400: {
|
|
2119
|
+
headers: {
|
|
2120
|
+
[name: string]: unknown;
|
|
2121
|
+
};
|
|
2122
|
+
content: {
|
|
2123
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2124
|
+
};
|
|
2125
|
+
};
|
|
2126
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
2127
|
+
401: {
|
|
2128
|
+
headers: {
|
|
2129
|
+
[name: string]: unknown;
|
|
2130
|
+
};
|
|
2131
|
+
content: {
|
|
2132
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2133
|
+
};
|
|
2134
|
+
};
|
|
2135
|
+
/** @description Resource not found */
|
|
2136
|
+
404: {
|
|
2137
|
+
headers: {
|
|
2138
|
+
[name: string]: unknown;
|
|
2139
|
+
};
|
|
2140
|
+
content: {
|
|
2141
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2142
|
+
};
|
|
2143
|
+
};
|
|
2144
|
+
/** @description Rate limit exceeded */
|
|
2145
|
+
429: {
|
|
2146
|
+
headers: {
|
|
2147
|
+
[name: string]: unknown;
|
|
2148
|
+
};
|
|
2149
|
+
content: {
|
|
2150
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2151
|
+
};
|
|
2152
|
+
};
|
|
2153
|
+
/** @description Internal server error */
|
|
2154
|
+
500: {
|
|
2155
|
+
headers: {
|
|
2156
|
+
[name: string]: unknown;
|
|
2157
|
+
};
|
|
2158
|
+
content: {
|
|
2159
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2160
|
+
};
|
|
2161
|
+
};
|
|
2162
|
+
};
|
|
2163
|
+
};
|
|
2164
|
+
options?: never;
|
|
2165
|
+
head?: never;
|
|
2166
|
+
/**
|
|
2167
|
+
* Update task
|
|
2168
|
+
* @description Update an existing task. Only provided fields will be modified.
|
|
2169
|
+
*/
|
|
2170
|
+
patch: {
|
|
2171
|
+
parameters: {
|
|
2172
|
+
query?: {
|
|
2173
|
+
/** @description Include HTML representation of the task description */
|
|
2174
|
+
includeHtml?: boolean | null;
|
|
2175
|
+
};
|
|
2176
|
+
header?: never;
|
|
2177
|
+
path: {
|
|
2178
|
+
/** @description Task ID */
|
|
2179
|
+
id: string;
|
|
2180
|
+
};
|
|
2181
|
+
cookie?: never;
|
|
2182
|
+
};
|
|
2183
|
+
requestBody: {
|
|
2184
|
+
content: {
|
|
2185
|
+
"application/json": components["schemas"]["UpdateTaskRequest"];
|
|
2186
|
+
};
|
|
2187
|
+
};
|
|
2188
|
+
responses: {
|
|
2189
|
+
/** @description Successful response */
|
|
2190
|
+
200: {
|
|
2191
|
+
headers: {
|
|
2192
|
+
[name: string]: unknown;
|
|
2193
|
+
};
|
|
2194
|
+
content: {
|
|
2195
|
+
"application/json": components["schemas"]["Task"];
|
|
2196
|
+
};
|
|
2197
|
+
};
|
|
2198
|
+
/** @description Bad request - validation error */
|
|
2199
|
+
400: {
|
|
2200
|
+
headers: {
|
|
2201
|
+
[name: string]: unknown;
|
|
2202
|
+
};
|
|
2203
|
+
content: {
|
|
2204
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2205
|
+
};
|
|
2206
|
+
};
|
|
2207
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
2208
|
+
401: {
|
|
2209
|
+
headers: {
|
|
2210
|
+
[name: string]: unknown;
|
|
2211
|
+
};
|
|
2212
|
+
content: {
|
|
2213
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2214
|
+
};
|
|
2215
|
+
};
|
|
2216
|
+
/** @description Resource not found */
|
|
2217
|
+
404: {
|
|
2218
|
+
headers: {
|
|
2219
|
+
[name: string]: unknown;
|
|
2220
|
+
};
|
|
2221
|
+
content: {
|
|
2222
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2223
|
+
};
|
|
2224
|
+
};
|
|
2225
|
+
/** @description Rate limit exceeded */
|
|
2226
|
+
429: {
|
|
2227
|
+
headers: {
|
|
2228
|
+
[name: string]: unknown;
|
|
2229
|
+
};
|
|
2230
|
+
content: {
|
|
2231
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2232
|
+
};
|
|
2233
|
+
};
|
|
2234
|
+
/** @description Internal server error */
|
|
2235
|
+
500: {
|
|
2236
|
+
headers: {
|
|
2237
|
+
[name: string]: unknown;
|
|
2238
|
+
};
|
|
2239
|
+
content: {
|
|
2240
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2241
|
+
};
|
|
2242
|
+
};
|
|
2243
|
+
};
|
|
2244
|
+
};
|
|
2245
|
+
trace?: never;
|
|
2246
|
+
};
|
|
2247
|
+
"/tasks/{id}/subtasks": {
|
|
2248
|
+
parameters: {
|
|
2249
|
+
query?: never;
|
|
2250
|
+
header?: never;
|
|
2251
|
+
path?: never;
|
|
2252
|
+
cookie?: never;
|
|
2253
|
+
};
|
|
2254
|
+
/**
|
|
2255
|
+
* Get subtasks
|
|
2256
|
+
* @description Retrieve all subtasks of a task. Returns a paginated list of tasks that have the specified task as their parent.
|
|
2257
|
+
*/
|
|
2258
|
+
get: {
|
|
2259
|
+
parameters: {
|
|
2260
|
+
query?: {
|
|
2261
|
+
/** @description Cursor for pagination */
|
|
2262
|
+
cursor?: string;
|
|
2263
|
+
/** @description Number of items to return (max 100) */
|
|
2264
|
+
limit?: string;
|
|
2265
|
+
/** @description Filter by completion status */
|
|
2266
|
+
done?: "true" | "false";
|
|
2267
|
+
/** @description Include HTML representation of the task description */
|
|
2268
|
+
includeHtml?: boolean | null;
|
|
2269
|
+
};
|
|
2270
|
+
header?: never;
|
|
2271
|
+
path: {
|
|
2272
|
+
/** @description Task ID */
|
|
2273
|
+
id: string;
|
|
2274
|
+
};
|
|
2275
|
+
cookie?: never;
|
|
2276
|
+
};
|
|
2277
|
+
requestBody?: never;
|
|
2278
|
+
responses: {
|
|
2279
|
+
/** @description Successful response */
|
|
2280
|
+
200: {
|
|
2281
|
+
headers: {
|
|
2282
|
+
[name: string]: unknown;
|
|
2283
|
+
};
|
|
2284
|
+
content: {
|
|
2285
|
+
"application/json": components["schemas"]["TaskSubtasksResponse"];
|
|
2286
|
+
};
|
|
2287
|
+
};
|
|
2288
|
+
/** @description Bad request - validation error */
|
|
2289
|
+
400: {
|
|
2290
|
+
headers: {
|
|
2291
|
+
[name: string]: unknown;
|
|
2292
|
+
};
|
|
2293
|
+
content: {
|
|
2294
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2295
|
+
};
|
|
2296
|
+
};
|
|
2297
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
2298
|
+
401: {
|
|
2299
|
+
headers: {
|
|
2300
|
+
[name: string]: unknown;
|
|
2301
|
+
};
|
|
2302
|
+
content: {
|
|
2303
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2304
|
+
};
|
|
2305
|
+
};
|
|
2306
|
+
/** @description Resource not found */
|
|
2307
|
+
404: {
|
|
2308
|
+
headers: {
|
|
2309
|
+
[name: string]: unknown;
|
|
2310
|
+
};
|
|
2311
|
+
content: {
|
|
2312
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2313
|
+
};
|
|
2314
|
+
};
|
|
2315
|
+
/** @description Rate limit exceeded */
|
|
2316
|
+
429: {
|
|
2317
|
+
headers: {
|
|
2318
|
+
[name: string]: unknown;
|
|
2319
|
+
};
|
|
2320
|
+
content: {
|
|
2321
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2322
|
+
};
|
|
2323
|
+
};
|
|
2324
|
+
/** @description Internal server error */
|
|
2325
|
+
500: {
|
|
2326
|
+
headers: {
|
|
2327
|
+
[name: string]: unknown;
|
|
2328
|
+
};
|
|
2329
|
+
content: {
|
|
2330
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2331
|
+
};
|
|
2332
|
+
};
|
|
2333
|
+
};
|
|
2334
|
+
};
|
|
2335
|
+
put?: never;
|
|
2336
|
+
post?: never;
|
|
2337
|
+
delete?: never;
|
|
2338
|
+
options?: never;
|
|
2339
|
+
head?: never;
|
|
2340
|
+
patch?: never;
|
|
2341
|
+
trace?: never;
|
|
2342
|
+
};
|
|
2343
|
+
"/timer": {
|
|
2344
|
+
parameters: {
|
|
2345
|
+
query?: never;
|
|
2346
|
+
header?: never;
|
|
2347
|
+
path?: never;
|
|
2348
|
+
cookie?: never;
|
|
2349
|
+
};
|
|
2350
|
+
/**
|
|
2351
|
+
* Get timer state
|
|
2352
|
+
* @description Get the current session timer state. Returns IDLE if no timer is active.
|
|
2353
|
+
*/
|
|
2354
|
+
get: {
|
|
2355
|
+
parameters: {
|
|
2356
|
+
query?: never;
|
|
2357
|
+
header?: never;
|
|
2358
|
+
path?: never;
|
|
2359
|
+
cookie?: never;
|
|
2360
|
+
};
|
|
2361
|
+
requestBody?: never;
|
|
2362
|
+
responses: {
|
|
2363
|
+
/** @description Successful response */
|
|
2364
|
+
200: {
|
|
2365
|
+
headers: {
|
|
2366
|
+
[name: string]: unknown;
|
|
2367
|
+
};
|
|
2368
|
+
content: {
|
|
2369
|
+
"application/json": components["schemas"]["TimerState"];
|
|
2370
|
+
};
|
|
2371
|
+
};
|
|
2372
|
+
/** @description Bad request - validation error */
|
|
2373
|
+
400: {
|
|
2374
|
+
headers: {
|
|
2375
|
+
[name: string]: unknown;
|
|
2376
|
+
};
|
|
2377
|
+
content: {
|
|
2378
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2379
|
+
};
|
|
2380
|
+
};
|
|
2381
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
2382
|
+
401: {
|
|
2383
|
+
headers: {
|
|
2384
|
+
[name: string]: unknown;
|
|
2385
|
+
};
|
|
2386
|
+
content: {
|
|
2387
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2388
|
+
};
|
|
2389
|
+
};
|
|
2390
|
+
/** @description Resource not found */
|
|
2391
|
+
404: {
|
|
2392
|
+
headers: {
|
|
2393
|
+
[name: string]: unknown;
|
|
2394
|
+
};
|
|
2395
|
+
content: {
|
|
2396
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2397
|
+
};
|
|
2398
|
+
};
|
|
2399
|
+
/** @description Rate limit exceeded */
|
|
2400
|
+
429: {
|
|
2401
|
+
headers: {
|
|
2402
|
+
[name: string]: unknown;
|
|
2403
|
+
};
|
|
2404
|
+
content: {
|
|
2405
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2406
|
+
};
|
|
2407
|
+
};
|
|
2408
|
+
/** @description Internal server error */
|
|
2409
|
+
500: {
|
|
2410
|
+
headers: {
|
|
2411
|
+
[name: string]: unknown;
|
|
2412
|
+
};
|
|
2413
|
+
content: {
|
|
2414
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2415
|
+
};
|
|
2416
|
+
};
|
|
2417
|
+
};
|
|
2418
|
+
};
|
|
2419
|
+
put?: never;
|
|
2420
|
+
post?: never;
|
|
2421
|
+
/**
|
|
2422
|
+
* Cancel timer
|
|
2423
|
+
* @description Cancel the timer without saving any sessions. All tracked time will be discarded.
|
|
2424
|
+
*/
|
|
2425
|
+
delete: {
|
|
2426
|
+
parameters: {
|
|
2427
|
+
query?: never;
|
|
2428
|
+
header?: never;
|
|
2429
|
+
path?: never;
|
|
2430
|
+
cookie?: never;
|
|
2431
|
+
};
|
|
2432
|
+
requestBody?: never;
|
|
2433
|
+
responses: {
|
|
2434
|
+
/** @description Successful response */
|
|
2435
|
+
200: {
|
|
2436
|
+
headers: {
|
|
2437
|
+
[name: string]: unknown;
|
|
2438
|
+
};
|
|
2439
|
+
content: {
|
|
2440
|
+
"application/json": components["schemas"]["TimerState"];
|
|
2441
|
+
};
|
|
2442
|
+
};
|
|
2443
|
+
/** @description Bad request - validation error */
|
|
2444
|
+
400: {
|
|
2445
|
+
headers: {
|
|
2446
|
+
[name: string]: unknown;
|
|
2447
|
+
};
|
|
2448
|
+
content: {
|
|
2449
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2450
|
+
};
|
|
2451
|
+
};
|
|
2452
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
2453
|
+
401: {
|
|
2454
|
+
headers: {
|
|
2455
|
+
[name: string]: unknown;
|
|
2456
|
+
};
|
|
2457
|
+
content: {
|
|
2458
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2459
|
+
};
|
|
2460
|
+
};
|
|
2461
|
+
/** @description Resource not found */
|
|
2462
|
+
404: {
|
|
2463
|
+
headers: {
|
|
2464
|
+
[name: string]: unknown;
|
|
2465
|
+
};
|
|
2466
|
+
content: {
|
|
2467
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2468
|
+
};
|
|
2469
|
+
};
|
|
2470
|
+
/** @description Rate limit exceeded */
|
|
2471
|
+
429: {
|
|
2472
|
+
headers: {
|
|
2473
|
+
[name: string]: unknown;
|
|
2474
|
+
};
|
|
2475
|
+
content: {
|
|
2476
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2477
|
+
};
|
|
2478
|
+
};
|
|
2479
|
+
/** @description Internal server error */
|
|
2480
|
+
500: {
|
|
2481
|
+
headers: {
|
|
2482
|
+
[name: string]: unknown;
|
|
2483
|
+
};
|
|
2484
|
+
content: {
|
|
2485
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2486
|
+
};
|
|
2487
|
+
};
|
|
2488
|
+
};
|
|
2489
|
+
};
|
|
2490
|
+
options?: never;
|
|
2491
|
+
head?: never;
|
|
2492
|
+
patch?: never;
|
|
2493
|
+
trace?: never;
|
|
2494
|
+
};
|
|
2495
|
+
"/timer/start": {
|
|
2496
|
+
parameters: {
|
|
2497
|
+
query?: never;
|
|
2498
|
+
header?: never;
|
|
2499
|
+
path?: never;
|
|
2500
|
+
cookie?: never;
|
|
2501
|
+
};
|
|
2502
|
+
get?: never;
|
|
2503
|
+
put?: never;
|
|
2504
|
+
/**
|
|
2505
|
+
* Start timer
|
|
2506
|
+
* @description Start a new session timer. If a timer is already running, it will be stopped first.
|
|
2507
|
+
*/
|
|
2508
|
+
post: {
|
|
2509
|
+
parameters: {
|
|
2510
|
+
query?: never;
|
|
2511
|
+
header?: never;
|
|
2512
|
+
path?: never;
|
|
2513
|
+
cookie?: never;
|
|
2514
|
+
};
|
|
2515
|
+
requestBody: {
|
|
42
2516
|
content: {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
2517
|
+
"application/json": components["schemas"]["StartTimerRequest"];
|
|
2518
|
+
};
|
|
2519
|
+
};
|
|
2520
|
+
responses: {
|
|
2521
|
+
/** @description Successful response */
|
|
2522
|
+
200: {
|
|
2523
|
+
headers: {
|
|
2524
|
+
[name: string]: unknown;
|
|
2525
|
+
};
|
|
2526
|
+
content: {
|
|
2527
|
+
"application/json": components["schemas"]["TimerState"];
|
|
2528
|
+
};
|
|
2529
|
+
};
|
|
2530
|
+
/** @description Bad request - validation error */
|
|
2531
|
+
400: {
|
|
2532
|
+
headers: {
|
|
2533
|
+
[name: string]: unknown;
|
|
2534
|
+
};
|
|
2535
|
+
content: {
|
|
2536
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2537
|
+
};
|
|
2538
|
+
};
|
|
2539
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
2540
|
+
401: {
|
|
2541
|
+
headers: {
|
|
2542
|
+
[name: string]: unknown;
|
|
2543
|
+
};
|
|
2544
|
+
content: {
|
|
2545
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2546
|
+
};
|
|
2547
|
+
};
|
|
2548
|
+
/** @description Resource not found */
|
|
2549
|
+
404: {
|
|
2550
|
+
headers: {
|
|
2551
|
+
[name: string]: unknown;
|
|
2552
|
+
};
|
|
2553
|
+
content: {
|
|
2554
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2555
|
+
};
|
|
2556
|
+
};
|
|
2557
|
+
/** @description Rate limit exceeded */
|
|
2558
|
+
429: {
|
|
2559
|
+
headers: {
|
|
2560
|
+
[name: string]: unknown;
|
|
2561
|
+
};
|
|
2562
|
+
content: {
|
|
2563
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2564
|
+
};
|
|
2565
|
+
};
|
|
2566
|
+
/** @description Internal server error */
|
|
2567
|
+
500: {
|
|
2568
|
+
headers: {
|
|
2569
|
+
[name: string]: unknown;
|
|
2570
|
+
};
|
|
2571
|
+
content: {
|
|
2572
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2573
|
+
};
|
|
2574
|
+
};
|
|
2575
|
+
};
|
|
2576
|
+
};
|
|
2577
|
+
delete?: never;
|
|
2578
|
+
options?: never;
|
|
2579
|
+
head?: never;
|
|
2580
|
+
patch?: never;
|
|
2581
|
+
trace?: never;
|
|
2582
|
+
};
|
|
2583
|
+
"/timer/pause": {
|
|
2584
|
+
parameters: {
|
|
2585
|
+
query?: never;
|
|
2586
|
+
header?: never;
|
|
2587
|
+
path?: never;
|
|
2588
|
+
cookie?: never;
|
|
2589
|
+
};
|
|
2590
|
+
get?: never;
|
|
2591
|
+
put?: never;
|
|
2592
|
+
/**
|
|
2593
|
+
* Pause timer
|
|
2594
|
+
* @description Pause the currently running timer.
|
|
2595
|
+
*/
|
|
2596
|
+
post: {
|
|
2597
|
+
parameters: {
|
|
2598
|
+
query?: never;
|
|
2599
|
+
header?: never;
|
|
2600
|
+
path?: never;
|
|
2601
|
+
cookie?: never;
|
|
2602
|
+
};
|
|
2603
|
+
requestBody?: never;
|
|
2604
|
+
responses: {
|
|
2605
|
+
/** @description Successful response */
|
|
2606
|
+
200: {
|
|
2607
|
+
headers: {
|
|
2608
|
+
[name: string]: unknown;
|
|
2609
|
+
};
|
|
2610
|
+
content: {
|
|
2611
|
+
"application/json": components["schemas"]["TimerState"];
|
|
2612
|
+
};
|
|
2613
|
+
};
|
|
2614
|
+
/** @description Bad request - validation error */
|
|
2615
|
+
400: {
|
|
2616
|
+
headers: {
|
|
2617
|
+
[name: string]: unknown;
|
|
2618
|
+
};
|
|
2619
|
+
content: {
|
|
2620
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2621
|
+
};
|
|
2622
|
+
};
|
|
2623
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
2624
|
+
401: {
|
|
2625
|
+
headers: {
|
|
2626
|
+
[name: string]: unknown;
|
|
2627
|
+
};
|
|
2628
|
+
content: {
|
|
2629
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2630
|
+
};
|
|
2631
|
+
};
|
|
2632
|
+
/** @description Resource not found */
|
|
2633
|
+
404: {
|
|
2634
|
+
headers: {
|
|
2635
|
+
[name: string]: unknown;
|
|
2636
|
+
};
|
|
2637
|
+
content: {
|
|
2638
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2639
|
+
};
|
|
2640
|
+
};
|
|
2641
|
+
/** @description Rate limit exceeded */
|
|
2642
|
+
429: {
|
|
2643
|
+
headers: {
|
|
2644
|
+
[name: string]: unknown;
|
|
2645
|
+
};
|
|
2646
|
+
content: {
|
|
2647
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2648
|
+
};
|
|
2649
|
+
};
|
|
2650
|
+
/** @description Internal server error */
|
|
2651
|
+
500: {
|
|
2652
|
+
headers: {
|
|
2653
|
+
[name: string]: unknown;
|
|
2654
|
+
};
|
|
2655
|
+
content: {
|
|
2656
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2657
|
+
};
|
|
2658
|
+
};
|
|
2659
|
+
};
|
|
2660
|
+
};
|
|
2661
|
+
delete?: never;
|
|
2662
|
+
options?: never;
|
|
2663
|
+
head?: never;
|
|
2664
|
+
patch?: never;
|
|
2665
|
+
trace?: never;
|
|
2666
|
+
};
|
|
2667
|
+
"/timer/continue": {
|
|
2668
|
+
parameters: {
|
|
2669
|
+
query?: never;
|
|
2670
|
+
header?: never;
|
|
2671
|
+
path?: never;
|
|
2672
|
+
cookie?: never;
|
|
2673
|
+
};
|
|
2674
|
+
get?: never;
|
|
2675
|
+
put?: never;
|
|
2676
|
+
/**
|
|
2677
|
+
* Continue timer
|
|
2678
|
+
* @description Resume a paused timer.
|
|
2679
|
+
*/
|
|
2680
|
+
post: {
|
|
2681
|
+
parameters: {
|
|
2682
|
+
query?: never;
|
|
2683
|
+
header?: never;
|
|
2684
|
+
path?: never;
|
|
2685
|
+
cookie?: never;
|
|
2686
|
+
};
|
|
2687
|
+
requestBody?: never;
|
|
2688
|
+
responses: {
|
|
2689
|
+
/** @description Successful response */
|
|
2690
|
+
200: {
|
|
2691
|
+
headers: {
|
|
2692
|
+
[name: string]: unknown;
|
|
2693
|
+
};
|
|
2694
|
+
content: {
|
|
2695
|
+
"application/json": components["schemas"]["TimerState"];
|
|
2696
|
+
};
|
|
2697
|
+
};
|
|
2698
|
+
/** @description Bad request - validation error */
|
|
2699
|
+
400: {
|
|
2700
|
+
headers: {
|
|
2701
|
+
[name: string]: unknown;
|
|
2702
|
+
};
|
|
2703
|
+
content: {
|
|
2704
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2705
|
+
};
|
|
2706
|
+
};
|
|
2707
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
2708
|
+
401: {
|
|
2709
|
+
headers: {
|
|
2710
|
+
[name: string]: unknown;
|
|
2711
|
+
};
|
|
2712
|
+
content: {
|
|
2713
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2714
|
+
};
|
|
2715
|
+
};
|
|
2716
|
+
/** @description Resource not found */
|
|
2717
|
+
404: {
|
|
2718
|
+
headers: {
|
|
2719
|
+
[name: string]: unknown;
|
|
2720
|
+
};
|
|
2721
|
+
content: {
|
|
2722
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2723
|
+
};
|
|
2724
|
+
};
|
|
2725
|
+
/** @description Rate limit exceeded */
|
|
2726
|
+
429: {
|
|
2727
|
+
headers: {
|
|
2728
|
+
[name: string]: unknown;
|
|
2729
|
+
};
|
|
2730
|
+
content: {
|
|
2731
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2732
|
+
};
|
|
2733
|
+
};
|
|
2734
|
+
/** @description Internal server error */
|
|
2735
|
+
500: {
|
|
2736
|
+
headers: {
|
|
2737
|
+
[name: string]: unknown;
|
|
2738
|
+
};
|
|
2739
|
+
content: {
|
|
2740
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2741
|
+
};
|
|
2742
|
+
};
|
|
2743
|
+
};
|
|
2744
|
+
};
|
|
2745
|
+
delete?: never;
|
|
2746
|
+
options?: never;
|
|
2747
|
+
head?: never;
|
|
2748
|
+
patch?: never;
|
|
2749
|
+
trace?: never;
|
|
2750
|
+
};
|
|
2751
|
+
"/timer/stop": {
|
|
2752
|
+
parameters: {
|
|
2753
|
+
query?: never;
|
|
2754
|
+
header?: never;
|
|
2755
|
+
path?: never;
|
|
2756
|
+
cookie?: never;
|
|
2757
|
+
};
|
|
2758
|
+
get?: never;
|
|
2759
|
+
put?: never;
|
|
2760
|
+
/**
|
|
2761
|
+
* Stop timer
|
|
2762
|
+
* @description Stop the timer and finalize all sessions. Returns the completed sessions.
|
|
2763
|
+
*/
|
|
2764
|
+
post: {
|
|
2765
|
+
parameters: {
|
|
2766
|
+
query?: never;
|
|
2767
|
+
header?: never;
|
|
2768
|
+
path?: never;
|
|
2769
|
+
cookie?: never;
|
|
2770
|
+
};
|
|
2771
|
+
requestBody?: never;
|
|
2772
|
+
responses: {
|
|
2773
|
+
/** @description Successful response */
|
|
2774
|
+
200: {
|
|
2775
|
+
headers: {
|
|
2776
|
+
[name: string]: unknown;
|
|
2777
|
+
};
|
|
2778
|
+
content: {
|
|
2779
|
+
"application/json": components["schemas"]["StopTimerResponse"];
|
|
2780
|
+
};
|
|
2781
|
+
};
|
|
2782
|
+
/** @description Bad request - validation error */
|
|
2783
|
+
400: {
|
|
2784
|
+
headers: {
|
|
2785
|
+
[name: string]: unknown;
|
|
2786
|
+
};
|
|
2787
|
+
content: {
|
|
2788
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2789
|
+
};
|
|
2790
|
+
};
|
|
2791
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
2792
|
+
401: {
|
|
2793
|
+
headers: {
|
|
2794
|
+
[name: string]: unknown;
|
|
2795
|
+
};
|
|
2796
|
+
content: {
|
|
2797
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2798
|
+
};
|
|
2799
|
+
};
|
|
2800
|
+
/** @description Resource not found */
|
|
2801
|
+
404: {
|
|
2802
|
+
headers: {
|
|
2803
|
+
[name: string]: unknown;
|
|
2804
|
+
};
|
|
2805
|
+
content: {
|
|
2806
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2807
|
+
};
|
|
2808
|
+
};
|
|
2809
|
+
/** @description Rate limit exceeded */
|
|
2810
|
+
429: {
|
|
2811
|
+
headers: {
|
|
2812
|
+
[name: string]: unknown;
|
|
2813
|
+
};
|
|
2814
|
+
content: {
|
|
2815
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2816
|
+
};
|
|
2817
|
+
};
|
|
2818
|
+
/** @description Internal server error */
|
|
2819
|
+
500: {
|
|
2820
|
+
headers: {
|
|
2821
|
+
[name: string]: unknown;
|
|
2822
|
+
};
|
|
2823
|
+
content: {
|
|
2824
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2825
|
+
};
|
|
2826
|
+
};
|
|
2827
|
+
};
|
|
2828
|
+
};
|
|
2829
|
+
delete?: never;
|
|
2830
|
+
options?: never;
|
|
2831
|
+
head?: never;
|
|
2832
|
+
patch?: never;
|
|
2833
|
+
trace?: never;
|
|
2834
|
+
};
|
|
2835
|
+
"/webhooks": {
|
|
2836
|
+
parameters: {
|
|
2837
|
+
query?: never;
|
|
2838
|
+
header?: never;
|
|
2839
|
+
path?: never;
|
|
2840
|
+
cookie?: never;
|
|
2841
|
+
};
|
|
2842
|
+
/**
|
|
2843
|
+
* List webhooks
|
|
2844
|
+
* @description Retrieve a paginated list of webhooks for the workspace.
|
|
2845
|
+
*/
|
|
2846
|
+
get: {
|
|
2847
|
+
parameters: {
|
|
2848
|
+
query?: {
|
|
2849
|
+
/** @description Number of webhooks to return */
|
|
2850
|
+
limit?: number;
|
|
2851
|
+
/** @description Cursor for pagination */
|
|
2852
|
+
cursor?: string;
|
|
2853
|
+
/** @description Filter by active status */
|
|
2854
|
+
isActive?: "true" | "false";
|
|
2855
|
+
};
|
|
2856
|
+
header?: never;
|
|
2857
|
+
path?: never;
|
|
2858
|
+
cookie?: never;
|
|
2859
|
+
};
|
|
2860
|
+
requestBody?: never;
|
|
2861
|
+
responses: {
|
|
2862
|
+
/** @description Successful response */
|
|
2863
|
+
200: {
|
|
2864
|
+
headers: {
|
|
2865
|
+
[name: string]: unknown;
|
|
2866
|
+
};
|
|
2867
|
+
content: {
|
|
2868
|
+
"application/json": components["schemas"]["WebhookListResponse"];
|
|
2869
|
+
};
|
|
2870
|
+
};
|
|
2871
|
+
/** @description Bad request - validation error */
|
|
2872
|
+
400: {
|
|
2873
|
+
headers: {
|
|
2874
|
+
[name: string]: unknown;
|
|
2875
|
+
};
|
|
2876
|
+
content: {
|
|
2877
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2878
|
+
};
|
|
2879
|
+
};
|
|
2880
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
2881
|
+
401: {
|
|
2882
|
+
headers: {
|
|
2883
|
+
[name: string]: unknown;
|
|
2884
|
+
};
|
|
2885
|
+
content: {
|
|
2886
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2887
|
+
};
|
|
2888
|
+
};
|
|
2889
|
+
/** @description Resource not found */
|
|
2890
|
+
404: {
|
|
2891
|
+
headers: {
|
|
2892
|
+
[name: string]: unknown;
|
|
2893
|
+
};
|
|
2894
|
+
content: {
|
|
2895
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2896
|
+
};
|
|
2897
|
+
};
|
|
2898
|
+
/** @description Rate limit exceeded */
|
|
2899
|
+
429: {
|
|
2900
|
+
headers: {
|
|
2901
|
+
[name: string]: unknown;
|
|
2902
|
+
};
|
|
2903
|
+
content: {
|
|
2904
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2905
|
+
};
|
|
2906
|
+
};
|
|
2907
|
+
/** @description Internal server error */
|
|
2908
|
+
500: {
|
|
2909
|
+
headers: {
|
|
2910
|
+
[name: string]: unknown;
|
|
2911
|
+
};
|
|
2912
|
+
content: {
|
|
2913
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2914
|
+
};
|
|
2915
|
+
};
|
|
2916
|
+
};
|
|
2917
|
+
};
|
|
2918
|
+
put?: never;
|
|
2919
|
+
/**
|
|
2920
|
+
* Create webhook
|
|
2921
|
+
* @description Create a new webhook. The secret is only returned once during creation.
|
|
2922
|
+
*/
|
|
2923
|
+
post: {
|
|
2924
|
+
parameters: {
|
|
2925
|
+
query?: never;
|
|
2926
|
+
header?: never;
|
|
2927
|
+
path?: never;
|
|
2928
|
+
cookie?: never;
|
|
2929
|
+
};
|
|
2930
|
+
requestBody: {
|
|
2931
|
+
content: {
|
|
2932
|
+
"application/json": components["schemas"]["CreateWebhookRequest"];
|
|
2933
|
+
};
|
|
2934
|
+
};
|
|
2935
|
+
responses: {
|
|
2936
|
+
/** @description Successful response */
|
|
2937
|
+
200: {
|
|
2938
|
+
headers: {
|
|
2939
|
+
[name: string]: unknown;
|
|
2940
|
+
};
|
|
2941
|
+
content: {
|
|
2942
|
+
"application/json": components["schemas"]["WebhookWithSecret"];
|
|
2943
|
+
};
|
|
2944
|
+
};
|
|
2945
|
+
/** @description Bad request - validation error */
|
|
2946
|
+
400: {
|
|
2947
|
+
headers: {
|
|
2948
|
+
[name: string]: unknown;
|
|
2949
|
+
};
|
|
2950
|
+
content: {
|
|
2951
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2952
|
+
};
|
|
2953
|
+
};
|
|
2954
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
2955
|
+
401: {
|
|
2956
|
+
headers: {
|
|
2957
|
+
[name: string]: unknown;
|
|
2958
|
+
};
|
|
2959
|
+
content: {
|
|
2960
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2961
|
+
};
|
|
2962
|
+
};
|
|
2963
|
+
/** @description Resource not found */
|
|
2964
|
+
404: {
|
|
2965
|
+
headers: {
|
|
2966
|
+
[name: string]: unknown;
|
|
2967
|
+
};
|
|
2968
|
+
content: {
|
|
2969
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2970
|
+
};
|
|
2971
|
+
};
|
|
2972
|
+
/** @description Rate limit exceeded */
|
|
2973
|
+
429: {
|
|
2974
|
+
headers: {
|
|
2975
|
+
[name: string]: unknown;
|
|
2976
|
+
};
|
|
2977
|
+
content: {
|
|
2978
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2979
|
+
};
|
|
2980
|
+
};
|
|
2981
|
+
/** @description Internal server error */
|
|
2982
|
+
500: {
|
|
2983
|
+
headers: {
|
|
2984
|
+
[name: string]: unknown;
|
|
2985
|
+
};
|
|
2986
|
+
content: {
|
|
2987
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2988
|
+
};
|
|
2989
|
+
};
|
|
2990
|
+
};
|
|
2991
|
+
};
|
|
2992
|
+
delete?: never;
|
|
2993
|
+
options?: never;
|
|
2994
|
+
head?: never;
|
|
2995
|
+
patch?: never;
|
|
2996
|
+
trace?: never;
|
|
2997
|
+
};
|
|
2998
|
+
"/webhooks/{id}": {
|
|
2999
|
+
parameters: {
|
|
3000
|
+
query?: never;
|
|
3001
|
+
header?: never;
|
|
3002
|
+
path?: never;
|
|
3003
|
+
cookie?: never;
|
|
3004
|
+
};
|
|
3005
|
+
/**
|
|
3006
|
+
* Get webhook
|
|
3007
|
+
* @description Retrieve a single webhook by ID.
|
|
3008
|
+
*/
|
|
3009
|
+
get: {
|
|
3010
|
+
parameters: {
|
|
3011
|
+
query?: never;
|
|
3012
|
+
header?: never;
|
|
3013
|
+
path: {
|
|
3014
|
+
/** @description Webhook ID */
|
|
3015
|
+
id: string;
|
|
3016
|
+
};
|
|
3017
|
+
cookie?: never;
|
|
3018
|
+
};
|
|
3019
|
+
requestBody?: never;
|
|
3020
|
+
responses: {
|
|
3021
|
+
/** @description Successful response */
|
|
3022
|
+
200: {
|
|
3023
|
+
headers: {
|
|
3024
|
+
[name: string]: unknown;
|
|
3025
|
+
};
|
|
3026
|
+
content: {
|
|
3027
|
+
"application/json": components["schemas"]["Webhook"];
|
|
3028
|
+
};
|
|
3029
|
+
};
|
|
3030
|
+
/** @description Bad request - validation error */
|
|
3031
|
+
400: {
|
|
3032
|
+
headers: {
|
|
3033
|
+
[name: string]: unknown;
|
|
3034
|
+
};
|
|
3035
|
+
content: {
|
|
3036
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3037
|
+
};
|
|
3038
|
+
};
|
|
3039
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
3040
|
+
401: {
|
|
3041
|
+
headers: {
|
|
3042
|
+
[name: string]: unknown;
|
|
3043
|
+
};
|
|
3044
|
+
content: {
|
|
3045
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3046
|
+
};
|
|
3047
|
+
};
|
|
3048
|
+
/** @description Resource not found */
|
|
3049
|
+
404: {
|
|
3050
|
+
headers: {
|
|
3051
|
+
[name: string]: unknown;
|
|
3052
|
+
};
|
|
3053
|
+
content: {
|
|
3054
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3055
|
+
};
|
|
3056
|
+
};
|
|
3057
|
+
/** @description Rate limit exceeded */
|
|
3058
|
+
429: {
|
|
3059
|
+
headers: {
|
|
3060
|
+
[name: string]: unknown;
|
|
3061
|
+
};
|
|
3062
|
+
content: {
|
|
3063
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3064
|
+
};
|
|
3065
|
+
};
|
|
3066
|
+
/** @description Internal server error */
|
|
3067
|
+
500: {
|
|
3068
|
+
headers: {
|
|
3069
|
+
[name: string]: unknown;
|
|
3070
|
+
};
|
|
3071
|
+
content: {
|
|
3072
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3073
|
+
};
|
|
3074
|
+
};
|
|
3075
|
+
};
|
|
3076
|
+
};
|
|
3077
|
+
put?: never;
|
|
3078
|
+
post?: never;
|
|
3079
|
+
/**
|
|
3080
|
+
* Delete webhook
|
|
3081
|
+
* @description Delete a webhook. This will stop all future deliveries.
|
|
3082
|
+
*/
|
|
3083
|
+
delete: {
|
|
3084
|
+
parameters: {
|
|
3085
|
+
query?: never;
|
|
3086
|
+
header?: never;
|
|
3087
|
+
path: {
|
|
3088
|
+
/** @description Webhook ID */
|
|
3089
|
+
id: string;
|
|
3090
|
+
};
|
|
3091
|
+
cookie?: never;
|
|
3092
|
+
};
|
|
3093
|
+
requestBody?: never;
|
|
3094
|
+
responses: {
|
|
3095
|
+
/** @description Successful response */
|
|
3096
|
+
200: {
|
|
3097
|
+
headers: {
|
|
3098
|
+
[name: string]: unknown;
|
|
3099
|
+
};
|
|
3100
|
+
content: {
|
|
3101
|
+
"application/json": components["schemas"]["DeleteWebhookResponse"];
|
|
3102
|
+
};
|
|
3103
|
+
};
|
|
3104
|
+
/** @description Bad request - validation error */
|
|
3105
|
+
400: {
|
|
3106
|
+
headers: {
|
|
3107
|
+
[name: string]: unknown;
|
|
3108
|
+
};
|
|
3109
|
+
content: {
|
|
3110
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3111
|
+
};
|
|
3112
|
+
};
|
|
3113
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
3114
|
+
401: {
|
|
3115
|
+
headers: {
|
|
3116
|
+
[name: string]: unknown;
|
|
3117
|
+
};
|
|
3118
|
+
content: {
|
|
3119
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3120
|
+
};
|
|
3121
|
+
};
|
|
3122
|
+
/** @description Resource not found */
|
|
3123
|
+
404: {
|
|
3124
|
+
headers: {
|
|
3125
|
+
[name: string]: unknown;
|
|
3126
|
+
};
|
|
3127
|
+
content: {
|
|
3128
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3129
|
+
};
|
|
3130
|
+
};
|
|
3131
|
+
/** @description Rate limit exceeded */
|
|
3132
|
+
429: {
|
|
3133
|
+
headers: {
|
|
3134
|
+
[name: string]: unknown;
|
|
3135
|
+
};
|
|
3136
|
+
content: {
|
|
3137
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3138
|
+
};
|
|
3139
|
+
};
|
|
3140
|
+
/** @description Internal server error */
|
|
3141
|
+
500: {
|
|
3142
|
+
headers: {
|
|
3143
|
+
[name: string]: unknown;
|
|
3144
|
+
};
|
|
3145
|
+
content: {
|
|
3146
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3147
|
+
};
|
|
3148
|
+
};
|
|
3149
|
+
};
|
|
3150
|
+
};
|
|
3151
|
+
options?: never;
|
|
3152
|
+
head?: never;
|
|
3153
|
+
/**
|
|
3154
|
+
* Update webhook
|
|
3155
|
+
* @description Update an existing webhook. Only provided fields will be modified.
|
|
3156
|
+
*/
|
|
3157
|
+
patch: {
|
|
3158
|
+
parameters: {
|
|
3159
|
+
query?: never;
|
|
3160
|
+
header?: never;
|
|
3161
|
+
path: {
|
|
3162
|
+
/** @description Webhook ID */
|
|
3163
|
+
id: string;
|
|
3164
|
+
};
|
|
3165
|
+
cookie?: never;
|
|
3166
|
+
};
|
|
3167
|
+
requestBody: {
|
|
3168
|
+
content: {
|
|
3169
|
+
"application/json": components["schemas"]["UpdateWebhookRequest"];
|
|
3170
|
+
};
|
|
3171
|
+
};
|
|
3172
|
+
responses: {
|
|
3173
|
+
/** @description Successful response */
|
|
3174
|
+
200: {
|
|
3175
|
+
headers: {
|
|
3176
|
+
[name: string]: unknown;
|
|
3177
|
+
};
|
|
3178
|
+
content: {
|
|
3179
|
+
"application/json": components["schemas"]["Webhook"];
|
|
3180
|
+
};
|
|
3181
|
+
};
|
|
3182
|
+
/** @description Bad request - validation error */
|
|
3183
|
+
400: {
|
|
3184
|
+
headers: {
|
|
3185
|
+
[name: string]: unknown;
|
|
3186
|
+
};
|
|
3187
|
+
content: {
|
|
3188
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3189
|
+
};
|
|
3190
|
+
};
|
|
3191
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
3192
|
+
401: {
|
|
3193
|
+
headers: {
|
|
3194
|
+
[name: string]: unknown;
|
|
3195
|
+
};
|
|
3196
|
+
content: {
|
|
3197
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3198
|
+
};
|
|
3199
|
+
};
|
|
3200
|
+
/** @description Resource not found */
|
|
3201
|
+
404: {
|
|
3202
|
+
headers: {
|
|
3203
|
+
[name: string]: unknown;
|
|
3204
|
+
};
|
|
3205
|
+
content: {
|
|
3206
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3207
|
+
};
|
|
3208
|
+
};
|
|
3209
|
+
/** @description Rate limit exceeded */
|
|
3210
|
+
429: {
|
|
3211
|
+
headers: {
|
|
3212
|
+
[name: string]: unknown;
|
|
3213
|
+
};
|
|
3214
|
+
content: {
|
|
3215
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3216
|
+
};
|
|
3217
|
+
};
|
|
3218
|
+
/** @description Internal server error */
|
|
3219
|
+
500: {
|
|
3220
|
+
headers: {
|
|
3221
|
+
[name: string]: unknown;
|
|
3222
|
+
};
|
|
3223
|
+
content: {
|
|
3224
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3225
|
+
};
|
|
3226
|
+
};
|
|
3227
|
+
};
|
|
3228
|
+
};
|
|
3229
|
+
trace?: never;
|
|
3230
|
+
};
|
|
3231
|
+
"/webhooks/{id}/deliveries": {
|
|
3232
|
+
parameters: {
|
|
3233
|
+
query?: never;
|
|
3234
|
+
header?: never;
|
|
3235
|
+
path?: never;
|
|
3236
|
+
cookie?: never;
|
|
3237
|
+
};
|
|
3238
|
+
/**
|
|
3239
|
+
* List webhook deliveries
|
|
3240
|
+
* @description Retrieve recent delivery attempts for a webhook.
|
|
3241
|
+
*/
|
|
3242
|
+
get: {
|
|
3243
|
+
parameters: {
|
|
3244
|
+
query?: {
|
|
3245
|
+
/** @description Number of deliveries to return */
|
|
3246
|
+
limit?: number;
|
|
3247
|
+
/** @description Cursor for pagination */
|
|
3248
|
+
cursor?: string;
|
|
3249
|
+
};
|
|
3250
|
+
header?: never;
|
|
3251
|
+
path: {
|
|
3252
|
+
/** @description Webhook ID */
|
|
3253
|
+
id: string;
|
|
3254
|
+
};
|
|
3255
|
+
cookie?: never;
|
|
3256
|
+
};
|
|
3257
|
+
requestBody?: never;
|
|
3258
|
+
responses: {
|
|
3259
|
+
/** @description Successful response */
|
|
3260
|
+
200: {
|
|
3261
|
+
headers: {
|
|
3262
|
+
[name: string]: unknown;
|
|
48
3263
|
};
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
3264
|
+
content: {
|
|
3265
|
+
"application/json": components["schemas"]["WebhookDeliveryListResponse"];
|
|
3266
|
+
};
|
|
3267
|
+
};
|
|
3268
|
+
/** @description Bad request - validation error */
|
|
3269
|
+
400: {
|
|
3270
|
+
headers: {
|
|
3271
|
+
[name: string]: unknown;
|
|
3272
|
+
};
|
|
3273
|
+
content: {
|
|
3274
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3275
|
+
};
|
|
3276
|
+
};
|
|
3277
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
3278
|
+
401: {
|
|
3279
|
+
headers: {
|
|
3280
|
+
[name: string]: unknown;
|
|
3281
|
+
};
|
|
3282
|
+
content: {
|
|
3283
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3284
|
+
};
|
|
3285
|
+
};
|
|
3286
|
+
/** @description Resource not found */
|
|
3287
|
+
404: {
|
|
3288
|
+
headers: {
|
|
3289
|
+
[name: string]: unknown;
|
|
3290
|
+
};
|
|
3291
|
+
content: {
|
|
3292
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3293
|
+
};
|
|
3294
|
+
};
|
|
3295
|
+
/** @description Rate limit exceeded */
|
|
3296
|
+
429: {
|
|
3297
|
+
headers: {
|
|
3298
|
+
[name: string]: unknown;
|
|
3299
|
+
};
|
|
3300
|
+
content: {
|
|
3301
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3302
|
+
};
|
|
3303
|
+
};
|
|
3304
|
+
/** @description Internal server error */
|
|
3305
|
+
500: {
|
|
3306
|
+
headers: {
|
|
3307
|
+
[name: string]: unknown;
|
|
3308
|
+
};
|
|
3309
|
+
content: {
|
|
3310
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3311
|
+
};
|
|
3312
|
+
};
|
|
63
3313
|
};
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
3314
|
+
};
|
|
3315
|
+
put?: never;
|
|
3316
|
+
post?: never;
|
|
3317
|
+
delete?: never;
|
|
3318
|
+
options?: never;
|
|
3319
|
+
head?: never;
|
|
3320
|
+
patch?: never;
|
|
3321
|
+
trace?: never;
|
|
3322
|
+
};
|
|
3323
|
+
"/webhooks/{id}/rotate-secret": {
|
|
3324
|
+
parameters: {
|
|
3325
|
+
query?: never;
|
|
3326
|
+
header?: never;
|
|
3327
|
+
path?: never;
|
|
3328
|
+
cookie?: never;
|
|
3329
|
+
};
|
|
3330
|
+
get?: never;
|
|
3331
|
+
put?: never;
|
|
3332
|
+
/**
|
|
3333
|
+
* Rotate webhook secret
|
|
3334
|
+
* @description Generate a new secret for the webhook. The old secret will be immediately invalidated.
|
|
3335
|
+
*/
|
|
3336
|
+
post: {
|
|
3337
|
+
parameters: {
|
|
3338
|
+
query?: never;
|
|
3339
|
+
header?: never;
|
|
3340
|
+
path: {
|
|
3341
|
+
/** @description Webhook ID */
|
|
3342
|
+
id: string;
|
|
3343
|
+
};
|
|
3344
|
+
cookie?: never;
|
|
3345
|
+
};
|
|
3346
|
+
requestBody?: never;
|
|
3347
|
+
responses: {
|
|
3348
|
+
/** @description Successful response */
|
|
3349
|
+
200: {
|
|
3350
|
+
headers: {
|
|
3351
|
+
[name: string]: unknown;
|
|
3352
|
+
};
|
|
3353
|
+
content: {
|
|
3354
|
+
"application/json": components["schemas"]["RotateSecretResponse"];
|
|
3355
|
+
};
|
|
3356
|
+
};
|
|
3357
|
+
/** @description Bad request - validation error */
|
|
3358
|
+
400: {
|
|
3359
|
+
headers: {
|
|
3360
|
+
[name: string]: unknown;
|
|
3361
|
+
};
|
|
3362
|
+
content: {
|
|
3363
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3364
|
+
};
|
|
3365
|
+
};
|
|
3366
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
3367
|
+
401: {
|
|
3368
|
+
headers: {
|
|
3369
|
+
[name: string]: unknown;
|
|
3370
|
+
};
|
|
3371
|
+
content: {
|
|
3372
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3373
|
+
};
|
|
3374
|
+
};
|
|
3375
|
+
/** @description Resource not found */
|
|
3376
|
+
404: {
|
|
3377
|
+
headers: {
|
|
3378
|
+
[name: string]: unknown;
|
|
3379
|
+
};
|
|
3380
|
+
content: {
|
|
3381
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3382
|
+
};
|
|
3383
|
+
};
|
|
3384
|
+
/** @description Rate limit exceeded */
|
|
3385
|
+
429: {
|
|
3386
|
+
headers: {
|
|
3387
|
+
[name: string]: unknown;
|
|
3388
|
+
};
|
|
3389
|
+
content: {
|
|
3390
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3391
|
+
};
|
|
3392
|
+
};
|
|
3393
|
+
/** @description Internal server error */
|
|
3394
|
+
500: {
|
|
3395
|
+
headers: {
|
|
3396
|
+
[name: string]: unknown;
|
|
3397
|
+
};
|
|
3398
|
+
content: {
|
|
3399
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3400
|
+
};
|
|
3401
|
+
};
|
|
3402
|
+
};
|
|
3403
|
+
};
|
|
3404
|
+
delete?: never;
|
|
3405
|
+
options?: never;
|
|
3406
|
+
head?: never;
|
|
3407
|
+
patch?: never;
|
|
3408
|
+
trace?: never;
|
|
3409
|
+
};
|
|
3410
|
+
}
|
|
3411
|
+
type webhooks = Record<string, never>;
|
|
3412
|
+
interface components {
|
|
3413
|
+
schemas: {
|
|
3414
|
+
Task: components["schemas"]["LocuTask"] | components["schemas"]["LinearTask"] | components["schemas"]["JiraTask"];
|
|
67
3415
|
LocuTask: {
|
|
68
3416
|
id: string;
|
|
69
3417
|
name: string;
|
|
70
|
-
done: "completed" | "canceled" |
|
|
3418
|
+
done: "completed" | "canceled" | null;
|
|
71
3419
|
doneAt: number | null;
|
|
72
3420
|
createdAt: number;
|
|
73
3421
|
parent: {
|
|
@@ -80,19 +3428,82 @@ interface components {
|
|
|
80
3428
|
} | null;
|
|
81
3429
|
projectId?: string | null;
|
|
82
3430
|
cursorAgentUrl?: string | null;
|
|
83
|
-
integrationId:
|
|
3431
|
+
integrationId: null;
|
|
84
3432
|
slackLink?: string;
|
|
85
3433
|
/**
|
|
86
3434
|
* @default locu
|
|
87
3435
|
* @enum {string}
|
|
88
3436
|
*/
|
|
89
3437
|
type: "locu";
|
|
90
|
-
description
|
|
3438
|
+
/** @description Task description in multiple formats */
|
|
3439
|
+
description?: {
|
|
3440
|
+
/** @description Description content as Markdown */
|
|
3441
|
+
markdown: string;
|
|
3442
|
+
/** @description Description content as HTML (only included when includeHtml=true) */
|
|
3443
|
+
html?: string;
|
|
3444
|
+
/**
|
|
3445
|
+
* @description Description content as ProseMirror JSON document
|
|
3446
|
+
* @example {
|
|
3447
|
+
* "type": "doc",
|
|
3448
|
+
* "content": [
|
|
3449
|
+
* {
|
|
3450
|
+
* "type": "paragraph",
|
|
3451
|
+
* "content": [
|
|
3452
|
+
* {
|
|
3453
|
+
* "type": "text",
|
|
3454
|
+
* "text": "Hello "
|
|
3455
|
+
* },
|
|
3456
|
+
* {
|
|
3457
|
+
* "type": "text",
|
|
3458
|
+
* "text": "world",
|
|
3459
|
+
* "marks": [
|
|
3460
|
+
* {
|
|
3461
|
+
* "type": "bold"
|
|
3462
|
+
* }
|
|
3463
|
+
* ]
|
|
3464
|
+
* }
|
|
3465
|
+
* ]
|
|
3466
|
+
* }
|
|
3467
|
+
* ]
|
|
3468
|
+
* }
|
|
3469
|
+
*/
|
|
3470
|
+
json?: {
|
|
3471
|
+
/**
|
|
3472
|
+
* @description Document root type, always "doc"
|
|
3473
|
+
* @enum {string}
|
|
3474
|
+
*/
|
|
3475
|
+
type: "doc";
|
|
3476
|
+
/** @description Array of child document nodes */
|
|
3477
|
+
content: {
|
|
3478
|
+
/** @description Node type (e.g., "paragraph", "text", "heading", "bulletList") */
|
|
3479
|
+
type: string;
|
|
3480
|
+
/** @description Node attributes */
|
|
3481
|
+
attrs?: {
|
|
3482
|
+
[key: string]: (string | null) | number | boolean;
|
|
3483
|
+
};
|
|
3484
|
+
/** @description Child nodes (recursive DocumentNode array) */
|
|
3485
|
+
content?: Record<string, never>[];
|
|
3486
|
+
/** @description Text content (only for text nodes) */
|
|
3487
|
+
text?: string;
|
|
3488
|
+
/** @description Text marks (bold, italic, links, etc.) - only for text nodes */
|
|
3489
|
+
marks?: {
|
|
3490
|
+
/** @description Mark type (e.g., "bold", "italic", "link") */
|
|
3491
|
+
type: string;
|
|
3492
|
+
/** @description Mark attributes */
|
|
3493
|
+
attrs?: {
|
|
3494
|
+
[key: string]: (string | null) | number | boolean;
|
|
3495
|
+
};
|
|
3496
|
+
}[];
|
|
3497
|
+
}[];
|
|
3498
|
+
};
|
|
3499
|
+
/** @description Description content as plain text */
|
|
3500
|
+
plainText: string;
|
|
3501
|
+
} | null;
|
|
91
3502
|
};
|
|
92
3503
|
LinearTask: {
|
|
93
3504
|
id: string;
|
|
94
3505
|
name: string;
|
|
95
|
-
done: "completed" | "canceled" |
|
|
3506
|
+
done: "completed" | "canceled" | null;
|
|
96
3507
|
doneAt: number | null;
|
|
97
3508
|
createdAt: number;
|
|
98
3509
|
parent: {
|
|
@@ -110,7 +3521,70 @@ interface components {
|
|
|
110
3521
|
priority?: number;
|
|
111
3522
|
organizationId: string;
|
|
112
3523
|
teamId: string;
|
|
113
|
-
description
|
|
3524
|
+
/** @description Task description in multiple formats */
|
|
3525
|
+
description?: {
|
|
3526
|
+
/** @description Description content as Markdown */
|
|
3527
|
+
markdown: string;
|
|
3528
|
+
/** @description Description content as HTML (only included when includeHtml=true) */
|
|
3529
|
+
html?: string;
|
|
3530
|
+
/**
|
|
3531
|
+
* @description Description content as ProseMirror JSON document
|
|
3532
|
+
* @example {
|
|
3533
|
+
* "type": "doc",
|
|
3534
|
+
* "content": [
|
|
3535
|
+
* {
|
|
3536
|
+
* "type": "paragraph",
|
|
3537
|
+
* "content": [
|
|
3538
|
+
* {
|
|
3539
|
+
* "type": "text",
|
|
3540
|
+
* "text": "Hello "
|
|
3541
|
+
* },
|
|
3542
|
+
* {
|
|
3543
|
+
* "type": "text",
|
|
3544
|
+
* "text": "world",
|
|
3545
|
+
* "marks": [
|
|
3546
|
+
* {
|
|
3547
|
+
* "type": "bold"
|
|
3548
|
+
* }
|
|
3549
|
+
* ]
|
|
3550
|
+
* }
|
|
3551
|
+
* ]
|
|
3552
|
+
* }
|
|
3553
|
+
* ]
|
|
3554
|
+
* }
|
|
3555
|
+
*/
|
|
3556
|
+
json?: {
|
|
3557
|
+
/**
|
|
3558
|
+
* @description Document root type, always "doc"
|
|
3559
|
+
* @enum {string}
|
|
3560
|
+
*/
|
|
3561
|
+
type: "doc";
|
|
3562
|
+
/** @description Array of child document nodes */
|
|
3563
|
+
content: {
|
|
3564
|
+
/** @description Node type (e.g., "paragraph", "text", "heading", "bulletList") */
|
|
3565
|
+
type: string;
|
|
3566
|
+
/** @description Node attributes */
|
|
3567
|
+
attrs?: {
|
|
3568
|
+
[key: string]: (string | null) | number | boolean;
|
|
3569
|
+
};
|
|
3570
|
+
/** @description Child nodes (recursive DocumentNode array) */
|
|
3571
|
+
content?: Record<string, never>[];
|
|
3572
|
+
/** @description Text content (only for text nodes) */
|
|
3573
|
+
text?: string;
|
|
3574
|
+
/** @description Text marks (bold, italic, links, etc.) - only for text nodes */
|
|
3575
|
+
marks?: {
|
|
3576
|
+
/** @description Mark type (e.g., "bold", "italic", "link") */
|
|
3577
|
+
type: string;
|
|
3578
|
+
/** @description Mark attributes */
|
|
3579
|
+
attrs?: {
|
|
3580
|
+
[key: string]: (string | null) | number | boolean;
|
|
3581
|
+
};
|
|
3582
|
+
}[];
|
|
3583
|
+
}[];
|
|
3584
|
+
};
|
|
3585
|
+
/** @description Description content as plain text */
|
|
3586
|
+
plainText: string;
|
|
3587
|
+
} | null;
|
|
114
3588
|
assignee: {
|
|
115
3589
|
id: string;
|
|
116
3590
|
name: string;
|
|
@@ -131,7 +3605,7 @@ interface components {
|
|
|
131
3605
|
JiraTask: {
|
|
132
3606
|
id: string;
|
|
133
3607
|
name: string;
|
|
134
|
-
done: "completed" | "canceled" |
|
|
3608
|
+
done: "completed" | "canceled" | null;
|
|
135
3609
|
doneAt: number | null;
|
|
136
3610
|
createdAt: number;
|
|
137
3611
|
parent: {
|
|
@@ -145,7 +3619,70 @@ interface components {
|
|
|
145
3619
|
projectId: string;
|
|
146
3620
|
cursorAgentUrl?: string | null;
|
|
147
3621
|
integrationId: string;
|
|
148
|
-
description
|
|
3622
|
+
/** @description Task description in multiple formats */
|
|
3623
|
+
description?: {
|
|
3624
|
+
/** @description Description content as Markdown */
|
|
3625
|
+
markdown: string;
|
|
3626
|
+
/** @description Description content as HTML (only included when includeHtml=true) */
|
|
3627
|
+
html?: string;
|
|
3628
|
+
/**
|
|
3629
|
+
* @description Description content as ProseMirror JSON document
|
|
3630
|
+
* @example {
|
|
3631
|
+
* "type": "doc",
|
|
3632
|
+
* "content": [
|
|
3633
|
+
* {
|
|
3634
|
+
* "type": "paragraph",
|
|
3635
|
+
* "content": [
|
|
3636
|
+
* {
|
|
3637
|
+
* "type": "text",
|
|
3638
|
+
* "text": "Hello "
|
|
3639
|
+
* },
|
|
3640
|
+
* {
|
|
3641
|
+
* "type": "text",
|
|
3642
|
+
* "text": "world",
|
|
3643
|
+
* "marks": [
|
|
3644
|
+
* {
|
|
3645
|
+
* "type": "bold"
|
|
3646
|
+
* }
|
|
3647
|
+
* ]
|
|
3648
|
+
* }
|
|
3649
|
+
* ]
|
|
3650
|
+
* }
|
|
3651
|
+
* ]
|
|
3652
|
+
* }
|
|
3653
|
+
*/
|
|
3654
|
+
json?: {
|
|
3655
|
+
/**
|
|
3656
|
+
* @description Document root type, always "doc"
|
|
3657
|
+
* @enum {string}
|
|
3658
|
+
*/
|
|
3659
|
+
type: "doc";
|
|
3660
|
+
/** @description Array of child document nodes */
|
|
3661
|
+
content: {
|
|
3662
|
+
/** @description Node type (e.g., "paragraph", "text", "heading", "bulletList") */
|
|
3663
|
+
type: string;
|
|
3664
|
+
/** @description Node attributes */
|
|
3665
|
+
attrs?: {
|
|
3666
|
+
[key: string]: (string | null) | number | boolean;
|
|
3667
|
+
};
|
|
3668
|
+
/** @description Child nodes (recursive DocumentNode array) */
|
|
3669
|
+
content?: Record<string, never>[];
|
|
3670
|
+
/** @description Text content (only for text nodes) */
|
|
3671
|
+
text?: string;
|
|
3672
|
+
/** @description Text marks (bold, italic, links, etc.) - only for text nodes */
|
|
3673
|
+
marks?: {
|
|
3674
|
+
/** @description Mark type (e.g., "bold", "italic", "link") */
|
|
3675
|
+
type: string;
|
|
3676
|
+
/** @description Mark attributes */
|
|
3677
|
+
attrs?: {
|
|
3678
|
+
[key: string]: (string | null) | number | boolean;
|
|
3679
|
+
};
|
|
3680
|
+
}[];
|
|
3681
|
+
}[];
|
|
3682
|
+
};
|
|
3683
|
+
/** @description Description content as plain text */
|
|
3684
|
+
plainText: string;
|
|
3685
|
+
} | null;
|
|
149
3686
|
assignee: {
|
|
150
3687
|
id: string;
|
|
151
3688
|
avatar?: string;
|
|
@@ -175,7 +3712,6 @@ interface components {
|
|
|
175
3712
|
*/
|
|
176
3713
|
type: "jira";
|
|
177
3714
|
};
|
|
178
|
-
Task: components["schemas"]["LocuTask"] | components["schemas"]["LinearTask"] | components["schemas"]["JiraTask"];
|
|
179
3715
|
MeResponse: {
|
|
180
3716
|
/** @description Email of the authenticated user */
|
|
181
3717
|
email: string;
|
|
@@ -187,6 +3723,11 @@ interface components {
|
|
|
187
3723
|
message: string;
|
|
188
3724
|
code?: string;
|
|
189
3725
|
};
|
|
3726
|
+
NoteListResponse: {
|
|
3727
|
+
data: components["schemas"]["Note"][];
|
|
3728
|
+
nextCursor: string | null;
|
|
3729
|
+
hasMore: boolean;
|
|
3730
|
+
};
|
|
190
3731
|
Note: {
|
|
191
3732
|
id: string;
|
|
192
3733
|
text: string;
|
|
@@ -207,7 +3748,7 @@ interface components {
|
|
|
207
3748
|
/** @description Note content as HTML (only included when includeHtml=true) */
|
|
208
3749
|
html?: string;
|
|
209
3750
|
/**
|
|
210
|
-
* @description
|
|
3751
|
+
* @description Note content as ProseMirror JSON document
|
|
211
3752
|
* @example {
|
|
212
3753
|
* "type": "doc",
|
|
213
3754
|
* "content": [
|
|
@@ -264,11 +3805,6 @@ interface components {
|
|
|
264
3805
|
/** @description Note content as plain text */
|
|
265
3806
|
plainText: string;
|
|
266
3807
|
};
|
|
267
|
-
NoteListResponse: {
|
|
268
|
-
data: components["schemas"]["Note"][];
|
|
269
|
-
nextCursor: string | null;
|
|
270
|
-
hasMore: boolean;
|
|
271
|
-
};
|
|
272
3808
|
CreateNoteRequest: {
|
|
273
3809
|
/**
|
|
274
3810
|
* Format: uuid
|
|
@@ -283,6 +3819,11 @@ interface components {
|
|
|
283
3819
|
color?: string | null;
|
|
284
3820
|
/** @description Parent folder ID */
|
|
285
3821
|
folderId?: string;
|
|
3822
|
+
/**
|
|
3823
|
+
* @description Preserve extra blank lines as empty paragraphs instead of collapsing them
|
|
3824
|
+
* @default true
|
|
3825
|
+
*/
|
|
3826
|
+
keepBreaks: boolean;
|
|
286
3827
|
};
|
|
287
3828
|
UpdateNoteRequest: {
|
|
288
3829
|
/** @description New text content for the note */
|
|
@@ -293,74 +3834,20 @@ interface components {
|
|
|
293
3834
|
color?: string | null;
|
|
294
3835
|
/** @description New parent folder ID */
|
|
295
3836
|
folderId?: string | null;
|
|
3837
|
+
/**
|
|
3838
|
+
* @description Preserve extra blank lines as empty paragraphs instead of collapsing them
|
|
3839
|
+
* @default true
|
|
3840
|
+
*/
|
|
3841
|
+
keepBreaks: boolean;
|
|
296
3842
|
};
|
|
297
3843
|
DeleteNoteResponse: {
|
|
298
3844
|
success: boolean;
|
|
299
3845
|
};
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
html?: string;
|
|
306
|
-
/**
|
|
307
|
-
* @description ProseMirror JSON document. Root node always has type "doc" with a content array of child nodes.
|
|
308
|
-
* @example {
|
|
309
|
-
* "type": "doc",
|
|
310
|
-
* "content": [
|
|
311
|
-
* {
|
|
312
|
-
* "type": "paragraph",
|
|
313
|
-
* "content": [
|
|
314
|
-
* {
|
|
315
|
-
* "type": "text",
|
|
316
|
-
* "text": "Hello "
|
|
317
|
-
* },
|
|
318
|
-
* {
|
|
319
|
-
* "type": "text",
|
|
320
|
-
* "text": "world",
|
|
321
|
-
* "marks": [
|
|
322
|
-
* {
|
|
323
|
-
* "type": "bold"
|
|
324
|
-
* }
|
|
325
|
-
* ]
|
|
326
|
-
* }
|
|
327
|
-
* ]
|
|
328
|
-
* }
|
|
329
|
-
* ]
|
|
330
|
-
* }
|
|
331
|
-
*/
|
|
332
|
-
json?: {
|
|
333
|
-
/**
|
|
334
|
-
* @description Document root type, always "doc"
|
|
335
|
-
* @enum {string}
|
|
336
|
-
*/
|
|
337
|
-
type: "doc";
|
|
338
|
-
/** @description Array of child document nodes */
|
|
339
|
-
content: {
|
|
340
|
-
/** @description Node type (e.g., "paragraph", "text", "heading", "bulletList") */
|
|
341
|
-
type: string;
|
|
342
|
-
/** @description Node attributes */
|
|
343
|
-
attrs?: {
|
|
344
|
-
[key: string]: (string | null) | number | boolean;
|
|
345
|
-
};
|
|
346
|
-
/** @description Child nodes (recursive DocumentNode array) */
|
|
347
|
-
content?: Record<string, never>[];
|
|
348
|
-
/** @description Text content (only for text nodes) */
|
|
349
|
-
text?: string;
|
|
350
|
-
/** @description Text marks (bold, italic, links, etc.) - only for text nodes */
|
|
351
|
-
marks?: {
|
|
352
|
-
/** @description Mark type (e.g., "bold", "italic", "link") */
|
|
353
|
-
type: string;
|
|
354
|
-
/** @description Mark attributes */
|
|
355
|
-
attrs?: {
|
|
356
|
-
[key: string]: (string | null) | number | boolean;
|
|
357
|
-
};
|
|
358
|
-
}[];
|
|
359
|
-
}[];
|
|
360
|
-
};
|
|
361
|
-
/** @description Description content as plain text */
|
|
362
|
-
plainText: string;
|
|
363
|
-
} | null;
|
|
3846
|
+
ProjectListResponse: {
|
|
3847
|
+
data: components["schemas"]["Project"][];
|
|
3848
|
+
nextCursor: string | null;
|
|
3849
|
+
hasMore: boolean;
|
|
3850
|
+
};
|
|
364
3851
|
Project: {
|
|
365
3852
|
id: string;
|
|
366
3853
|
name: string;
|
|
@@ -370,12 +3857,70 @@ interface components {
|
|
|
370
3857
|
completedAt?: number | null;
|
|
371
3858
|
createdAt: number;
|
|
372
3859
|
updatedAt: number;
|
|
373
|
-
description
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
3860
|
+
/** @description Project description in multiple formats */
|
|
3861
|
+
description?: {
|
|
3862
|
+
/** @description Description content as Markdown */
|
|
3863
|
+
markdown: string;
|
|
3864
|
+
/** @description Description content as HTML (only included when includeHtml=true) */
|
|
3865
|
+
html?: string;
|
|
3866
|
+
/**
|
|
3867
|
+
* @description Description content as ProseMirror JSON document
|
|
3868
|
+
* @example {
|
|
3869
|
+
* "type": "doc",
|
|
3870
|
+
* "content": [
|
|
3871
|
+
* {
|
|
3872
|
+
* "type": "paragraph",
|
|
3873
|
+
* "content": [
|
|
3874
|
+
* {
|
|
3875
|
+
* "type": "text",
|
|
3876
|
+
* "text": "Hello "
|
|
3877
|
+
* },
|
|
3878
|
+
* {
|
|
3879
|
+
* "type": "text",
|
|
3880
|
+
* "text": "world",
|
|
3881
|
+
* "marks": [
|
|
3882
|
+
* {
|
|
3883
|
+
* "type": "bold"
|
|
3884
|
+
* }
|
|
3885
|
+
* ]
|
|
3886
|
+
* }
|
|
3887
|
+
* ]
|
|
3888
|
+
* }
|
|
3889
|
+
* ]
|
|
3890
|
+
* }
|
|
3891
|
+
*/
|
|
3892
|
+
json?: {
|
|
3893
|
+
/**
|
|
3894
|
+
* @description Document root type, always "doc"
|
|
3895
|
+
* @enum {string}
|
|
3896
|
+
*/
|
|
3897
|
+
type: "doc";
|
|
3898
|
+
/** @description Array of child document nodes */
|
|
3899
|
+
content: {
|
|
3900
|
+
/** @description Node type (e.g., "paragraph", "text", "heading", "bulletList") */
|
|
3901
|
+
type: string;
|
|
3902
|
+
/** @description Node attributes */
|
|
3903
|
+
attrs?: {
|
|
3904
|
+
[key: string]: (string | null) | number | boolean;
|
|
3905
|
+
};
|
|
3906
|
+
/** @description Child nodes (recursive DocumentNode array) */
|
|
3907
|
+
content?: Record<string, never>[];
|
|
3908
|
+
/** @description Text content (only for text nodes) */
|
|
3909
|
+
text?: string;
|
|
3910
|
+
/** @description Text marks (bold, italic, links, etc.) - only for text nodes */
|
|
3911
|
+
marks?: {
|
|
3912
|
+
/** @description Mark type (e.g., "bold", "italic", "link") */
|
|
3913
|
+
type: string;
|
|
3914
|
+
/** @description Mark attributes */
|
|
3915
|
+
attrs?: {
|
|
3916
|
+
[key: string]: (string | null) | number | boolean;
|
|
3917
|
+
};
|
|
3918
|
+
}[];
|
|
3919
|
+
}[];
|
|
3920
|
+
};
|
|
3921
|
+
/** @description Description content as plain text */
|
|
3922
|
+
plainText: string;
|
|
3923
|
+
} | null;
|
|
379
3924
|
};
|
|
380
3925
|
CreateProjectRequest: {
|
|
381
3926
|
/**
|
|
@@ -391,6 +3936,11 @@ interface components {
|
|
|
391
3936
|
icon?: string | null;
|
|
392
3937
|
/** @description Hex color for the icon (e.g., "#FF5733"). Only applies to Lucide icons, not emojis. */
|
|
393
3938
|
color?: string | null;
|
|
3939
|
+
/**
|
|
3940
|
+
* @description Preserve extra blank lines as empty paragraphs instead of collapsing them
|
|
3941
|
+
* @default true
|
|
3942
|
+
*/
|
|
3943
|
+
keepBreaks: boolean;
|
|
394
3944
|
};
|
|
395
3945
|
UpdateProjectRequest: {
|
|
396
3946
|
/** @description New name for the project */
|
|
@@ -406,10 +3956,24 @@ interface components {
|
|
|
406
3956
|
* @enum {string}
|
|
407
3957
|
*/
|
|
408
3958
|
state?: "planned" | "completed";
|
|
3959
|
+
/**
|
|
3960
|
+
* @description Preserve extra blank lines as empty paragraphs instead of collapsing them
|
|
3961
|
+
* @default true
|
|
3962
|
+
*/
|
|
3963
|
+
keepBreaks: boolean;
|
|
409
3964
|
};
|
|
410
3965
|
DeleteProjectResponse: {
|
|
411
3966
|
success: boolean;
|
|
412
3967
|
};
|
|
3968
|
+
SessionListResponse: {
|
|
3969
|
+
data: components["schemas"]["SessionWithActivities"][];
|
|
3970
|
+
nextCursor: string | null;
|
|
3971
|
+
hasMore: boolean;
|
|
3972
|
+
};
|
|
3973
|
+
SessionWithActivities: components["schemas"]["Session"] & {
|
|
3974
|
+
/** @description Activities within this session */
|
|
3975
|
+
activities: components["schemas"]["SessionActivity"][];
|
|
3976
|
+
};
|
|
413
3977
|
SessionActivity: {
|
|
414
3978
|
/** @enum {string} */
|
|
415
3979
|
type: "TASK";
|
|
@@ -461,12 +4025,8 @@ interface components {
|
|
|
461
4025
|
/** @description End timestamp (Unix seconds) */
|
|
462
4026
|
finishedAt: number;
|
|
463
4027
|
};
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
activities: components["schemas"]["SessionActivity"][];
|
|
467
|
-
};
|
|
468
|
-
SessionListResponse: {
|
|
469
|
-
data: components["schemas"]["SessionWithActivities"][];
|
|
4028
|
+
ActivityPaginatedListResponse: {
|
|
4029
|
+
data: components["schemas"]["SessionActivity"][];
|
|
470
4030
|
nextCursor: string | null;
|
|
471
4031
|
hasMore: boolean;
|
|
472
4032
|
};
|
|
@@ -519,6 +4079,11 @@ interface components {
|
|
|
519
4079
|
nextCursor: string | null;
|
|
520
4080
|
hasMore: boolean;
|
|
521
4081
|
};
|
|
4082
|
+
TaskSectionsResponse: {
|
|
4083
|
+
today: components["schemas"]["TaskBySection"][];
|
|
4084
|
+
sooner: components["schemas"]["TaskBySection"][];
|
|
4085
|
+
later: components["schemas"]["TaskBySection"][];
|
|
4086
|
+
};
|
|
522
4087
|
TaskBySection: {
|
|
523
4088
|
/** Format: uuid */
|
|
524
4089
|
taskId: string;
|
|
@@ -527,11 +4092,6 @@ interface components {
|
|
|
527
4092
|
order: number;
|
|
528
4093
|
task: components["schemas"]["Task"];
|
|
529
4094
|
};
|
|
530
|
-
TaskSectionsResponse: {
|
|
531
|
-
today: components["schemas"]["TaskBySection"][];
|
|
532
|
-
sooner: components["schemas"]["TaskBySection"][];
|
|
533
|
-
later: components["schemas"]["TaskBySection"][];
|
|
534
|
-
};
|
|
535
4095
|
TaskSubtasksResponse: {
|
|
536
4096
|
data: components["schemas"]["Task"][];
|
|
537
4097
|
nextCursor: string | null;
|
|
@@ -562,6 +4122,11 @@ interface components {
|
|
|
562
4122
|
* @enum {string}
|
|
563
4123
|
*/
|
|
564
4124
|
section?: "today" | "sooner" | "later";
|
|
4125
|
+
/**
|
|
4126
|
+
* @description Preserve extra blank lines as empty paragraphs instead of collapsing them
|
|
4127
|
+
* @default true
|
|
4128
|
+
*/
|
|
4129
|
+
keepBreaks: boolean;
|
|
565
4130
|
};
|
|
566
4131
|
UpdateTaskRequest: {
|
|
567
4132
|
/** @description Task name */
|
|
@@ -569,7 +4134,7 @@ interface components {
|
|
|
569
4134
|
/** @description Task description in markdown format */
|
|
570
4135
|
description?: string;
|
|
571
4136
|
/** @description Task completion status */
|
|
572
|
-
done?: "completed" | "canceled" |
|
|
4137
|
+
done?: "completed" | "canceled" | null;
|
|
573
4138
|
/**
|
|
574
4139
|
* Format: uuid
|
|
575
4140
|
* @description Project to assign the task to
|
|
@@ -579,6 +4144,11 @@ interface components {
|
|
|
579
4144
|
waiting?: {
|
|
580
4145
|
reason?: string;
|
|
581
4146
|
} | null;
|
|
4147
|
+
/**
|
|
4148
|
+
* @description Preserve extra blank lines as empty paragraphs instead of collapsing them
|
|
4149
|
+
* @default true
|
|
4150
|
+
*/
|
|
4151
|
+
keepBreaks: boolean;
|
|
582
4152
|
};
|
|
583
4153
|
DeleteTaskResponse: {
|
|
584
4154
|
success: boolean;
|
|
@@ -602,6 +4172,10 @@ interface components {
|
|
|
602
4172
|
/** @description Optional task ID to start working on */
|
|
603
4173
|
taskId?: string;
|
|
604
4174
|
};
|
|
4175
|
+
StopTimerResponse: {
|
|
4176
|
+
/** @description The completed sessions that were created */
|
|
4177
|
+
sessions: components["schemas"]["StopTimerSession"][];
|
|
4178
|
+
};
|
|
605
4179
|
StopTimerSession: {
|
|
606
4180
|
/** @description Unique identifier for the session */
|
|
607
4181
|
id: string;
|
|
@@ -612,9 +4186,10 @@ interface components {
|
|
|
612
4186
|
/** @description End timestamp (Unix seconds) */
|
|
613
4187
|
finishedAt: number;
|
|
614
4188
|
};
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
4189
|
+
WebhookListResponse: {
|
|
4190
|
+
data: components["schemas"]["Webhook"][];
|
|
4191
|
+
nextCursor: string | null;
|
|
4192
|
+
hasMore: boolean;
|
|
618
4193
|
};
|
|
619
4194
|
Webhook: {
|
|
620
4195
|
/**
|
|
@@ -644,11 +4219,6 @@ interface components {
|
|
|
644
4219
|
*/
|
|
645
4220
|
updatedAt: string;
|
|
646
4221
|
};
|
|
647
|
-
WebhookListResponse: {
|
|
648
|
-
data: components["schemas"]["Webhook"][];
|
|
649
|
-
nextCursor: string | null;
|
|
650
|
-
hasMore: boolean;
|
|
651
|
-
};
|
|
652
4222
|
WebhookWithSecret: components["schemas"]["Webhook"] & {
|
|
653
4223
|
/** @description Secret for verifying webhook signatures (only shown once) */
|
|
654
4224
|
secret: string;
|
|
@@ -695,6 +4265,11 @@ interface components {
|
|
|
695
4265
|
DeleteWebhookResponse: {
|
|
696
4266
|
success: boolean;
|
|
697
4267
|
};
|
|
4268
|
+
WebhookDeliveryListResponse: {
|
|
4269
|
+
data: components["schemas"]["WebhookDelivery"][];
|
|
4270
|
+
nextCursor: string | null;
|
|
4271
|
+
hasMore: boolean;
|
|
4272
|
+
};
|
|
698
4273
|
WebhookDelivery: {
|
|
699
4274
|
/**
|
|
700
4275
|
* Format: uuid
|
|
@@ -728,11 +4303,6 @@ interface components {
|
|
|
728
4303
|
*/
|
|
729
4304
|
completedAt: string | null;
|
|
730
4305
|
};
|
|
731
|
-
WebhookDeliveryListResponse: {
|
|
732
|
-
data: components["schemas"]["WebhookDelivery"][];
|
|
733
|
-
nextCursor: string | null;
|
|
734
|
-
hasMore: boolean;
|
|
735
|
-
};
|
|
736
4306
|
RotateSecretResponse: {
|
|
737
4307
|
/** @description New webhook secret */
|
|
738
4308
|
secret: string;
|
|
@@ -744,61 +4314,39 @@ interface components {
|
|
|
744
4314
|
headers: never;
|
|
745
4315
|
pathItems: never;
|
|
746
4316
|
}
|
|
4317
|
+
type $defs = Record<string, never>;
|
|
4318
|
+
type operations = Record<string, never>;
|
|
747
4319
|
|
|
748
|
-
/**
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
4320
|
+
/** Helper to make keepBreaks optional (has server default) */
|
|
4321
|
+
type WithOptionalKeepBreaks<T> = Omit<T, "keepBreaks"> & {
|
|
4322
|
+
keepBreaks?: boolean;
|
|
4323
|
+
};
|
|
753
4324
|
type Task = components["schemas"]["Task"];
|
|
754
|
-
type
|
|
755
|
-
type
|
|
756
|
-
type JiraTask = components["schemas"]["JiraTask"];
|
|
757
|
-
type TaskDescription = components["schemas"]["TaskDescription"];
|
|
758
|
-
type CreateTaskRequest = components["schemas"]["CreateTaskRequest"];
|
|
759
|
-
type UpdateTaskRequest = components["schemas"]["UpdateTaskRequest"];
|
|
760
|
-
type TaskListResponse = components["schemas"]["TaskListResponse"];
|
|
761
|
-
type TaskBySection = components["schemas"]["TaskBySection"];
|
|
4325
|
+
type CreateTaskRequest = WithOptionalKeepBreaks<components["schemas"]["CreateTaskRequest"]>;
|
|
4326
|
+
type UpdateTaskRequest = WithOptionalKeepBreaks<components["schemas"]["UpdateTaskRequest"]>;
|
|
762
4327
|
type TaskSectionsResponse = components["schemas"]["TaskSectionsResponse"];
|
|
763
|
-
type DeleteTaskResponse = components["schemas"]["DeleteTaskResponse"];
|
|
764
4328
|
type Project = components["schemas"]["Project"];
|
|
765
|
-
type
|
|
766
|
-
type
|
|
767
|
-
type UpdateProjectRequest = components["schemas"]["UpdateProjectRequest"];
|
|
768
|
-
type ProjectListResponse = components["schemas"]["ProjectListResponse"];
|
|
769
|
-
type DeleteProjectResponse = components["schemas"]["DeleteProjectResponse"];
|
|
4329
|
+
type CreateProjectRequest = WithOptionalKeepBreaks<components["schemas"]["CreateProjectRequest"]>;
|
|
4330
|
+
type UpdateProjectRequest = WithOptionalKeepBreaks<components["schemas"]["UpdateProjectRequest"]>;
|
|
770
4331
|
type Note = components["schemas"]["Note"];
|
|
771
|
-
type CreateNoteRequest = components["schemas"]["CreateNoteRequest"]
|
|
772
|
-
type UpdateNoteRequest = components["schemas"]["UpdateNoteRequest"]
|
|
773
|
-
type NoteListResponse = components["schemas"]["NoteListResponse"];
|
|
774
|
-
type DeleteNoteResponse = components["schemas"]["DeleteNoteResponse"];
|
|
4332
|
+
type CreateNoteRequest = WithOptionalKeepBreaks<components["schemas"]["CreateNoteRequest"]>;
|
|
4333
|
+
type UpdateNoteRequest = WithOptionalKeepBreaks<components["schemas"]["UpdateNoteRequest"]>;
|
|
775
4334
|
type Session = components["schemas"]["Session"];
|
|
776
4335
|
type SessionWithActivities = components["schemas"]["SessionWithActivities"];
|
|
777
4336
|
type SessionActivity = components["schemas"]["SessionActivity"];
|
|
778
4337
|
type CreateSessionRequest = components["schemas"]["CreateSessionRequest"];
|
|
779
4338
|
type UpdateSessionRequest = components["schemas"]["UpdateSessionRequest"];
|
|
780
|
-
type SessionListResponse = components["schemas"]["SessionListResponse"];
|
|
781
|
-
type DeleteSessionResponse = components["schemas"]["DeleteSessionResponse"];
|
|
782
4339
|
type CreateActivityRequest = components["schemas"]["CreateActivityRequest"];
|
|
783
4340
|
type UpdateActivityRequest = components["schemas"]["UpdateActivityRequest"];
|
|
784
|
-
type ActivityListResponse = components["schemas"]["ActivityListResponse"];
|
|
785
|
-
type DeleteActivityResponse = components["schemas"]["DeleteActivityResponse"];
|
|
786
4341
|
type TimerState = components["schemas"]["TimerState"];
|
|
787
4342
|
type StartTimerRequest = components["schemas"]["StartTimerRequest"];
|
|
788
4343
|
type StopTimerResponse = components["schemas"]["StopTimerResponse"];
|
|
789
|
-
type StopTimerSession = components["schemas"]["StopTimerSession"];
|
|
790
4344
|
type Webhook = components["schemas"]["Webhook"];
|
|
791
4345
|
type WebhookWithSecret = components["schemas"]["WebhookWithSecret"];
|
|
792
4346
|
type CreateWebhookRequest = components["schemas"]["CreateWebhookRequest"];
|
|
793
4347
|
type UpdateWebhookRequest = components["schemas"]["UpdateWebhookRequest"];
|
|
794
|
-
type WebhookListResponse = components["schemas"]["WebhookListResponse"];
|
|
795
4348
|
type WebhookDelivery = components["schemas"]["WebhookDelivery"];
|
|
796
|
-
type WebhookDeliveryListResponse = components["schemas"]["WebhookDeliveryListResponse"];
|
|
797
|
-
type RotateSecretResponse = components["schemas"]["RotateSecretResponse"];
|
|
798
|
-
type DeleteWebhookResponse = components["schemas"]["DeleteWebhookResponse"];
|
|
799
|
-
type ErrorResponse = components["schemas"]["ErrorResponse"];
|
|
800
4349
|
type MeResponse = components["schemas"]["MeResponse"];
|
|
801
|
-
type ApiError = ErrorResponse;
|
|
802
4350
|
type WebhookPayload<T = unknown> = {
|
|
803
4351
|
/** Event type, e.g. "task.created", "project.updated" */
|
|
804
4352
|
event: string;
|
|
@@ -818,37 +4366,20 @@ type PaginationParams = {
|
|
|
818
4366
|
};
|
|
819
4367
|
/** Accepts boolean or string representation for query params */
|
|
820
4368
|
type BooleanParam = boolean | "true" | "false";
|
|
821
|
-
type TaskListParams =
|
|
4369
|
+
type TaskListParams = Omit<NonNullable<paths["/tasks"]["get"]["parameters"]["query"]>, "done" | "limit"> & {
|
|
822
4370
|
done?: BooleanParam;
|
|
823
|
-
|
|
824
|
-
parentId?: string;
|
|
825
|
-
section?: "today" | "sooner" | "later";
|
|
826
|
-
doneAfter?: string;
|
|
827
|
-
doneBefore?: string;
|
|
828
|
-
includeHtml?: boolean | null;
|
|
829
|
-
};
|
|
830
|
-
type TaskSectionsParams = {
|
|
831
|
-
projectId?: string;
|
|
832
|
-
includeHtml?: boolean | null;
|
|
4371
|
+
limit?: number;
|
|
833
4372
|
};
|
|
834
|
-
type
|
|
4373
|
+
type TaskSectionsParams = NonNullable<paths["/tasks/sections"]["get"]["parameters"]["query"]>;
|
|
4374
|
+
type SubtaskListParams = Omit<NonNullable<paths["/tasks/{id}/subtasks"]["get"]["parameters"]["query"]>, "done" | "limit"> & {
|
|
835
4375
|
done?: BooleanParam;
|
|
836
|
-
|
|
837
|
-
};
|
|
838
|
-
type ProjectListParams = PaginationParams & {
|
|
839
|
-
state?: "planned" | "completed";
|
|
840
|
-
includeHtml?: boolean | null;
|
|
841
|
-
};
|
|
842
|
-
type NoteListParams = PaginationParams & {
|
|
843
|
-
folderId?: string;
|
|
844
|
-
includeHtml?: boolean | null;
|
|
845
|
-
};
|
|
846
|
-
type SessionListParams = PaginationParams & {
|
|
847
|
-
startAfter?: string;
|
|
848
|
-
startBefore?: string;
|
|
849
|
-
includeActivities?: boolean | null;
|
|
4376
|
+
limit?: number;
|
|
850
4377
|
};
|
|
851
|
-
type
|
|
4378
|
+
type ProjectListParams = NonNullable<paths["/projects"]["get"]["parameters"]["query"]>;
|
|
4379
|
+
type NoteListParams = NonNullable<paths["/notes"]["get"]["parameters"]["query"]>;
|
|
4380
|
+
type SessionListParams = NonNullable<paths["/sessions"]["get"]["parameters"]["query"]>;
|
|
4381
|
+
type ActivityListParams = NonNullable<paths["/sessions/activities"]["get"]["parameters"]["query"]>;
|
|
4382
|
+
type WebhookListParams = Omit<NonNullable<paths["/webhooks"]["get"]["parameters"]["query"]>, "isActive"> & {
|
|
852
4383
|
isActive?: BooleanParam;
|
|
853
4384
|
};
|
|
854
4385
|
|
|
@@ -881,6 +4412,8 @@ declare const createLocuClient: (config: LocuClientConfig) => {
|
|
|
881
4412
|
continue: () => Promise<TimerState>;
|
|
882
4413
|
/** Stop timer and save sessions */
|
|
883
4414
|
stop: () => Promise<StopTimerResponse>;
|
|
4415
|
+
/** Cancel timer without saving sessions */
|
|
4416
|
+
cancel: () => Promise<TimerState>;
|
|
884
4417
|
};
|
|
885
4418
|
tasks: {
|
|
886
4419
|
/** List all tasks */
|
|
@@ -943,6 +4476,8 @@ declare const createLocuClient: (config: LocuClientConfig) => {
|
|
|
943
4476
|
delete: (id: string) => Promise<{
|
|
944
4477
|
success: boolean;
|
|
945
4478
|
}>;
|
|
4479
|
+
/** List all activities with optional filters */
|
|
4480
|
+
listActivities: (params?: ActivityListParams) => Promise<PaginatedResponse<SessionActivity>>;
|
|
946
4481
|
activities: {
|
|
947
4482
|
/** List activities for a session */
|
|
948
4483
|
list: (sessionId: string) => Promise<{
|
|
@@ -1085,4 +4620,4 @@ declare const parseWebhookPayload: <T = unknown>(body: string) => WebhookPayload
|
|
|
1085
4620
|
*/
|
|
1086
4621
|
declare const generateWebhookSignature: (secret: string, timestamp: number, body: string) => string;
|
|
1087
4622
|
|
|
1088
|
-
export { type
|
|
4623
|
+
export { type $defs, LocuApiError, type LocuClient, type LocuClientConfig, type ParsedWebhookSignature, type VerifyWebhookOptions, type WebhookSignatureResult, type components, createLocuClient, generateWebhookSignature, type operations, parseWebhookPayload, parseWebhookSignature, type paths, verifyWebhookSignature, type webhooks };
|