@loculabs/api-client 1.1.0 → 1.3.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 +14 -0
- package/dist/index.d.mts +3620 -234
- package/dist/index.d.ts +3620 -234
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -1,73 +1,3312 @@
|
|
|
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 Filter by project state */
|
|
516
|
+
state?: "planned" | "completed";
|
|
517
|
+
/** @description Include HTML representation of the project description */
|
|
518
|
+
includeHtml?: boolean | null;
|
|
519
|
+
};
|
|
520
|
+
header?: never;
|
|
521
|
+
path?: never;
|
|
522
|
+
cookie?: never;
|
|
523
|
+
};
|
|
524
|
+
requestBody?: never;
|
|
525
|
+
responses: {
|
|
526
|
+
/** @description Successful response */
|
|
527
|
+
200: {
|
|
528
|
+
headers: {
|
|
529
|
+
[name: string]: unknown;
|
|
530
|
+
};
|
|
531
|
+
content: {
|
|
532
|
+
"application/json": components["schemas"]["ProjectListResponse"];
|
|
533
|
+
};
|
|
534
|
+
};
|
|
535
|
+
/** @description Bad request - validation error */
|
|
536
|
+
400: {
|
|
537
|
+
headers: {
|
|
538
|
+
[name: string]: unknown;
|
|
539
|
+
};
|
|
540
|
+
content: {
|
|
541
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
542
|
+
};
|
|
543
|
+
};
|
|
544
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
545
|
+
401: {
|
|
546
|
+
headers: {
|
|
547
|
+
[name: string]: unknown;
|
|
548
|
+
};
|
|
549
|
+
content: {
|
|
550
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
551
|
+
};
|
|
552
|
+
};
|
|
553
|
+
/** @description Resource not found */
|
|
554
|
+
404: {
|
|
555
|
+
headers: {
|
|
556
|
+
[name: string]: unknown;
|
|
557
|
+
};
|
|
558
|
+
content: {
|
|
559
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
560
|
+
};
|
|
561
|
+
};
|
|
562
|
+
/** @description Rate limit exceeded */
|
|
563
|
+
429: {
|
|
564
|
+
headers: {
|
|
565
|
+
[name: string]: unknown;
|
|
566
|
+
};
|
|
567
|
+
content: {
|
|
568
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
569
|
+
};
|
|
570
|
+
};
|
|
571
|
+
/** @description Internal server error */
|
|
572
|
+
500: {
|
|
573
|
+
headers: {
|
|
574
|
+
[name: string]: unknown;
|
|
575
|
+
};
|
|
576
|
+
content: {
|
|
577
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
578
|
+
};
|
|
579
|
+
};
|
|
580
|
+
};
|
|
581
|
+
};
|
|
582
|
+
put?: never;
|
|
583
|
+
/**
|
|
584
|
+
* Create project
|
|
585
|
+
* @description Create a new project.
|
|
586
|
+
*/
|
|
587
|
+
post: {
|
|
588
|
+
parameters: {
|
|
589
|
+
query?: {
|
|
590
|
+
/** @description Include HTML representation of the project description */
|
|
591
|
+
includeHtml?: boolean | null;
|
|
592
|
+
};
|
|
593
|
+
header?: never;
|
|
594
|
+
path?: never;
|
|
595
|
+
cookie?: never;
|
|
596
|
+
};
|
|
597
|
+
requestBody: {
|
|
598
|
+
content: {
|
|
599
|
+
"application/json": components["schemas"]["CreateProjectRequest"];
|
|
600
|
+
};
|
|
601
|
+
};
|
|
602
|
+
responses: {
|
|
603
|
+
/** @description Successful response */
|
|
604
|
+
200: {
|
|
605
|
+
headers: {
|
|
606
|
+
[name: string]: unknown;
|
|
607
|
+
};
|
|
608
|
+
content: {
|
|
609
|
+
"application/json": components["schemas"]["Project"];
|
|
610
|
+
};
|
|
611
|
+
};
|
|
612
|
+
/** @description Bad request - validation error */
|
|
613
|
+
400: {
|
|
614
|
+
headers: {
|
|
615
|
+
[name: string]: unknown;
|
|
616
|
+
};
|
|
617
|
+
content: {
|
|
618
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
619
|
+
};
|
|
620
|
+
};
|
|
621
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
622
|
+
401: {
|
|
623
|
+
headers: {
|
|
624
|
+
[name: string]: unknown;
|
|
625
|
+
};
|
|
626
|
+
content: {
|
|
627
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
628
|
+
};
|
|
629
|
+
};
|
|
630
|
+
/** @description Resource not found */
|
|
631
|
+
404: {
|
|
632
|
+
headers: {
|
|
633
|
+
[name: string]: unknown;
|
|
634
|
+
};
|
|
635
|
+
content: {
|
|
636
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
637
|
+
};
|
|
638
|
+
};
|
|
639
|
+
/** @description Rate limit exceeded */
|
|
640
|
+
429: {
|
|
641
|
+
headers: {
|
|
642
|
+
[name: string]: unknown;
|
|
643
|
+
};
|
|
644
|
+
content: {
|
|
645
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
646
|
+
};
|
|
647
|
+
};
|
|
648
|
+
/** @description Internal server error */
|
|
649
|
+
500: {
|
|
650
|
+
headers: {
|
|
651
|
+
[name: string]: unknown;
|
|
652
|
+
};
|
|
653
|
+
content: {
|
|
654
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
655
|
+
};
|
|
656
|
+
};
|
|
657
|
+
};
|
|
658
|
+
};
|
|
659
|
+
delete?: never;
|
|
660
|
+
options?: never;
|
|
661
|
+
head?: never;
|
|
662
|
+
patch?: never;
|
|
663
|
+
trace?: never;
|
|
664
|
+
};
|
|
665
|
+
"/projects/{id}": {
|
|
666
|
+
parameters: {
|
|
667
|
+
query?: never;
|
|
668
|
+
header?: never;
|
|
669
|
+
path?: never;
|
|
670
|
+
cookie?: never;
|
|
671
|
+
};
|
|
672
|
+
/**
|
|
673
|
+
* Get project
|
|
674
|
+
* @description Retrieve a single project by ID.
|
|
675
|
+
*/
|
|
676
|
+
get: {
|
|
677
|
+
parameters: {
|
|
678
|
+
query?: {
|
|
679
|
+
/** @description Include HTML representation of the project description */
|
|
680
|
+
includeHtml?: boolean | null;
|
|
681
|
+
};
|
|
682
|
+
header?: never;
|
|
683
|
+
path: {
|
|
684
|
+
/** @description Project ID */
|
|
685
|
+
id: string;
|
|
686
|
+
};
|
|
687
|
+
cookie?: never;
|
|
688
|
+
};
|
|
689
|
+
requestBody?: never;
|
|
690
|
+
responses: {
|
|
691
|
+
/** @description Successful response */
|
|
692
|
+
200: {
|
|
693
|
+
headers: {
|
|
694
|
+
[name: string]: unknown;
|
|
695
|
+
};
|
|
696
|
+
content: {
|
|
697
|
+
"application/json": components["schemas"]["Project"];
|
|
698
|
+
};
|
|
699
|
+
};
|
|
700
|
+
/** @description Bad request - validation error */
|
|
701
|
+
400: {
|
|
702
|
+
headers: {
|
|
703
|
+
[name: string]: unknown;
|
|
704
|
+
};
|
|
705
|
+
content: {
|
|
706
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
707
|
+
};
|
|
708
|
+
};
|
|
709
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
710
|
+
401: {
|
|
711
|
+
headers: {
|
|
712
|
+
[name: string]: unknown;
|
|
713
|
+
};
|
|
714
|
+
content: {
|
|
715
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
716
|
+
};
|
|
717
|
+
};
|
|
718
|
+
/** @description Resource not found */
|
|
719
|
+
404: {
|
|
720
|
+
headers: {
|
|
721
|
+
[name: string]: unknown;
|
|
722
|
+
};
|
|
723
|
+
content: {
|
|
724
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
725
|
+
};
|
|
726
|
+
};
|
|
727
|
+
/** @description Rate limit exceeded */
|
|
728
|
+
429: {
|
|
729
|
+
headers: {
|
|
730
|
+
[name: string]: unknown;
|
|
731
|
+
};
|
|
732
|
+
content: {
|
|
733
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
734
|
+
};
|
|
735
|
+
};
|
|
736
|
+
/** @description Internal server error */
|
|
737
|
+
500: {
|
|
738
|
+
headers: {
|
|
739
|
+
[name: string]: unknown;
|
|
740
|
+
};
|
|
741
|
+
content: {
|
|
742
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
743
|
+
};
|
|
744
|
+
};
|
|
745
|
+
};
|
|
746
|
+
};
|
|
747
|
+
put?: never;
|
|
748
|
+
post?: never;
|
|
749
|
+
/**
|
|
750
|
+
* Delete project
|
|
751
|
+
* @description Delete a project. This will also clear project references from associated tasks.
|
|
752
|
+
*/
|
|
753
|
+
delete: {
|
|
754
|
+
parameters: {
|
|
755
|
+
query?: never;
|
|
756
|
+
header?: never;
|
|
757
|
+
path: {
|
|
758
|
+
/** @description Project ID */
|
|
759
|
+
id: string;
|
|
760
|
+
};
|
|
761
|
+
cookie?: never;
|
|
762
|
+
};
|
|
763
|
+
requestBody?: never;
|
|
764
|
+
responses: {
|
|
765
|
+
/** @description Successful response */
|
|
766
|
+
200: {
|
|
767
|
+
headers: {
|
|
768
|
+
[name: string]: unknown;
|
|
769
|
+
};
|
|
770
|
+
content: {
|
|
771
|
+
"application/json": components["schemas"]["DeleteProjectResponse"];
|
|
772
|
+
};
|
|
773
|
+
};
|
|
774
|
+
/** @description Bad request - validation error */
|
|
775
|
+
400: {
|
|
776
|
+
headers: {
|
|
777
|
+
[name: string]: unknown;
|
|
778
|
+
};
|
|
779
|
+
content: {
|
|
780
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
781
|
+
};
|
|
782
|
+
};
|
|
783
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
784
|
+
401: {
|
|
785
|
+
headers: {
|
|
786
|
+
[name: string]: unknown;
|
|
787
|
+
};
|
|
788
|
+
content: {
|
|
789
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
790
|
+
};
|
|
791
|
+
};
|
|
792
|
+
/** @description Resource not found */
|
|
793
|
+
404: {
|
|
794
|
+
headers: {
|
|
795
|
+
[name: string]: unknown;
|
|
796
|
+
};
|
|
797
|
+
content: {
|
|
798
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
799
|
+
};
|
|
800
|
+
};
|
|
801
|
+
/** @description Rate limit exceeded */
|
|
802
|
+
429: {
|
|
803
|
+
headers: {
|
|
804
|
+
[name: string]: unknown;
|
|
805
|
+
};
|
|
806
|
+
content: {
|
|
807
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
808
|
+
};
|
|
809
|
+
};
|
|
810
|
+
/** @description Internal server error */
|
|
811
|
+
500: {
|
|
812
|
+
headers: {
|
|
813
|
+
[name: string]: unknown;
|
|
814
|
+
};
|
|
815
|
+
content: {
|
|
816
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
817
|
+
};
|
|
818
|
+
};
|
|
819
|
+
};
|
|
820
|
+
};
|
|
821
|
+
options?: never;
|
|
822
|
+
head?: never;
|
|
823
|
+
/**
|
|
824
|
+
* Update project
|
|
825
|
+
* @description Update an existing project. Only provided fields will be modified.
|
|
826
|
+
*/
|
|
827
|
+
patch: {
|
|
828
|
+
parameters: {
|
|
829
|
+
query?: {
|
|
830
|
+
/** @description Include HTML representation of the project description */
|
|
831
|
+
includeHtml?: boolean | null;
|
|
832
|
+
};
|
|
833
|
+
header?: never;
|
|
834
|
+
path: {
|
|
835
|
+
/** @description Project ID */
|
|
836
|
+
id: string;
|
|
837
|
+
};
|
|
838
|
+
cookie?: never;
|
|
839
|
+
};
|
|
840
|
+
requestBody: {
|
|
841
|
+
content: {
|
|
842
|
+
"application/json": components["schemas"]["UpdateProjectRequest"];
|
|
843
|
+
};
|
|
844
|
+
};
|
|
845
|
+
responses: {
|
|
846
|
+
/** @description Successful response */
|
|
847
|
+
200: {
|
|
848
|
+
headers: {
|
|
849
|
+
[name: string]: unknown;
|
|
850
|
+
};
|
|
851
|
+
content: {
|
|
852
|
+
"application/json": components["schemas"]["Project"];
|
|
853
|
+
};
|
|
854
|
+
};
|
|
855
|
+
/** @description Bad request - validation error */
|
|
856
|
+
400: {
|
|
857
|
+
headers: {
|
|
858
|
+
[name: string]: unknown;
|
|
859
|
+
};
|
|
860
|
+
content: {
|
|
861
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
862
|
+
};
|
|
863
|
+
};
|
|
864
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
865
|
+
401: {
|
|
866
|
+
headers: {
|
|
867
|
+
[name: string]: unknown;
|
|
868
|
+
};
|
|
869
|
+
content: {
|
|
870
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
871
|
+
};
|
|
872
|
+
};
|
|
873
|
+
/** @description Resource not found */
|
|
874
|
+
404: {
|
|
875
|
+
headers: {
|
|
876
|
+
[name: string]: unknown;
|
|
877
|
+
};
|
|
878
|
+
content: {
|
|
879
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
880
|
+
};
|
|
881
|
+
};
|
|
882
|
+
/** @description Rate limit exceeded */
|
|
883
|
+
429: {
|
|
884
|
+
headers: {
|
|
885
|
+
[name: string]: unknown;
|
|
886
|
+
};
|
|
887
|
+
content: {
|
|
888
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
889
|
+
};
|
|
890
|
+
};
|
|
891
|
+
/** @description Internal server error */
|
|
892
|
+
500: {
|
|
893
|
+
headers: {
|
|
894
|
+
[name: string]: unknown;
|
|
895
|
+
};
|
|
896
|
+
content: {
|
|
897
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
898
|
+
};
|
|
899
|
+
};
|
|
900
|
+
};
|
|
901
|
+
};
|
|
902
|
+
trace?: never;
|
|
903
|
+
};
|
|
904
|
+
"/sessions": {
|
|
905
|
+
parameters: {
|
|
906
|
+
query?: never;
|
|
907
|
+
header?: never;
|
|
908
|
+
path?: never;
|
|
909
|
+
cookie?: never;
|
|
910
|
+
};
|
|
911
|
+
/**
|
|
912
|
+
* List sessions
|
|
913
|
+
* @description Retrieve a paginated list of sessions. Supports filtering by date range.
|
|
914
|
+
*/
|
|
915
|
+
get: {
|
|
916
|
+
parameters: {
|
|
917
|
+
query?: {
|
|
918
|
+
/** @description Number of sessions to return */
|
|
919
|
+
limit?: number;
|
|
920
|
+
/** @description Cursor for pagination */
|
|
921
|
+
cursor?: string;
|
|
922
|
+
/** @description Filter sessions starting after this date (Unix seconds or ISO 8601) */
|
|
923
|
+
startAfter?: string;
|
|
924
|
+
/** @description Filter sessions starting before this date (Unix seconds or ISO 8601) */
|
|
925
|
+
startBefore?: string;
|
|
926
|
+
/** @description Include activities in response */
|
|
927
|
+
includeActivities?: boolean | null;
|
|
928
|
+
};
|
|
929
|
+
header?: never;
|
|
930
|
+
path?: never;
|
|
931
|
+
cookie?: never;
|
|
932
|
+
};
|
|
933
|
+
requestBody?: never;
|
|
934
|
+
responses: {
|
|
935
|
+
/** @description Successful response */
|
|
936
|
+
200: {
|
|
937
|
+
headers: {
|
|
938
|
+
[name: string]: unknown;
|
|
939
|
+
};
|
|
940
|
+
content: {
|
|
941
|
+
"application/json": components["schemas"]["SessionListResponse"];
|
|
942
|
+
};
|
|
943
|
+
};
|
|
944
|
+
/** @description Bad request - validation error */
|
|
945
|
+
400: {
|
|
946
|
+
headers: {
|
|
947
|
+
[name: string]: unknown;
|
|
948
|
+
};
|
|
949
|
+
content: {
|
|
950
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
951
|
+
};
|
|
952
|
+
};
|
|
953
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
954
|
+
401: {
|
|
955
|
+
headers: {
|
|
956
|
+
[name: string]: unknown;
|
|
957
|
+
};
|
|
958
|
+
content: {
|
|
959
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
960
|
+
};
|
|
961
|
+
};
|
|
962
|
+
/** @description Resource not found */
|
|
963
|
+
404: {
|
|
964
|
+
headers: {
|
|
965
|
+
[name: string]: unknown;
|
|
966
|
+
};
|
|
967
|
+
content: {
|
|
968
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
969
|
+
};
|
|
970
|
+
};
|
|
971
|
+
/** @description Rate limit exceeded */
|
|
972
|
+
429: {
|
|
973
|
+
headers: {
|
|
974
|
+
[name: string]: unknown;
|
|
975
|
+
};
|
|
976
|
+
content: {
|
|
977
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
978
|
+
};
|
|
979
|
+
};
|
|
980
|
+
/** @description Internal server error */
|
|
981
|
+
500: {
|
|
982
|
+
headers: {
|
|
983
|
+
[name: string]: unknown;
|
|
984
|
+
};
|
|
985
|
+
content: {
|
|
986
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
987
|
+
};
|
|
988
|
+
};
|
|
989
|
+
};
|
|
990
|
+
};
|
|
991
|
+
put?: never;
|
|
992
|
+
/**
|
|
993
|
+
* Create session
|
|
994
|
+
* @description Create a new work session.
|
|
995
|
+
*/
|
|
996
|
+
post: {
|
|
997
|
+
parameters: {
|
|
998
|
+
query?: never;
|
|
999
|
+
header?: never;
|
|
1000
|
+
path?: never;
|
|
1001
|
+
cookie?: never;
|
|
1002
|
+
};
|
|
1003
|
+
requestBody: {
|
|
1004
|
+
content: {
|
|
1005
|
+
"application/json": components["schemas"]["CreateSessionRequest"];
|
|
1006
|
+
};
|
|
1007
|
+
};
|
|
1008
|
+
responses: {
|
|
1009
|
+
/** @description Successful response */
|
|
1010
|
+
200: {
|
|
1011
|
+
headers: {
|
|
1012
|
+
[name: string]: unknown;
|
|
1013
|
+
};
|
|
1014
|
+
content: {
|
|
1015
|
+
"application/json": components["schemas"]["SessionWithActivities"];
|
|
1016
|
+
};
|
|
1017
|
+
};
|
|
1018
|
+
/** @description Bad request - validation error */
|
|
1019
|
+
400: {
|
|
1020
|
+
headers: {
|
|
1021
|
+
[name: string]: unknown;
|
|
1022
|
+
};
|
|
1023
|
+
content: {
|
|
1024
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1025
|
+
};
|
|
1026
|
+
};
|
|
1027
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
1028
|
+
401: {
|
|
1029
|
+
headers: {
|
|
1030
|
+
[name: string]: unknown;
|
|
1031
|
+
};
|
|
1032
|
+
content: {
|
|
1033
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1034
|
+
};
|
|
1035
|
+
};
|
|
1036
|
+
/** @description Resource not found */
|
|
1037
|
+
404: {
|
|
1038
|
+
headers: {
|
|
1039
|
+
[name: string]: unknown;
|
|
1040
|
+
};
|
|
1041
|
+
content: {
|
|
1042
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1043
|
+
};
|
|
1044
|
+
};
|
|
1045
|
+
/** @description Rate limit exceeded */
|
|
1046
|
+
429: {
|
|
1047
|
+
headers: {
|
|
1048
|
+
[name: string]: unknown;
|
|
1049
|
+
};
|
|
1050
|
+
content: {
|
|
1051
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1052
|
+
};
|
|
1053
|
+
};
|
|
1054
|
+
/** @description Internal server error */
|
|
1055
|
+
500: {
|
|
1056
|
+
headers: {
|
|
1057
|
+
[name: string]: unknown;
|
|
1058
|
+
};
|
|
1059
|
+
content: {
|
|
1060
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1061
|
+
};
|
|
1062
|
+
};
|
|
1063
|
+
};
|
|
1064
|
+
};
|
|
1065
|
+
delete?: never;
|
|
1066
|
+
options?: never;
|
|
1067
|
+
head?: never;
|
|
1068
|
+
patch?: never;
|
|
1069
|
+
trace?: never;
|
|
1070
|
+
};
|
|
1071
|
+
"/sessions/{id}": {
|
|
1072
|
+
parameters: {
|
|
1073
|
+
query?: never;
|
|
1074
|
+
header?: never;
|
|
1075
|
+
path?: never;
|
|
1076
|
+
cookie?: never;
|
|
1077
|
+
};
|
|
1078
|
+
/**
|
|
1079
|
+
* Get session
|
|
1080
|
+
* @description Retrieve a single session by ID, including all activities.
|
|
1081
|
+
*/
|
|
1082
|
+
get: {
|
|
1083
|
+
parameters: {
|
|
1084
|
+
query?: never;
|
|
1085
|
+
header?: never;
|
|
1086
|
+
path: {
|
|
1087
|
+
/** @description Session ID */
|
|
1088
|
+
id: string;
|
|
1089
|
+
};
|
|
1090
|
+
cookie?: never;
|
|
1091
|
+
};
|
|
1092
|
+
requestBody?: never;
|
|
1093
|
+
responses: {
|
|
1094
|
+
/** @description Successful response */
|
|
1095
|
+
200: {
|
|
1096
|
+
headers: {
|
|
1097
|
+
[name: string]: unknown;
|
|
1098
|
+
};
|
|
1099
|
+
content: {
|
|
1100
|
+
"application/json": components["schemas"]["SessionWithActivities"];
|
|
1101
|
+
};
|
|
1102
|
+
};
|
|
1103
|
+
/** @description Bad request - validation error */
|
|
1104
|
+
400: {
|
|
1105
|
+
headers: {
|
|
1106
|
+
[name: string]: unknown;
|
|
1107
|
+
};
|
|
1108
|
+
content: {
|
|
1109
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1110
|
+
};
|
|
1111
|
+
};
|
|
1112
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
1113
|
+
401: {
|
|
1114
|
+
headers: {
|
|
1115
|
+
[name: string]: unknown;
|
|
1116
|
+
};
|
|
1117
|
+
content: {
|
|
1118
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1119
|
+
};
|
|
1120
|
+
};
|
|
1121
|
+
/** @description Resource not found */
|
|
1122
|
+
404: {
|
|
1123
|
+
headers: {
|
|
1124
|
+
[name: string]: unknown;
|
|
1125
|
+
};
|
|
1126
|
+
content: {
|
|
1127
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1128
|
+
};
|
|
1129
|
+
};
|
|
1130
|
+
/** @description Rate limit exceeded */
|
|
1131
|
+
429: {
|
|
1132
|
+
headers: {
|
|
1133
|
+
[name: string]: unknown;
|
|
1134
|
+
};
|
|
1135
|
+
content: {
|
|
1136
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1137
|
+
};
|
|
1138
|
+
};
|
|
1139
|
+
/** @description Internal server error */
|
|
1140
|
+
500: {
|
|
1141
|
+
headers: {
|
|
1142
|
+
[name: string]: unknown;
|
|
1143
|
+
};
|
|
1144
|
+
content: {
|
|
1145
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1146
|
+
};
|
|
1147
|
+
};
|
|
1148
|
+
};
|
|
1149
|
+
};
|
|
1150
|
+
put?: never;
|
|
1151
|
+
post?: never;
|
|
1152
|
+
/**
|
|
1153
|
+
* Delete session
|
|
1154
|
+
* @description Delete a session. This will also delete all associated activities.
|
|
1155
|
+
*/
|
|
1156
|
+
delete: {
|
|
1157
|
+
parameters: {
|
|
1158
|
+
query?: never;
|
|
1159
|
+
header?: never;
|
|
1160
|
+
path: {
|
|
1161
|
+
/** @description Session ID */
|
|
1162
|
+
id: string;
|
|
1163
|
+
};
|
|
1164
|
+
cookie?: never;
|
|
1165
|
+
};
|
|
1166
|
+
requestBody?: never;
|
|
1167
|
+
responses: {
|
|
1168
|
+
/** @description Successful response */
|
|
1169
|
+
200: {
|
|
1170
|
+
headers: {
|
|
1171
|
+
[name: string]: unknown;
|
|
1172
|
+
};
|
|
1173
|
+
content: {
|
|
1174
|
+
"application/json": components["schemas"]["DeleteSessionResponse"];
|
|
1175
|
+
};
|
|
1176
|
+
};
|
|
1177
|
+
/** @description Bad request - validation error */
|
|
1178
|
+
400: {
|
|
1179
|
+
headers: {
|
|
1180
|
+
[name: string]: unknown;
|
|
1181
|
+
};
|
|
1182
|
+
content: {
|
|
1183
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1184
|
+
};
|
|
1185
|
+
};
|
|
1186
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
1187
|
+
401: {
|
|
1188
|
+
headers: {
|
|
1189
|
+
[name: string]: unknown;
|
|
1190
|
+
};
|
|
1191
|
+
content: {
|
|
1192
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1193
|
+
};
|
|
1194
|
+
};
|
|
1195
|
+
/** @description Resource not found */
|
|
1196
|
+
404: {
|
|
1197
|
+
headers: {
|
|
1198
|
+
[name: string]: unknown;
|
|
1199
|
+
};
|
|
1200
|
+
content: {
|
|
1201
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1202
|
+
};
|
|
1203
|
+
};
|
|
1204
|
+
/** @description Rate limit exceeded */
|
|
1205
|
+
429: {
|
|
1206
|
+
headers: {
|
|
1207
|
+
[name: string]: unknown;
|
|
1208
|
+
};
|
|
1209
|
+
content: {
|
|
1210
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1211
|
+
};
|
|
1212
|
+
};
|
|
1213
|
+
/** @description Internal server error */
|
|
1214
|
+
500: {
|
|
1215
|
+
headers: {
|
|
1216
|
+
[name: string]: unknown;
|
|
1217
|
+
};
|
|
1218
|
+
content: {
|
|
1219
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1220
|
+
};
|
|
1221
|
+
};
|
|
1222
|
+
};
|
|
1223
|
+
};
|
|
1224
|
+
options?: never;
|
|
1225
|
+
head?: never;
|
|
1226
|
+
/**
|
|
1227
|
+
* Update session
|
|
1228
|
+
* @description Update an existing session. Only provided fields will be modified.
|
|
1229
|
+
*/
|
|
1230
|
+
patch: {
|
|
1231
|
+
parameters: {
|
|
1232
|
+
query?: never;
|
|
1233
|
+
header?: never;
|
|
1234
|
+
path: {
|
|
1235
|
+
/** @description Session ID */
|
|
1236
|
+
id: string;
|
|
1237
|
+
};
|
|
1238
|
+
cookie?: never;
|
|
1239
|
+
};
|
|
1240
|
+
requestBody: {
|
|
1241
|
+
content: {
|
|
1242
|
+
"application/json": components["schemas"]["UpdateSessionRequest"];
|
|
1243
|
+
};
|
|
1244
|
+
};
|
|
1245
|
+
responses: {
|
|
1246
|
+
/** @description Successful response */
|
|
1247
|
+
200: {
|
|
1248
|
+
headers: {
|
|
1249
|
+
[name: string]: unknown;
|
|
1250
|
+
};
|
|
1251
|
+
content: {
|
|
1252
|
+
"application/json": components["schemas"]["SessionWithActivities"];
|
|
1253
|
+
};
|
|
1254
|
+
};
|
|
1255
|
+
/** @description Bad request - validation error */
|
|
1256
|
+
400: {
|
|
1257
|
+
headers: {
|
|
1258
|
+
[name: string]: unknown;
|
|
1259
|
+
};
|
|
1260
|
+
content: {
|
|
1261
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1262
|
+
};
|
|
1263
|
+
};
|
|
1264
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
1265
|
+
401: {
|
|
1266
|
+
headers: {
|
|
1267
|
+
[name: string]: unknown;
|
|
1268
|
+
};
|
|
1269
|
+
content: {
|
|
1270
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1271
|
+
};
|
|
1272
|
+
};
|
|
1273
|
+
/** @description Resource not found */
|
|
1274
|
+
404: {
|
|
1275
|
+
headers: {
|
|
1276
|
+
[name: string]: unknown;
|
|
1277
|
+
};
|
|
1278
|
+
content: {
|
|
1279
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1280
|
+
};
|
|
1281
|
+
};
|
|
1282
|
+
/** @description Rate limit exceeded */
|
|
1283
|
+
429: {
|
|
1284
|
+
headers: {
|
|
1285
|
+
[name: string]: unknown;
|
|
1286
|
+
};
|
|
1287
|
+
content: {
|
|
1288
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1289
|
+
};
|
|
1290
|
+
};
|
|
1291
|
+
/** @description Internal server error */
|
|
1292
|
+
500: {
|
|
1293
|
+
headers: {
|
|
1294
|
+
[name: string]: unknown;
|
|
1295
|
+
};
|
|
1296
|
+
content: {
|
|
1297
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1298
|
+
};
|
|
1299
|
+
};
|
|
1300
|
+
};
|
|
1301
|
+
};
|
|
1302
|
+
trace?: never;
|
|
1303
|
+
};
|
|
1304
|
+
"/sessions/{id}/activities": {
|
|
1305
|
+
parameters: {
|
|
1306
|
+
query?: never;
|
|
1307
|
+
header?: never;
|
|
1308
|
+
path?: never;
|
|
1309
|
+
cookie?: never;
|
|
1310
|
+
};
|
|
1311
|
+
/**
|
|
1312
|
+
* List session activities
|
|
1313
|
+
* @description Retrieve all activities for a specific session.
|
|
1314
|
+
*/
|
|
1315
|
+
get: {
|
|
1316
|
+
parameters: {
|
|
1317
|
+
query?: never;
|
|
1318
|
+
header?: never;
|
|
1319
|
+
path: {
|
|
1320
|
+
/** @description Session ID */
|
|
1321
|
+
id: string;
|
|
1322
|
+
};
|
|
1323
|
+
cookie?: never;
|
|
1324
|
+
};
|
|
1325
|
+
requestBody?: never;
|
|
1326
|
+
responses: {
|
|
1327
|
+
/** @description Successful response */
|
|
1328
|
+
200: {
|
|
1329
|
+
headers: {
|
|
1330
|
+
[name: string]: unknown;
|
|
1331
|
+
};
|
|
1332
|
+
content: {
|
|
1333
|
+
"application/json": components["schemas"]["ActivityListResponse"];
|
|
1334
|
+
};
|
|
1335
|
+
};
|
|
1336
|
+
/** @description Bad request - validation error */
|
|
1337
|
+
400: {
|
|
1338
|
+
headers: {
|
|
1339
|
+
[name: string]: unknown;
|
|
1340
|
+
};
|
|
1341
|
+
content: {
|
|
1342
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1343
|
+
};
|
|
1344
|
+
};
|
|
1345
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
1346
|
+
401: {
|
|
1347
|
+
headers: {
|
|
1348
|
+
[name: string]: unknown;
|
|
1349
|
+
};
|
|
1350
|
+
content: {
|
|
1351
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1352
|
+
};
|
|
1353
|
+
};
|
|
1354
|
+
/** @description Resource not found */
|
|
1355
|
+
404: {
|
|
1356
|
+
headers: {
|
|
1357
|
+
[name: string]: unknown;
|
|
1358
|
+
};
|
|
1359
|
+
content: {
|
|
1360
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1361
|
+
};
|
|
1362
|
+
};
|
|
1363
|
+
/** @description Rate limit exceeded */
|
|
1364
|
+
429: {
|
|
1365
|
+
headers: {
|
|
1366
|
+
[name: string]: unknown;
|
|
1367
|
+
};
|
|
1368
|
+
content: {
|
|
1369
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1370
|
+
};
|
|
1371
|
+
};
|
|
1372
|
+
/** @description Internal server error */
|
|
1373
|
+
500: {
|
|
1374
|
+
headers: {
|
|
1375
|
+
[name: string]: unknown;
|
|
1376
|
+
};
|
|
1377
|
+
content: {
|
|
1378
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1379
|
+
};
|
|
1380
|
+
};
|
|
1381
|
+
};
|
|
1382
|
+
};
|
|
1383
|
+
put?: never;
|
|
1384
|
+
/**
|
|
1385
|
+
* Add activity to session
|
|
1386
|
+
* @description Add a new task activity to an existing session. Only TASK activities can be created via API.
|
|
1387
|
+
*/
|
|
1388
|
+
post: {
|
|
1389
|
+
parameters: {
|
|
1390
|
+
query?: never;
|
|
1391
|
+
header?: never;
|
|
1392
|
+
path: {
|
|
1393
|
+
/** @description Session ID */
|
|
1394
|
+
id: string;
|
|
1395
|
+
};
|
|
1396
|
+
cookie?: never;
|
|
1397
|
+
};
|
|
1398
|
+
requestBody: {
|
|
1399
|
+
content: {
|
|
1400
|
+
"application/json": components["schemas"]["CreateActivityRequest"];
|
|
1401
|
+
};
|
|
1402
|
+
};
|
|
1403
|
+
responses: {
|
|
1404
|
+
/** @description Successful response */
|
|
1405
|
+
200: {
|
|
1406
|
+
headers: {
|
|
1407
|
+
[name: string]: unknown;
|
|
1408
|
+
};
|
|
1409
|
+
content: {
|
|
1410
|
+
"application/json": components["schemas"]["SessionActivity"];
|
|
1411
|
+
};
|
|
1412
|
+
};
|
|
1413
|
+
/** @description Bad request - validation error */
|
|
1414
|
+
400: {
|
|
1415
|
+
headers: {
|
|
1416
|
+
[name: string]: unknown;
|
|
1417
|
+
};
|
|
1418
|
+
content: {
|
|
1419
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1420
|
+
};
|
|
1421
|
+
};
|
|
1422
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
1423
|
+
401: {
|
|
1424
|
+
headers: {
|
|
1425
|
+
[name: string]: unknown;
|
|
1426
|
+
};
|
|
1427
|
+
content: {
|
|
1428
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1429
|
+
};
|
|
1430
|
+
};
|
|
1431
|
+
/** @description Resource not found */
|
|
1432
|
+
404: {
|
|
1433
|
+
headers: {
|
|
1434
|
+
[name: string]: unknown;
|
|
1435
|
+
};
|
|
1436
|
+
content: {
|
|
1437
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1438
|
+
};
|
|
1439
|
+
};
|
|
1440
|
+
/** @description Rate limit exceeded */
|
|
1441
|
+
429: {
|
|
1442
|
+
headers: {
|
|
1443
|
+
[name: string]: unknown;
|
|
1444
|
+
};
|
|
1445
|
+
content: {
|
|
1446
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1447
|
+
};
|
|
1448
|
+
};
|
|
1449
|
+
/** @description Internal server error */
|
|
1450
|
+
500: {
|
|
1451
|
+
headers: {
|
|
1452
|
+
[name: string]: unknown;
|
|
1453
|
+
};
|
|
1454
|
+
content: {
|
|
1455
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1456
|
+
};
|
|
1457
|
+
};
|
|
1458
|
+
};
|
|
1459
|
+
};
|
|
1460
|
+
delete?: never;
|
|
1461
|
+
options?: never;
|
|
1462
|
+
head?: never;
|
|
1463
|
+
patch?: never;
|
|
1464
|
+
trace?: never;
|
|
1465
|
+
};
|
|
1466
|
+
"/sessions/{id}/activities/{activityId}": {
|
|
1467
|
+
parameters: {
|
|
1468
|
+
query?: never;
|
|
1469
|
+
header?: never;
|
|
1470
|
+
path?: never;
|
|
1471
|
+
cookie?: never;
|
|
1472
|
+
};
|
|
1473
|
+
get?: never;
|
|
1474
|
+
put?: never;
|
|
1475
|
+
post?: never;
|
|
1476
|
+
/**
|
|
1477
|
+
* Delete activity
|
|
1478
|
+
* @description Delete an activity from a session.
|
|
1479
|
+
*/
|
|
1480
|
+
delete: {
|
|
1481
|
+
parameters: {
|
|
1482
|
+
query?: never;
|
|
1483
|
+
header?: never;
|
|
1484
|
+
path: {
|
|
1485
|
+
/** @description Session ID */
|
|
1486
|
+
id: string;
|
|
1487
|
+
/** @description Activity ID */
|
|
1488
|
+
activityId: string;
|
|
1489
|
+
};
|
|
1490
|
+
cookie?: never;
|
|
1491
|
+
};
|
|
1492
|
+
requestBody?: never;
|
|
1493
|
+
responses: {
|
|
1494
|
+
/** @description Successful response */
|
|
1495
|
+
200: {
|
|
1496
|
+
headers: {
|
|
1497
|
+
[name: string]: unknown;
|
|
1498
|
+
};
|
|
1499
|
+
content: {
|
|
1500
|
+
"application/json": components["schemas"]["DeleteActivityResponse"];
|
|
1501
|
+
};
|
|
1502
|
+
};
|
|
1503
|
+
/** @description Bad request - validation error */
|
|
1504
|
+
400: {
|
|
1505
|
+
headers: {
|
|
1506
|
+
[name: string]: unknown;
|
|
1507
|
+
};
|
|
1508
|
+
content: {
|
|
1509
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1510
|
+
};
|
|
1511
|
+
};
|
|
1512
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
1513
|
+
401: {
|
|
1514
|
+
headers: {
|
|
1515
|
+
[name: string]: unknown;
|
|
1516
|
+
};
|
|
1517
|
+
content: {
|
|
1518
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1519
|
+
};
|
|
1520
|
+
};
|
|
1521
|
+
/** @description Resource not found */
|
|
1522
|
+
404: {
|
|
1523
|
+
headers: {
|
|
1524
|
+
[name: string]: unknown;
|
|
1525
|
+
};
|
|
1526
|
+
content: {
|
|
1527
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1528
|
+
};
|
|
1529
|
+
};
|
|
1530
|
+
/** @description Rate limit exceeded */
|
|
1531
|
+
429: {
|
|
1532
|
+
headers: {
|
|
1533
|
+
[name: string]: unknown;
|
|
1534
|
+
};
|
|
1535
|
+
content: {
|
|
1536
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1537
|
+
};
|
|
1538
|
+
};
|
|
1539
|
+
/** @description Internal server error */
|
|
1540
|
+
500: {
|
|
1541
|
+
headers: {
|
|
1542
|
+
[name: string]: unknown;
|
|
1543
|
+
};
|
|
1544
|
+
content: {
|
|
1545
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1546
|
+
};
|
|
1547
|
+
};
|
|
1548
|
+
};
|
|
1549
|
+
};
|
|
1550
|
+
options?: never;
|
|
1551
|
+
head?: never;
|
|
1552
|
+
/**
|
|
1553
|
+
* Update activity
|
|
1554
|
+
* @description Update an existing activity. Only provided fields will be modified.
|
|
1555
|
+
*/
|
|
1556
|
+
patch: {
|
|
1557
|
+
parameters: {
|
|
1558
|
+
query?: never;
|
|
1559
|
+
header?: never;
|
|
1560
|
+
path: {
|
|
1561
|
+
/** @description Session ID */
|
|
1562
|
+
id: string;
|
|
1563
|
+
/** @description Activity ID */
|
|
1564
|
+
activityId: string;
|
|
1565
|
+
};
|
|
1566
|
+
cookie?: never;
|
|
1567
|
+
};
|
|
1568
|
+
requestBody: {
|
|
1569
|
+
content: {
|
|
1570
|
+
"application/json": components["schemas"]["UpdateActivityRequest"];
|
|
1571
|
+
};
|
|
1572
|
+
};
|
|
1573
|
+
responses: {
|
|
1574
|
+
/** @description Successful response */
|
|
1575
|
+
200: {
|
|
1576
|
+
headers: {
|
|
1577
|
+
[name: string]: unknown;
|
|
1578
|
+
};
|
|
1579
|
+
content: {
|
|
1580
|
+
"application/json": components["schemas"]["SessionActivity"];
|
|
1581
|
+
};
|
|
1582
|
+
};
|
|
1583
|
+
/** @description Bad request - validation error */
|
|
1584
|
+
400: {
|
|
1585
|
+
headers: {
|
|
1586
|
+
[name: string]: unknown;
|
|
1587
|
+
};
|
|
1588
|
+
content: {
|
|
1589
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1590
|
+
};
|
|
1591
|
+
};
|
|
1592
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
1593
|
+
401: {
|
|
1594
|
+
headers: {
|
|
1595
|
+
[name: string]: unknown;
|
|
1596
|
+
};
|
|
1597
|
+
content: {
|
|
1598
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1599
|
+
};
|
|
1600
|
+
};
|
|
1601
|
+
/** @description Resource not found */
|
|
1602
|
+
404: {
|
|
1603
|
+
headers: {
|
|
1604
|
+
[name: string]: unknown;
|
|
1605
|
+
};
|
|
1606
|
+
content: {
|
|
1607
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1608
|
+
};
|
|
1609
|
+
};
|
|
1610
|
+
/** @description Rate limit exceeded */
|
|
1611
|
+
429: {
|
|
1612
|
+
headers: {
|
|
1613
|
+
[name: string]: unknown;
|
|
1614
|
+
};
|
|
1615
|
+
content: {
|
|
1616
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1617
|
+
};
|
|
1618
|
+
};
|
|
1619
|
+
/** @description Internal server error */
|
|
1620
|
+
500: {
|
|
1621
|
+
headers: {
|
|
1622
|
+
[name: string]: unknown;
|
|
1623
|
+
};
|
|
1624
|
+
content: {
|
|
1625
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1626
|
+
};
|
|
1627
|
+
};
|
|
1628
|
+
};
|
|
1629
|
+
};
|
|
1630
|
+
trace?: never;
|
|
1631
|
+
};
|
|
1632
|
+
"/tasks": {
|
|
1633
|
+
parameters: {
|
|
1634
|
+
query?: never;
|
|
1635
|
+
header?: never;
|
|
1636
|
+
path?: never;
|
|
1637
|
+
cookie?: never;
|
|
1638
|
+
};
|
|
1639
|
+
/**
|
|
1640
|
+
* List tasks
|
|
1641
|
+
* @description Retrieve a paginated list of tasks. Supports filtering by completion status, project, parent task, and date range.
|
|
1642
|
+
*/
|
|
1643
|
+
get: {
|
|
1644
|
+
parameters: {
|
|
1645
|
+
query?: {
|
|
1646
|
+
/** @description Cursor for pagination */
|
|
1647
|
+
cursor?: string;
|
|
1648
|
+
/** @description Number of items to return (max 100) */
|
|
1649
|
+
limit?: string;
|
|
1650
|
+
/** @description Filter by completion status */
|
|
1651
|
+
done?: "true" | "false";
|
|
1652
|
+
/** @description Filter by project */
|
|
1653
|
+
projectId?: string;
|
|
1654
|
+
/** @description Filter by parent task */
|
|
1655
|
+
parentId?: string;
|
|
1656
|
+
/** @description Filter by section */
|
|
1657
|
+
section?: "today" | "sooner" | "later";
|
|
1658
|
+
/** @description Filter tasks completed after this date (Unix seconds or ISO 8601) */
|
|
1659
|
+
doneAfter?: string;
|
|
1660
|
+
/** @description Filter tasks completed before this date (Unix seconds or ISO 8601) */
|
|
1661
|
+
doneBefore?: string;
|
|
1662
|
+
/** @description Include HTML representation of the task description */
|
|
1663
|
+
includeHtml?: boolean | null;
|
|
1664
|
+
};
|
|
1665
|
+
header?: never;
|
|
1666
|
+
path?: never;
|
|
1667
|
+
cookie?: never;
|
|
1668
|
+
};
|
|
1669
|
+
requestBody?: never;
|
|
1670
|
+
responses: {
|
|
1671
|
+
/** @description Successful response */
|
|
1672
|
+
200: {
|
|
1673
|
+
headers: {
|
|
1674
|
+
[name: string]: unknown;
|
|
1675
|
+
};
|
|
1676
|
+
content: {
|
|
1677
|
+
"application/json": components["schemas"]["TaskListResponse"];
|
|
1678
|
+
};
|
|
1679
|
+
};
|
|
1680
|
+
/** @description Bad request - validation error */
|
|
1681
|
+
400: {
|
|
1682
|
+
headers: {
|
|
1683
|
+
[name: string]: unknown;
|
|
1684
|
+
};
|
|
1685
|
+
content: {
|
|
1686
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1687
|
+
};
|
|
1688
|
+
};
|
|
1689
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
1690
|
+
401: {
|
|
1691
|
+
headers: {
|
|
1692
|
+
[name: string]: unknown;
|
|
1693
|
+
};
|
|
1694
|
+
content: {
|
|
1695
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1696
|
+
};
|
|
1697
|
+
};
|
|
1698
|
+
/** @description Resource not found */
|
|
1699
|
+
404: {
|
|
1700
|
+
headers: {
|
|
1701
|
+
[name: string]: unknown;
|
|
1702
|
+
};
|
|
1703
|
+
content: {
|
|
1704
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1705
|
+
};
|
|
1706
|
+
};
|
|
1707
|
+
/** @description Rate limit exceeded */
|
|
1708
|
+
429: {
|
|
1709
|
+
headers: {
|
|
1710
|
+
[name: string]: unknown;
|
|
1711
|
+
};
|
|
1712
|
+
content: {
|
|
1713
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1714
|
+
};
|
|
1715
|
+
};
|
|
1716
|
+
/** @description Internal server error */
|
|
1717
|
+
500: {
|
|
1718
|
+
headers: {
|
|
1719
|
+
[name: string]: unknown;
|
|
1720
|
+
};
|
|
1721
|
+
content: {
|
|
1722
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1723
|
+
};
|
|
1724
|
+
};
|
|
1725
|
+
};
|
|
1726
|
+
};
|
|
1727
|
+
put?: never;
|
|
1728
|
+
/**
|
|
1729
|
+
* Create task
|
|
1730
|
+
* @description Create a new task. Optionally assign it to a parent task, project, or section.
|
|
1731
|
+
*/
|
|
1732
|
+
post: {
|
|
1733
|
+
parameters: {
|
|
1734
|
+
query?: {
|
|
1735
|
+
/** @description Include HTML representation of the task description */
|
|
1736
|
+
includeHtml?: boolean | null;
|
|
1737
|
+
};
|
|
1738
|
+
header?: never;
|
|
1739
|
+
path?: never;
|
|
1740
|
+
cookie?: never;
|
|
1741
|
+
};
|
|
1742
|
+
requestBody: {
|
|
1743
|
+
content: {
|
|
1744
|
+
"application/json": components["schemas"]["CreateTaskRequest"];
|
|
1745
|
+
};
|
|
1746
|
+
};
|
|
1747
|
+
responses: {
|
|
1748
|
+
/** @description Successful response */
|
|
1749
|
+
200: {
|
|
1750
|
+
headers: {
|
|
1751
|
+
[name: string]: unknown;
|
|
1752
|
+
};
|
|
1753
|
+
content: {
|
|
1754
|
+
"application/json": components["schemas"]["Task"];
|
|
1755
|
+
};
|
|
1756
|
+
};
|
|
1757
|
+
/** @description Bad request - validation error */
|
|
1758
|
+
400: {
|
|
1759
|
+
headers: {
|
|
1760
|
+
[name: string]: unknown;
|
|
1761
|
+
};
|
|
1762
|
+
content: {
|
|
1763
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1764
|
+
};
|
|
1765
|
+
};
|
|
1766
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
1767
|
+
401: {
|
|
1768
|
+
headers: {
|
|
1769
|
+
[name: string]: unknown;
|
|
1770
|
+
};
|
|
1771
|
+
content: {
|
|
1772
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1773
|
+
};
|
|
1774
|
+
};
|
|
1775
|
+
/** @description Resource not found */
|
|
1776
|
+
404: {
|
|
1777
|
+
headers: {
|
|
1778
|
+
[name: string]: unknown;
|
|
1779
|
+
};
|
|
1780
|
+
content: {
|
|
1781
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1782
|
+
};
|
|
1783
|
+
};
|
|
1784
|
+
/** @description Rate limit exceeded */
|
|
1785
|
+
429: {
|
|
1786
|
+
headers: {
|
|
1787
|
+
[name: string]: unknown;
|
|
1788
|
+
};
|
|
1789
|
+
content: {
|
|
1790
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1791
|
+
};
|
|
1792
|
+
};
|
|
1793
|
+
/** @description Internal server error */
|
|
1794
|
+
500: {
|
|
1795
|
+
headers: {
|
|
1796
|
+
[name: string]: unknown;
|
|
1797
|
+
};
|
|
1798
|
+
content: {
|
|
1799
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1800
|
+
};
|
|
1801
|
+
};
|
|
1802
|
+
};
|
|
1803
|
+
};
|
|
1804
|
+
delete?: never;
|
|
1805
|
+
options?: never;
|
|
1806
|
+
head?: never;
|
|
1807
|
+
patch?: never;
|
|
1808
|
+
trace?: never;
|
|
1809
|
+
};
|
|
1810
|
+
"/tasks/sections": {
|
|
1811
|
+
parameters: {
|
|
1812
|
+
query?: never;
|
|
1813
|
+
header?: never;
|
|
1814
|
+
path?: never;
|
|
1815
|
+
cookie?: never;
|
|
1816
|
+
};
|
|
1817
|
+
/**
|
|
1818
|
+
* Get tasks by section
|
|
1819
|
+
* @description Retrieve tasks organized by section (today, sooner, later).
|
|
1820
|
+
*/
|
|
1821
|
+
get: {
|
|
1822
|
+
parameters: {
|
|
1823
|
+
query?: {
|
|
1824
|
+
/** @description Filter by specific section */
|
|
1825
|
+
section?: "today" | "sooner" | "later";
|
|
1826
|
+
/** @description Include HTML representation of the task description */
|
|
1827
|
+
includeHtml?: boolean | null;
|
|
1828
|
+
};
|
|
1829
|
+
header?: never;
|
|
1830
|
+
path?: never;
|
|
1831
|
+
cookie?: never;
|
|
1832
|
+
};
|
|
1833
|
+
requestBody?: never;
|
|
1834
|
+
responses: {
|
|
1835
|
+
/** @description Successful response */
|
|
1836
|
+
200: {
|
|
1837
|
+
headers: {
|
|
1838
|
+
[name: string]: unknown;
|
|
1839
|
+
};
|
|
1840
|
+
content: {
|
|
1841
|
+
"application/json": components["schemas"]["TaskSectionsResponse"];
|
|
1842
|
+
};
|
|
1843
|
+
};
|
|
1844
|
+
/** @description Bad request - validation error */
|
|
1845
|
+
400: {
|
|
1846
|
+
headers: {
|
|
1847
|
+
[name: string]: unknown;
|
|
1848
|
+
};
|
|
1849
|
+
content: {
|
|
1850
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1851
|
+
};
|
|
1852
|
+
};
|
|
1853
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
1854
|
+
401: {
|
|
1855
|
+
headers: {
|
|
1856
|
+
[name: string]: unknown;
|
|
1857
|
+
};
|
|
1858
|
+
content: {
|
|
1859
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1860
|
+
};
|
|
1861
|
+
};
|
|
1862
|
+
/** @description Resource not found */
|
|
1863
|
+
404: {
|
|
1864
|
+
headers: {
|
|
1865
|
+
[name: string]: unknown;
|
|
1866
|
+
};
|
|
1867
|
+
content: {
|
|
1868
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1869
|
+
};
|
|
1870
|
+
};
|
|
1871
|
+
/** @description Rate limit exceeded */
|
|
1872
|
+
429: {
|
|
1873
|
+
headers: {
|
|
1874
|
+
[name: string]: unknown;
|
|
1875
|
+
};
|
|
1876
|
+
content: {
|
|
1877
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1878
|
+
};
|
|
1879
|
+
};
|
|
1880
|
+
/** @description Internal server error */
|
|
1881
|
+
500: {
|
|
1882
|
+
headers: {
|
|
1883
|
+
[name: string]: unknown;
|
|
1884
|
+
};
|
|
1885
|
+
content: {
|
|
1886
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1887
|
+
};
|
|
1888
|
+
};
|
|
1889
|
+
};
|
|
1890
|
+
};
|
|
1891
|
+
put?: never;
|
|
1892
|
+
post?: never;
|
|
1893
|
+
delete?: never;
|
|
1894
|
+
options?: never;
|
|
1895
|
+
head?: never;
|
|
1896
|
+
patch?: never;
|
|
1897
|
+
trace?: never;
|
|
1898
|
+
};
|
|
1899
|
+
"/tasks/{id}": {
|
|
1900
|
+
parameters: {
|
|
1901
|
+
query?: never;
|
|
1902
|
+
header?: never;
|
|
1903
|
+
path?: never;
|
|
1904
|
+
cookie?: never;
|
|
1905
|
+
};
|
|
1906
|
+
/**
|
|
1907
|
+
* Get task
|
|
1908
|
+
* @description Retrieve a single task by ID.
|
|
1909
|
+
*/
|
|
1910
|
+
get: {
|
|
1911
|
+
parameters: {
|
|
1912
|
+
query?: {
|
|
1913
|
+
/** @description Include HTML representation of the task description */
|
|
1914
|
+
includeHtml?: boolean | null;
|
|
1915
|
+
};
|
|
1916
|
+
header?: never;
|
|
1917
|
+
path: {
|
|
1918
|
+
/** @description Task ID */
|
|
1919
|
+
id: string;
|
|
1920
|
+
};
|
|
1921
|
+
cookie?: never;
|
|
1922
|
+
};
|
|
1923
|
+
requestBody?: never;
|
|
1924
|
+
responses: {
|
|
1925
|
+
/** @description Successful response */
|
|
1926
|
+
200: {
|
|
1927
|
+
headers: {
|
|
1928
|
+
[name: string]: unknown;
|
|
1929
|
+
};
|
|
1930
|
+
content: {
|
|
1931
|
+
"application/json": components["schemas"]["Task"];
|
|
1932
|
+
};
|
|
1933
|
+
};
|
|
1934
|
+
/** @description Bad request - validation error */
|
|
1935
|
+
400: {
|
|
1936
|
+
headers: {
|
|
1937
|
+
[name: string]: unknown;
|
|
1938
|
+
};
|
|
1939
|
+
content: {
|
|
1940
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1941
|
+
};
|
|
1942
|
+
};
|
|
1943
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
1944
|
+
401: {
|
|
1945
|
+
headers: {
|
|
1946
|
+
[name: string]: unknown;
|
|
1947
|
+
};
|
|
1948
|
+
content: {
|
|
1949
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1950
|
+
};
|
|
1951
|
+
};
|
|
1952
|
+
/** @description Resource not found */
|
|
1953
|
+
404: {
|
|
1954
|
+
headers: {
|
|
1955
|
+
[name: string]: unknown;
|
|
1956
|
+
};
|
|
1957
|
+
content: {
|
|
1958
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1959
|
+
};
|
|
1960
|
+
};
|
|
1961
|
+
/** @description Rate limit exceeded */
|
|
1962
|
+
429: {
|
|
1963
|
+
headers: {
|
|
1964
|
+
[name: string]: unknown;
|
|
1965
|
+
};
|
|
1966
|
+
content: {
|
|
1967
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1968
|
+
};
|
|
1969
|
+
};
|
|
1970
|
+
/** @description Internal server error */
|
|
1971
|
+
500: {
|
|
1972
|
+
headers: {
|
|
1973
|
+
[name: string]: unknown;
|
|
1974
|
+
};
|
|
1975
|
+
content: {
|
|
1976
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1977
|
+
};
|
|
1978
|
+
};
|
|
1979
|
+
};
|
|
1980
|
+
};
|
|
1981
|
+
put?: never;
|
|
1982
|
+
post?: never;
|
|
1983
|
+
/**
|
|
1984
|
+
* Delete task
|
|
1985
|
+
* @description Delete a task. This will also delete all subtasks and remove associated session activities.
|
|
1986
|
+
*/
|
|
1987
|
+
delete: {
|
|
1988
|
+
parameters: {
|
|
1989
|
+
query?: never;
|
|
1990
|
+
header?: never;
|
|
1991
|
+
path: {
|
|
1992
|
+
/** @description Task ID */
|
|
1993
|
+
id: string;
|
|
1994
|
+
};
|
|
1995
|
+
cookie?: never;
|
|
1996
|
+
};
|
|
1997
|
+
requestBody?: never;
|
|
1998
|
+
responses: {
|
|
1999
|
+
/** @description Successful response */
|
|
2000
|
+
200: {
|
|
2001
|
+
headers: {
|
|
2002
|
+
[name: string]: unknown;
|
|
2003
|
+
};
|
|
2004
|
+
content: {
|
|
2005
|
+
"application/json": components["schemas"]["DeleteTaskResponse"];
|
|
2006
|
+
};
|
|
2007
|
+
};
|
|
2008
|
+
/** @description Bad request - validation error */
|
|
2009
|
+
400: {
|
|
2010
|
+
headers: {
|
|
2011
|
+
[name: string]: unknown;
|
|
2012
|
+
};
|
|
2013
|
+
content: {
|
|
2014
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2015
|
+
};
|
|
2016
|
+
};
|
|
2017
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
2018
|
+
401: {
|
|
2019
|
+
headers: {
|
|
2020
|
+
[name: string]: unknown;
|
|
2021
|
+
};
|
|
2022
|
+
content: {
|
|
2023
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2024
|
+
};
|
|
2025
|
+
};
|
|
2026
|
+
/** @description Resource not found */
|
|
2027
|
+
404: {
|
|
2028
|
+
headers: {
|
|
2029
|
+
[name: string]: unknown;
|
|
2030
|
+
};
|
|
2031
|
+
content: {
|
|
2032
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2033
|
+
};
|
|
2034
|
+
};
|
|
2035
|
+
/** @description Rate limit exceeded */
|
|
2036
|
+
429: {
|
|
2037
|
+
headers: {
|
|
2038
|
+
[name: string]: unknown;
|
|
2039
|
+
};
|
|
2040
|
+
content: {
|
|
2041
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2042
|
+
};
|
|
2043
|
+
};
|
|
2044
|
+
/** @description Internal server error */
|
|
2045
|
+
500: {
|
|
2046
|
+
headers: {
|
|
2047
|
+
[name: string]: unknown;
|
|
2048
|
+
};
|
|
2049
|
+
content: {
|
|
2050
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2051
|
+
};
|
|
2052
|
+
};
|
|
2053
|
+
};
|
|
2054
|
+
};
|
|
2055
|
+
options?: never;
|
|
2056
|
+
head?: never;
|
|
2057
|
+
/**
|
|
2058
|
+
* Update task
|
|
2059
|
+
* @description Update an existing task. Only provided fields will be modified.
|
|
2060
|
+
*/
|
|
2061
|
+
patch: {
|
|
2062
|
+
parameters: {
|
|
2063
|
+
query?: {
|
|
2064
|
+
/** @description Include HTML representation of the task description */
|
|
2065
|
+
includeHtml?: boolean | null;
|
|
2066
|
+
};
|
|
2067
|
+
header?: never;
|
|
2068
|
+
path: {
|
|
2069
|
+
/** @description Task ID */
|
|
2070
|
+
id: string;
|
|
2071
|
+
};
|
|
2072
|
+
cookie?: never;
|
|
2073
|
+
};
|
|
2074
|
+
requestBody: {
|
|
2075
|
+
content: {
|
|
2076
|
+
"application/json": components["schemas"]["UpdateTaskRequest"];
|
|
2077
|
+
};
|
|
2078
|
+
};
|
|
2079
|
+
responses: {
|
|
2080
|
+
/** @description Successful response */
|
|
2081
|
+
200: {
|
|
2082
|
+
headers: {
|
|
2083
|
+
[name: string]: unknown;
|
|
2084
|
+
};
|
|
2085
|
+
content: {
|
|
2086
|
+
"application/json": components["schemas"]["Task"];
|
|
2087
|
+
};
|
|
2088
|
+
};
|
|
2089
|
+
/** @description Bad request - validation error */
|
|
2090
|
+
400: {
|
|
2091
|
+
headers: {
|
|
2092
|
+
[name: string]: unknown;
|
|
2093
|
+
};
|
|
2094
|
+
content: {
|
|
2095
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2096
|
+
};
|
|
2097
|
+
};
|
|
2098
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
2099
|
+
401: {
|
|
2100
|
+
headers: {
|
|
2101
|
+
[name: string]: unknown;
|
|
2102
|
+
};
|
|
2103
|
+
content: {
|
|
2104
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2105
|
+
};
|
|
2106
|
+
};
|
|
2107
|
+
/** @description Resource not found */
|
|
2108
|
+
404: {
|
|
2109
|
+
headers: {
|
|
2110
|
+
[name: string]: unknown;
|
|
2111
|
+
};
|
|
2112
|
+
content: {
|
|
2113
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2114
|
+
};
|
|
2115
|
+
};
|
|
2116
|
+
/** @description Rate limit exceeded */
|
|
2117
|
+
429: {
|
|
2118
|
+
headers: {
|
|
2119
|
+
[name: string]: unknown;
|
|
2120
|
+
};
|
|
2121
|
+
content: {
|
|
2122
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2123
|
+
};
|
|
2124
|
+
};
|
|
2125
|
+
/** @description Internal server error */
|
|
2126
|
+
500: {
|
|
2127
|
+
headers: {
|
|
2128
|
+
[name: string]: unknown;
|
|
2129
|
+
};
|
|
2130
|
+
content: {
|
|
2131
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2132
|
+
};
|
|
2133
|
+
};
|
|
2134
|
+
};
|
|
2135
|
+
};
|
|
2136
|
+
trace?: never;
|
|
2137
|
+
};
|
|
2138
|
+
"/tasks/{id}/subtasks": {
|
|
2139
|
+
parameters: {
|
|
2140
|
+
query?: never;
|
|
2141
|
+
header?: never;
|
|
2142
|
+
path?: never;
|
|
2143
|
+
cookie?: never;
|
|
2144
|
+
};
|
|
2145
|
+
/**
|
|
2146
|
+
* Get subtasks
|
|
2147
|
+
* @description Retrieve all subtasks of a task. Returns a paginated list of tasks that have the specified task as their parent.
|
|
2148
|
+
*/
|
|
2149
|
+
get: {
|
|
2150
|
+
parameters: {
|
|
2151
|
+
query?: {
|
|
2152
|
+
/** @description Cursor for pagination */
|
|
2153
|
+
cursor?: string;
|
|
2154
|
+
/** @description Number of items to return (max 100) */
|
|
2155
|
+
limit?: string;
|
|
2156
|
+
/** @description Filter by completion status */
|
|
2157
|
+
done?: "true" | "false";
|
|
2158
|
+
/** @description Include HTML representation of the task description */
|
|
2159
|
+
includeHtml?: boolean | null;
|
|
2160
|
+
};
|
|
2161
|
+
header?: never;
|
|
2162
|
+
path: {
|
|
2163
|
+
/** @description Task ID */
|
|
2164
|
+
id: string;
|
|
2165
|
+
};
|
|
2166
|
+
cookie?: never;
|
|
2167
|
+
};
|
|
2168
|
+
requestBody?: never;
|
|
2169
|
+
responses: {
|
|
2170
|
+
/** @description Successful response */
|
|
2171
|
+
200: {
|
|
2172
|
+
headers: {
|
|
2173
|
+
[name: string]: unknown;
|
|
2174
|
+
};
|
|
2175
|
+
content: {
|
|
2176
|
+
"application/json": components["schemas"]["TaskSubtasksResponse"];
|
|
2177
|
+
};
|
|
2178
|
+
};
|
|
2179
|
+
/** @description Bad request - validation error */
|
|
2180
|
+
400: {
|
|
2181
|
+
headers: {
|
|
2182
|
+
[name: string]: unknown;
|
|
2183
|
+
};
|
|
2184
|
+
content: {
|
|
2185
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2186
|
+
};
|
|
2187
|
+
};
|
|
2188
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
2189
|
+
401: {
|
|
2190
|
+
headers: {
|
|
2191
|
+
[name: string]: unknown;
|
|
2192
|
+
};
|
|
2193
|
+
content: {
|
|
2194
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2195
|
+
};
|
|
2196
|
+
};
|
|
2197
|
+
/** @description Resource not found */
|
|
2198
|
+
404: {
|
|
2199
|
+
headers: {
|
|
2200
|
+
[name: string]: unknown;
|
|
2201
|
+
};
|
|
2202
|
+
content: {
|
|
2203
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2204
|
+
};
|
|
2205
|
+
};
|
|
2206
|
+
/** @description Rate limit exceeded */
|
|
2207
|
+
429: {
|
|
2208
|
+
headers: {
|
|
2209
|
+
[name: string]: unknown;
|
|
2210
|
+
};
|
|
2211
|
+
content: {
|
|
2212
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2213
|
+
};
|
|
2214
|
+
};
|
|
2215
|
+
/** @description Internal server error */
|
|
2216
|
+
500: {
|
|
2217
|
+
headers: {
|
|
2218
|
+
[name: string]: unknown;
|
|
2219
|
+
};
|
|
2220
|
+
content: {
|
|
2221
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2222
|
+
};
|
|
2223
|
+
};
|
|
2224
|
+
};
|
|
2225
|
+
};
|
|
2226
|
+
put?: never;
|
|
2227
|
+
post?: never;
|
|
2228
|
+
delete?: never;
|
|
2229
|
+
options?: never;
|
|
2230
|
+
head?: never;
|
|
2231
|
+
patch?: never;
|
|
2232
|
+
trace?: never;
|
|
2233
|
+
};
|
|
2234
|
+
"/timer": {
|
|
2235
|
+
parameters: {
|
|
2236
|
+
query?: never;
|
|
2237
|
+
header?: never;
|
|
2238
|
+
path?: never;
|
|
2239
|
+
cookie?: never;
|
|
2240
|
+
};
|
|
2241
|
+
/**
|
|
2242
|
+
* Get timer state
|
|
2243
|
+
* @description Get the current session timer state. Returns IDLE if no timer is active.
|
|
2244
|
+
*/
|
|
2245
|
+
get: {
|
|
2246
|
+
parameters: {
|
|
2247
|
+
query?: never;
|
|
2248
|
+
header?: never;
|
|
2249
|
+
path?: never;
|
|
2250
|
+
cookie?: never;
|
|
2251
|
+
};
|
|
2252
|
+
requestBody?: never;
|
|
2253
|
+
responses: {
|
|
2254
|
+
/** @description Successful response */
|
|
2255
|
+
200: {
|
|
2256
|
+
headers: {
|
|
2257
|
+
[name: string]: unknown;
|
|
2258
|
+
};
|
|
2259
|
+
content: {
|
|
2260
|
+
"application/json": components["schemas"]["TimerState"];
|
|
2261
|
+
};
|
|
2262
|
+
};
|
|
2263
|
+
/** @description Bad request - validation error */
|
|
2264
|
+
400: {
|
|
2265
|
+
headers: {
|
|
2266
|
+
[name: string]: unknown;
|
|
2267
|
+
};
|
|
2268
|
+
content: {
|
|
2269
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2270
|
+
};
|
|
2271
|
+
};
|
|
2272
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
2273
|
+
401: {
|
|
2274
|
+
headers: {
|
|
2275
|
+
[name: string]: unknown;
|
|
2276
|
+
};
|
|
2277
|
+
content: {
|
|
2278
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2279
|
+
};
|
|
2280
|
+
};
|
|
2281
|
+
/** @description Resource not found */
|
|
2282
|
+
404: {
|
|
2283
|
+
headers: {
|
|
2284
|
+
[name: string]: unknown;
|
|
2285
|
+
};
|
|
2286
|
+
content: {
|
|
2287
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2288
|
+
};
|
|
2289
|
+
};
|
|
2290
|
+
/** @description Rate limit exceeded */
|
|
2291
|
+
429: {
|
|
2292
|
+
headers: {
|
|
2293
|
+
[name: string]: unknown;
|
|
2294
|
+
};
|
|
2295
|
+
content: {
|
|
2296
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2297
|
+
};
|
|
2298
|
+
};
|
|
2299
|
+
/** @description Internal server error */
|
|
2300
|
+
500: {
|
|
2301
|
+
headers: {
|
|
2302
|
+
[name: string]: unknown;
|
|
2303
|
+
};
|
|
2304
|
+
content: {
|
|
2305
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2306
|
+
};
|
|
2307
|
+
};
|
|
2308
|
+
};
|
|
2309
|
+
};
|
|
2310
|
+
put?: never;
|
|
2311
|
+
post?: never;
|
|
2312
|
+
/**
|
|
2313
|
+
* Cancel timer
|
|
2314
|
+
* @description Cancel the timer without saving any sessions. All tracked time will be discarded.
|
|
2315
|
+
*/
|
|
2316
|
+
delete: {
|
|
2317
|
+
parameters: {
|
|
2318
|
+
query?: never;
|
|
2319
|
+
header?: never;
|
|
2320
|
+
path?: never;
|
|
2321
|
+
cookie?: never;
|
|
2322
|
+
};
|
|
2323
|
+
requestBody?: never;
|
|
2324
|
+
responses: {
|
|
2325
|
+
/** @description Successful response */
|
|
2326
|
+
200: {
|
|
2327
|
+
headers: {
|
|
2328
|
+
[name: string]: unknown;
|
|
2329
|
+
};
|
|
2330
|
+
content: {
|
|
2331
|
+
"application/json": components["schemas"]["TimerState"];
|
|
2332
|
+
};
|
|
2333
|
+
};
|
|
2334
|
+
/** @description Bad request - validation error */
|
|
2335
|
+
400: {
|
|
2336
|
+
headers: {
|
|
2337
|
+
[name: string]: unknown;
|
|
2338
|
+
};
|
|
2339
|
+
content: {
|
|
2340
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2341
|
+
};
|
|
2342
|
+
};
|
|
2343
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
2344
|
+
401: {
|
|
2345
|
+
headers: {
|
|
2346
|
+
[name: string]: unknown;
|
|
2347
|
+
};
|
|
2348
|
+
content: {
|
|
2349
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2350
|
+
};
|
|
2351
|
+
};
|
|
2352
|
+
/** @description Resource not found */
|
|
2353
|
+
404: {
|
|
2354
|
+
headers: {
|
|
2355
|
+
[name: string]: unknown;
|
|
2356
|
+
};
|
|
2357
|
+
content: {
|
|
2358
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2359
|
+
};
|
|
2360
|
+
};
|
|
2361
|
+
/** @description Rate limit exceeded */
|
|
2362
|
+
429: {
|
|
2363
|
+
headers: {
|
|
2364
|
+
[name: string]: unknown;
|
|
2365
|
+
};
|
|
2366
|
+
content: {
|
|
2367
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2368
|
+
};
|
|
2369
|
+
};
|
|
2370
|
+
/** @description Internal server error */
|
|
2371
|
+
500: {
|
|
2372
|
+
headers: {
|
|
2373
|
+
[name: string]: unknown;
|
|
2374
|
+
};
|
|
2375
|
+
content: {
|
|
2376
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2377
|
+
};
|
|
2378
|
+
};
|
|
2379
|
+
};
|
|
2380
|
+
};
|
|
2381
|
+
options?: never;
|
|
2382
|
+
head?: never;
|
|
2383
|
+
patch?: never;
|
|
2384
|
+
trace?: never;
|
|
2385
|
+
};
|
|
2386
|
+
"/timer/start": {
|
|
2387
|
+
parameters: {
|
|
2388
|
+
query?: never;
|
|
2389
|
+
header?: never;
|
|
2390
|
+
path?: never;
|
|
2391
|
+
cookie?: never;
|
|
2392
|
+
};
|
|
2393
|
+
get?: never;
|
|
2394
|
+
put?: never;
|
|
2395
|
+
/**
|
|
2396
|
+
* Start timer
|
|
2397
|
+
* @description Start a new session timer. If a timer is already running, it will be stopped first.
|
|
2398
|
+
*/
|
|
2399
|
+
post: {
|
|
2400
|
+
parameters: {
|
|
2401
|
+
query?: never;
|
|
2402
|
+
header?: never;
|
|
2403
|
+
path?: never;
|
|
2404
|
+
cookie?: never;
|
|
2405
|
+
};
|
|
2406
|
+
requestBody: {
|
|
42
2407
|
content: {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
2408
|
+
"application/json": components["schemas"]["StartTimerRequest"];
|
|
2409
|
+
};
|
|
2410
|
+
};
|
|
2411
|
+
responses: {
|
|
2412
|
+
/** @description Successful response */
|
|
2413
|
+
200: {
|
|
2414
|
+
headers: {
|
|
2415
|
+
[name: string]: unknown;
|
|
2416
|
+
};
|
|
2417
|
+
content: {
|
|
2418
|
+
"application/json": components["schemas"]["TimerState"];
|
|
2419
|
+
};
|
|
2420
|
+
};
|
|
2421
|
+
/** @description Bad request - validation error */
|
|
2422
|
+
400: {
|
|
2423
|
+
headers: {
|
|
2424
|
+
[name: string]: unknown;
|
|
2425
|
+
};
|
|
2426
|
+
content: {
|
|
2427
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2428
|
+
};
|
|
2429
|
+
};
|
|
2430
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
2431
|
+
401: {
|
|
2432
|
+
headers: {
|
|
2433
|
+
[name: string]: unknown;
|
|
2434
|
+
};
|
|
2435
|
+
content: {
|
|
2436
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2437
|
+
};
|
|
2438
|
+
};
|
|
2439
|
+
/** @description Resource not found */
|
|
2440
|
+
404: {
|
|
2441
|
+
headers: {
|
|
2442
|
+
[name: string]: unknown;
|
|
2443
|
+
};
|
|
2444
|
+
content: {
|
|
2445
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2446
|
+
};
|
|
2447
|
+
};
|
|
2448
|
+
/** @description Rate limit exceeded */
|
|
2449
|
+
429: {
|
|
2450
|
+
headers: {
|
|
2451
|
+
[name: string]: unknown;
|
|
2452
|
+
};
|
|
2453
|
+
content: {
|
|
2454
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2455
|
+
};
|
|
2456
|
+
};
|
|
2457
|
+
/** @description Internal server error */
|
|
2458
|
+
500: {
|
|
2459
|
+
headers: {
|
|
2460
|
+
[name: string]: unknown;
|
|
2461
|
+
};
|
|
2462
|
+
content: {
|
|
2463
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2464
|
+
};
|
|
2465
|
+
};
|
|
2466
|
+
};
|
|
2467
|
+
};
|
|
2468
|
+
delete?: never;
|
|
2469
|
+
options?: never;
|
|
2470
|
+
head?: never;
|
|
2471
|
+
patch?: never;
|
|
2472
|
+
trace?: never;
|
|
2473
|
+
};
|
|
2474
|
+
"/timer/pause": {
|
|
2475
|
+
parameters: {
|
|
2476
|
+
query?: never;
|
|
2477
|
+
header?: never;
|
|
2478
|
+
path?: never;
|
|
2479
|
+
cookie?: never;
|
|
2480
|
+
};
|
|
2481
|
+
get?: never;
|
|
2482
|
+
put?: never;
|
|
2483
|
+
/**
|
|
2484
|
+
* Pause timer
|
|
2485
|
+
* @description Pause the currently running timer.
|
|
2486
|
+
*/
|
|
2487
|
+
post: {
|
|
2488
|
+
parameters: {
|
|
2489
|
+
query?: never;
|
|
2490
|
+
header?: never;
|
|
2491
|
+
path?: never;
|
|
2492
|
+
cookie?: never;
|
|
2493
|
+
};
|
|
2494
|
+
requestBody?: never;
|
|
2495
|
+
responses: {
|
|
2496
|
+
/** @description Successful response */
|
|
2497
|
+
200: {
|
|
2498
|
+
headers: {
|
|
2499
|
+
[name: string]: unknown;
|
|
2500
|
+
};
|
|
2501
|
+
content: {
|
|
2502
|
+
"application/json": components["schemas"]["TimerState"];
|
|
2503
|
+
};
|
|
2504
|
+
};
|
|
2505
|
+
/** @description Bad request - validation error */
|
|
2506
|
+
400: {
|
|
2507
|
+
headers: {
|
|
2508
|
+
[name: string]: unknown;
|
|
2509
|
+
};
|
|
2510
|
+
content: {
|
|
2511
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2512
|
+
};
|
|
2513
|
+
};
|
|
2514
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
2515
|
+
401: {
|
|
2516
|
+
headers: {
|
|
2517
|
+
[name: string]: unknown;
|
|
2518
|
+
};
|
|
2519
|
+
content: {
|
|
2520
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2521
|
+
};
|
|
2522
|
+
};
|
|
2523
|
+
/** @description Resource not found */
|
|
2524
|
+
404: {
|
|
2525
|
+
headers: {
|
|
2526
|
+
[name: string]: unknown;
|
|
2527
|
+
};
|
|
2528
|
+
content: {
|
|
2529
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2530
|
+
};
|
|
2531
|
+
};
|
|
2532
|
+
/** @description Rate limit exceeded */
|
|
2533
|
+
429: {
|
|
2534
|
+
headers: {
|
|
2535
|
+
[name: string]: unknown;
|
|
2536
|
+
};
|
|
2537
|
+
content: {
|
|
2538
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2539
|
+
};
|
|
2540
|
+
};
|
|
2541
|
+
/** @description Internal server error */
|
|
2542
|
+
500: {
|
|
2543
|
+
headers: {
|
|
2544
|
+
[name: string]: unknown;
|
|
2545
|
+
};
|
|
2546
|
+
content: {
|
|
2547
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2548
|
+
};
|
|
2549
|
+
};
|
|
2550
|
+
};
|
|
2551
|
+
};
|
|
2552
|
+
delete?: never;
|
|
2553
|
+
options?: never;
|
|
2554
|
+
head?: never;
|
|
2555
|
+
patch?: never;
|
|
2556
|
+
trace?: never;
|
|
2557
|
+
};
|
|
2558
|
+
"/timer/continue": {
|
|
2559
|
+
parameters: {
|
|
2560
|
+
query?: never;
|
|
2561
|
+
header?: never;
|
|
2562
|
+
path?: never;
|
|
2563
|
+
cookie?: never;
|
|
2564
|
+
};
|
|
2565
|
+
get?: never;
|
|
2566
|
+
put?: never;
|
|
2567
|
+
/**
|
|
2568
|
+
* Continue timer
|
|
2569
|
+
* @description Resume a paused timer.
|
|
2570
|
+
*/
|
|
2571
|
+
post: {
|
|
2572
|
+
parameters: {
|
|
2573
|
+
query?: never;
|
|
2574
|
+
header?: never;
|
|
2575
|
+
path?: never;
|
|
2576
|
+
cookie?: never;
|
|
2577
|
+
};
|
|
2578
|
+
requestBody?: never;
|
|
2579
|
+
responses: {
|
|
2580
|
+
/** @description Successful response */
|
|
2581
|
+
200: {
|
|
2582
|
+
headers: {
|
|
2583
|
+
[name: string]: unknown;
|
|
2584
|
+
};
|
|
2585
|
+
content: {
|
|
2586
|
+
"application/json": components["schemas"]["TimerState"];
|
|
2587
|
+
};
|
|
2588
|
+
};
|
|
2589
|
+
/** @description Bad request - validation error */
|
|
2590
|
+
400: {
|
|
2591
|
+
headers: {
|
|
2592
|
+
[name: string]: unknown;
|
|
2593
|
+
};
|
|
2594
|
+
content: {
|
|
2595
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2596
|
+
};
|
|
2597
|
+
};
|
|
2598
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
2599
|
+
401: {
|
|
2600
|
+
headers: {
|
|
2601
|
+
[name: string]: unknown;
|
|
2602
|
+
};
|
|
2603
|
+
content: {
|
|
2604
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2605
|
+
};
|
|
2606
|
+
};
|
|
2607
|
+
/** @description Resource not found */
|
|
2608
|
+
404: {
|
|
2609
|
+
headers: {
|
|
2610
|
+
[name: string]: unknown;
|
|
2611
|
+
};
|
|
2612
|
+
content: {
|
|
2613
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2614
|
+
};
|
|
2615
|
+
};
|
|
2616
|
+
/** @description Rate limit exceeded */
|
|
2617
|
+
429: {
|
|
2618
|
+
headers: {
|
|
2619
|
+
[name: string]: unknown;
|
|
2620
|
+
};
|
|
2621
|
+
content: {
|
|
2622
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2623
|
+
};
|
|
2624
|
+
};
|
|
2625
|
+
/** @description Internal server error */
|
|
2626
|
+
500: {
|
|
2627
|
+
headers: {
|
|
2628
|
+
[name: string]: unknown;
|
|
2629
|
+
};
|
|
2630
|
+
content: {
|
|
2631
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2632
|
+
};
|
|
2633
|
+
};
|
|
2634
|
+
};
|
|
2635
|
+
};
|
|
2636
|
+
delete?: never;
|
|
2637
|
+
options?: never;
|
|
2638
|
+
head?: never;
|
|
2639
|
+
patch?: never;
|
|
2640
|
+
trace?: never;
|
|
2641
|
+
};
|
|
2642
|
+
"/timer/stop": {
|
|
2643
|
+
parameters: {
|
|
2644
|
+
query?: never;
|
|
2645
|
+
header?: never;
|
|
2646
|
+
path?: never;
|
|
2647
|
+
cookie?: never;
|
|
2648
|
+
};
|
|
2649
|
+
get?: never;
|
|
2650
|
+
put?: never;
|
|
2651
|
+
/**
|
|
2652
|
+
* Stop timer
|
|
2653
|
+
* @description Stop the timer and finalize all sessions. Returns the completed sessions.
|
|
2654
|
+
*/
|
|
2655
|
+
post: {
|
|
2656
|
+
parameters: {
|
|
2657
|
+
query?: never;
|
|
2658
|
+
header?: never;
|
|
2659
|
+
path?: never;
|
|
2660
|
+
cookie?: never;
|
|
2661
|
+
};
|
|
2662
|
+
requestBody?: never;
|
|
2663
|
+
responses: {
|
|
2664
|
+
/** @description Successful response */
|
|
2665
|
+
200: {
|
|
2666
|
+
headers: {
|
|
2667
|
+
[name: string]: unknown;
|
|
2668
|
+
};
|
|
2669
|
+
content: {
|
|
2670
|
+
"application/json": components["schemas"]["StopTimerResponse"];
|
|
2671
|
+
};
|
|
2672
|
+
};
|
|
2673
|
+
/** @description Bad request - validation error */
|
|
2674
|
+
400: {
|
|
2675
|
+
headers: {
|
|
2676
|
+
[name: string]: unknown;
|
|
2677
|
+
};
|
|
2678
|
+
content: {
|
|
2679
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2680
|
+
};
|
|
2681
|
+
};
|
|
2682
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
2683
|
+
401: {
|
|
2684
|
+
headers: {
|
|
2685
|
+
[name: string]: unknown;
|
|
2686
|
+
};
|
|
2687
|
+
content: {
|
|
2688
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2689
|
+
};
|
|
2690
|
+
};
|
|
2691
|
+
/** @description Resource not found */
|
|
2692
|
+
404: {
|
|
2693
|
+
headers: {
|
|
2694
|
+
[name: string]: unknown;
|
|
2695
|
+
};
|
|
2696
|
+
content: {
|
|
2697
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2698
|
+
};
|
|
2699
|
+
};
|
|
2700
|
+
/** @description Rate limit exceeded */
|
|
2701
|
+
429: {
|
|
2702
|
+
headers: {
|
|
2703
|
+
[name: string]: unknown;
|
|
2704
|
+
};
|
|
2705
|
+
content: {
|
|
2706
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2707
|
+
};
|
|
2708
|
+
};
|
|
2709
|
+
/** @description Internal server error */
|
|
2710
|
+
500: {
|
|
2711
|
+
headers: {
|
|
2712
|
+
[name: string]: unknown;
|
|
2713
|
+
};
|
|
2714
|
+
content: {
|
|
2715
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2716
|
+
};
|
|
2717
|
+
};
|
|
2718
|
+
};
|
|
2719
|
+
};
|
|
2720
|
+
delete?: never;
|
|
2721
|
+
options?: never;
|
|
2722
|
+
head?: never;
|
|
2723
|
+
patch?: never;
|
|
2724
|
+
trace?: never;
|
|
2725
|
+
};
|
|
2726
|
+
"/webhooks": {
|
|
2727
|
+
parameters: {
|
|
2728
|
+
query?: never;
|
|
2729
|
+
header?: never;
|
|
2730
|
+
path?: never;
|
|
2731
|
+
cookie?: never;
|
|
2732
|
+
};
|
|
2733
|
+
/**
|
|
2734
|
+
* List webhooks
|
|
2735
|
+
* @description Retrieve a paginated list of webhooks for the workspace.
|
|
2736
|
+
*/
|
|
2737
|
+
get: {
|
|
2738
|
+
parameters: {
|
|
2739
|
+
query?: {
|
|
2740
|
+
/** @description Number of webhooks to return */
|
|
2741
|
+
limit?: number;
|
|
2742
|
+
/** @description Cursor for pagination */
|
|
2743
|
+
cursor?: string;
|
|
2744
|
+
/** @description Filter by active status */
|
|
2745
|
+
isActive?: "true" | "false";
|
|
2746
|
+
};
|
|
2747
|
+
header?: never;
|
|
2748
|
+
path?: never;
|
|
2749
|
+
cookie?: never;
|
|
2750
|
+
};
|
|
2751
|
+
requestBody?: never;
|
|
2752
|
+
responses: {
|
|
2753
|
+
/** @description Successful response */
|
|
2754
|
+
200: {
|
|
2755
|
+
headers: {
|
|
2756
|
+
[name: string]: unknown;
|
|
2757
|
+
};
|
|
2758
|
+
content: {
|
|
2759
|
+
"application/json": components["schemas"]["WebhookListResponse"];
|
|
2760
|
+
};
|
|
2761
|
+
};
|
|
2762
|
+
/** @description Bad request - validation error */
|
|
2763
|
+
400: {
|
|
2764
|
+
headers: {
|
|
2765
|
+
[name: string]: unknown;
|
|
2766
|
+
};
|
|
2767
|
+
content: {
|
|
2768
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2769
|
+
};
|
|
2770
|
+
};
|
|
2771
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
2772
|
+
401: {
|
|
2773
|
+
headers: {
|
|
2774
|
+
[name: string]: unknown;
|
|
2775
|
+
};
|
|
2776
|
+
content: {
|
|
2777
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2778
|
+
};
|
|
2779
|
+
};
|
|
2780
|
+
/** @description Resource not found */
|
|
2781
|
+
404: {
|
|
2782
|
+
headers: {
|
|
2783
|
+
[name: string]: unknown;
|
|
2784
|
+
};
|
|
2785
|
+
content: {
|
|
2786
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2787
|
+
};
|
|
2788
|
+
};
|
|
2789
|
+
/** @description Rate limit exceeded */
|
|
2790
|
+
429: {
|
|
2791
|
+
headers: {
|
|
2792
|
+
[name: string]: unknown;
|
|
2793
|
+
};
|
|
2794
|
+
content: {
|
|
2795
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2796
|
+
};
|
|
2797
|
+
};
|
|
2798
|
+
/** @description Internal server error */
|
|
2799
|
+
500: {
|
|
2800
|
+
headers: {
|
|
2801
|
+
[name: string]: unknown;
|
|
2802
|
+
};
|
|
2803
|
+
content: {
|
|
2804
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2805
|
+
};
|
|
2806
|
+
};
|
|
2807
|
+
};
|
|
2808
|
+
};
|
|
2809
|
+
put?: never;
|
|
2810
|
+
/**
|
|
2811
|
+
* Create webhook
|
|
2812
|
+
* @description Create a new webhook. The secret is only returned once during creation.
|
|
2813
|
+
*/
|
|
2814
|
+
post: {
|
|
2815
|
+
parameters: {
|
|
2816
|
+
query?: never;
|
|
2817
|
+
header?: never;
|
|
2818
|
+
path?: never;
|
|
2819
|
+
cookie?: never;
|
|
2820
|
+
};
|
|
2821
|
+
requestBody: {
|
|
2822
|
+
content: {
|
|
2823
|
+
"application/json": components["schemas"]["CreateWebhookRequest"];
|
|
2824
|
+
};
|
|
2825
|
+
};
|
|
2826
|
+
responses: {
|
|
2827
|
+
/** @description Successful response */
|
|
2828
|
+
200: {
|
|
2829
|
+
headers: {
|
|
2830
|
+
[name: string]: unknown;
|
|
2831
|
+
};
|
|
2832
|
+
content: {
|
|
2833
|
+
"application/json": components["schemas"]["WebhookWithSecret"];
|
|
2834
|
+
};
|
|
2835
|
+
};
|
|
2836
|
+
/** @description Bad request - validation error */
|
|
2837
|
+
400: {
|
|
2838
|
+
headers: {
|
|
2839
|
+
[name: string]: unknown;
|
|
2840
|
+
};
|
|
2841
|
+
content: {
|
|
2842
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2843
|
+
};
|
|
2844
|
+
};
|
|
2845
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
2846
|
+
401: {
|
|
2847
|
+
headers: {
|
|
2848
|
+
[name: string]: unknown;
|
|
2849
|
+
};
|
|
2850
|
+
content: {
|
|
2851
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2852
|
+
};
|
|
2853
|
+
};
|
|
2854
|
+
/** @description Resource not found */
|
|
2855
|
+
404: {
|
|
2856
|
+
headers: {
|
|
2857
|
+
[name: string]: unknown;
|
|
2858
|
+
};
|
|
2859
|
+
content: {
|
|
2860
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2861
|
+
};
|
|
2862
|
+
};
|
|
2863
|
+
/** @description Rate limit exceeded */
|
|
2864
|
+
429: {
|
|
2865
|
+
headers: {
|
|
2866
|
+
[name: string]: unknown;
|
|
2867
|
+
};
|
|
2868
|
+
content: {
|
|
2869
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2870
|
+
};
|
|
2871
|
+
};
|
|
2872
|
+
/** @description Internal server error */
|
|
2873
|
+
500: {
|
|
2874
|
+
headers: {
|
|
2875
|
+
[name: string]: unknown;
|
|
2876
|
+
};
|
|
2877
|
+
content: {
|
|
2878
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2879
|
+
};
|
|
2880
|
+
};
|
|
2881
|
+
};
|
|
2882
|
+
};
|
|
2883
|
+
delete?: never;
|
|
2884
|
+
options?: never;
|
|
2885
|
+
head?: never;
|
|
2886
|
+
patch?: never;
|
|
2887
|
+
trace?: never;
|
|
2888
|
+
};
|
|
2889
|
+
"/webhooks/{id}": {
|
|
2890
|
+
parameters: {
|
|
2891
|
+
query?: never;
|
|
2892
|
+
header?: never;
|
|
2893
|
+
path?: never;
|
|
2894
|
+
cookie?: never;
|
|
2895
|
+
};
|
|
2896
|
+
/**
|
|
2897
|
+
* Get webhook
|
|
2898
|
+
* @description Retrieve a single webhook by ID.
|
|
2899
|
+
*/
|
|
2900
|
+
get: {
|
|
2901
|
+
parameters: {
|
|
2902
|
+
query?: never;
|
|
2903
|
+
header?: never;
|
|
2904
|
+
path: {
|
|
2905
|
+
/** @description Webhook ID */
|
|
2906
|
+
id: string;
|
|
2907
|
+
};
|
|
2908
|
+
cookie?: never;
|
|
2909
|
+
};
|
|
2910
|
+
requestBody?: never;
|
|
2911
|
+
responses: {
|
|
2912
|
+
/** @description Successful response */
|
|
2913
|
+
200: {
|
|
2914
|
+
headers: {
|
|
2915
|
+
[name: string]: unknown;
|
|
2916
|
+
};
|
|
2917
|
+
content: {
|
|
2918
|
+
"application/json": components["schemas"]["Webhook"];
|
|
2919
|
+
};
|
|
2920
|
+
};
|
|
2921
|
+
/** @description Bad request - validation error */
|
|
2922
|
+
400: {
|
|
2923
|
+
headers: {
|
|
2924
|
+
[name: string]: unknown;
|
|
2925
|
+
};
|
|
2926
|
+
content: {
|
|
2927
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2928
|
+
};
|
|
2929
|
+
};
|
|
2930
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
2931
|
+
401: {
|
|
2932
|
+
headers: {
|
|
2933
|
+
[name: string]: unknown;
|
|
2934
|
+
};
|
|
2935
|
+
content: {
|
|
2936
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2937
|
+
};
|
|
2938
|
+
};
|
|
2939
|
+
/** @description Resource not found */
|
|
2940
|
+
404: {
|
|
2941
|
+
headers: {
|
|
2942
|
+
[name: string]: unknown;
|
|
2943
|
+
};
|
|
2944
|
+
content: {
|
|
2945
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2946
|
+
};
|
|
2947
|
+
};
|
|
2948
|
+
/** @description Rate limit exceeded */
|
|
2949
|
+
429: {
|
|
2950
|
+
headers: {
|
|
2951
|
+
[name: string]: unknown;
|
|
2952
|
+
};
|
|
2953
|
+
content: {
|
|
2954
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2955
|
+
};
|
|
2956
|
+
};
|
|
2957
|
+
/** @description Internal server error */
|
|
2958
|
+
500: {
|
|
2959
|
+
headers: {
|
|
2960
|
+
[name: string]: unknown;
|
|
2961
|
+
};
|
|
2962
|
+
content: {
|
|
2963
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2964
|
+
};
|
|
2965
|
+
};
|
|
2966
|
+
};
|
|
2967
|
+
};
|
|
2968
|
+
put?: never;
|
|
2969
|
+
post?: never;
|
|
2970
|
+
/**
|
|
2971
|
+
* Delete webhook
|
|
2972
|
+
* @description Delete a webhook. This will stop all future deliveries.
|
|
2973
|
+
*/
|
|
2974
|
+
delete: {
|
|
2975
|
+
parameters: {
|
|
2976
|
+
query?: never;
|
|
2977
|
+
header?: never;
|
|
2978
|
+
path: {
|
|
2979
|
+
/** @description Webhook ID */
|
|
2980
|
+
id: string;
|
|
2981
|
+
};
|
|
2982
|
+
cookie?: never;
|
|
2983
|
+
};
|
|
2984
|
+
requestBody?: never;
|
|
2985
|
+
responses: {
|
|
2986
|
+
/** @description Successful response */
|
|
2987
|
+
200: {
|
|
2988
|
+
headers: {
|
|
2989
|
+
[name: string]: unknown;
|
|
2990
|
+
};
|
|
2991
|
+
content: {
|
|
2992
|
+
"application/json": components["schemas"]["DeleteWebhookResponse"];
|
|
2993
|
+
};
|
|
2994
|
+
};
|
|
2995
|
+
/** @description Bad request - validation error */
|
|
2996
|
+
400: {
|
|
2997
|
+
headers: {
|
|
2998
|
+
[name: string]: unknown;
|
|
2999
|
+
};
|
|
3000
|
+
content: {
|
|
3001
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3002
|
+
};
|
|
3003
|
+
};
|
|
3004
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
3005
|
+
401: {
|
|
3006
|
+
headers: {
|
|
3007
|
+
[name: string]: unknown;
|
|
3008
|
+
};
|
|
3009
|
+
content: {
|
|
3010
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3011
|
+
};
|
|
3012
|
+
};
|
|
3013
|
+
/** @description Resource not found */
|
|
3014
|
+
404: {
|
|
3015
|
+
headers: {
|
|
3016
|
+
[name: string]: unknown;
|
|
3017
|
+
};
|
|
3018
|
+
content: {
|
|
3019
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3020
|
+
};
|
|
3021
|
+
};
|
|
3022
|
+
/** @description Rate limit exceeded */
|
|
3023
|
+
429: {
|
|
3024
|
+
headers: {
|
|
3025
|
+
[name: string]: unknown;
|
|
3026
|
+
};
|
|
3027
|
+
content: {
|
|
3028
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3029
|
+
};
|
|
3030
|
+
};
|
|
3031
|
+
/** @description Internal server error */
|
|
3032
|
+
500: {
|
|
3033
|
+
headers: {
|
|
3034
|
+
[name: string]: unknown;
|
|
3035
|
+
};
|
|
3036
|
+
content: {
|
|
3037
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3038
|
+
};
|
|
3039
|
+
};
|
|
3040
|
+
};
|
|
3041
|
+
};
|
|
3042
|
+
options?: never;
|
|
3043
|
+
head?: never;
|
|
3044
|
+
/**
|
|
3045
|
+
* Update webhook
|
|
3046
|
+
* @description Update an existing webhook. Only provided fields will be modified.
|
|
3047
|
+
*/
|
|
3048
|
+
patch: {
|
|
3049
|
+
parameters: {
|
|
3050
|
+
query?: never;
|
|
3051
|
+
header?: never;
|
|
3052
|
+
path: {
|
|
3053
|
+
/** @description Webhook ID */
|
|
3054
|
+
id: string;
|
|
3055
|
+
};
|
|
3056
|
+
cookie?: never;
|
|
3057
|
+
};
|
|
3058
|
+
requestBody: {
|
|
3059
|
+
content: {
|
|
3060
|
+
"application/json": components["schemas"]["UpdateWebhookRequest"];
|
|
3061
|
+
};
|
|
3062
|
+
};
|
|
3063
|
+
responses: {
|
|
3064
|
+
/** @description Successful response */
|
|
3065
|
+
200: {
|
|
3066
|
+
headers: {
|
|
3067
|
+
[name: string]: unknown;
|
|
3068
|
+
};
|
|
3069
|
+
content: {
|
|
3070
|
+
"application/json": components["schemas"]["Webhook"];
|
|
3071
|
+
};
|
|
3072
|
+
};
|
|
3073
|
+
/** @description Bad request - validation error */
|
|
3074
|
+
400: {
|
|
3075
|
+
headers: {
|
|
3076
|
+
[name: string]: unknown;
|
|
3077
|
+
};
|
|
3078
|
+
content: {
|
|
3079
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3080
|
+
};
|
|
3081
|
+
};
|
|
3082
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
3083
|
+
401: {
|
|
3084
|
+
headers: {
|
|
3085
|
+
[name: string]: unknown;
|
|
3086
|
+
};
|
|
3087
|
+
content: {
|
|
3088
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3089
|
+
};
|
|
3090
|
+
};
|
|
3091
|
+
/** @description Resource not found */
|
|
3092
|
+
404: {
|
|
3093
|
+
headers: {
|
|
3094
|
+
[name: string]: unknown;
|
|
48
3095
|
};
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
3096
|
+
content: {
|
|
3097
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3098
|
+
};
|
|
3099
|
+
};
|
|
3100
|
+
/** @description Rate limit exceeded */
|
|
3101
|
+
429: {
|
|
3102
|
+
headers: {
|
|
3103
|
+
[name: string]: unknown;
|
|
3104
|
+
};
|
|
3105
|
+
content: {
|
|
3106
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3107
|
+
};
|
|
3108
|
+
};
|
|
3109
|
+
/** @description Internal server error */
|
|
3110
|
+
500: {
|
|
3111
|
+
headers: {
|
|
3112
|
+
[name: string]: unknown;
|
|
3113
|
+
};
|
|
3114
|
+
content: {
|
|
3115
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3116
|
+
};
|
|
3117
|
+
};
|
|
63
3118
|
};
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
3119
|
+
};
|
|
3120
|
+
trace?: never;
|
|
3121
|
+
};
|
|
3122
|
+
"/webhooks/{id}/deliveries": {
|
|
3123
|
+
parameters: {
|
|
3124
|
+
query?: never;
|
|
3125
|
+
header?: never;
|
|
3126
|
+
path?: never;
|
|
3127
|
+
cookie?: never;
|
|
3128
|
+
};
|
|
3129
|
+
/**
|
|
3130
|
+
* List webhook deliveries
|
|
3131
|
+
* @description Retrieve recent delivery attempts for a webhook.
|
|
3132
|
+
*/
|
|
3133
|
+
get: {
|
|
3134
|
+
parameters: {
|
|
3135
|
+
query?: {
|
|
3136
|
+
/** @description Number of deliveries to return */
|
|
3137
|
+
limit?: number;
|
|
3138
|
+
/** @description Cursor for pagination */
|
|
3139
|
+
cursor?: string;
|
|
3140
|
+
};
|
|
3141
|
+
header?: never;
|
|
3142
|
+
path: {
|
|
3143
|
+
/** @description Webhook ID */
|
|
3144
|
+
id: string;
|
|
3145
|
+
};
|
|
3146
|
+
cookie?: never;
|
|
3147
|
+
};
|
|
3148
|
+
requestBody?: never;
|
|
3149
|
+
responses: {
|
|
3150
|
+
/** @description Successful response */
|
|
3151
|
+
200: {
|
|
3152
|
+
headers: {
|
|
3153
|
+
[name: string]: unknown;
|
|
3154
|
+
};
|
|
3155
|
+
content: {
|
|
3156
|
+
"application/json": components["schemas"]["WebhookDeliveryListResponse"];
|
|
3157
|
+
};
|
|
3158
|
+
};
|
|
3159
|
+
/** @description Bad request - validation error */
|
|
3160
|
+
400: {
|
|
3161
|
+
headers: {
|
|
3162
|
+
[name: string]: unknown;
|
|
3163
|
+
};
|
|
3164
|
+
content: {
|
|
3165
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3166
|
+
};
|
|
3167
|
+
};
|
|
3168
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
3169
|
+
401: {
|
|
3170
|
+
headers: {
|
|
3171
|
+
[name: string]: unknown;
|
|
3172
|
+
};
|
|
3173
|
+
content: {
|
|
3174
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3175
|
+
};
|
|
3176
|
+
};
|
|
3177
|
+
/** @description Resource not found */
|
|
3178
|
+
404: {
|
|
3179
|
+
headers: {
|
|
3180
|
+
[name: string]: unknown;
|
|
3181
|
+
};
|
|
3182
|
+
content: {
|
|
3183
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3184
|
+
};
|
|
3185
|
+
};
|
|
3186
|
+
/** @description Rate limit exceeded */
|
|
3187
|
+
429: {
|
|
3188
|
+
headers: {
|
|
3189
|
+
[name: string]: unknown;
|
|
3190
|
+
};
|
|
3191
|
+
content: {
|
|
3192
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3193
|
+
};
|
|
3194
|
+
};
|
|
3195
|
+
/** @description Internal server error */
|
|
3196
|
+
500: {
|
|
3197
|
+
headers: {
|
|
3198
|
+
[name: string]: unknown;
|
|
3199
|
+
};
|
|
3200
|
+
content: {
|
|
3201
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3202
|
+
};
|
|
3203
|
+
};
|
|
3204
|
+
};
|
|
3205
|
+
};
|
|
3206
|
+
put?: never;
|
|
3207
|
+
post?: never;
|
|
3208
|
+
delete?: never;
|
|
3209
|
+
options?: never;
|
|
3210
|
+
head?: never;
|
|
3211
|
+
patch?: never;
|
|
3212
|
+
trace?: never;
|
|
3213
|
+
};
|
|
3214
|
+
"/webhooks/{id}/rotate-secret": {
|
|
3215
|
+
parameters: {
|
|
3216
|
+
query?: never;
|
|
3217
|
+
header?: never;
|
|
3218
|
+
path?: never;
|
|
3219
|
+
cookie?: never;
|
|
3220
|
+
};
|
|
3221
|
+
get?: never;
|
|
3222
|
+
put?: never;
|
|
3223
|
+
/**
|
|
3224
|
+
* Rotate webhook secret
|
|
3225
|
+
* @description Generate a new secret for the webhook. The old secret will be immediately invalidated.
|
|
3226
|
+
*/
|
|
3227
|
+
post: {
|
|
3228
|
+
parameters: {
|
|
3229
|
+
query?: never;
|
|
3230
|
+
header?: never;
|
|
3231
|
+
path: {
|
|
3232
|
+
/** @description Webhook ID */
|
|
3233
|
+
id: string;
|
|
3234
|
+
};
|
|
3235
|
+
cookie?: never;
|
|
3236
|
+
};
|
|
3237
|
+
requestBody?: never;
|
|
3238
|
+
responses: {
|
|
3239
|
+
/** @description Successful response */
|
|
3240
|
+
200: {
|
|
3241
|
+
headers: {
|
|
3242
|
+
[name: string]: unknown;
|
|
3243
|
+
};
|
|
3244
|
+
content: {
|
|
3245
|
+
"application/json": components["schemas"]["RotateSecretResponse"];
|
|
3246
|
+
};
|
|
3247
|
+
};
|
|
3248
|
+
/** @description Bad request - validation error */
|
|
3249
|
+
400: {
|
|
3250
|
+
headers: {
|
|
3251
|
+
[name: string]: unknown;
|
|
3252
|
+
};
|
|
3253
|
+
content: {
|
|
3254
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3255
|
+
};
|
|
3256
|
+
};
|
|
3257
|
+
/** @description Unauthorized - invalid or missing API key */
|
|
3258
|
+
401: {
|
|
3259
|
+
headers: {
|
|
3260
|
+
[name: string]: unknown;
|
|
3261
|
+
};
|
|
3262
|
+
content: {
|
|
3263
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3264
|
+
};
|
|
3265
|
+
};
|
|
3266
|
+
/** @description Resource not found */
|
|
3267
|
+
404: {
|
|
3268
|
+
headers: {
|
|
3269
|
+
[name: string]: unknown;
|
|
3270
|
+
};
|
|
3271
|
+
content: {
|
|
3272
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3273
|
+
};
|
|
3274
|
+
};
|
|
3275
|
+
/** @description Rate limit exceeded */
|
|
3276
|
+
429: {
|
|
3277
|
+
headers: {
|
|
3278
|
+
[name: string]: unknown;
|
|
3279
|
+
};
|
|
3280
|
+
content: {
|
|
3281
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3282
|
+
};
|
|
3283
|
+
};
|
|
3284
|
+
/** @description Internal server error */
|
|
3285
|
+
500: {
|
|
3286
|
+
headers: {
|
|
3287
|
+
[name: string]: unknown;
|
|
3288
|
+
};
|
|
3289
|
+
content: {
|
|
3290
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3291
|
+
};
|
|
3292
|
+
};
|
|
3293
|
+
};
|
|
3294
|
+
};
|
|
3295
|
+
delete?: never;
|
|
3296
|
+
options?: never;
|
|
3297
|
+
head?: never;
|
|
3298
|
+
patch?: never;
|
|
3299
|
+
trace?: never;
|
|
3300
|
+
};
|
|
3301
|
+
}
|
|
3302
|
+
type webhooks = Record<string, never>;
|
|
3303
|
+
interface components {
|
|
3304
|
+
schemas: {
|
|
3305
|
+
Task: components["schemas"]["LocuTask"] | components["schemas"]["LinearTask"] | components["schemas"]["JiraTask"];
|
|
67
3306
|
LocuTask: {
|
|
68
3307
|
id: string;
|
|
69
3308
|
name: string;
|
|
70
|
-
done: "completed" | "canceled" |
|
|
3309
|
+
done: "completed" | "canceled" | null;
|
|
71
3310
|
doneAt: number | null;
|
|
72
3311
|
createdAt: number;
|
|
73
3312
|
parent: {
|
|
@@ -80,19 +3319,82 @@ interface components {
|
|
|
80
3319
|
} | null;
|
|
81
3320
|
projectId?: string | null;
|
|
82
3321
|
cursorAgentUrl?: string | null;
|
|
83
|
-
integrationId:
|
|
3322
|
+
integrationId: null;
|
|
84
3323
|
slackLink?: string;
|
|
85
3324
|
/**
|
|
86
3325
|
* @default locu
|
|
87
3326
|
* @enum {string}
|
|
88
3327
|
*/
|
|
89
3328
|
type: "locu";
|
|
90
|
-
description
|
|
3329
|
+
/** @description Task description in multiple formats */
|
|
3330
|
+
description?: {
|
|
3331
|
+
/** @description Description content as Markdown */
|
|
3332
|
+
markdown: string;
|
|
3333
|
+
/** @description Description content as HTML (only included when includeHtml=true) */
|
|
3334
|
+
html?: string;
|
|
3335
|
+
/**
|
|
3336
|
+
* @description Description content as ProseMirror JSON document
|
|
3337
|
+
* @example {
|
|
3338
|
+
* "type": "doc",
|
|
3339
|
+
* "content": [
|
|
3340
|
+
* {
|
|
3341
|
+
* "type": "paragraph",
|
|
3342
|
+
* "content": [
|
|
3343
|
+
* {
|
|
3344
|
+
* "type": "text",
|
|
3345
|
+
* "text": "Hello "
|
|
3346
|
+
* },
|
|
3347
|
+
* {
|
|
3348
|
+
* "type": "text",
|
|
3349
|
+
* "text": "world",
|
|
3350
|
+
* "marks": [
|
|
3351
|
+
* {
|
|
3352
|
+
* "type": "bold"
|
|
3353
|
+
* }
|
|
3354
|
+
* ]
|
|
3355
|
+
* }
|
|
3356
|
+
* ]
|
|
3357
|
+
* }
|
|
3358
|
+
* ]
|
|
3359
|
+
* }
|
|
3360
|
+
*/
|
|
3361
|
+
json?: {
|
|
3362
|
+
/**
|
|
3363
|
+
* @description Document root type, always "doc"
|
|
3364
|
+
* @enum {string}
|
|
3365
|
+
*/
|
|
3366
|
+
type: "doc";
|
|
3367
|
+
/** @description Array of child document nodes */
|
|
3368
|
+
content: {
|
|
3369
|
+
/** @description Node type (e.g., "paragraph", "text", "heading", "bulletList") */
|
|
3370
|
+
type: string;
|
|
3371
|
+
/** @description Node attributes */
|
|
3372
|
+
attrs?: {
|
|
3373
|
+
[key: string]: (string | null) | number | boolean;
|
|
3374
|
+
};
|
|
3375
|
+
/** @description Child nodes (recursive DocumentNode array) */
|
|
3376
|
+
content?: Record<string, never>[];
|
|
3377
|
+
/** @description Text content (only for text nodes) */
|
|
3378
|
+
text?: string;
|
|
3379
|
+
/** @description Text marks (bold, italic, links, etc.) - only for text nodes */
|
|
3380
|
+
marks?: {
|
|
3381
|
+
/** @description Mark type (e.g., "bold", "italic", "link") */
|
|
3382
|
+
type: string;
|
|
3383
|
+
/** @description Mark attributes */
|
|
3384
|
+
attrs?: {
|
|
3385
|
+
[key: string]: (string | null) | number | boolean;
|
|
3386
|
+
};
|
|
3387
|
+
}[];
|
|
3388
|
+
}[];
|
|
3389
|
+
};
|
|
3390
|
+
/** @description Description content as plain text */
|
|
3391
|
+
plainText: string;
|
|
3392
|
+
} | null;
|
|
91
3393
|
};
|
|
92
3394
|
LinearTask: {
|
|
93
3395
|
id: string;
|
|
94
3396
|
name: string;
|
|
95
|
-
done: "completed" | "canceled" |
|
|
3397
|
+
done: "completed" | "canceled" | null;
|
|
96
3398
|
doneAt: number | null;
|
|
97
3399
|
createdAt: number;
|
|
98
3400
|
parent: {
|
|
@@ -110,7 +3412,70 @@ interface components {
|
|
|
110
3412
|
priority?: number;
|
|
111
3413
|
organizationId: string;
|
|
112
3414
|
teamId: string;
|
|
113
|
-
description
|
|
3415
|
+
/** @description Task description in multiple formats */
|
|
3416
|
+
description?: {
|
|
3417
|
+
/** @description Description content as Markdown */
|
|
3418
|
+
markdown: string;
|
|
3419
|
+
/** @description Description content as HTML (only included when includeHtml=true) */
|
|
3420
|
+
html?: string;
|
|
3421
|
+
/**
|
|
3422
|
+
* @description Description content as ProseMirror JSON document
|
|
3423
|
+
* @example {
|
|
3424
|
+
* "type": "doc",
|
|
3425
|
+
* "content": [
|
|
3426
|
+
* {
|
|
3427
|
+
* "type": "paragraph",
|
|
3428
|
+
* "content": [
|
|
3429
|
+
* {
|
|
3430
|
+
* "type": "text",
|
|
3431
|
+
* "text": "Hello "
|
|
3432
|
+
* },
|
|
3433
|
+
* {
|
|
3434
|
+
* "type": "text",
|
|
3435
|
+
* "text": "world",
|
|
3436
|
+
* "marks": [
|
|
3437
|
+
* {
|
|
3438
|
+
* "type": "bold"
|
|
3439
|
+
* }
|
|
3440
|
+
* ]
|
|
3441
|
+
* }
|
|
3442
|
+
* ]
|
|
3443
|
+
* }
|
|
3444
|
+
* ]
|
|
3445
|
+
* }
|
|
3446
|
+
*/
|
|
3447
|
+
json?: {
|
|
3448
|
+
/**
|
|
3449
|
+
* @description Document root type, always "doc"
|
|
3450
|
+
* @enum {string}
|
|
3451
|
+
*/
|
|
3452
|
+
type: "doc";
|
|
3453
|
+
/** @description Array of child document nodes */
|
|
3454
|
+
content: {
|
|
3455
|
+
/** @description Node type (e.g., "paragraph", "text", "heading", "bulletList") */
|
|
3456
|
+
type: string;
|
|
3457
|
+
/** @description Node attributes */
|
|
3458
|
+
attrs?: {
|
|
3459
|
+
[key: string]: (string | null) | number | boolean;
|
|
3460
|
+
};
|
|
3461
|
+
/** @description Child nodes (recursive DocumentNode array) */
|
|
3462
|
+
content?: Record<string, never>[];
|
|
3463
|
+
/** @description Text content (only for text nodes) */
|
|
3464
|
+
text?: string;
|
|
3465
|
+
/** @description Text marks (bold, italic, links, etc.) - only for text nodes */
|
|
3466
|
+
marks?: {
|
|
3467
|
+
/** @description Mark type (e.g., "bold", "italic", "link") */
|
|
3468
|
+
type: string;
|
|
3469
|
+
/** @description Mark attributes */
|
|
3470
|
+
attrs?: {
|
|
3471
|
+
[key: string]: (string | null) | number | boolean;
|
|
3472
|
+
};
|
|
3473
|
+
}[];
|
|
3474
|
+
}[];
|
|
3475
|
+
};
|
|
3476
|
+
/** @description Description content as plain text */
|
|
3477
|
+
plainText: string;
|
|
3478
|
+
} | null;
|
|
114
3479
|
assignee: {
|
|
115
3480
|
id: string;
|
|
116
3481
|
name: string;
|
|
@@ -131,7 +3496,7 @@ interface components {
|
|
|
131
3496
|
JiraTask: {
|
|
132
3497
|
id: string;
|
|
133
3498
|
name: string;
|
|
134
|
-
done: "completed" | "canceled" |
|
|
3499
|
+
done: "completed" | "canceled" | null;
|
|
135
3500
|
doneAt: number | null;
|
|
136
3501
|
createdAt: number;
|
|
137
3502
|
parent: {
|
|
@@ -145,7 +3510,70 @@ interface components {
|
|
|
145
3510
|
projectId: string;
|
|
146
3511
|
cursorAgentUrl?: string | null;
|
|
147
3512
|
integrationId: string;
|
|
148
|
-
description
|
|
3513
|
+
/** @description Task description in multiple formats */
|
|
3514
|
+
description?: {
|
|
3515
|
+
/** @description Description content as Markdown */
|
|
3516
|
+
markdown: string;
|
|
3517
|
+
/** @description Description content as HTML (only included when includeHtml=true) */
|
|
3518
|
+
html?: string;
|
|
3519
|
+
/**
|
|
3520
|
+
* @description Description content as ProseMirror JSON document
|
|
3521
|
+
* @example {
|
|
3522
|
+
* "type": "doc",
|
|
3523
|
+
* "content": [
|
|
3524
|
+
* {
|
|
3525
|
+
* "type": "paragraph",
|
|
3526
|
+
* "content": [
|
|
3527
|
+
* {
|
|
3528
|
+
* "type": "text",
|
|
3529
|
+
* "text": "Hello "
|
|
3530
|
+
* },
|
|
3531
|
+
* {
|
|
3532
|
+
* "type": "text",
|
|
3533
|
+
* "text": "world",
|
|
3534
|
+
* "marks": [
|
|
3535
|
+
* {
|
|
3536
|
+
* "type": "bold"
|
|
3537
|
+
* }
|
|
3538
|
+
* ]
|
|
3539
|
+
* }
|
|
3540
|
+
* ]
|
|
3541
|
+
* }
|
|
3542
|
+
* ]
|
|
3543
|
+
* }
|
|
3544
|
+
*/
|
|
3545
|
+
json?: {
|
|
3546
|
+
/**
|
|
3547
|
+
* @description Document root type, always "doc"
|
|
3548
|
+
* @enum {string}
|
|
3549
|
+
*/
|
|
3550
|
+
type: "doc";
|
|
3551
|
+
/** @description Array of child document nodes */
|
|
3552
|
+
content: {
|
|
3553
|
+
/** @description Node type (e.g., "paragraph", "text", "heading", "bulletList") */
|
|
3554
|
+
type: string;
|
|
3555
|
+
/** @description Node attributes */
|
|
3556
|
+
attrs?: {
|
|
3557
|
+
[key: string]: (string | null) | number | boolean;
|
|
3558
|
+
};
|
|
3559
|
+
/** @description Child nodes (recursive DocumentNode array) */
|
|
3560
|
+
content?: Record<string, never>[];
|
|
3561
|
+
/** @description Text content (only for text nodes) */
|
|
3562
|
+
text?: string;
|
|
3563
|
+
/** @description Text marks (bold, italic, links, etc.) - only for text nodes */
|
|
3564
|
+
marks?: {
|
|
3565
|
+
/** @description Mark type (e.g., "bold", "italic", "link") */
|
|
3566
|
+
type: string;
|
|
3567
|
+
/** @description Mark attributes */
|
|
3568
|
+
attrs?: {
|
|
3569
|
+
[key: string]: (string | null) | number | boolean;
|
|
3570
|
+
};
|
|
3571
|
+
}[];
|
|
3572
|
+
}[];
|
|
3573
|
+
};
|
|
3574
|
+
/** @description Description content as plain text */
|
|
3575
|
+
plainText: string;
|
|
3576
|
+
} | null;
|
|
149
3577
|
assignee: {
|
|
150
3578
|
id: string;
|
|
151
3579
|
avatar?: string;
|
|
@@ -175,7 +3603,6 @@ interface components {
|
|
|
175
3603
|
*/
|
|
176
3604
|
type: "jira";
|
|
177
3605
|
};
|
|
178
|
-
Task: components["schemas"]["LocuTask"] | components["schemas"]["LinearTask"] | components["schemas"]["JiraTask"];
|
|
179
3606
|
MeResponse: {
|
|
180
3607
|
/** @description Email of the authenticated user */
|
|
181
3608
|
email: string;
|
|
@@ -187,6 +3614,11 @@ interface components {
|
|
|
187
3614
|
message: string;
|
|
188
3615
|
code?: string;
|
|
189
3616
|
};
|
|
3617
|
+
NoteListResponse: {
|
|
3618
|
+
data: components["schemas"]["Note"][];
|
|
3619
|
+
nextCursor: string | null;
|
|
3620
|
+
hasMore: boolean;
|
|
3621
|
+
};
|
|
190
3622
|
Note: {
|
|
191
3623
|
id: string;
|
|
192
3624
|
text: string;
|
|
@@ -207,7 +3639,7 @@ interface components {
|
|
|
207
3639
|
/** @description Note content as HTML (only included when includeHtml=true) */
|
|
208
3640
|
html?: string;
|
|
209
3641
|
/**
|
|
210
|
-
* @description
|
|
3642
|
+
* @description Note content as ProseMirror JSON document
|
|
211
3643
|
* @example {
|
|
212
3644
|
* "type": "doc",
|
|
213
3645
|
* "content": [
|
|
@@ -264,11 +3696,6 @@ interface components {
|
|
|
264
3696
|
/** @description Note content as plain text */
|
|
265
3697
|
plainText: string;
|
|
266
3698
|
};
|
|
267
|
-
NoteListResponse: {
|
|
268
|
-
data: components["schemas"]["Note"][];
|
|
269
|
-
nextCursor: string | null;
|
|
270
|
-
hasMore: boolean;
|
|
271
|
-
};
|
|
272
3699
|
CreateNoteRequest: {
|
|
273
3700
|
/**
|
|
274
3701
|
* Format: uuid
|
|
@@ -297,70 +3724,11 @@ interface components {
|
|
|
297
3724
|
DeleteNoteResponse: {
|
|
298
3725
|
success: boolean;
|
|
299
3726
|
};
|
|
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;
|
|
3727
|
+
ProjectListResponse: {
|
|
3728
|
+
data: components["schemas"]["Project"][];
|
|
3729
|
+
nextCursor: string | null;
|
|
3730
|
+
hasMore: boolean;
|
|
3731
|
+
};
|
|
364
3732
|
Project: {
|
|
365
3733
|
id: string;
|
|
366
3734
|
name: string;
|
|
@@ -370,12 +3738,70 @@ interface components {
|
|
|
370
3738
|
completedAt?: number | null;
|
|
371
3739
|
createdAt: number;
|
|
372
3740
|
updatedAt: number;
|
|
373
|
-
description
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
3741
|
+
/** @description Project description in multiple formats */
|
|
3742
|
+
description?: {
|
|
3743
|
+
/** @description Description content as Markdown */
|
|
3744
|
+
markdown: string;
|
|
3745
|
+
/** @description Description content as HTML (only included when includeHtml=true) */
|
|
3746
|
+
html?: string;
|
|
3747
|
+
/**
|
|
3748
|
+
* @description Description content as ProseMirror JSON document
|
|
3749
|
+
* @example {
|
|
3750
|
+
* "type": "doc",
|
|
3751
|
+
* "content": [
|
|
3752
|
+
* {
|
|
3753
|
+
* "type": "paragraph",
|
|
3754
|
+
* "content": [
|
|
3755
|
+
* {
|
|
3756
|
+
* "type": "text",
|
|
3757
|
+
* "text": "Hello "
|
|
3758
|
+
* },
|
|
3759
|
+
* {
|
|
3760
|
+
* "type": "text",
|
|
3761
|
+
* "text": "world",
|
|
3762
|
+
* "marks": [
|
|
3763
|
+
* {
|
|
3764
|
+
* "type": "bold"
|
|
3765
|
+
* }
|
|
3766
|
+
* ]
|
|
3767
|
+
* }
|
|
3768
|
+
* ]
|
|
3769
|
+
* }
|
|
3770
|
+
* ]
|
|
3771
|
+
* }
|
|
3772
|
+
*/
|
|
3773
|
+
json?: {
|
|
3774
|
+
/**
|
|
3775
|
+
* @description Document root type, always "doc"
|
|
3776
|
+
* @enum {string}
|
|
3777
|
+
*/
|
|
3778
|
+
type: "doc";
|
|
3779
|
+
/** @description Array of child document nodes */
|
|
3780
|
+
content: {
|
|
3781
|
+
/** @description Node type (e.g., "paragraph", "text", "heading", "bulletList") */
|
|
3782
|
+
type: string;
|
|
3783
|
+
/** @description Node attributes */
|
|
3784
|
+
attrs?: {
|
|
3785
|
+
[key: string]: (string | null) | number | boolean;
|
|
3786
|
+
};
|
|
3787
|
+
/** @description Child nodes (recursive DocumentNode array) */
|
|
3788
|
+
content?: Record<string, never>[];
|
|
3789
|
+
/** @description Text content (only for text nodes) */
|
|
3790
|
+
text?: string;
|
|
3791
|
+
/** @description Text marks (bold, italic, links, etc.) - only for text nodes */
|
|
3792
|
+
marks?: {
|
|
3793
|
+
/** @description Mark type (e.g., "bold", "italic", "link") */
|
|
3794
|
+
type: string;
|
|
3795
|
+
/** @description Mark attributes */
|
|
3796
|
+
attrs?: {
|
|
3797
|
+
[key: string]: (string | null) | number | boolean;
|
|
3798
|
+
};
|
|
3799
|
+
}[];
|
|
3800
|
+
}[];
|
|
3801
|
+
};
|
|
3802
|
+
/** @description Description content as plain text */
|
|
3803
|
+
plainText: string;
|
|
3804
|
+
} | null;
|
|
379
3805
|
};
|
|
380
3806
|
CreateProjectRequest: {
|
|
381
3807
|
/**
|
|
@@ -410,6 +3836,15 @@ interface components {
|
|
|
410
3836
|
DeleteProjectResponse: {
|
|
411
3837
|
success: boolean;
|
|
412
3838
|
};
|
|
3839
|
+
SessionListResponse: {
|
|
3840
|
+
data: components["schemas"]["SessionWithActivities"][];
|
|
3841
|
+
nextCursor: string | null;
|
|
3842
|
+
hasMore: boolean;
|
|
3843
|
+
};
|
|
3844
|
+
SessionWithActivities: components["schemas"]["Session"] & {
|
|
3845
|
+
/** @description Activities within this session */
|
|
3846
|
+
activities: components["schemas"]["SessionActivity"][];
|
|
3847
|
+
};
|
|
413
3848
|
SessionActivity: {
|
|
414
3849
|
/** @enum {string} */
|
|
415
3850
|
type: "TASK";
|
|
@@ -461,15 +3896,6 @@ interface components {
|
|
|
461
3896
|
/** @description End timestamp (Unix seconds) */
|
|
462
3897
|
finishedAt: number;
|
|
463
3898
|
};
|
|
464
|
-
SessionWithActivities: components["schemas"]["Session"] & {
|
|
465
|
-
/** @description Activities within this session */
|
|
466
|
-
activities: components["schemas"]["SessionActivity"][];
|
|
467
|
-
};
|
|
468
|
-
SessionListResponse: {
|
|
469
|
-
data: components["schemas"]["SessionWithActivities"][];
|
|
470
|
-
nextCursor: string | null;
|
|
471
|
-
hasMore: boolean;
|
|
472
|
-
};
|
|
473
3899
|
CreateSessionRequest: {
|
|
474
3900
|
/**
|
|
475
3901
|
* Format: uuid
|
|
@@ -519,6 +3945,11 @@ interface components {
|
|
|
519
3945
|
nextCursor: string | null;
|
|
520
3946
|
hasMore: boolean;
|
|
521
3947
|
};
|
|
3948
|
+
TaskSectionsResponse: {
|
|
3949
|
+
today: components["schemas"]["TaskBySection"][];
|
|
3950
|
+
sooner: components["schemas"]["TaskBySection"][];
|
|
3951
|
+
later: components["schemas"]["TaskBySection"][];
|
|
3952
|
+
};
|
|
522
3953
|
TaskBySection: {
|
|
523
3954
|
/** Format: uuid */
|
|
524
3955
|
taskId: string;
|
|
@@ -527,11 +3958,6 @@ interface components {
|
|
|
527
3958
|
order: number;
|
|
528
3959
|
task: components["schemas"]["Task"];
|
|
529
3960
|
};
|
|
530
|
-
TaskSectionsResponse: {
|
|
531
|
-
today: components["schemas"]["TaskBySection"][];
|
|
532
|
-
sooner: components["schemas"]["TaskBySection"][];
|
|
533
|
-
later: components["schemas"]["TaskBySection"][];
|
|
534
|
-
};
|
|
535
3961
|
TaskSubtasksResponse: {
|
|
536
3962
|
data: components["schemas"]["Task"][];
|
|
537
3963
|
nextCursor: string | null;
|
|
@@ -569,7 +3995,7 @@ interface components {
|
|
|
569
3995
|
/** @description Task description in markdown format */
|
|
570
3996
|
description?: string;
|
|
571
3997
|
/** @description Task completion status */
|
|
572
|
-
done?: "completed" | "canceled" |
|
|
3998
|
+
done?: "completed" | "canceled" | null;
|
|
573
3999
|
/**
|
|
574
4000
|
* Format: uuid
|
|
575
4001
|
* @description Project to assign the task to
|
|
@@ -602,6 +4028,10 @@ interface components {
|
|
|
602
4028
|
/** @description Optional task ID to start working on */
|
|
603
4029
|
taskId?: string;
|
|
604
4030
|
};
|
|
4031
|
+
StopTimerResponse: {
|
|
4032
|
+
/** @description The completed sessions that were created */
|
|
4033
|
+
sessions: components["schemas"]["StopTimerSession"][];
|
|
4034
|
+
};
|
|
605
4035
|
StopTimerSession: {
|
|
606
4036
|
/** @description Unique identifier for the session */
|
|
607
4037
|
id: string;
|
|
@@ -612,9 +4042,10 @@ interface components {
|
|
|
612
4042
|
/** @description End timestamp (Unix seconds) */
|
|
613
4043
|
finishedAt: number;
|
|
614
4044
|
};
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
4045
|
+
WebhookListResponse: {
|
|
4046
|
+
data: components["schemas"]["Webhook"][];
|
|
4047
|
+
nextCursor: string | null;
|
|
4048
|
+
hasMore: boolean;
|
|
618
4049
|
};
|
|
619
4050
|
Webhook: {
|
|
620
4051
|
/**
|
|
@@ -644,11 +4075,6 @@ interface components {
|
|
|
644
4075
|
*/
|
|
645
4076
|
updatedAt: string;
|
|
646
4077
|
};
|
|
647
|
-
WebhookListResponse: {
|
|
648
|
-
data: components["schemas"]["Webhook"][];
|
|
649
|
-
nextCursor: string | null;
|
|
650
|
-
hasMore: boolean;
|
|
651
|
-
};
|
|
652
4078
|
WebhookWithSecret: components["schemas"]["Webhook"] & {
|
|
653
4079
|
/** @description Secret for verifying webhook signatures (only shown once) */
|
|
654
4080
|
secret: string;
|
|
@@ -695,6 +4121,11 @@ interface components {
|
|
|
695
4121
|
DeleteWebhookResponse: {
|
|
696
4122
|
success: boolean;
|
|
697
4123
|
};
|
|
4124
|
+
WebhookDeliveryListResponse: {
|
|
4125
|
+
data: components["schemas"]["WebhookDelivery"][];
|
|
4126
|
+
nextCursor: string | null;
|
|
4127
|
+
hasMore: boolean;
|
|
4128
|
+
};
|
|
698
4129
|
WebhookDelivery: {
|
|
699
4130
|
/**
|
|
700
4131
|
* Format: uuid
|
|
@@ -728,11 +4159,6 @@ interface components {
|
|
|
728
4159
|
*/
|
|
729
4160
|
completedAt: string | null;
|
|
730
4161
|
};
|
|
731
|
-
WebhookDeliveryListResponse: {
|
|
732
|
-
data: components["schemas"]["WebhookDelivery"][];
|
|
733
|
-
nextCursor: string | null;
|
|
734
|
-
hasMore: boolean;
|
|
735
|
-
};
|
|
736
4162
|
RotateSecretResponse: {
|
|
737
4163
|
/** @description New webhook secret */
|
|
738
4164
|
secret: string;
|
|
@@ -744,61 +4170,35 @@ interface components {
|
|
|
744
4170
|
headers: never;
|
|
745
4171
|
pathItems: never;
|
|
746
4172
|
}
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
* Re-export types from the generated OpenAPI types.
|
|
750
|
-
* These provide typed access to the Locu API.
|
|
751
|
-
*/
|
|
4173
|
+
type $defs = Record<string, never>;
|
|
4174
|
+
type operations = Record<string, never>;
|
|
752
4175
|
|
|
753
4176
|
type Task = components["schemas"]["Task"];
|
|
754
|
-
type LocuTask = components["schemas"]["LocuTask"];
|
|
755
|
-
type LinearTask = components["schemas"]["LinearTask"];
|
|
756
|
-
type JiraTask = components["schemas"]["JiraTask"];
|
|
757
|
-
type TaskDescription = components["schemas"]["TaskDescription"];
|
|
758
4177
|
type CreateTaskRequest = components["schemas"]["CreateTaskRequest"];
|
|
759
4178
|
type UpdateTaskRequest = components["schemas"]["UpdateTaskRequest"];
|
|
760
|
-
type TaskListResponse = components["schemas"]["TaskListResponse"];
|
|
761
|
-
type TaskBySection = components["schemas"]["TaskBySection"];
|
|
762
4179
|
type TaskSectionsResponse = components["schemas"]["TaskSectionsResponse"];
|
|
763
|
-
type DeleteTaskResponse = components["schemas"]["DeleteTaskResponse"];
|
|
764
4180
|
type Project = components["schemas"]["Project"];
|
|
765
|
-
type ProjectDescription = components["schemas"]["ProjectDescription"];
|
|
766
4181
|
type CreateProjectRequest = components["schemas"]["CreateProjectRequest"];
|
|
767
4182
|
type UpdateProjectRequest = components["schemas"]["UpdateProjectRequest"];
|
|
768
|
-
type ProjectListResponse = components["schemas"]["ProjectListResponse"];
|
|
769
|
-
type DeleteProjectResponse = components["schemas"]["DeleteProjectResponse"];
|
|
770
4183
|
type Note = components["schemas"]["Note"];
|
|
771
4184
|
type CreateNoteRequest = components["schemas"]["CreateNoteRequest"];
|
|
772
4185
|
type UpdateNoteRequest = components["schemas"]["UpdateNoteRequest"];
|
|
773
|
-
type NoteListResponse = components["schemas"]["NoteListResponse"];
|
|
774
|
-
type DeleteNoteResponse = components["schemas"]["DeleteNoteResponse"];
|
|
775
4186
|
type Session = components["schemas"]["Session"];
|
|
776
4187
|
type SessionWithActivities = components["schemas"]["SessionWithActivities"];
|
|
777
4188
|
type SessionActivity = components["schemas"]["SessionActivity"];
|
|
778
4189
|
type CreateSessionRequest = components["schemas"]["CreateSessionRequest"];
|
|
779
4190
|
type UpdateSessionRequest = components["schemas"]["UpdateSessionRequest"];
|
|
780
|
-
type SessionListResponse = components["schemas"]["SessionListResponse"];
|
|
781
|
-
type DeleteSessionResponse = components["schemas"]["DeleteSessionResponse"];
|
|
782
4191
|
type CreateActivityRequest = components["schemas"]["CreateActivityRequest"];
|
|
783
4192
|
type UpdateActivityRequest = components["schemas"]["UpdateActivityRequest"];
|
|
784
|
-
type ActivityListResponse = components["schemas"]["ActivityListResponse"];
|
|
785
|
-
type DeleteActivityResponse = components["schemas"]["DeleteActivityResponse"];
|
|
786
4193
|
type TimerState = components["schemas"]["TimerState"];
|
|
787
4194
|
type StartTimerRequest = components["schemas"]["StartTimerRequest"];
|
|
788
4195
|
type StopTimerResponse = components["schemas"]["StopTimerResponse"];
|
|
789
|
-
type StopTimerSession = components["schemas"]["StopTimerSession"];
|
|
790
4196
|
type Webhook = components["schemas"]["Webhook"];
|
|
791
4197
|
type WebhookWithSecret = components["schemas"]["WebhookWithSecret"];
|
|
792
4198
|
type CreateWebhookRequest = components["schemas"]["CreateWebhookRequest"];
|
|
793
4199
|
type UpdateWebhookRequest = components["schemas"]["UpdateWebhookRequest"];
|
|
794
|
-
type WebhookListResponse = components["schemas"]["WebhookListResponse"];
|
|
795
4200
|
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
4201
|
type MeResponse = components["schemas"]["MeResponse"];
|
|
801
|
-
type ApiError = ErrorResponse;
|
|
802
4202
|
type WebhookPayload<T = unknown> = {
|
|
803
4203
|
/** Event type, e.g. "task.created", "project.updated" */
|
|
804
4204
|
event: string;
|
|
@@ -816,38 +4216,22 @@ type PaginationParams = {
|
|
|
816
4216
|
limit?: number;
|
|
817
4217
|
cursor?: string;
|
|
818
4218
|
};
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
doneAfter?: string;
|
|
825
|
-
doneBefore?: string;
|
|
826
|
-
includeHtml?: boolean | null;
|
|
827
|
-
};
|
|
828
|
-
type TaskSectionsParams = {
|
|
829
|
-
projectId?: string;
|
|
830
|
-
includeHtml?: boolean | null;
|
|
831
|
-
};
|
|
832
|
-
type SubtaskListParams = PaginationParams & {
|
|
833
|
-
done?: "true" | "false";
|
|
834
|
-
includeHtml?: boolean | null;
|
|
835
|
-
};
|
|
836
|
-
type ProjectListParams = PaginationParams & {
|
|
837
|
-
state?: "planned" | "completed";
|
|
838
|
-
includeHtml?: boolean | null;
|
|
839
|
-
};
|
|
840
|
-
type NoteListParams = PaginationParams & {
|
|
841
|
-
folderId?: string;
|
|
842
|
-
includeHtml?: boolean | null;
|
|
4219
|
+
/** Accepts boolean or string representation for query params */
|
|
4220
|
+
type BooleanParam = boolean | "true" | "false";
|
|
4221
|
+
type TaskListParams = Omit<NonNullable<paths["/tasks"]["get"]["parameters"]["query"]>, "done" | "limit"> & {
|
|
4222
|
+
done?: BooleanParam;
|
|
4223
|
+
limit?: number;
|
|
843
4224
|
};
|
|
844
|
-
type
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
4225
|
+
type TaskSectionsParams = NonNullable<paths["/tasks/sections"]["get"]["parameters"]["query"]>;
|
|
4226
|
+
type SubtaskListParams = Omit<NonNullable<paths["/tasks/{id}/subtasks"]["get"]["parameters"]["query"]>, "done" | "limit"> & {
|
|
4227
|
+
done?: BooleanParam;
|
|
4228
|
+
limit?: number;
|
|
848
4229
|
};
|
|
849
|
-
type
|
|
850
|
-
|
|
4230
|
+
type ProjectListParams = NonNullable<paths["/projects"]["get"]["parameters"]["query"]>;
|
|
4231
|
+
type NoteListParams = NonNullable<paths["/notes"]["get"]["parameters"]["query"]>;
|
|
4232
|
+
type SessionListParams = NonNullable<paths["/sessions"]["get"]["parameters"]["query"]>;
|
|
4233
|
+
type WebhookListParams = Omit<NonNullable<paths["/webhooks"]["get"]["parameters"]["query"]>, "isActive"> & {
|
|
4234
|
+
isActive?: BooleanParam;
|
|
851
4235
|
};
|
|
852
4236
|
|
|
853
4237
|
type LocuClientConfig = {
|
|
@@ -879,6 +4263,8 @@ declare const createLocuClient: (config: LocuClientConfig) => {
|
|
|
879
4263
|
continue: () => Promise<TimerState>;
|
|
880
4264
|
/** Stop timer and save sessions */
|
|
881
4265
|
stop: () => Promise<StopTimerResponse>;
|
|
4266
|
+
/** Cancel timer without saving sessions */
|
|
4267
|
+
cancel: () => Promise<TimerState>;
|
|
882
4268
|
};
|
|
883
4269
|
tasks: {
|
|
884
4270
|
/** List all tasks */
|
|
@@ -1083,4 +4469,4 @@ declare const parseWebhookPayload: <T = unknown>(body: string) => WebhookPayload
|
|
|
1083
4469
|
*/
|
|
1084
4470
|
declare const generateWebhookSignature: (secret: string, timestamp: number, body: string) => string;
|
|
1085
4471
|
|
|
1086
|
-
export { type
|
|
4472
|
+
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 };
|