@happyvertical/smrt-projects 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/AGENTS.md +31 -0
  2. package/CLAUDE.md +1 -0
  3. package/LICENSE +7 -0
  4. package/README.md +97 -0
  5. package/dist/__smrt-register__.d.ts +2 -0
  6. package/dist/__smrt-register__.d.ts.map +1 -0
  7. package/dist/collections/Issues.d.ts +107 -0
  8. package/dist/collections/Issues.d.ts.map +1 -0
  9. package/dist/collections/Projects.d.ts +90 -0
  10. package/dist/collections/Projects.d.ts.map +1 -0
  11. package/dist/collections/PullRequests.d.ts +107 -0
  12. package/dist/collections/PullRequests.d.ts.map +1 -0
  13. package/dist/collections/Repositories.d.ts +77 -0
  14. package/dist/collections/Repositories.d.ts.map +1 -0
  15. package/dist/constants.d.ts +9 -0
  16. package/dist/constants.d.ts.map +1 -0
  17. package/dist/index.d.ts +14 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +2477 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/manifest.json +4193 -0
  22. package/dist/models/Comment.d.ts +77 -0
  23. package/dist/models/Comment.d.ts.map +1 -0
  24. package/dist/models/Issue.d.ts +200 -0
  25. package/dist/models/Issue.d.ts.map +1 -0
  26. package/dist/models/Label.d.ts +63 -0
  27. package/dist/models/Label.d.ts.map +1 -0
  28. package/dist/models/Project.d.ts +183 -0
  29. package/dist/models/Project.d.ts.map +1 -0
  30. package/dist/models/PullRequest.d.ts +114 -0
  31. package/dist/models/PullRequest.d.ts.map +1 -0
  32. package/dist/models/Repository.d.ts +141 -0
  33. package/dist/models/Repository.d.ts.map +1 -0
  34. package/dist/playground.d.ts +2 -0
  35. package/dist/playground.d.ts.map +1 -0
  36. package/dist/playground.js +129 -0
  37. package/dist/playground.js.map +1 -0
  38. package/dist/prompts.d.ts +2 -0
  39. package/dist/prompts.d.ts.map +1 -0
  40. package/dist/smrt-knowledge.json +1956 -0
  41. package/dist/svelte/components/ApprovalActions.svelte +213 -0
  42. package/dist/svelte/components/ApprovalActions.svelte.d.ts +17 -0
  43. package/dist/svelte/components/ApprovalActions.svelte.d.ts.map +1 -0
  44. package/dist/svelte/components/BulkActions.svelte +224 -0
  45. package/dist/svelte/components/BulkActions.svelte.d.ts +14 -0
  46. package/dist/svelte/components/BulkActions.svelte.d.ts.map +1 -0
  47. package/dist/svelte/components/DurationDisplay.svelte +68 -0
  48. package/dist/svelte/components/DurationDisplay.svelte.d.ts +11 -0
  49. package/dist/svelte/components/DurationDisplay.svelte.d.ts.map +1 -0
  50. package/dist/svelte/components/RejectDialog.svelte +250 -0
  51. package/dist/svelte/components/RejectDialog.svelte.d.ts +17 -0
  52. package/dist/svelte/components/RejectDialog.svelte.d.ts.map +1 -0
  53. package/dist/svelte/components/TimeEntryCard.svelte +294 -0
  54. package/dist/svelte/components/TimeEntryCard.svelte.d.ts +17 -0
  55. package/dist/svelte/components/TimeEntryCard.svelte.d.ts.map +1 -0
  56. package/dist/svelte/components/TimeEntryList.svelte +351 -0
  57. package/dist/svelte/components/TimeEntryList.svelte.d.ts +17 -0
  58. package/dist/svelte/components/TimeEntryList.svelte.d.ts.map +1 -0
  59. package/dist/svelte/components/TimeSummary.svelte +165 -0
  60. package/dist/svelte/components/TimeSummary.svelte.d.ts +19 -0
  61. package/dist/svelte/components/TimeSummary.svelte.d.ts.map +1 -0
  62. package/dist/svelte/components/__tests__/ApprovalActions.test.js +41 -0
  63. package/dist/svelte/components/__tests__/BulkActions.test.js +46 -0
  64. package/dist/svelte/components/__tests__/DurationDisplay.test.js +23 -0
  65. package/dist/svelte/components/__tests__/RejectDialog.test.js +45 -0
  66. package/dist/svelte/components/__tests__/TimeEntryCard.test.js +45 -0
  67. package/dist/svelte/components/__tests__/TimeEntryList.test.js +50 -0
  68. package/dist/svelte/components/__tests__/TimeSummary.test.js +39 -0
  69. package/dist/svelte/components/utils.d.ts +42 -0
  70. package/dist/svelte/components/utils.d.ts.map +1 -0
  71. package/dist/svelte/components/utils.js +43 -0
  72. package/dist/svelte/i18n.d.ts +18 -0
  73. package/dist/svelte/i18n.d.ts.map +1 -0
  74. package/dist/svelte/i18n.js +18 -0
  75. package/dist/svelte/index.d.ts +26 -0
  76. package/dist/svelte/index.d.ts.map +1 -0
  77. package/dist/svelte/index.js +31 -0
  78. package/dist/svelte/playground.d.ts +122 -0
  79. package/dist/svelte/playground.d.ts.map +1 -0
  80. package/dist/svelte/playground.js +114 -0
  81. package/dist/svelte/utils.d.ts +42 -0
  82. package/dist/svelte/utils.d.ts.map +1 -0
  83. package/dist/svelte/utils.js +43 -0
  84. package/dist/types.d.ts +54 -0
  85. package/dist/types.d.ts.map +1 -0
  86. package/dist/types.js +2 -0
  87. package/dist/types.js.map +1 -0
  88. package/dist/ui.d.ts +10 -0
  89. package/dist/ui.d.ts.map +1 -0
  90. package/dist/ui.js +85 -0
  91. package/dist/ui.js.map +1 -0
  92. package/package.json +100 -0
@@ -0,0 +1,4193 @@
1
+ {
2
+ "version": "1.0.0",
3
+ "timestamp": 1782177130348,
4
+ "packageName": "@happyvertical/smrt-projects",
5
+ "packageVersion": "0.30.0",
6
+ "objects": {
7
+ "@happyvertical/smrt-projects:IssueCollection": {
8
+ "name": "issuecollection",
9
+ "className": "IssueCollection",
10
+ "qualifiedName": "@happyvertical/smrt-projects:IssueCollection",
11
+ "collection": "issues",
12
+ "filePath": "/home/runner/_work/smrt/smrt/packages/projects/src/collections/Issues.ts",
13
+ "packageName": "@happyvertical/smrt-projects",
14
+ "fields": {},
15
+ "methods": {
16
+ "discover": {
17
+ "name": "discover",
18
+ "async": true,
19
+ "parameters": [
20
+ {
21
+ "name": "options",
22
+ "type": "object",
23
+ "optional": false
24
+ }
25
+ ],
26
+ "returnType": "Promise<Issue[]>",
27
+ "isStatic": false,
28
+ "isPublic": true
29
+ },
30
+ "findByRepository": {
31
+ "name": "findByRepository",
32
+ "async": true,
33
+ "parameters": [
34
+ {
35
+ "name": "repositoryId",
36
+ "type": "string",
37
+ "optional": false
38
+ }
39
+ ],
40
+ "returnType": "Promise<Issue[]>",
41
+ "isStatic": false,
42
+ "isPublic": true
43
+ },
44
+ "findOpen": {
45
+ "name": "findOpen",
46
+ "async": true,
47
+ "parameters": [
48
+ {
49
+ "name": "repositoryId",
50
+ "type": "string",
51
+ "optional": true
52
+ }
53
+ ],
54
+ "returnType": "Promise<Issue[]>",
55
+ "isStatic": false,
56
+ "isPublic": true
57
+ },
58
+ "findByLabel": {
59
+ "name": "findByLabel",
60
+ "async": true,
61
+ "parameters": [
62
+ {
63
+ "name": "label",
64
+ "type": "string",
65
+ "optional": false
66
+ },
67
+ {
68
+ "name": "repositoryId",
69
+ "type": "string",
70
+ "optional": true
71
+ }
72
+ ],
73
+ "returnType": "Promise<Issue[]>",
74
+ "isStatic": false,
75
+ "isPublic": true
76
+ },
77
+ "findByAssignee": {
78
+ "name": "findByAssignee",
79
+ "async": true,
80
+ "parameters": [
81
+ {
82
+ "name": "assignee",
83
+ "type": "string",
84
+ "optional": false
85
+ },
86
+ {
87
+ "name": "repositoryId",
88
+ "type": "string",
89
+ "optional": true
90
+ }
91
+ ],
92
+ "returnType": "Promise<Issue[]>",
93
+ "isStatic": false,
94
+ "isPublic": true
95
+ },
96
+ "findNeedingReview": {
97
+ "name": "findNeedingReview",
98
+ "async": true,
99
+ "parameters": [
100
+ {
101
+ "name": "repositoryId",
102
+ "type": "string",
103
+ "optional": true
104
+ }
105
+ ],
106
+ "returnType": "Promise<Issue[]>",
107
+ "isStatic": false,
108
+ "isPublic": true
109
+ },
110
+ "findByNumber": {
111
+ "name": "findByNumber",
112
+ "async": true,
113
+ "parameters": [
114
+ {
115
+ "name": "repositoryId",
116
+ "type": "string",
117
+ "optional": false
118
+ },
119
+ {
120
+ "name": "number",
121
+ "type": "number",
122
+ "optional": false
123
+ }
124
+ ],
125
+ "returnType": "Promise<Issue | null>",
126
+ "isStatic": false,
127
+ "isPublic": true
128
+ },
129
+ "findWithUnincorporatedFeedback": {
130
+ "name": "findWithUnincorporatedFeedback",
131
+ "async": true,
132
+ "parameters": [
133
+ {
134
+ "name": "repositoryId",
135
+ "type": "string",
136
+ "optional": true
137
+ }
138
+ ],
139
+ "returnType": "Promise<Issue[]>",
140
+ "isStatic": false,
141
+ "isPublic": true
142
+ },
143
+ "batchSync": {
144
+ "name": "batchSync",
145
+ "async": true,
146
+ "parameters": [
147
+ {
148
+ "name": "repository",
149
+ "type": "Repository",
150
+ "optional": false
151
+ },
152
+ {
153
+ "name": "options",
154
+ "type": "object",
155
+ "optional": true
156
+ }
157
+ ],
158
+ "returnType": "Promise<Issue[]>",
159
+ "isStatic": false,
160
+ "isPublic": true
161
+ },
162
+ "findByTenant": {
163
+ "name": "findByTenant",
164
+ "async": true,
165
+ "parameters": [
166
+ {
167
+ "name": "tenantId",
168
+ "type": "string",
169
+ "optional": false
170
+ }
171
+ ],
172
+ "returnType": "Promise<Issue[]>",
173
+ "isStatic": false,
174
+ "isPublic": true
175
+ },
176
+ "findGlobal": {
177
+ "name": "findGlobal",
178
+ "async": true,
179
+ "parameters": [],
180
+ "returnType": "Promise<Issue[]>",
181
+ "isStatic": false,
182
+ "isPublic": true
183
+ },
184
+ "findWithGlobals": {
185
+ "name": "findWithGlobals",
186
+ "async": true,
187
+ "parameters": [
188
+ {
189
+ "name": "tenantId",
190
+ "type": "string",
191
+ "optional": false
192
+ }
193
+ ],
194
+ "returnType": "Promise<Issue[]>",
195
+ "isStatic": false,
196
+ "isPublic": true
197
+ }
198
+ },
199
+ "decoratorConfig": {},
200
+ "extends": "SmrtCollection",
201
+ "extendsTypeArg": "Issue",
202
+ "exportName": "IssueCollection",
203
+ "collectionExportName": "IssueCollectionCollection",
204
+ "schema": {
205
+ "tableName": "issue_collections",
206
+ "ddl": "CREATE TABLE IF NOT EXISTS \"issue_collections\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
207
+ "columns": {
208
+ "id": {
209
+ "type": "UUID",
210
+ "primaryKey": true,
211
+ "referenceKind": "id",
212
+ "notNull": true
213
+ },
214
+ "slug": {
215
+ "type": "TEXT",
216
+ "notNull": true
217
+ },
218
+ "context": {
219
+ "type": "TEXT",
220
+ "notNull": true,
221
+ "default": ""
222
+ },
223
+ "created_at": {
224
+ "type": "TIMESTAMP",
225
+ "notNull": true,
226
+ "default": "current_timestamp"
227
+ },
228
+ "updated_at": {
229
+ "type": "TIMESTAMP",
230
+ "notNull": true,
231
+ "default": "current_timestamp"
232
+ }
233
+ },
234
+ "indexes": [
235
+ {
236
+ "name": "issue_collections_id_idx",
237
+ "columns": [
238
+ "id"
239
+ ]
240
+ },
241
+ {
242
+ "name": "issue_collections_slug_context_idx",
243
+ "columns": [
244
+ "slug",
245
+ "context"
246
+ ],
247
+ "unique": true
248
+ }
249
+ ],
250
+ "version": "93b3c6f0"
251
+ }
252
+ },
253
+ "@happyvertical/smrt-projects:ProjectCollection": {
254
+ "name": "projectcollection",
255
+ "className": "ProjectCollection",
256
+ "qualifiedName": "@happyvertical/smrt-projects:ProjectCollection",
257
+ "collection": "projects",
258
+ "filePath": "/home/runner/_work/smrt/smrt/packages/projects/src/collections/Projects.ts",
259
+ "packageName": "@happyvertical/smrt-projects",
260
+ "fields": {},
261
+ "methods": {
262
+ "findByTitle": {
263
+ "name": "findByTitle",
264
+ "async": true,
265
+ "parameters": [
266
+ {
267
+ "name": "title",
268
+ "type": "string",
269
+ "optional": false
270
+ }
271
+ ],
272
+ "returnType": "Promise<Project | null>",
273
+ "isStatic": false,
274
+ "isPublic": true
275
+ },
276
+ "findByOwner": {
277
+ "name": "findByOwner",
278
+ "async": true,
279
+ "parameters": [
280
+ {
281
+ "name": "owner",
282
+ "type": "string",
283
+ "optional": false
284
+ }
285
+ ],
286
+ "returnType": "Promise<Project[]>",
287
+ "isStatic": false,
288
+ "isPublic": true
289
+ },
290
+ "findByProvider": {
291
+ "name": "findByProvider",
292
+ "async": true,
293
+ "parameters": [
294
+ {
295
+ "name": "providerType",
296
+ "type": "ProjectProviderType",
297
+ "optional": false
298
+ }
299
+ ],
300
+ "returnType": "Promise<Project[]>",
301
+ "isStatic": false,
302
+ "isPublic": true
303
+ },
304
+ "getOrCreate": {
305
+ "name": "getOrCreate",
306
+ "async": true,
307
+ "parameters": [
308
+ {
309
+ "name": "projectId",
310
+ "type": "string",
311
+ "optional": false
312
+ },
313
+ {
314
+ "name": "options",
315
+ "type": "object",
316
+ "optional": true
317
+ }
318
+ ],
319
+ "returnType": "Promise<Project>",
320
+ "isStatic": false,
321
+ "isPublic": true
322
+ },
323
+ "syncAll": {
324
+ "name": "syncAll",
325
+ "async": true,
326
+ "parameters": [
327
+ {
328
+ "name": "options",
329
+ "type": "object",
330
+ "optional": true
331
+ }
332
+ ],
333
+ "returnType": "Promise<Project[]>",
334
+ "isStatic": false,
335
+ "isPublic": true
336
+ },
337
+ "findWithItemsInStatus": {
338
+ "name": "findWithItemsInStatus",
339
+ "async": true,
340
+ "parameters": [
341
+ {
342
+ "name": "status",
343
+ "type": "string",
344
+ "optional": false
345
+ }
346
+ ],
347
+ "returnType": "Promise<Project[]>",
348
+ "isStatic": false,
349
+ "isPublic": true
350
+ },
351
+ "getStatistics": {
352
+ "name": "getStatistics",
353
+ "async": true,
354
+ "parameters": [
355
+ {
356
+ "name": "projectId",
357
+ "type": "string",
358
+ "optional": false
359
+ }
360
+ ],
361
+ "returnType": "Promise<object>",
362
+ "isStatic": false,
363
+ "isPublic": true
364
+ },
365
+ "findByTenant": {
366
+ "name": "findByTenant",
367
+ "async": true,
368
+ "parameters": [
369
+ {
370
+ "name": "tenantId",
371
+ "type": "string",
372
+ "optional": false
373
+ }
374
+ ],
375
+ "returnType": "Promise<Project[]>",
376
+ "isStatic": false,
377
+ "isPublic": true
378
+ },
379
+ "findGlobal": {
380
+ "name": "findGlobal",
381
+ "async": true,
382
+ "parameters": [],
383
+ "returnType": "Promise<Project[]>",
384
+ "isStatic": false,
385
+ "isPublic": true
386
+ },
387
+ "findWithGlobals": {
388
+ "name": "findWithGlobals",
389
+ "async": true,
390
+ "parameters": [
391
+ {
392
+ "name": "tenantId",
393
+ "type": "string",
394
+ "optional": false
395
+ }
396
+ ],
397
+ "returnType": "Promise<Project[]>",
398
+ "isStatic": false,
399
+ "isPublic": true
400
+ }
401
+ },
402
+ "decoratorConfig": {},
403
+ "extends": "SmrtCollection",
404
+ "extendsTypeArg": "Project",
405
+ "exportName": "ProjectCollection",
406
+ "collectionExportName": "ProjectCollectionCollection",
407
+ "schema": {
408
+ "tableName": "project_collections",
409
+ "ddl": "CREATE TABLE IF NOT EXISTS \"project_collections\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
410
+ "columns": {
411
+ "id": {
412
+ "type": "UUID",
413
+ "primaryKey": true,
414
+ "referenceKind": "id",
415
+ "notNull": true
416
+ },
417
+ "slug": {
418
+ "type": "TEXT",
419
+ "notNull": true
420
+ },
421
+ "context": {
422
+ "type": "TEXT",
423
+ "notNull": true,
424
+ "default": ""
425
+ },
426
+ "created_at": {
427
+ "type": "TIMESTAMP",
428
+ "notNull": true,
429
+ "default": "current_timestamp"
430
+ },
431
+ "updated_at": {
432
+ "type": "TIMESTAMP",
433
+ "notNull": true,
434
+ "default": "current_timestamp"
435
+ }
436
+ },
437
+ "indexes": [
438
+ {
439
+ "name": "project_collections_id_idx",
440
+ "columns": [
441
+ "id"
442
+ ]
443
+ },
444
+ {
445
+ "name": "project_collections_slug_context_idx",
446
+ "columns": [
447
+ "slug",
448
+ "context"
449
+ ],
450
+ "unique": true
451
+ }
452
+ ],
453
+ "version": "f713c200"
454
+ }
455
+ },
456
+ "@happyvertical/smrt-projects:PullRequestCollection": {
457
+ "name": "pullrequestcollection",
458
+ "className": "PullRequestCollection",
459
+ "qualifiedName": "@happyvertical/smrt-projects:PullRequestCollection",
460
+ "collection": "issues",
461
+ "filePath": "/home/runner/_work/smrt/smrt/packages/projects/src/collections/PullRequests.ts",
462
+ "packageName": "@happyvertical/smrt-projects",
463
+ "fields": {},
464
+ "methods": {
465
+ "discover": {
466
+ "name": "discover",
467
+ "async": true,
468
+ "parameters": [
469
+ {
470
+ "name": "options",
471
+ "type": "object",
472
+ "optional": false
473
+ }
474
+ ],
475
+ "returnType": "Promise<PullRequest[]>",
476
+ "isStatic": false,
477
+ "isPublic": true
478
+ },
479
+ "findByRepository": {
480
+ "name": "findByRepository",
481
+ "async": true,
482
+ "parameters": [
483
+ {
484
+ "name": "repositoryId",
485
+ "type": "string",
486
+ "optional": false
487
+ }
488
+ ],
489
+ "returnType": "Promise<PullRequest[]>",
490
+ "isStatic": false,
491
+ "isPublic": true
492
+ },
493
+ "findOpen": {
494
+ "name": "findOpen",
495
+ "async": true,
496
+ "parameters": [
497
+ {
498
+ "name": "repositoryId",
499
+ "type": "string",
500
+ "optional": true
501
+ }
502
+ ],
503
+ "returnType": "Promise<PullRequest[]>",
504
+ "isStatic": false,
505
+ "isPublic": true
506
+ },
507
+ "findDrafts": {
508
+ "name": "findDrafts",
509
+ "async": true,
510
+ "parameters": [
511
+ {
512
+ "name": "repositoryId",
513
+ "type": "string",
514
+ "optional": true
515
+ }
516
+ ],
517
+ "returnType": "Promise<PullRequest[]>",
518
+ "isStatic": false,
519
+ "isPublic": true
520
+ },
521
+ "findReadyToMerge": {
522
+ "name": "findReadyToMerge",
523
+ "async": true,
524
+ "parameters": [
525
+ {
526
+ "name": "repositoryId",
527
+ "type": "string",
528
+ "optional": true
529
+ }
530
+ ],
531
+ "returnType": "Promise<PullRequest[]>",
532
+ "isStatic": false,
533
+ "isPublic": true
534
+ },
535
+ "findByBranch": {
536
+ "name": "findByBranch",
537
+ "async": true,
538
+ "parameters": [
539
+ {
540
+ "name": "branch",
541
+ "type": "string",
542
+ "optional": false
543
+ },
544
+ {
545
+ "name": "repositoryId",
546
+ "type": "string",
547
+ "optional": true
548
+ }
549
+ ],
550
+ "returnType": "Promise<PullRequest[]>",
551
+ "isStatic": false,
552
+ "isPublic": true
553
+ },
554
+ "findByNumber": {
555
+ "name": "findByNumber",
556
+ "async": true,
557
+ "parameters": [
558
+ {
559
+ "name": "repositoryId",
560
+ "type": "string",
561
+ "optional": false
562
+ },
563
+ {
564
+ "name": "number",
565
+ "type": "number",
566
+ "optional": false
567
+ }
568
+ ],
569
+ "returnType": "Promise<PullRequest | null>",
570
+ "isStatic": false,
571
+ "isPublic": true
572
+ },
573
+ "findAIReadyToMerge": {
574
+ "name": "findAIReadyToMerge",
575
+ "async": true,
576
+ "parameters": [
577
+ {
578
+ "name": "repositoryId",
579
+ "type": "string",
580
+ "optional": true
581
+ }
582
+ ],
583
+ "returnType": "Promise<PullRequest[]>",
584
+ "isStatic": false,
585
+ "isPublic": true
586
+ },
587
+ "findBySize": {
588
+ "name": "findBySize",
589
+ "async": true,
590
+ "parameters": [
591
+ {
592
+ "name": "size",
593
+ "type": "'xs' | 's' | 'm' | 'l' | 'xl'",
594
+ "optional": false
595
+ },
596
+ {
597
+ "name": "repositoryId",
598
+ "type": "string",
599
+ "optional": true
600
+ }
601
+ ],
602
+ "returnType": "Promise<PullRequest[]>",
603
+ "isStatic": false,
604
+ "isPublic": true
605
+ },
606
+ "batchSync": {
607
+ "name": "batchSync",
608
+ "async": true,
609
+ "parameters": [
610
+ {
611
+ "name": "repository",
612
+ "type": "Repository",
613
+ "optional": false
614
+ },
615
+ {
616
+ "name": "options",
617
+ "type": "object",
618
+ "optional": true
619
+ }
620
+ ],
621
+ "returnType": "Promise<PullRequest[]>",
622
+ "isStatic": false,
623
+ "isPublic": true
624
+ },
625
+ "findByTenant": {
626
+ "name": "findByTenant",
627
+ "async": true,
628
+ "parameters": [
629
+ {
630
+ "name": "tenantId",
631
+ "type": "string",
632
+ "optional": false
633
+ }
634
+ ],
635
+ "returnType": "Promise<PullRequest[]>",
636
+ "isStatic": false,
637
+ "isPublic": true
638
+ },
639
+ "findGlobal": {
640
+ "name": "findGlobal",
641
+ "async": true,
642
+ "parameters": [],
643
+ "returnType": "Promise<PullRequest[]>",
644
+ "isStatic": false,
645
+ "isPublic": true
646
+ },
647
+ "findWithGlobals": {
648
+ "name": "findWithGlobals",
649
+ "async": true,
650
+ "parameters": [
651
+ {
652
+ "name": "tenantId",
653
+ "type": "string",
654
+ "optional": false
655
+ }
656
+ ],
657
+ "returnType": "Promise<PullRequest[]>",
658
+ "isStatic": false,
659
+ "isPublic": true
660
+ }
661
+ },
662
+ "decoratorConfig": {
663
+ "tableName": "issues"
664
+ },
665
+ "extends": "SmrtCollection",
666
+ "extendsTypeArg": "PullRequest",
667
+ "exportName": "PullRequestCollection",
668
+ "collectionExportName": "PullRequestCollectionCollection",
669
+ "schema": {
670
+ "tableName": "issues",
671
+ "ddl": "CREATE TABLE IF NOT EXISTS \"issues\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
672
+ "columns": {
673
+ "id": {
674
+ "type": "UUID",
675
+ "primaryKey": true,
676
+ "referenceKind": "id",
677
+ "notNull": true
678
+ },
679
+ "slug": {
680
+ "type": "TEXT",
681
+ "notNull": true
682
+ },
683
+ "context": {
684
+ "type": "TEXT",
685
+ "notNull": true,
686
+ "default": ""
687
+ },
688
+ "created_at": {
689
+ "type": "TIMESTAMP",
690
+ "notNull": true,
691
+ "default": "current_timestamp"
692
+ },
693
+ "updated_at": {
694
+ "type": "TIMESTAMP",
695
+ "notNull": true,
696
+ "default": "current_timestamp"
697
+ }
698
+ },
699
+ "indexes": [
700
+ {
701
+ "name": "issues_id_idx",
702
+ "columns": [
703
+ "id"
704
+ ]
705
+ },
706
+ {
707
+ "name": "issues_slug_context_idx",
708
+ "columns": [
709
+ "slug",
710
+ "context"
711
+ ],
712
+ "unique": true
713
+ }
714
+ ],
715
+ "version": "798511d0"
716
+ }
717
+ },
718
+ "@happyvertical/smrt-projects:RepositoryCollection": {
719
+ "name": "repositorycollection",
720
+ "className": "RepositoryCollection",
721
+ "qualifiedName": "@happyvertical/smrt-projects:RepositoryCollection",
722
+ "collection": "repositories",
723
+ "filePath": "/home/runner/_work/smrt/smrt/packages/projects/src/collections/Repositories.ts",
724
+ "packageName": "@happyvertical/smrt-projects",
725
+ "fields": {},
726
+ "methods": {
727
+ "findByFullName": {
728
+ "name": "findByFullName",
729
+ "async": true,
730
+ "parameters": [
731
+ {
732
+ "name": "owner",
733
+ "type": "string",
734
+ "optional": false
735
+ },
736
+ {
737
+ "name": "name",
738
+ "type": "string",
739
+ "optional": false
740
+ }
741
+ ],
742
+ "returnType": "Promise<Repository | null>",
743
+ "isStatic": false,
744
+ "isPublic": true
745
+ },
746
+ "findByOwner": {
747
+ "name": "findByOwner",
748
+ "async": true,
749
+ "parameters": [
750
+ {
751
+ "name": "owner",
752
+ "type": "string",
753
+ "optional": false
754
+ }
755
+ ],
756
+ "returnType": "Promise<Repository[]>",
757
+ "isStatic": false,
758
+ "isPublic": true
759
+ },
760
+ "findByProvider": {
761
+ "name": "findByProvider",
762
+ "async": true,
763
+ "parameters": [
764
+ {
765
+ "name": "providerType",
766
+ "type": "RepositoryProviderType",
767
+ "optional": false
768
+ }
769
+ ],
770
+ "returnType": "Promise<Repository[]>",
771
+ "isStatic": false,
772
+ "isPublic": true
773
+ },
774
+ "getOrCreate": {
775
+ "name": "getOrCreate",
776
+ "async": true,
777
+ "parameters": [
778
+ {
779
+ "name": "owner",
780
+ "type": "string",
781
+ "optional": false
782
+ },
783
+ {
784
+ "name": "name",
785
+ "type": "string",
786
+ "optional": false
787
+ },
788
+ {
789
+ "name": "options",
790
+ "type": "object",
791
+ "optional": true
792
+ }
793
+ ],
794
+ "returnType": "Promise<Repository>",
795
+ "isStatic": false,
796
+ "isPublic": true
797
+ },
798
+ "syncAll": {
799
+ "name": "syncAll",
800
+ "async": true,
801
+ "parameters": [
802
+ {
803
+ "name": "options",
804
+ "type": "object",
805
+ "optional": true
806
+ }
807
+ ],
808
+ "returnType": "Promise<Repository[]>",
809
+ "isStatic": false,
810
+ "isPublic": true
811
+ },
812
+ "findWithOpenIssues": {
813
+ "name": "findWithOpenIssues",
814
+ "async": true,
815
+ "parameters": [],
816
+ "returnType": "Promise<Repository[]>",
817
+ "isStatic": false,
818
+ "isPublic": true
819
+ },
820
+ "findByTenant": {
821
+ "name": "findByTenant",
822
+ "async": true,
823
+ "parameters": [
824
+ {
825
+ "name": "tenantId",
826
+ "type": "string",
827
+ "optional": false
828
+ }
829
+ ],
830
+ "returnType": "Promise<Repository[]>",
831
+ "isStatic": false,
832
+ "isPublic": true
833
+ },
834
+ "findGlobal": {
835
+ "name": "findGlobal",
836
+ "async": true,
837
+ "parameters": [],
838
+ "returnType": "Promise<Repository[]>",
839
+ "isStatic": false,
840
+ "isPublic": true
841
+ },
842
+ "findWithGlobals": {
843
+ "name": "findWithGlobals",
844
+ "async": true,
845
+ "parameters": [
846
+ {
847
+ "name": "tenantId",
848
+ "type": "string",
849
+ "optional": false
850
+ }
851
+ ],
852
+ "returnType": "Promise<Repository[]>",
853
+ "isStatic": false,
854
+ "isPublic": true
855
+ }
856
+ },
857
+ "decoratorConfig": {},
858
+ "extends": "SmrtCollection",
859
+ "extendsTypeArg": "Repository",
860
+ "exportName": "RepositoryCollection",
861
+ "collectionExportName": "RepositoryCollectionCollection",
862
+ "schema": {
863
+ "tableName": "repository_collections",
864
+ "ddl": "CREATE TABLE IF NOT EXISTS \"repository_collections\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
865
+ "columns": {
866
+ "id": {
867
+ "type": "UUID",
868
+ "primaryKey": true,
869
+ "referenceKind": "id",
870
+ "notNull": true
871
+ },
872
+ "slug": {
873
+ "type": "TEXT",
874
+ "notNull": true
875
+ },
876
+ "context": {
877
+ "type": "TEXT",
878
+ "notNull": true,
879
+ "default": ""
880
+ },
881
+ "created_at": {
882
+ "type": "TIMESTAMP",
883
+ "notNull": true,
884
+ "default": "current_timestamp"
885
+ },
886
+ "updated_at": {
887
+ "type": "TIMESTAMP",
888
+ "notNull": true,
889
+ "default": "current_timestamp"
890
+ }
891
+ },
892
+ "indexes": [
893
+ {
894
+ "name": "repository_collections_id_idx",
895
+ "columns": [
896
+ "id"
897
+ ]
898
+ },
899
+ {
900
+ "name": "repository_collections_slug_context_idx",
901
+ "columns": [
902
+ "slug",
903
+ "context"
904
+ ],
905
+ "unique": true
906
+ }
907
+ ],
908
+ "version": "a9b3565e"
909
+ }
910
+ },
911
+ "@happyvertical/smrt-projects:Comment": {
912
+ "name": "comment",
913
+ "className": "Comment",
914
+ "qualifiedName": "@happyvertical/smrt-projects:Comment",
915
+ "collection": "comments",
916
+ "filePath": "/home/runner/_work/smrt/smrt/packages/projects/src/models/Comment.ts",
917
+ "packageName": "@happyvertical/smrt-projects",
918
+ "fields": {
919
+ "tenantId": {
920
+ "type": "text",
921
+ "required": false,
922
+ "_meta": {
923
+ "sqlType": "UUID",
924
+ "nullable": true,
925
+ "__tenancy": {
926
+ "isTenantIdField": true,
927
+ "autoFilter": true,
928
+ "required": false,
929
+ "autoPopulate": true,
930
+ "nullable": true,
931
+ "mode": "optional",
932
+ "field": "tenantId",
933
+ "allowSuperAdminBypass": false
934
+ }
935
+ }
936
+ },
937
+ "issueId": {
938
+ "type": "foreignKey",
939
+ "required": false,
940
+ "related": "Issue"
941
+ },
942
+ "commentId": {
943
+ "type": "text",
944
+ "required": false,
945
+ "default": ""
946
+ },
947
+ "body": {
948
+ "type": "text",
949
+ "required": false,
950
+ "default": ""
951
+ },
952
+ "author": {
953
+ "type": "text",
954
+ "required": false,
955
+ "default": ""
956
+ },
957
+ "createdAt": {
958
+ "type": "datetime",
959
+ "required": false
960
+ },
961
+ "updatedAt": {
962
+ "type": "datetime",
963
+ "required": false
964
+ },
965
+ "url": {
966
+ "type": "text",
967
+ "required": false,
968
+ "default": ""
969
+ }
970
+ },
971
+ "methods": {
972
+ "isQuestion": {
973
+ "name": "isQuestion",
974
+ "async": true,
975
+ "parameters": [],
976
+ "returnType": "Promise<boolean>",
977
+ "isStatic": false,
978
+ "isPublic": true
979
+ },
980
+ "isApproval": {
981
+ "name": "isApproval",
982
+ "async": true,
983
+ "parameters": [],
984
+ "returnType": "Promise<boolean>",
985
+ "isStatic": false,
986
+ "isPublic": true
987
+ },
988
+ "requestsChanges": {
989
+ "name": "requestsChanges",
990
+ "async": true,
991
+ "parameters": [],
992
+ "returnType": "Promise<boolean>",
993
+ "isStatic": false,
994
+ "isPublic": true
995
+ },
996
+ "extractActionItems": {
997
+ "name": "extractActionItems",
998
+ "async": true,
999
+ "parameters": [],
1000
+ "returnType": "Promise<string[]>",
1001
+ "isStatic": false,
1002
+ "isPublic": true
1003
+ },
1004
+ "summarize": {
1005
+ "name": "summarize",
1006
+ "async": true,
1007
+ "parameters": [],
1008
+ "returnType": "Promise<string>",
1009
+ "isStatic": false,
1010
+ "isPublic": true
1011
+ },
1012
+ "getSentiment": {
1013
+ "name": "getSentiment",
1014
+ "async": true,
1015
+ "parameters": [],
1016
+ "returnType": "Promise<'positive' | 'negative' | 'neutral'>",
1017
+ "isStatic": false,
1018
+ "isPublic": true
1019
+ }
1020
+ },
1021
+ "decoratorConfig": {
1022
+ "api": {
1023
+ "include": [
1024
+ "list",
1025
+ "get"
1026
+ ]
1027
+ },
1028
+ "mcp": {
1029
+ "include": [
1030
+ "list",
1031
+ "get"
1032
+ ]
1033
+ },
1034
+ "cli": {
1035
+ "include": [
1036
+ "list",
1037
+ "get"
1038
+ ]
1039
+ },
1040
+ "tenantScoped": {
1041
+ "mode": "optional"
1042
+ }
1043
+ },
1044
+ "extends": "SmrtObject",
1045
+ "exportName": "Comment",
1046
+ "collectionExportName": "CommentCollection",
1047
+ "schema": {
1048
+ "tableName": "comments",
1049
+ "ddl": "CREATE TABLE IF NOT EXISTS \"comments\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"tenant_id\" UUID,\n \"issue_id\" UUID,\n \"comment_id\" TEXT DEFAULT '',\n \"body\" TEXT DEFAULT '',\n \"author\" TEXT DEFAULT '',\n \"url\" TEXT DEFAULT ''\n);",
1050
+ "columns": {
1051
+ "id": {
1052
+ "type": "UUID",
1053
+ "primaryKey": true,
1054
+ "referenceKind": "id",
1055
+ "notNull": true
1056
+ },
1057
+ "slug": {
1058
+ "type": "TEXT",
1059
+ "notNull": true
1060
+ },
1061
+ "context": {
1062
+ "type": "TEXT",
1063
+ "notNull": true,
1064
+ "default": ""
1065
+ },
1066
+ "created_at": {
1067
+ "type": "TIMESTAMP",
1068
+ "notNull": true,
1069
+ "default": "current_timestamp"
1070
+ },
1071
+ "updated_at": {
1072
+ "type": "TIMESTAMP",
1073
+ "notNull": true,
1074
+ "default": "current_timestamp"
1075
+ },
1076
+ "tenant_id": {
1077
+ "type": "UUID",
1078
+ "referenceKind": "tenantId",
1079
+ "notNull": false,
1080
+ "unique": false
1081
+ },
1082
+ "issue_id": {
1083
+ "type": "UUID",
1084
+ "referenceKind": "foreignKey",
1085
+ "notNull": false,
1086
+ "unique": false
1087
+ },
1088
+ "comment_id": {
1089
+ "type": "TEXT",
1090
+ "notNull": false,
1091
+ "unique": false,
1092
+ "default": ""
1093
+ },
1094
+ "body": {
1095
+ "type": "TEXT",
1096
+ "notNull": false,
1097
+ "unique": false,
1098
+ "default": ""
1099
+ },
1100
+ "author": {
1101
+ "type": "TEXT",
1102
+ "notNull": false,
1103
+ "unique": false,
1104
+ "default": ""
1105
+ },
1106
+ "url": {
1107
+ "type": "TEXT",
1108
+ "notNull": false,
1109
+ "unique": false,
1110
+ "default": ""
1111
+ }
1112
+ },
1113
+ "indexes": [
1114
+ {
1115
+ "name": "comments_id_idx",
1116
+ "columns": [
1117
+ "id"
1118
+ ]
1119
+ },
1120
+ {
1121
+ "name": "comments_slug_context_idx",
1122
+ "columns": [
1123
+ "slug",
1124
+ "context"
1125
+ ],
1126
+ "unique": true
1127
+ }
1128
+ ],
1129
+ "version": "ed899e3f"
1130
+ }
1131
+ },
1132
+ "@happyvertical/smrt-projects:Issue": {
1133
+ "name": "issue",
1134
+ "className": "Issue",
1135
+ "qualifiedName": "@happyvertical/smrt-projects:Issue",
1136
+ "collection": "issues",
1137
+ "filePath": "/home/runner/_work/smrt/smrt/packages/projects/src/models/Issue.ts",
1138
+ "packageName": "@happyvertical/smrt-projects",
1139
+ "fields": {
1140
+ "created_at": {
1141
+ "type": "datetime",
1142
+ "required": false
1143
+ },
1144
+ "updated_at": {
1145
+ "type": "datetime",
1146
+ "required": false
1147
+ },
1148
+ "tenantId": {
1149
+ "type": "text",
1150
+ "required": false,
1151
+ "_meta": {
1152
+ "sqlType": "UUID",
1153
+ "nullable": true,
1154
+ "__tenancy": {
1155
+ "isTenantIdField": true,
1156
+ "autoFilter": true,
1157
+ "required": false,
1158
+ "autoPopulate": true,
1159
+ "nullable": true,
1160
+ "mode": "optional",
1161
+ "field": "tenantId",
1162
+ "allowSuperAdminBypass": false
1163
+ }
1164
+ }
1165
+ },
1166
+ "repositoryId": {
1167
+ "type": "foreignKey",
1168
+ "required": true,
1169
+ "related": "Repository",
1170
+ "_meta": {
1171
+ "required": true
1172
+ }
1173
+ },
1174
+ "number": {
1175
+ "type": "integer",
1176
+ "required": false,
1177
+ "default": 0
1178
+ },
1179
+ "nodeId": {
1180
+ "type": "text",
1181
+ "required": false,
1182
+ "default": ""
1183
+ },
1184
+ "title": {
1185
+ "type": "text",
1186
+ "required": false,
1187
+ "default": ""
1188
+ },
1189
+ "body": {
1190
+ "type": "text",
1191
+ "required": false,
1192
+ "default": ""
1193
+ },
1194
+ "state": {
1195
+ "type": "text",
1196
+ "required": false,
1197
+ "default": "open"
1198
+ },
1199
+ "author": {
1200
+ "type": "text",
1201
+ "required": false,
1202
+ "default": ""
1203
+ },
1204
+ "labels": {
1205
+ "type": "json",
1206
+ "required": false,
1207
+ "default": []
1208
+ },
1209
+ "assignees": {
1210
+ "type": "json",
1211
+ "required": false,
1212
+ "default": []
1213
+ },
1214
+ "commentsCount": {
1215
+ "type": "integer",
1216
+ "required": false,
1217
+ "default": 0
1218
+ },
1219
+ "lastSyncedAt": {
1220
+ "type": "datetime",
1221
+ "required": false
1222
+ },
1223
+ "originalBody": {
1224
+ "type": "text",
1225
+ "required": false,
1226
+ "default": ""
1227
+ },
1228
+ "synthesisCount": {
1229
+ "type": "integer",
1230
+ "required": false,
1231
+ "default": 0
1232
+ }
1233
+ },
1234
+ "methods": {
1235
+ "getAiUsageSnapshot": {
1236
+ "name": "getAiUsageSnapshot",
1237
+ "async": false,
1238
+ "parameters": [],
1239
+ "returnType": "AiUsageSnapshot | undefined",
1240
+ "isStatic": false,
1241
+ "isPublic": true
1242
+ },
1243
+ "resetAiUsage": {
1244
+ "name": "resetAiUsage",
1245
+ "async": false,
1246
+ "parameters": [],
1247
+ "returnType": "void",
1248
+ "isStatic": false,
1249
+ "isPublic": true
1250
+ },
1251
+ "listAiUsage": {
1252
+ "name": "listAiUsage",
1253
+ "async": true,
1254
+ "parameters": [
1255
+ {
1256
+ "name": "options",
1257
+ "type": "AiUsageListOptions",
1258
+ "optional": true
1259
+ }
1260
+ ],
1261
+ "returnType": "Promise<SmrtAiUsageRecord[]>",
1262
+ "isStatic": false,
1263
+ "isPublic": true
1264
+ },
1265
+ "summarizeAiUsage": {
1266
+ "name": "summarizeAiUsage",
1267
+ "async": true,
1268
+ "parameters": [
1269
+ {
1270
+ "name": "options",
1271
+ "type": "AiUsageSummaryOptions",
1272
+ "optional": true
1273
+ }
1274
+ ],
1275
+ "returnType": "Promise<Record<string, AiUsageStats>>",
1276
+ "isStatic": false,
1277
+ "isPublic": true
1278
+ },
1279
+ "destroy": {
1280
+ "name": "destroy",
1281
+ "async": false,
1282
+ "parameters": [],
1283
+ "returnType": "void",
1284
+ "isStatic": false,
1285
+ "isPublic": true
1286
+ },
1287
+ "markAsPersisted": {
1288
+ "name": "markAsPersisted",
1289
+ "async": false,
1290
+ "parameters": [],
1291
+ "returnType": "void",
1292
+ "isStatic": false,
1293
+ "isPublic": true
1294
+ },
1295
+ "initialize": {
1296
+ "name": "initialize",
1297
+ "async": true,
1298
+ "parameters": [],
1299
+ "returnType": "Promise",
1300
+ "isStatic": false,
1301
+ "isPublic": true
1302
+ },
1303
+ "loadDataFromDb": {
1304
+ "name": "loadDataFromDb",
1305
+ "async": true,
1306
+ "parameters": [
1307
+ {
1308
+ "name": "data",
1309
+ "type": "any",
1310
+ "optional": false
1311
+ }
1312
+ ],
1313
+ "returnType": "any",
1314
+ "isStatic": false,
1315
+ "isPublic": true
1316
+ },
1317
+ "getFields": {
1318
+ "name": "getFields",
1319
+ "async": true,
1320
+ "parameters": [],
1321
+ "returnType": "any",
1322
+ "isStatic": false,
1323
+ "isPublic": true
1324
+ },
1325
+ "toJSON": {
1326
+ "name": "toJSON",
1327
+ "async": false,
1328
+ "parameters": [],
1329
+ "returnType": "any",
1330
+ "isStatic": false,
1331
+ "isPublic": true
1332
+ },
1333
+ "toPlainObject": {
1334
+ "name": "toPlainObject",
1335
+ "async": false,
1336
+ "parameters": [],
1337
+ "returnType": "Record<string>",
1338
+ "isStatic": false,
1339
+ "isPublic": true
1340
+ },
1341
+ "toPublicJSON": {
1342
+ "name": "toPublicJSON",
1343
+ "async": false,
1344
+ "parameters": [],
1345
+ "returnType": "Record<string>",
1346
+ "isStatic": false,
1347
+ "isPublic": true
1348
+ },
1349
+ "getId": {
1350
+ "name": "getId",
1351
+ "async": true,
1352
+ "parameters": [],
1353
+ "returnType": "any",
1354
+ "isStatic": false,
1355
+ "isPublic": true
1356
+ },
1357
+ "getSlug": {
1358
+ "name": "getSlug",
1359
+ "async": true,
1360
+ "parameters": [],
1361
+ "returnType": "any",
1362
+ "isStatic": false,
1363
+ "isPublic": true
1364
+ },
1365
+ "getSavedId": {
1366
+ "name": "getSavedId",
1367
+ "async": true,
1368
+ "parameters": [],
1369
+ "returnType": "any",
1370
+ "isStatic": false,
1371
+ "isPublic": true
1372
+ },
1373
+ "isSaved": {
1374
+ "name": "isSaved",
1375
+ "async": true,
1376
+ "parameters": [],
1377
+ "returnType": "any",
1378
+ "isStatic": false,
1379
+ "isPublic": true
1380
+ },
1381
+ "save": {
1382
+ "name": "save",
1383
+ "async": true,
1384
+ "parameters": [],
1385
+ "returnType": "any",
1386
+ "isStatic": false,
1387
+ "isPublic": true
1388
+ },
1389
+ "classifyConstraintError": {
1390
+ "name": "classifyConstraintError",
1391
+ "async": false,
1392
+ "parameters": [
1393
+ {
1394
+ "name": "message",
1395
+ "type": "string",
1396
+ "optional": false
1397
+ }
1398
+ ],
1399
+ "returnType": "'unique' | 'not_null' | null",
1400
+ "isStatic": true,
1401
+ "isPublic": true
1402
+ },
1403
+ "loadFromId": {
1404
+ "name": "loadFromId",
1405
+ "async": true,
1406
+ "parameters": [],
1407
+ "returnType": "any",
1408
+ "isStatic": false,
1409
+ "isPublic": true
1410
+ },
1411
+ "loadFromSlug": {
1412
+ "name": "loadFromSlug",
1413
+ "async": true,
1414
+ "parameters": [],
1415
+ "returnType": "any",
1416
+ "isStatic": false,
1417
+ "isPublic": true
1418
+ },
1419
+ "is": {
1420
+ "name": "is",
1421
+ "async": true,
1422
+ "parameters": [
1423
+ {
1424
+ "name": "criteria",
1425
+ "type": "string",
1426
+ "optional": false
1427
+ },
1428
+ {
1429
+ "name": "options",
1430
+ "type": "any",
1431
+ "optional": true
1432
+ }
1433
+ ],
1434
+ "returnType": "any",
1435
+ "isStatic": false,
1436
+ "isPublic": true
1437
+ },
1438
+ "do": {
1439
+ "name": "do",
1440
+ "async": true,
1441
+ "parameters": [
1442
+ {
1443
+ "name": "instructions",
1444
+ "type": "string",
1445
+ "optional": false
1446
+ },
1447
+ {
1448
+ "name": "options",
1449
+ "type": "any",
1450
+ "optional": true
1451
+ }
1452
+ ],
1453
+ "returnType": "any",
1454
+ "isStatic": false,
1455
+ "isPublic": true
1456
+ },
1457
+ "describe": {
1458
+ "name": "describe",
1459
+ "async": true,
1460
+ "parameters": [
1461
+ {
1462
+ "name": "options",
1463
+ "type": "any",
1464
+ "optional": true
1465
+ }
1466
+ ],
1467
+ "returnType": "any",
1468
+ "isStatic": false,
1469
+ "isPublic": true
1470
+ },
1471
+ "delete": {
1472
+ "name": "delete",
1473
+ "async": true,
1474
+ "parameters": [],
1475
+ "returnType": "Promise<void>",
1476
+ "isStatic": false,
1477
+ "isPublic": true
1478
+ },
1479
+ "isRelatedLoaded": {
1480
+ "name": "isRelatedLoaded",
1481
+ "async": false,
1482
+ "parameters": [
1483
+ {
1484
+ "name": "fieldName",
1485
+ "type": "string",
1486
+ "optional": false
1487
+ }
1488
+ ],
1489
+ "returnType": "boolean",
1490
+ "isStatic": false,
1491
+ "isPublic": true
1492
+ },
1493
+ "loadRelated": {
1494
+ "name": "loadRelated",
1495
+ "async": true,
1496
+ "parameters": [
1497
+ {
1498
+ "name": "fieldName",
1499
+ "type": "string",
1500
+ "optional": false
1501
+ },
1502
+ {
1503
+ "name": "opts",
1504
+ "type": "LoadRelatedOptions",
1505
+ "optional": true
1506
+ }
1507
+ ],
1508
+ "returnType": "Promise<any>",
1509
+ "isStatic": false,
1510
+ "isPublic": true
1511
+ },
1512
+ "loadRelatedMany": {
1513
+ "name": "loadRelatedMany",
1514
+ "async": true,
1515
+ "parameters": [
1516
+ {
1517
+ "name": "fieldName",
1518
+ "type": "string",
1519
+ "optional": false
1520
+ },
1521
+ {
1522
+ "name": "opts",
1523
+ "type": "LoadRelatedOptions",
1524
+ "optional": true
1525
+ }
1526
+ ],
1527
+ "returnType": "Promise<any[]>",
1528
+ "isStatic": false,
1529
+ "isPublic": true
1530
+ },
1531
+ "getRelated": {
1532
+ "name": "getRelated",
1533
+ "async": true,
1534
+ "parameters": [
1535
+ {
1536
+ "name": "fieldName",
1537
+ "type": "string",
1538
+ "optional": false
1539
+ },
1540
+ {
1541
+ "name": "opts",
1542
+ "type": "LoadRelatedOptions",
1543
+ "optional": true
1544
+ }
1545
+ ],
1546
+ "returnType": "Promise<any>",
1547
+ "isStatic": false,
1548
+ "isPublic": true
1549
+ },
1550
+ "getAvailableTools": {
1551
+ "name": "getAvailableTools",
1552
+ "async": false,
1553
+ "parameters": [],
1554
+ "returnType": "AITool[]",
1555
+ "isStatic": false,
1556
+ "isPublic": true
1557
+ },
1558
+ "executeToolCall": {
1559
+ "name": "executeToolCall",
1560
+ "async": true,
1561
+ "parameters": [
1562
+ {
1563
+ "name": "toolCall",
1564
+ "type": "ToolCall",
1565
+ "optional": false
1566
+ }
1567
+ ],
1568
+ "returnType": "Promise<ToolCallResult>",
1569
+ "isStatic": false,
1570
+ "isPublic": true
1571
+ },
1572
+ "remember": {
1573
+ "name": "remember",
1574
+ "async": true,
1575
+ "parameters": [
1576
+ {
1577
+ "name": "options",
1578
+ "type": "object",
1579
+ "optional": false
1580
+ }
1581
+ ],
1582
+ "returnType": "Promise<void>",
1583
+ "isStatic": false,
1584
+ "isPublic": true
1585
+ },
1586
+ "recall": {
1587
+ "name": "recall",
1588
+ "async": true,
1589
+ "parameters": [
1590
+ {
1591
+ "name": "options",
1592
+ "type": "object",
1593
+ "optional": false
1594
+ }
1595
+ ],
1596
+ "returnType": "Promise<any | null>",
1597
+ "isStatic": false,
1598
+ "isPublic": true
1599
+ },
1600
+ "recallAll": {
1601
+ "name": "recallAll",
1602
+ "async": true,
1603
+ "parameters": [
1604
+ {
1605
+ "name": "options",
1606
+ "type": "object",
1607
+ "optional": true
1608
+ }
1609
+ ],
1610
+ "returnType": "Promise<Map<string, any>>",
1611
+ "isStatic": false,
1612
+ "isPublic": true
1613
+ },
1614
+ "forget": {
1615
+ "name": "forget",
1616
+ "async": true,
1617
+ "parameters": [
1618
+ {
1619
+ "name": "options",
1620
+ "type": "object",
1621
+ "optional": false
1622
+ }
1623
+ ],
1624
+ "returnType": "Promise<void>",
1625
+ "isStatic": false,
1626
+ "isPublic": true
1627
+ },
1628
+ "forgetScope": {
1629
+ "name": "forgetScope",
1630
+ "async": true,
1631
+ "parameters": [
1632
+ {
1633
+ "name": "options",
1634
+ "type": "object",
1635
+ "optional": false
1636
+ }
1637
+ ],
1638
+ "returnType": "Promise<number>",
1639
+ "isStatic": false,
1640
+ "isPublic": true
1641
+ },
1642
+ "generateEmbeddings": {
1643
+ "name": "generateEmbeddings",
1644
+ "async": true,
1645
+ "parameters": [
1646
+ {
1647
+ "name": "options",
1648
+ "type": "GenerateEmbeddingsOptions",
1649
+ "optional": true
1650
+ }
1651
+ ],
1652
+ "returnType": "Promise<void>",
1653
+ "isStatic": false,
1654
+ "isPublic": true
1655
+ },
1656
+ "getEmbedding": {
1657
+ "name": "getEmbedding",
1658
+ "async": true,
1659
+ "parameters": [
1660
+ {
1661
+ "name": "fieldName",
1662
+ "type": "string",
1663
+ "optional": false
1664
+ },
1665
+ {
1666
+ "name": "model",
1667
+ "type": "string",
1668
+ "optional": true
1669
+ }
1670
+ ],
1671
+ "returnType": "Promise<number[] | null>",
1672
+ "isStatic": false,
1673
+ "isPublic": true
1674
+ },
1675
+ "hasStaleEmbeddings": {
1676
+ "name": "hasStaleEmbeddings",
1677
+ "async": true,
1678
+ "parameters": [],
1679
+ "returnType": "Promise<boolean>",
1680
+ "isStatic": false,
1681
+ "isPublic": true
1682
+ },
1683
+ "clearEmbeddings": {
1684
+ "name": "clearEmbeddings",
1685
+ "async": true,
1686
+ "parameters": [],
1687
+ "returnType": "Promise<void>",
1688
+ "isStatic": false,
1689
+ "isPublic": true
1690
+ },
1691
+ "getRepository": {
1692
+ "name": "getRepository",
1693
+ "async": true,
1694
+ "parameters": [],
1695
+ "returnType": "Promise<Repository>",
1696
+ "isStatic": false,
1697
+ "isPublic": true
1698
+ },
1699
+ "getClient": {
1700
+ "name": "getClient",
1701
+ "async": true,
1702
+ "parameters": [],
1703
+ "returnType": "Promise<IRepository>",
1704
+ "isStatic": false,
1705
+ "isPublic": true
1706
+ },
1707
+ "clearCache": {
1708
+ "name": "clearCache",
1709
+ "async": false,
1710
+ "parameters": [],
1711
+ "returnType": "void",
1712
+ "isStatic": false,
1713
+ "isPublic": true
1714
+ },
1715
+ "sync": {
1716
+ "name": "sync",
1717
+ "async": true,
1718
+ "parameters": [
1719
+ {
1720
+ "name": "options",
1721
+ "type": "SyncOptions",
1722
+ "optional": true
1723
+ }
1724
+ ],
1725
+ "returnType": "Promise",
1726
+ "isStatic": false,
1727
+ "isPublic": true
1728
+ },
1729
+ "getComments": {
1730
+ "name": "getComments",
1731
+ "async": true,
1732
+ "parameters": [],
1733
+ "returnType": "Promise<Comment[]>",
1734
+ "isStatic": false,
1735
+ "isPublic": true
1736
+ },
1737
+ "addComment": {
1738
+ "name": "addComment",
1739
+ "async": true,
1740
+ "parameters": [
1741
+ {
1742
+ "name": "body",
1743
+ "type": "string",
1744
+ "optional": false
1745
+ }
1746
+ ],
1747
+ "returnType": "Promise<Comment>",
1748
+ "isStatic": false,
1749
+ "isPublic": true
1750
+ },
1751
+ "incorporateFeedback": {
1752
+ "name": "incorporateFeedback",
1753
+ "async": true,
1754
+ "parameters": [
1755
+ {
1756
+ "name": "options",
1757
+ "type": "IncorporateFeedbackOptions",
1758
+ "optional": true
1759
+ }
1760
+ ],
1761
+ "returnType": "Promise<IncorporateFeedbackResult>",
1762
+ "isStatic": false,
1763
+ "isPublic": true
1764
+ },
1765
+ "rollback": {
1766
+ "name": "rollback",
1767
+ "async": true,
1768
+ "parameters": [],
1769
+ "returnType": "Promise<object>",
1770
+ "isStatic": false,
1771
+ "isPublic": true
1772
+ },
1773
+ "needsReview": {
1774
+ "name": "needsReview",
1775
+ "async": true,
1776
+ "parameters": [],
1777
+ "returnType": "Promise<boolean>",
1778
+ "isStatic": false,
1779
+ "isPublic": true
1780
+ },
1781
+ "isBugReport": {
1782
+ "name": "isBugReport",
1783
+ "async": true,
1784
+ "parameters": [],
1785
+ "returnType": "Promise<boolean>",
1786
+ "isStatic": false,
1787
+ "isPublic": true
1788
+ },
1789
+ "isFeatureRequest": {
1790
+ "name": "isFeatureRequest",
1791
+ "async": true,
1792
+ "parameters": [],
1793
+ "returnType": "Promise<boolean>",
1794
+ "isStatic": false,
1795
+ "isPublic": true
1796
+ },
1797
+ "suggestLabels": {
1798
+ "name": "suggestLabels",
1799
+ "async": true,
1800
+ "parameters": [],
1801
+ "returnType": "Promise<string[]>",
1802
+ "isStatic": false,
1803
+ "isPublic": true
1804
+ },
1805
+ "close": {
1806
+ "name": "close",
1807
+ "async": true,
1808
+ "parameters": [],
1809
+ "returnType": "Promise<void>",
1810
+ "isStatic": false,
1811
+ "isPublic": true
1812
+ },
1813
+ "addLabels": {
1814
+ "name": "addLabels",
1815
+ "async": true,
1816
+ "parameters": [
1817
+ {
1818
+ "name": "labels",
1819
+ "type": "string[]",
1820
+ "optional": false
1821
+ }
1822
+ ],
1823
+ "returnType": "Promise<void>",
1824
+ "isStatic": false,
1825
+ "isPublic": true
1826
+ },
1827
+ "removeLabel": {
1828
+ "name": "removeLabel",
1829
+ "async": true,
1830
+ "parameters": [
1831
+ {
1832
+ "name": "label",
1833
+ "type": "string",
1834
+ "optional": false
1835
+ }
1836
+ ],
1837
+ "returnType": "Promise<void>",
1838
+ "isStatic": false,
1839
+ "isPublic": true
1840
+ },
1841
+ "assign": {
1842
+ "name": "assign",
1843
+ "async": true,
1844
+ "parameters": [
1845
+ {
1846
+ "name": "assignees",
1847
+ "type": "string[]",
1848
+ "optional": false
1849
+ }
1850
+ ],
1851
+ "returnType": "Promise<void>",
1852
+ "isStatic": false,
1853
+ "isPublic": true
1854
+ },
1855
+ "getUrl": {
1856
+ "name": "getUrl",
1857
+ "async": false,
1858
+ "parameters": [],
1859
+ "returnType": "string",
1860
+ "isStatic": false,
1861
+ "isPublic": true
1862
+ }
1863
+ },
1864
+ "decoratorConfig": {
1865
+ "tableStrategy": "sti",
1866
+ "api": {
1867
+ "include": [
1868
+ "list",
1869
+ "get",
1870
+ "create",
1871
+ "update"
1872
+ ]
1873
+ },
1874
+ "mcp": {
1875
+ "include": [
1876
+ "list",
1877
+ "get",
1878
+ "sync",
1879
+ "incorporateFeedback"
1880
+ ]
1881
+ },
1882
+ "cli": {
1883
+ "include": [
1884
+ "list",
1885
+ "get",
1886
+ "sync",
1887
+ "incorporateFeedback",
1888
+ "rollback"
1889
+ ],
1890
+ "skipApiCheck": true
1891
+ },
1892
+ "tenantScoped": {
1893
+ "mode": "optional"
1894
+ }
1895
+ },
1896
+ "extends": "SmrtObject",
1897
+ "exportName": "Issue",
1898
+ "collectionExportName": "IssueCollection",
1899
+ "validationRules": [
1900
+ {
1901
+ "field": "repositoryId",
1902
+ "rule": "required",
1903
+ "fieldType": "foreignKey"
1904
+ }
1905
+ ],
1906
+ "schema": {
1907
+ "tableName": "issues",
1908
+ "ddl": "CREATE TABLE IF NOT EXISTS \"issues\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"_meta_type\" TEXT NOT NULL,\n \"_meta_data\" JSON,\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"tenant_id\" UUID,\n \"repository_id\" UUID,\n \"number\" INTEGER DEFAULT 0,\n \"node_id\" TEXT DEFAULT '',\n \"title\" TEXT DEFAULT '',\n \"body\" TEXT DEFAULT '',\n \"state\" TEXT DEFAULT 'open',\n \"author\" TEXT DEFAULT '',\n \"labels\" JSON DEFAULT '[]',\n \"assignees\" JSON DEFAULT '[]',\n \"comments_count\" INTEGER DEFAULT 0,\n \"last_synced_at\" TIMESTAMP,\n \"original_body\" TEXT DEFAULT '',\n \"synthesis_count\" INTEGER DEFAULT 0,\n \"head_ref\" TEXT DEFAULT '',\n \"base_ref\" TEXT DEFAULT '',\n \"merged\" BOOLEAN DEFAULT FALSE,\n \"merged_at\" TIMESTAMP,\n \"mergeable\" BOOLEAN DEFAULT TRUE,\n \"draft\" BOOLEAN DEFAULT FALSE,\n \"additions\" INTEGER DEFAULT 0,\n \"deletions\" INTEGER DEFAULT 0,\n \"changed_files\" INTEGER DEFAULT 0\n);",
1909
+ "columns": {
1910
+ "id": {
1911
+ "type": "UUID",
1912
+ "primaryKey": true,
1913
+ "referenceKind": "id",
1914
+ "notNull": true
1915
+ },
1916
+ "slug": {
1917
+ "type": "TEXT",
1918
+ "notNull": true
1919
+ },
1920
+ "context": {
1921
+ "type": "TEXT",
1922
+ "notNull": true,
1923
+ "default": ""
1924
+ },
1925
+ "_meta_type": {
1926
+ "type": "TEXT",
1927
+ "notNull": true
1928
+ },
1929
+ "_meta_data": {
1930
+ "type": "JSON",
1931
+ "notNull": false
1932
+ },
1933
+ "created_at": {
1934
+ "type": "TIMESTAMP",
1935
+ "notNull": true,
1936
+ "default": "current_timestamp"
1937
+ },
1938
+ "updated_at": {
1939
+ "type": "TIMESTAMP",
1940
+ "notNull": true,
1941
+ "default": "current_timestamp"
1942
+ },
1943
+ "tenant_id": {
1944
+ "type": "UUID",
1945
+ "referenceKind": "tenantId",
1946
+ "notNull": false
1947
+ },
1948
+ "repository_id": {
1949
+ "type": "UUID",
1950
+ "referenceKind": "foreignKey",
1951
+ "notNull": false
1952
+ },
1953
+ "number": {
1954
+ "type": "INTEGER",
1955
+ "notNull": false,
1956
+ "default": 0
1957
+ },
1958
+ "node_id": {
1959
+ "type": "TEXT",
1960
+ "notNull": false,
1961
+ "default": ""
1962
+ },
1963
+ "title": {
1964
+ "type": "TEXT",
1965
+ "notNull": false,
1966
+ "default": ""
1967
+ },
1968
+ "body": {
1969
+ "type": "TEXT",
1970
+ "notNull": false,
1971
+ "default": ""
1972
+ },
1973
+ "state": {
1974
+ "type": "TEXT",
1975
+ "notNull": false,
1976
+ "default": "open"
1977
+ },
1978
+ "author": {
1979
+ "type": "TEXT",
1980
+ "notNull": false,
1981
+ "default": ""
1982
+ },
1983
+ "labels": {
1984
+ "type": "JSON",
1985
+ "notNull": false,
1986
+ "default": []
1987
+ },
1988
+ "assignees": {
1989
+ "type": "JSON",
1990
+ "notNull": false,
1991
+ "default": []
1992
+ },
1993
+ "comments_count": {
1994
+ "type": "INTEGER",
1995
+ "notNull": false,
1996
+ "default": 0
1997
+ },
1998
+ "last_synced_at": {
1999
+ "type": "TIMESTAMP",
2000
+ "notNull": false
2001
+ },
2002
+ "original_body": {
2003
+ "type": "TEXT",
2004
+ "notNull": false,
2005
+ "default": ""
2006
+ },
2007
+ "synthesis_count": {
2008
+ "type": "INTEGER",
2009
+ "notNull": false,
2010
+ "default": 0
2011
+ },
2012
+ "head_ref": {
2013
+ "type": "TEXT",
2014
+ "notNull": false,
2015
+ "default": ""
2016
+ },
2017
+ "base_ref": {
2018
+ "type": "TEXT",
2019
+ "notNull": false,
2020
+ "default": ""
2021
+ },
2022
+ "merged": {
2023
+ "type": "BOOLEAN",
2024
+ "notNull": false,
2025
+ "default": false
2026
+ },
2027
+ "merged_at": {
2028
+ "type": "TIMESTAMP",
2029
+ "notNull": false
2030
+ },
2031
+ "mergeable": {
2032
+ "type": "BOOLEAN",
2033
+ "notNull": false,
2034
+ "default": true
2035
+ },
2036
+ "draft": {
2037
+ "type": "BOOLEAN",
2038
+ "notNull": false,
2039
+ "default": false
2040
+ },
2041
+ "additions": {
2042
+ "type": "INTEGER",
2043
+ "notNull": false,
2044
+ "default": 0
2045
+ },
2046
+ "deletions": {
2047
+ "type": "INTEGER",
2048
+ "notNull": false,
2049
+ "default": 0
2050
+ },
2051
+ "changed_files": {
2052
+ "type": "INTEGER",
2053
+ "notNull": false,
2054
+ "default": 0
2055
+ }
2056
+ },
2057
+ "indexes": [
2058
+ {
2059
+ "name": "issues_id_idx",
2060
+ "columns": [
2061
+ "id"
2062
+ ]
2063
+ },
2064
+ {
2065
+ "name": "issues_slug_context_meta_type_idx",
2066
+ "columns": [
2067
+ "slug",
2068
+ "context",
2069
+ "_meta_type"
2070
+ ],
2071
+ "unique": true
2072
+ },
2073
+ {
2074
+ "name": "issues_meta_type_idx",
2075
+ "columns": [
2076
+ "_meta_type"
2077
+ ]
2078
+ }
2079
+ ],
2080
+ "version": "e187bb4a"
2081
+ }
2082
+ },
2083
+ "@happyvertical/smrt-projects:Label": {
2084
+ "name": "label",
2085
+ "className": "Label",
2086
+ "qualifiedName": "@happyvertical/smrt-projects:Label",
2087
+ "collection": "labels",
2088
+ "filePath": "/home/runner/_work/smrt/smrt/packages/projects/src/models/Label.ts",
2089
+ "packageName": "@happyvertical/smrt-projects",
2090
+ "fields": {
2091
+ "repositoryId": {
2092
+ "type": "foreignKey",
2093
+ "required": false,
2094
+ "related": "Repository"
2095
+ },
2096
+ "name": {
2097
+ "type": "text",
2098
+ "required": false,
2099
+ "default": ""
2100
+ },
2101
+ "color": {
2102
+ "type": "text",
2103
+ "required": false,
2104
+ "default": ""
2105
+ },
2106
+ "description": {
2107
+ "type": "text",
2108
+ "required": false,
2109
+ "default": ""
2110
+ }
2111
+ },
2112
+ "methods": {
2113
+ "isTypeLabel": {
2114
+ "name": "isTypeLabel",
2115
+ "async": false,
2116
+ "parameters": [],
2117
+ "returnType": "boolean",
2118
+ "isStatic": false,
2119
+ "isPublic": true
2120
+ },
2121
+ "isPriorityLabel": {
2122
+ "name": "isPriorityLabel",
2123
+ "async": false,
2124
+ "parameters": [],
2125
+ "returnType": "boolean",
2126
+ "isStatic": false,
2127
+ "isPublic": true
2128
+ },
2129
+ "isStatusLabel": {
2130
+ "name": "isStatusLabel",
2131
+ "async": false,
2132
+ "parameters": [],
2133
+ "returnType": "boolean",
2134
+ "isStatic": false,
2135
+ "isPublic": true
2136
+ },
2137
+ "getCategory": {
2138
+ "name": "getCategory",
2139
+ "async": false,
2140
+ "parameters": [],
2141
+ "returnType": "'type' | 'priority' | 'status' | 'area' | 'other'",
2142
+ "isStatic": false,
2143
+ "isPublic": true
2144
+ },
2145
+ "getPriorityLevel": {
2146
+ "name": "getPriorityLevel",
2147
+ "async": false,
2148
+ "parameters": [],
2149
+ "returnType": "number | null",
2150
+ "isStatic": false,
2151
+ "isPublic": true
2152
+ },
2153
+ "getHexColor": {
2154
+ "name": "getHexColor",
2155
+ "async": false,
2156
+ "parameters": [],
2157
+ "returnType": "string",
2158
+ "isStatic": false,
2159
+ "isPublic": true
2160
+ },
2161
+ "createInRepository": {
2162
+ "name": "createInRepository",
2163
+ "async": true,
2164
+ "parameters": [],
2165
+ "returnType": "Promise<void>",
2166
+ "isStatic": false,
2167
+ "isPublic": true
2168
+ },
2169
+ "updateInRepository": {
2170
+ "name": "updateInRepository",
2171
+ "async": true,
2172
+ "parameters": [],
2173
+ "returnType": "Promise<void>",
2174
+ "isStatic": false,
2175
+ "isPublic": true
2176
+ }
2177
+ },
2178
+ "decoratorConfig": {
2179
+ "api": {
2180
+ "include": [
2181
+ "list",
2182
+ "get",
2183
+ "create",
2184
+ "update",
2185
+ "delete"
2186
+ ]
2187
+ },
2188
+ "mcp": {
2189
+ "include": [
2190
+ "list",
2191
+ "get",
2192
+ "create"
2193
+ ]
2194
+ },
2195
+ "cli": {
2196
+ "include": [
2197
+ "list",
2198
+ "get",
2199
+ "create",
2200
+ "update",
2201
+ "delete"
2202
+ ]
2203
+ }
2204
+ },
2205
+ "extends": "SmrtObject",
2206
+ "exportName": "Label",
2207
+ "collectionExportName": "LabelCollection",
2208
+ "schema": {
2209
+ "tableName": "labels",
2210
+ "ddl": "CREATE TABLE IF NOT EXISTS \"labels\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"repository_id\" UUID,\n \"name\" TEXT DEFAULT '',\n \"color\" TEXT DEFAULT '',\n \"description\" TEXT DEFAULT ''\n);",
2211
+ "columns": {
2212
+ "id": {
2213
+ "type": "UUID",
2214
+ "primaryKey": true,
2215
+ "referenceKind": "id",
2216
+ "notNull": true
2217
+ },
2218
+ "slug": {
2219
+ "type": "TEXT",
2220
+ "notNull": true
2221
+ },
2222
+ "context": {
2223
+ "type": "TEXT",
2224
+ "notNull": true,
2225
+ "default": ""
2226
+ },
2227
+ "created_at": {
2228
+ "type": "TIMESTAMP",
2229
+ "notNull": true,
2230
+ "default": "current_timestamp"
2231
+ },
2232
+ "updated_at": {
2233
+ "type": "TIMESTAMP",
2234
+ "notNull": true,
2235
+ "default": "current_timestamp"
2236
+ },
2237
+ "repository_id": {
2238
+ "type": "UUID",
2239
+ "referenceKind": "foreignKey",
2240
+ "notNull": false,
2241
+ "unique": false
2242
+ },
2243
+ "name": {
2244
+ "type": "TEXT",
2245
+ "notNull": false,
2246
+ "unique": false,
2247
+ "default": ""
2248
+ },
2249
+ "color": {
2250
+ "type": "TEXT",
2251
+ "notNull": false,
2252
+ "unique": false,
2253
+ "default": ""
2254
+ },
2255
+ "description": {
2256
+ "type": "TEXT",
2257
+ "notNull": false,
2258
+ "unique": false,
2259
+ "default": ""
2260
+ }
2261
+ },
2262
+ "indexes": [
2263
+ {
2264
+ "name": "labels_id_idx",
2265
+ "columns": [
2266
+ "id"
2267
+ ]
2268
+ },
2269
+ {
2270
+ "name": "labels_slug_context_idx",
2271
+ "columns": [
2272
+ "slug",
2273
+ "context"
2274
+ ],
2275
+ "unique": true
2276
+ }
2277
+ ],
2278
+ "version": "698e39f8"
2279
+ }
2280
+ },
2281
+ "@happyvertical/smrt-projects:Project": {
2282
+ "name": "project",
2283
+ "className": "Project",
2284
+ "qualifiedName": "@happyvertical/smrt-projects:Project",
2285
+ "collection": "projects",
2286
+ "filePath": "/home/runner/_work/smrt/smrt/packages/projects/src/models/Project.ts",
2287
+ "packageName": "@happyvertical/smrt-projects",
2288
+ "fields": {
2289
+ "tenantId": {
2290
+ "type": "text",
2291
+ "required": false,
2292
+ "_meta": {
2293
+ "sqlType": "UUID",
2294
+ "nullable": true,
2295
+ "__tenancy": {
2296
+ "isTenantIdField": true,
2297
+ "autoFilter": true,
2298
+ "required": false,
2299
+ "autoPopulate": true,
2300
+ "nullable": true,
2301
+ "mode": "optional",
2302
+ "field": "tenantId",
2303
+ "allowSuperAdminBypass": false
2304
+ }
2305
+ }
2306
+ },
2307
+ "projectId": {
2308
+ "type": "text",
2309
+ "required": false,
2310
+ "default": ""
2311
+ },
2312
+ "projectNumber": {
2313
+ "type": "integer",
2314
+ "required": false,
2315
+ "default": 0
2316
+ },
2317
+ "title": {
2318
+ "type": "text",
2319
+ "required": false,
2320
+ "default": ""
2321
+ },
2322
+ "description": {
2323
+ "type": "text",
2324
+ "required": false,
2325
+ "default": ""
2326
+ },
2327
+ "owner": {
2328
+ "type": "text",
2329
+ "required": false,
2330
+ "default": ""
2331
+ },
2332
+ "url": {
2333
+ "type": "text",
2334
+ "required": false,
2335
+ "default": ""
2336
+ },
2337
+ "providerType": {
2338
+ "type": "text",
2339
+ "required": false,
2340
+ "default": "github"
2341
+ },
2342
+ "tokenConfigKey": {
2343
+ "type": "text",
2344
+ "required": false,
2345
+ "default": "GITHUB_TOKEN"
2346
+ },
2347
+ "statuses": {
2348
+ "type": "json",
2349
+ "required": false,
2350
+ "default": []
2351
+ },
2352
+ "fields": {
2353
+ "type": "json",
2354
+ "required": false,
2355
+ "default": []
2356
+ },
2357
+ "statusFieldId": {
2358
+ "type": "text",
2359
+ "required": false,
2360
+ "default": ""
2361
+ },
2362
+ "statusOptions": {
2363
+ "type": "json",
2364
+ "required": false,
2365
+ "default": {}
2366
+ },
2367
+ "lastSyncedAt": {
2368
+ "type": "datetime",
2369
+ "required": false
2370
+ }
2371
+ },
2372
+ "methods": {
2373
+ "getClient": {
2374
+ "name": "getClient",
2375
+ "async": true,
2376
+ "parameters": [],
2377
+ "returnType": "Promise<IProject>",
2378
+ "isStatic": false,
2379
+ "isPublic": true
2380
+ },
2381
+ "clearClient": {
2382
+ "name": "clearClient",
2383
+ "async": false,
2384
+ "parameters": [],
2385
+ "returnType": "void",
2386
+ "isStatic": false,
2387
+ "isPublic": true
2388
+ },
2389
+ "sync": {
2390
+ "name": "sync",
2391
+ "async": true,
2392
+ "parameters": [
2393
+ {
2394
+ "name": "options",
2395
+ "type": "SyncOptions",
2396
+ "optional": true
2397
+ }
2398
+ ],
2399
+ "returnType": "Promise",
2400
+ "isStatic": false,
2401
+ "isPublic": true
2402
+ },
2403
+ "addItem": {
2404
+ "name": "addItem",
2405
+ "async": true,
2406
+ "parameters": [
2407
+ {
2408
+ "name": "item",
2409
+ "type": "Issue | PullRequest",
2410
+ "optional": false
2411
+ }
2412
+ ],
2413
+ "returnType": "Promise<ProjectItem>",
2414
+ "isStatic": false,
2415
+ "isPublic": true
2416
+ },
2417
+ "removeItem": {
2418
+ "name": "removeItem",
2419
+ "async": true,
2420
+ "parameters": [
2421
+ {
2422
+ "name": "itemId",
2423
+ "type": "string",
2424
+ "optional": false
2425
+ }
2426
+ ],
2427
+ "returnType": "Promise<void>",
2428
+ "isStatic": false,
2429
+ "isPublic": true
2430
+ },
2431
+ "getItem": {
2432
+ "name": "getItem",
2433
+ "async": true,
2434
+ "parameters": [
2435
+ {
2436
+ "name": "itemId",
2437
+ "type": "string",
2438
+ "optional": false
2439
+ }
2440
+ ],
2441
+ "returnType": "Promise<ProjectItem | null>",
2442
+ "isStatic": false,
2443
+ "isPublic": true
2444
+ },
2445
+ "listItems": {
2446
+ "name": "listItems",
2447
+ "async": true,
2448
+ "parameters": [
2449
+ {
2450
+ "name": "filters",
2451
+ "type": "ItemFilters",
2452
+ "optional": true
2453
+ }
2454
+ ],
2455
+ "returnType": "Promise<ProjectItem[]>",
2456
+ "isStatic": false,
2457
+ "isPublic": true
2458
+ },
2459
+ "updateItemStatus": {
2460
+ "name": "updateItemStatus",
2461
+ "async": true,
2462
+ "parameters": [
2463
+ {
2464
+ "name": "itemId",
2465
+ "type": "string",
2466
+ "optional": false
2467
+ },
2468
+ {
2469
+ "name": "status",
2470
+ "type": "string",
2471
+ "optional": false
2472
+ }
2473
+ ],
2474
+ "returnType": "Promise<void>",
2475
+ "isStatic": false,
2476
+ "isPublic": true
2477
+ },
2478
+ "updateItemField": {
2479
+ "name": "updateItemField",
2480
+ "async": true,
2481
+ "parameters": [
2482
+ {
2483
+ "name": "itemId",
2484
+ "type": "string",
2485
+ "optional": false
2486
+ },
2487
+ {
2488
+ "name": "fieldId",
2489
+ "type": "string",
2490
+ "optional": false
2491
+ },
2492
+ {
2493
+ "name": "value",
2494
+ "type": "any",
2495
+ "optional": false
2496
+ }
2497
+ ],
2498
+ "returnType": "Promise<void>",
2499
+ "isStatic": false,
2500
+ "isPublic": true
2501
+ },
2502
+ "getStatuses": {
2503
+ "name": "getStatuses",
2504
+ "async": true,
2505
+ "parameters": [],
2506
+ "returnType": "Promise<ProjectStatus[]>",
2507
+ "isStatic": false,
2508
+ "isPublic": true
2509
+ },
2510
+ "getFields": {
2511
+ "name": "getFields",
2512
+ "async": true,
2513
+ "parameters": [],
2514
+ "returnType": "Promise<ProjectField[]>",
2515
+ "isStatic": false,
2516
+ "isPublic": true
2517
+ },
2518
+ "getItemsByStatus": {
2519
+ "name": "getItemsByStatus",
2520
+ "async": true,
2521
+ "parameters": [
2522
+ {
2523
+ "name": "status",
2524
+ "type": "string",
2525
+ "optional": false
2526
+ }
2527
+ ],
2528
+ "returnType": "Promise<ProjectItem[]>",
2529
+ "isStatic": false,
2530
+ "isPublic": true
2531
+ },
2532
+ "moveItem": {
2533
+ "name": "moveItem",
2534
+ "async": true,
2535
+ "parameters": [
2536
+ {
2537
+ "name": "item",
2538
+ "type": "Issue | PullRequest",
2539
+ "optional": false
2540
+ },
2541
+ {
2542
+ "name": "status",
2543
+ "type": "string",
2544
+ "optional": false
2545
+ }
2546
+ ],
2547
+ "returnType": "Promise<void>",
2548
+ "isStatic": false,
2549
+ "isPublic": true
2550
+ },
2551
+ "analyzeHealth": {
2552
+ "name": "analyzeHealth",
2553
+ "async": true,
2554
+ "parameters": [],
2555
+ "returnType": "Promise<string>",
2556
+ "isStatic": false,
2557
+ "isPublic": true
2558
+ },
2559
+ "getByTitle": {
2560
+ "name": "getByTitle",
2561
+ "async": true,
2562
+ "parameters": [
2563
+ {
2564
+ "name": "title",
2565
+ "type": "string",
2566
+ "optional": false
2567
+ },
2568
+ {
2569
+ "name": "options",
2570
+ "type": "SmrtObjectOptions",
2571
+ "optional": true
2572
+ }
2573
+ ],
2574
+ "returnType": "Promise<Project | null>",
2575
+ "isStatic": true,
2576
+ "isPublic": true
2577
+ }
2578
+ },
2579
+ "decoratorConfig": {
2580
+ "api": {
2581
+ "include": [
2582
+ "list",
2583
+ "get",
2584
+ "create",
2585
+ "update"
2586
+ ]
2587
+ },
2588
+ "mcp": {
2589
+ "include": [
2590
+ "list",
2591
+ "get",
2592
+ "sync",
2593
+ "addItem",
2594
+ "updateItemStatus"
2595
+ ]
2596
+ },
2597
+ "cli": {
2598
+ "include": [
2599
+ "list",
2600
+ "get",
2601
+ "sync",
2602
+ "addItem",
2603
+ "updateItemStatus",
2604
+ "listItems"
2605
+ ],
2606
+ "skipApiCheck": true
2607
+ },
2608
+ "tenantScoped": {
2609
+ "mode": "optional"
2610
+ }
2611
+ },
2612
+ "extends": "SmrtObject",
2613
+ "exportName": "Project",
2614
+ "collectionExportName": "ProjectCollection",
2615
+ "schema": {
2616
+ "tableName": "projects",
2617
+ "ddl": "CREATE TABLE IF NOT EXISTS \"projects\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"tenant_id\" UUID,\n \"project_id\" TEXT DEFAULT '',\n \"project_number\" INTEGER DEFAULT 0,\n \"title\" TEXT DEFAULT '',\n \"description\" TEXT DEFAULT '',\n \"owner\" TEXT DEFAULT '',\n \"url\" TEXT DEFAULT '',\n \"provider_type\" TEXT DEFAULT 'github',\n \"token_config_key\" TEXT DEFAULT 'GITHUB_TOKEN',\n \"statuses\" JSON DEFAULT '[]',\n \"fields\" JSON DEFAULT '[]',\n \"status_field_id\" TEXT DEFAULT '',\n \"status_options\" JSON DEFAULT '{}',\n \"last_synced_at\" TIMESTAMP\n);",
2618
+ "columns": {
2619
+ "id": {
2620
+ "type": "UUID",
2621
+ "primaryKey": true,
2622
+ "referenceKind": "id",
2623
+ "notNull": true
2624
+ },
2625
+ "slug": {
2626
+ "type": "TEXT",
2627
+ "notNull": true
2628
+ },
2629
+ "context": {
2630
+ "type": "TEXT",
2631
+ "notNull": true,
2632
+ "default": ""
2633
+ },
2634
+ "created_at": {
2635
+ "type": "TIMESTAMP",
2636
+ "notNull": true,
2637
+ "default": "current_timestamp"
2638
+ },
2639
+ "updated_at": {
2640
+ "type": "TIMESTAMP",
2641
+ "notNull": true,
2642
+ "default": "current_timestamp"
2643
+ },
2644
+ "tenant_id": {
2645
+ "type": "UUID",
2646
+ "referenceKind": "tenantId",
2647
+ "notNull": false,
2648
+ "unique": false
2649
+ },
2650
+ "project_id": {
2651
+ "type": "TEXT",
2652
+ "notNull": false,
2653
+ "unique": false,
2654
+ "default": ""
2655
+ },
2656
+ "project_number": {
2657
+ "type": "INTEGER",
2658
+ "notNull": false,
2659
+ "unique": false,
2660
+ "default": 0
2661
+ },
2662
+ "title": {
2663
+ "type": "TEXT",
2664
+ "notNull": false,
2665
+ "unique": false,
2666
+ "default": ""
2667
+ },
2668
+ "description": {
2669
+ "type": "TEXT",
2670
+ "notNull": false,
2671
+ "unique": false,
2672
+ "default": ""
2673
+ },
2674
+ "owner": {
2675
+ "type": "TEXT",
2676
+ "notNull": false,
2677
+ "unique": false,
2678
+ "default": ""
2679
+ },
2680
+ "url": {
2681
+ "type": "TEXT",
2682
+ "notNull": false,
2683
+ "unique": false,
2684
+ "default": ""
2685
+ },
2686
+ "provider_type": {
2687
+ "type": "TEXT",
2688
+ "notNull": false,
2689
+ "unique": false,
2690
+ "default": "github"
2691
+ },
2692
+ "token_config_key": {
2693
+ "type": "TEXT",
2694
+ "notNull": false,
2695
+ "unique": false,
2696
+ "default": "GITHUB_TOKEN"
2697
+ },
2698
+ "statuses": {
2699
+ "type": "JSON",
2700
+ "notNull": false,
2701
+ "unique": false,
2702
+ "default": []
2703
+ },
2704
+ "fields": {
2705
+ "type": "JSON",
2706
+ "notNull": false,
2707
+ "unique": false,
2708
+ "default": []
2709
+ },
2710
+ "status_field_id": {
2711
+ "type": "TEXT",
2712
+ "notNull": false,
2713
+ "unique": false,
2714
+ "default": ""
2715
+ },
2716
+ "status_options": {
2717
+ "type": "JSON",
2718
+ "notNull": false,
2719
+ "unique": false,
2720
+ "default": {}
2721
+ },
2722
+ "last_synced_at": {
2723
+ "type": "TIMESTAMP",
2724
+ "notNull": false,
2725
+ "unique": false
2726
+ }
2727
+ },
2728
+ "indexes": [
2729
+ {
2730
+ "name": "projects_id_idx",
2731
+ "columns": [
2732
+ "id"
2733
+ ]
2734
+ },
2735
+ {
2736
+ "name": "projects_slug_context_idx",
2737
+ "columns": [
2738
+ "slug",
2739
+ "context"
2740
+ ],
2741
+ "unique": true
2742
+ }
2743
+ ],
2744
+ "version": "2e8c344a"
2745
+ }
2746
+ },
2747
+ "@happyvertical/smrt-projects:PullRequest": {
2748
+ "name": "pullrequest",
2749
+ "className": "PullRequest",
2750
+ "qualifiedName": "@happyvertical/smrt-projects:PullRequest",
2751
+ "collection": "issues",
2752
+ "filePath": "/home/runner/_work/smrt/smrt/packages/projects/src/models/PullRequest.ts",
2753
+ "packageName": "@happyvertical/smrt-projects",
2754
+ "fields": {
2755
+ "created_at": {
2756
+ "type": "datetime",
2757
+ "required": false
2758
+ },
2759
+ "updated_at": {
2760
+ "type": "datetime",
2761
+ "required": false
2762
+ },
2763
+ "tenantId": {
2764
+ "type": "text",
2765
+ "required": false,
2766
+ "_meta": {
2767
+ "sqlType": "UUID",
2768
+ "nullable": true,
2769
+ "__tenancy": {
2770
+ "isTenantIdField": true,
2771
+ "autoFilter": true,
2772
+ "required": false,
2773
+ "autoPopulate": true,
2774
+ "nullable": true,
2775
+ "mode": "optional",
2776
+ "field": "tenantId",
2777
+ "allowSuperAdminBypass": false
2778
+ }
2779
+ }
2780
+ },
2781
+ "repositoryId": {
2782
+ "type": "foreignKey",
2783
+ "required": true,
2784
+ "related": "Repository",
2785
+ "_meta": {
2786
+ "required": true
2787
+ }
2788
+ },
2789
+ "number": {
2790
+ "type": "integer",
2791
+ "required": false,
2792
+ "default": 0
2793
+ },
2794
+ "nodeId": {
2795
+ "type": "text",
2796
+ "required": false,
2797
+ "default": ""
2798
+ },
2799
+ "title": {
2800
+ "type": "text",
2801
+ "required": false,
2802
+ "default": ""
2803
+ },
2804
+ "body": {
2805
+ "type": "text",
2806
+ "required": false,
2807
+ "default": ""
2808
+ },
2809
+ "state": {
2810
+ "type": "text",
2811
+ "required": false,
2812
+ "default": "open"
2813
+ },
2814
+ "author": {
2815
+ "type": "text",
2816
+ "required": false,
2817
+ "default": ""
2818
+ },
2819
+ "labels": {
2820
+ "type": "json",
2821
+ "required": false,
2822
+ "default": []
2823
+ },
2824
+ "assignees": {
2825
+ "type": "json",
2826
+ "required": false,
2827
+ "default": []
2828
+ },
2829
+ "commentsCount": {
2830
+ "type": "integer",
2831
+ "required": false,
2832
+ "default": 0
2833
+ },
2834
+ "lastSyncedAt": {
2835
+ "type": "datetime",
2836
+ "required": false
2837
+ },
2838
+ "originalBody": {
2839
+ "type": "text",
2840
+ "required": false,
2841
+ "default": ""
2842
+ },
2843
+ "synthesisCount": {
2844
+ "type": "integer",
2845
+ "required": false,
2846
+ "default": 0
2847
+ },
2848
+ "headRef": {
2849
+ "type": "text",
2850
+ "required": false,
2851
+ "default": ""
2852
+ },
2853
+ "baseRef": {
2854
+ "type": "text",
2855
+ "required": false,
2856
+ "default": ""
2857
+ },
2858
+ "merged": {
2859
+ "type": "boolean",
2860
+ "required": false,
2861
+ "default": false
2862
+ },
2863
+ "mergedAt": {
2864
+ "type": "datetime",
2865
+ "required": false
2866
+ },
2867
+ "mergeable": {
2868
+ "type": "boolean",
2869
+ "required": false,
2870
+ "default": true
2871
+ },
2872
+ "draft": {
2873
+ "type": "boolean",
2874
+ "required": false,
2875
+ "default": false
2876
+ },
2877
+ "additions": {
2878
+ "type": "integer",
2879
+ "required": false,
2880
+ "default": 0
2881
+ },
2882
+ "deletions": {
2883
+ "type": "integer",
2884
+ "required": false,
2885
+ "default": 0
2886
+ },
2887
+ "changedFiles": {
2888
+ "type": "integer",
2889
+ "required": false,
2890
+ "default": 0
2891
+ }
2892
+ },
2893
+ "methods": {
2894
+ "getAiUsageSnapshot": {
2895
+ "name": "getAiUsageSnapshot",
2896
+ "async": false,
2897
+ "parameters": [],
2898
+ "returnType": "AiUsageSnapshot | undefined",
2899
+ "isStatic": false,
2900
+ "isPublic": true
2901
+ },
2902
+ "resetAiUsage": {
2903
+ "name": "resetAiUsage",
2904
+ "async": false,
2905
+ "parameters": [],
2906
+ "returnType": "void",
2907
+ "isStatic": false,
2908
+ "isPublic": true
2909
+ },
2910
+ "listAiUsage": {
2911
+ "name": "listAiUsage",
2912
+ "async": true,
2913
+ "parameters": [
2914
+ {
2915
+ "name": "options",
2916
+ "type": "AiUsageListOptions",
2917
+ "optional": true
2918
+ }
2919
+ ],
2920
+ "returnType": "Promise<SmrtAiUsageRecord[]>",
2921
+ "isStatic": false,
2922
+ "isPublic": true
2923
+ },
2924
+ "summarizeAiUsage": {
2925
+ "name": "summarizeAiUsage",
2926
+ "async": true,
2927
+ "parameters": [
2928
+ {
2929
+ "name": "options",
2930
+ "type": "AiUsageSummaryOptions",
2931
+ "optional": true
2932
+ }
2933
+ ],
2934
+ "returnType": "Promise<Record<string, AiUsageStats>>",
2935
+ "isStatic": false,
2936
+ "isPublic": true
2937
+ },
2938
+ "destroy": {
2939
+ "name": "destroy",
2940
+ "async": false,
2941
+ "parameters": [],
2942
+ "returnType": "void",
2943
+ "isStatic": false,
2944
+ "isPublic": true
2945
+ },
2946
+ "markAsPersisted": {
2947
+ "name": "markAsPersisted",
2948
+ "async": false,
2949
+ "parameters": [],
2950
+ "returnType": "void",
2951
+ "isStatic": false,
2952
+ "isPublic": true
2953
+ },
2954
+ "initialize": {
2955
+ "name": "initialize",
2956
+ "async": true,
2957
+ "parameters": [],
2958
+ "returnType": "Promise",
2959
+ "isStatic": false,
2960
+ "isPublic": true
2961
+ },
2962
+ "loadDataFromDb": {
2963
+ "name": "loadDataFromDb",
2964
+ "async": true,
2965
+ "parameters": [
2966
+ {
2967
+ "name": "data",
2968
+ "type": "any",
2969
+ "optional": false
2970
+ }
2971
+ ],
2972
+ "returnType": "any",
2973
+ "isStatic": false,
2974
+ "isPublic": true
2975
+ },
2976
+ "getFields": {
2977
+ "name": "getFields",
2978
+ "async": true,
2979
+ "parameters": [],
2980
+ "returnType": "any",
2981
+ "isStatic": false,
2982
+ "isPublic": true
2983
+ },
2984
+ "toJSON": {
2985
+ "name": "toJSON",
2986
+ "async": false,
2987
+ "parameters": [],
2988
+ "returnType": "any",
2989
+ "isStatic": false,
2990
+ "isPublic": true
2991
+ },
2992
+ "toPlainObject": {
2993
+ "name": "toPlainObject",
2994
+ "async": false,
2995
+ "parameters": [],
2996
+ "returnType": "Record<string>",
2997
+ "isStatic": false,
2998
+ "isPublic": true
2999
+ },
3000
+ "toPublicJSON": {
3001
+ "name": "toPublicJSON",
3002
+ "async": false,
3003
+ "parameters": [],
3004
+ "returnType": "Record<string>",
3005
+ "isStatic": false,
3006
+ "isPublic": true
3007
+ },
3008
+ "getId": {
3009
+ "name": "getId",
3010
+ "async": true,
3011
+ "parameters": [],
3012
+ "returnType": "any",
3013
+ "isStatic": false,
3014
+ "isPublic": true
3015
+ },
3016
+ "getSlug": {
3017
+ "name": "getSlug",
3018
+ "async": true,
3019
+ "parameters": [],
3020
+ "returnType": "any",
3021
+ "isStatic": false,
3022
+ "isPublic": true
3023
+ },
3024
+ "getSavedId": {
3025
+ "name": "getSavedId",
3026
+ "async": true,
3027
+ "parameters": [],
3028
+ "returnType": "any",
3029
+ "isStatic": false,
3030
+ "isPublic": true
3031
+ },
3032
+ "isSaved": {
3033
+ "name": "isSaved",
3034
+ "async": true,
3035
+ "parameters": [],
3036
+ "returnType": "any",
3037
+ "isStatic": false,
3038
+ "isPublic": true
3039
+ },
3040
+ "save": {
3041
+ "name": "save",
3042
+ "async": true,
3043
+ "parameters": [],
3044
+ "returnType": "any",
3045
+ "isStatic": false,
3046
+ "isPublic": true
3047
+ },
3048
+ "classifyConstraintError": {
3049
+ "name": "classifyConstraintError",
3050
+ "async": false,
3051
+ "parameters": [
3052
+ {
3053
+ "name": "message",
3054
+ "type": "string",
3055
+ "optional": false
3056
+ }
3057
+ ],
3058
+ "returnType": "'unique' | 'not_null' | null",
3059
+ "isStatic": true,
3060
+ "isPublic": true
3061
+ },
3062
+ "loadFromId": {
3063
+ "name": "loadFromId",
3064
+ "async": true,
3065
+ "parameters": [],
3066
+ "returnType": "any",
3067
+ "isStatic": false,
3068
+ "isPublic": true
3069
+ },
3070
+ "loadFromSlug": {
3071
+ "name": "loadFromSlug",
3072
+ "async": true,
3073
+ "parameters": [],
3074
+ "returnType": "any",
3075
+ "isStatic": false,
3076
+ "isPublic": true
3077
+ },
3078
+ "is": {
3079
+ "name": "is",
3080
+ "async": true,
3081
+ "parameters": [
3082
+ {
3083
+ "name": "criteria",
3084
+ "type": "string",
3085
+ "optional": false
3086
+ },
3087
+ {
3088
+ "name": "options",
3089
+ "type": "any",
3090
+ "optional": true
3091
+ }
3092
+ ],
3093
+ "returnType": "any",
3094
+ "isStatic": false,
3095
+ "isPublic": true
3096
+ },
3097
+ "do": {
3098
+ "name": "do",
3099
+ "async": true,
3100
+ "parameters": [
3101
+ {
3102
+ "name": "instructions",
3103
+ "type": "string",
3104
+ "optional": false
3105
+ },
3106
+ {
3107
+ "name": "options",
3108
+ "type": "any",
3109
+ "optional": true
3110
+ }
3111
+ ],
3112
+ "returnType": "any",
3113
+ "isStatic": false,
3114
+ "isPublic": true
3115
+ },
3116
+ "describe": {
3117
+ "name": "describe",
3118
+ "async": true,
3119
+ "parameters": [
3120
+ {
3121
+ "name": "options",
3122
+ "type": "any",
3123
+ "optional": true
3124
+ }
3125
+ ],
3126
+ "returnType": "any",
3127
+ "isStatic": false,
3128
+ "isPublic": true
3129
+ },
3130
+ "delete": {
3131
+ "name": "delete",
3132
+ "async": true,
3133
+ "parameters": [],
3134
+ "returnType": "Promise<void>",
3135
+ "isStatic": false,
3136
+ "isPublic": true
3137
+ },
3138
+ "isRelatedLoaded": {
3139
+ "name": "isRelatedLoaded",
3140
+ "async": false,
3141
+ "parameters": [
3142
+ {
3143
+ "name": "fieldName",
3144
+ "type": "string",
3145
+ "optional": false
3146
+ }
3147
+ ],
3148
+ "returnType": "boolean",
3149
+ "isStatic": false,
3150
+ "isPublic": true
3151
+ },
3152
+ "loadRelated": {
3153
+ "name": "loadRelated",
3154
+ "async": true,
3155
+ "parameters": [
3156
+ {
3157
+ "name": "fieldName",
3158
+ "type": "string",
3159
+ "optional": false
3160
+ },
3161
+ {
3162
+ "name": "opts",
3163
+ "type": "LoadRelatedOptions",
3164
+ "optional": true
3165
+ }
3166
+ ],
3167
+ "returnType": "Promise<any>",
3168
+ "isStatic": false,
3169
+ "isPublic": true
3170
+ },
3171
+ "loadRelatedMany": {
3172
+ "name": "loadRelatedMany",
3173
+ "async": true,
3174
+ "parameters": [
3175
+ {
3176
+ "name": "fieldName",
3177
+ "type": "string",
3178
+ "optional": false
3179
+ },
3180
+ {
3181
+ "name": "opts",
3182
+ "type": "LoadRelatedOptions",
3183
+ "optional": true
3184
+ }
3185
+ ],
3186
+ "returnType": "Promise<any[]>",
3187
+ "isStatic": false,
3188
+ "isPublic": true
3189
+ },
3190
+ "getRelated": {
3191
+ "name": "getRelated",
3192
+ "async": true,
3193
+ "parameters": [
3194
+ {
3195
+ "name": "fieldName",
3196
+ "type": "string",
3197
+ "optional": false
3198
+ },
3199
+ {
3200
+ "name": "opts",
3201
+ "type": "LoadRelatedOptions",
3202
+ "optional": true
3203
+ }
3204
+ ],
3205
+ "returnType": "Promise<any>",
3206
+ "isStatic": false,
3207
+ "isPublic": true
3208
+ },
3209
+ "getAvailableTools": {
3210
+ "name": "getAvailableTools",
3211
+ "async": false,
3212
+ "parameters": [],
3213
+ "returnType": "AITool[]",
3214
+ "isStatic": false,
3215
+ "isPublic": true
3216
+ },
3217
+ "executeToolCall": {
3218
+ "name": "executeToolCall",
3219
+ "async": true,
3220
+ "parameters": [
3221
+ {
3222
+ "name": "toolCall",
3223
+ "type": "ToolCall",
3224
+ "optional": false
3225
+ }
3226
+ ],
3227
+ "returnType": "Promise<ToolCallResult>",
3228
+ "isStatic": false,
3229
+ "isPublic": true
3230
+ },
3231
+ "remember": {
3232
+ "name": "remember",
3233
+ "async": true,
3234
+ "parameters": [
3235
+ {
3236
+ "name": "options",
3237
+ "type": "object",
3238
+ "optional": false
3239
+ }
3240
+ ],
3241
+ "returnType": "Promise<void>",
3242
+ "isStatic": false,
3243
+ "isPublic": true
3244
+ },
3245
+ "recall": {
3246
+ "name": "recall",
3247
+ "async": true,
3248
+ "parameters": [
3249
+ {
3250
+ "name": "options",
3251
+ "type": "object",
3252
+ "optional": false
3253
+ }
3254
+ ],
3255
+ "returnType": "Promise<any | null>",
3256
+ "isStatic": false,
3257
+ "isPublic": true
3258
+ },
3259
+ "recallAll": {
3260
+ "name": "recallAll",
3261
+ "async": true,
3262
+ "parameters": [
3263
+ {
3264
+ "name": "options",
3265
+ "type": "object",
3266
+ "optional": true
3267
+ }
3268
+ ],
3269
+ "returnType": "Promise<Map<string, any>>",
3270
+ "isStatic": false,
3271
+ "isPublic": true
3272
+ },
3273
+ "forget": {
3274
+ "name": "forget",
3275
+ "async": true,
3276
+ "parameters": [
3277
+ {
3278
+ "name": "options",
3279
+ "type": "object",
3280
+ "optional": false
3281
+ }
3282
+ ],
3283
+ "returnType": "Promise<void>",
3284
+ "isStatic": false,
3285
+ "isPublic": true
3286
+ },
3287
+ "forgetScope": {
3288
+ "name": "forgetScope",
3289
+ "async": true,
3290
+ "parameters": [
3291
+ {
3292
+ "name": "options",
3293
+ "type": "object",
3294
+ "optional": false
3295
+ }
3296
+ ],
3297
+ "returnType": "Promise<number>",
3298
+ "isStatic": false,
3299
+ "isPublic": true
3300
+ },
3301
+ "generateEmbeddings": {
3302
+ "name": "generateEmbeddings",
3303
+ "async": true,
3304
+ "parameters": [
3305
+ {
3306
+ "name": "options",
3307
+ "type": "GenerateEmbeddingsOptions",
3308
+ "optional": true
3309
+ }
3310
+ ],
3311
+ "returnType": "Promise<void>",
3312
+ "isStatic": false,
3313
+ "isPublic": true
3314
+ },
3315
+ "getEmbedding": {
3316
+ "name": "getEmbedding",
3317
+ "async": true,
3318
+ "parameters": [
3319
+ {
3320
+ "name": "fieldName",
3321
+ "type": "string",
3322
+ "optional": false
3323
+ },
3324
+ {
3325
+ "name": "model",
3326
+ "type": "string",
3327
+ "optional": true
3328
+ }
3329
+ ],
3330
+ "returnType": "Promise<number[] | null>",
3331
+ "isStatic": false,
3332
+ "isPublic": true
3333
+ },
3334
+ "hasStaleEmbeddings": {
3335
+ "name": "hasStaleEmbeddings",
3336
+ "async": true,
3337
+ "parameters": [],
3338
+ "returnType": "Promise<boolean>",
3339
+ "isStatic": false,
3340
+ "isPublic": true
3341
+ },
3342
+ "clearEmbeddings": {
3343
+ "name": "clearEmbeddings",
3344
+ "async": true,
3345
+ "parameters": [],
3346
+ "returnType": "Promise<void>",
3347
+ "isStatic": false,
3348
+ "isPublic": true
3349
+ },
3350
+ "getRepository": {
3351
+ "name": "getRepository",
3352
+ "async": true,
3353
+ "parameters": [],
3354
+ "returnType": "Promise<Repository>",
3355
+ "isStatic": false,
3356
+ "isPublic": true
3357
+ },
3358
+ "getClient": {
3359
+ "name": "getClient",
3360
+ "async": true,
3361
+ "parameters": [],
3362
+ "returnType": "Promise<IRepository>",
3363
+ "isStatic": false,
3364
+ "isPublic": true
3365
+ },
3366
+ "clearCache": {
3367
+ "name": "clearCache",
3368
+ "async": false,
3369
+ "parameters": [],
3370
+ "returnType": "void",
3371
+ "isStatic": false,
3372
+ "isPublic": true
3373
+ },
3374
+ "sync": {
3375
+ "name": "sync",
3376
+ "async": true,
3377
+ "parameters": [
3378
+ {
3379
+ "name": "options",
3380
+ "type": "SyncOptions",
3381
+ "optional": true
3382
+ }
3383
+ ],
3384
+ "returnType": "Promise",
3385
+ "isStatic": false,
3386
+ "isPublic": true
3387
+ },
3388
+ "getComments": {
3389
+ "name": "getComments",
3390
+ "async": true,
3391
+ "parameters": [],
3392
+ "returnType": "Promise<Comment[]>",
3393
+ "isStatic": false,
3394
+ "isPublic": true
3395
+ },
3396
+ "addComment": {
3397
+ "name": "addComment",
3398
+ "async": true,
3399
+ "parameters": [
3400
+ {
3401
+ "name": "body",
3402
+ "type": "string",
3403
+ "optional": false
3404
+ }
3405
+ ],
3406
+ "returnType": "Promise<Comment>",
3407
+ "isStatic": false,
3408
+ "isPublic": true
3409
+ },
3410
+ "incorporateFeedback": {
3411
+ "name": "incorporateFeedback",
3412
+ "async": true,
3413
+ "parameters": [
3414
+ {
3415
+ "name": "options",
3416
+ "type": "IncorporateFeedbackOptions",
3417
+ "optional": true
3418
+ }
3419
+ ],
3420
+ "returnType": "Promise<IncorporateFeedbackResult>",
3421
+ "isStatic": false,
3422
+ "isPublic": true
3423
+ },
3424
+ "rollback": {
3425
+ "name": "rollback",
3426
+ "async": true,
3427
+ "parameters": [],
3428
+ "returnType": "Promise<object>",
3429
+ "isStatic": false,
3430
+ "isPublic": true
3431
+ },
3432
+ "needsReview": {
3433
+ "name": "needsReview",
3434
+ "async": true,
3435
+ "parameters": [],
3436
+ "returnType": "Promise<boolean>",
3437
+ "isStatic": false,
3438
+ "isPublic": true
3439
+ },
3440
+ "isBugReport": {
3441
+ "name": "isBugReport",
3442
+ "async": true,
3443
+ "parameters": [],
3444
+ "returnType": "Promise<boolean>",
3445
+ "isStatic": false,
3446
+ "isPublic": true
3447
+ },
3448
+ "isFeatureRequest": {
3449
+ "name": "isFeatureRequest",
3450
+ "async": true,
3451
+ "parameters": [],
3452
+ "returnType": "Promise<boolean>",
3453
+ "isStatic": false,
3454
+ "isPublic": true
3455
+ },
3456
+ "suggestLabels": {
3457
+ "name": "suggestLabels",
3458
+ "async": true,
3459
+ "parameters": [],
3460
+ "returnType": "Promise<string[]>",
3461
+ "isStatic": false,
3462
+ "isPublic": true
3463
+ },
3464
+ "close": {
3465
+ "name": "close",
3466
+ "async": true,
3467
+ "parameters": [],
3468
+ "returnType": "Promise<void>",
3469
+ "isStatic": false,
3470
+ "isPublic": true
3471
+ },
3472
+ "addLabels": {
3473
+ "name": "addLabels",
3474
+ "async": true,
3475
+ "parameters": [
3476
+ {
3477
+ "name": "labels",
3478
+ "type": "string[]",
3479
+ "optional": false
3480
+ }
3481
+ ],
3482
+ "returnType": "Promise<void>",
3483
+ "isStatic": false,
3484
+ "isPublic": true
3485
+ },
3486
+ "removeLabel": {
3487
+ "name": "removeLabel",
3488
+ "async": true,
3489
+ "parameters": [
3490
+ {
3491
+ "name": "label",
3492
+ "type": "string",
3493
+ "optional": false
3494
+ }
3495
+ ],
3496
+ "returnType": "Promise<void>",
3497
+ "isStatic": false,
3498
+ "isPublic": true
3499
+ },
3500
+ "assign": {
3501
+ "name": "assign",
3502
+ "async": true,
3503
+ "parameters": [
3504
+ {
3505
+ "name": "assignees",
3506
+ "type": "string[]",
3507
+ "optional": false
3508
+ }
3509
+ ],
3510
+ "returnType": "Promise<void>",
3511
+ "isStatic": false,
3512
+ "isPublic": true
3513
+ },
3514
+ "getUrl": {
3515
+ "name": "getUrl",
3516
+ "async": false,
3517
+ "parameters": [],
3518
+ "returnType": "string",
3519
+ "isStatic": false,
3520
+ "isPublic": true
3521
+ },
3522
+ "summarize": {
3523
+ "name": "summarize",
3524
+ "async": true,
3525
+ "parameters": [],
3526
+ "returnType": "Promise<string>",
3527
+ "isStatic": false,
3528
+ "isPublic": true
3529
+ },
3530
+ "merge": {
3531
+ "name": "merge",
3532
+ "async": true,
3533
+ "parameters": [
3534
+ {
3535
+ "name": "method",
3536
+ "type": "MergeMethod",
3537
+ "optional": true,
3538
+ "default": "squash"
3539
+ }
3540
+ ],
3541
+ "returnType": "Promise<void>",
3542
+ "isStatic": false,
3543
+ "isPublic": true
3544
+ },
3545
+ "markReady": {
3546
+ "name": "markReady",
3547
+ "async": true,
3548
+ "parameters": [],
3549
+ "returnType": "Promise<void>",
3550
+ "isStatic": false,
3551
+ "isPublic": true
3552
+ },
3553
+ "convertToDraft": {
3554
+ "name": "convertToDraft",
3555
+ "async": true,
3556
+ "parameters": [],
3557
+ "returnType": "Promise<void>",
3558
+ "isStatic": false,
3559
+ "isPublic": true
3560
+ },
3561
+ "requestReviewers": {
3562
+ "name": "requestReviewers",
3563
+ "async": true,
3564
+ "parameters": [
3565
+ {
3566
+ "name": "reviewers",
3567
+ "type": "string[]",
3568
+ "optional": false
3569
+ }
3570
+ ],
3571
+ "returnType": "Promise<void>",
3572
+ "isStatic": false,
3573
+ "isPublic": true
3574
+ },
3575
+ "findLinkedIssue": {
3576
+ "name": "findLinkedIssue",
3577
+ "async": true,
3578
+ "parameters": [],
3579
+ "returnType": "Promise<Issue | null>",
3580
+ "isStatic": false,
3581
+ "isPublic": true
3582
+ },
3583
+ "isReadyToMerge": {
3584
+ "name": "isReadyToMerge",
3585
+ "async": true,
3586
+ "parameters": [],
3587
+ "returnType": "Promise<boolean>",
3588
+ "isStatic": false,
3589
+ "isPublic": true
3590
+ },
3591
+ "suggestReviewers": {
3592
+ "name": "suggestReviewers",
3593
+ "async": true,
3594
+ "parameters": [],
3595
+ "returnType": "Promise<string[]>",
3596
+ "isStatic": false,
3597
+ "isPublic": true
3598
+ },
3599
+ "getChangeSize": {
3600
+ "name": "getChangeSize",
3601
+ "async": false,
3602
+ "parameters": [],
3603
+ "returnType": "'xs' | 's' | 'm' | 'l' | 'xl'",
3604
+ "isStatic": false,
3605
+ "isPublic": true
3606
+ }
3607
+ },
3608
+ "decoratorConfig": {
3609
+ "api": {
3610
+ "include": [
3611
+ "list",
3612
+ "get",
3613
+ "create",
3614
+ "update"
3615
+ ]
3616
+ },
3617
+ "mcp": {
3618
+ "include": [
3619
+ "list",
3620
+ "get",
3621
+ "sync",
3622
+ "summarize",
3623
+ "merge"
3624
+ ]
3625
+ },
3626
+ "cli": {
3627
+ "include": [
3628
+ "list",
3629
+ "get",
3630
+ "sync",
3631
+ "summarize",
3632
+ "merge",
3633
+ "markReady"
3634
+ ],
3635
+ "skipApiCheck": true
3636
+ },
3637
+ "tenantScoped": {
3638
+ "mode": "optional"
3639
+ },
3640
+ "tableName": "issues",
3641
+ "tableStrategy": "sti"
3642
+ },
3643
+ "extends": "Issue",
3644
+ "exportName": "PullRequest",
3645
+ "collectionExportName": "PullRequestCollection",
3646
+ "validationRules": [
3647
+ {
3648
+ "field": "repositoryId",
3649
+ "rule": "required",
3650
+ "fieldType": "foreignKey"
3651
+ }
3652
+ ],
3653
+ "schema": {
3654
+ "tableName": "issues",
3655
+ "ddl": "CREATE TABLE IF NOT EXISTS \"issues\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"_meta_type\" TEXT NOT NULL,\n \"_meta_data\" JSON,\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"tenant_id\" UUID,\n \"repository_id\" UUID,\n \"number\" INTEGER DEFAULT 0,\n \"node_id\" TEXT DEFAULT '',\n \"title\" TEXT DEFAULT '',\n \"body\" TEXT DEFAULT '',\n \"state\" TEXT DEFAULT 'open',\n \"author\" TEXT DEFAULT '',\n \"labels\" JSON DEFAULT '[]',\n \"assignees\" JSON DEFAULT '[]',\n \"comments_count\" INTEGER DEFAULT 0,\n \"last_synced_at\" TIMESTAMP,\n \"original_body\" TEXT DEFAULT '',\n \"synthesis_count\" INTEGER DEFAULT 0,\n \"head_ref\" TEXT DEFAULT '',\n \"base_ref\" TEXT DEFAULT '',\n \"merged\" BOOLEAN DEFAULT FALSE,\n \"merged_at\" TIMESTAMP,\n \"mergeable\" BOOLEAN DEFAULT TRUE,\n \"draft\" BOOLEAN DEFAULT FALSE,\n \"additions\" INTEGER DEFAULT 0,\n \"deletions\" INTEGER DEFAULT 0,\n \"changed_files\" INTEGER DEFAULT 0\n);",
3656
+ "columns": {
3657
+ "id": {
3658
+ "type": "UUID",
3659
+ "primaryKey": true,
3660
+ "referenceKind": "id",
3661
+ "notNull": true
3662
+ },
3663
+ "slug": {
3664
+ "type": "TEXT",
3665
+ "notNull": true
3666
+ },
3667
+ "context": {
3668
+ "type": "TEXT",
3669
+ "notNull": true,
3670
+ "default": ""
3671
+ },
3672
+ "_meta_type": {
3673
+ "type": "TEXT",
3674
+ "notNull": true
3675
+ },
3676
+ "_meta_data": {
3677
+ "type": "JSON",
3678
+ "notNull": false
3679
+ },
3680
+ "created_at": {
3681
+ "type": "TIMESTAMP",
3682
+ "notNull": true,
3683
+ "default": "current_timestamp"
3684
+ },
3685
+ "updated_at": {
3686
+ "type": "TIMESTAMP",
3687
+ "notNull": true,
3688
+ "default": "current_timestamp"
3689
+ },
3690
+ "tenant_id": {
3691
+ "type": "UUID",
3692
+ "referenceKind": "tenantId",
3693
+ "notNull": false
3694
+ },
3695
+ "repository_id": {
3696
+ "type": "UUID",
3697
+ "referenceKind": "foreignKey",
3698
+ "notNull": false
3699
+ },
3700
+ "number": {
3701
+ "type": "INTEGER",
3702
+ "notNull": false,
3703
+ "default": 0
3704
+ },
3705
+ "node_id": {
3706
+ "type": "TEXT",
3707
+ "notNull": false,
3708
+ "default": ""
3709
+ },
3710
+ "title": {
3711
+ "type": "TEXT",
3712
+ "notNull": false,
3713
+ "default": ""
3714
+ },
3715
+ "body": {
3716
+ "type": "TEXT",
3717
+ "notNull": false,
3718
+ "default": ""
3719
+ },
3720
+ "state": {
3721
+ "type": "TEXT",
3722
+ "notNull": false,
3723
+ "default": "open"
3724
+ },
3725
+ "author": {
3726
+ "type": "TEXT",
3727
+ "notNull": false,
3728
+ "default": ""
3729
+ },
3730
+ "labels": {
3731
+ "type": "JSON",
3732
+ "notNull": false,
3733
+ "default": []
3734
+ },
3735
+ "assignees": {
3736
+ "type": "JSON",
3737
+ "notNull": false,
3738
+ "default": []
3739
+ },
3740
+ "comments_count": {
3741
+ "type": "INTEGER",
3742
+ "notNull": false,
3743
+ "default": 0
3744
+ },
3745
+ "last_synced_at": {
3746
+ "type": "TIMESTAMP",
3747
+ "notNull": false
3748
+ },
3749
+ "original_body": {
3750
+ "type": "TEXT",
3751
+ "notNull": false,
3752
+ "default": ""
3753
+ },
3754
+ "synthesis_count": {
3755
+ "type": "INTEGER",
3756
+ "notNull": false,
3757
+ "default": 0
3758
+ },
3759
+ "head_ref": {
3760
+ "type": "TEXT",
3761
+ "notNull": false,
3762
+ "default": ""
3763
+ },
3764
+ "base_ref": {
3765
+ "type": "TEXT",
3766
+ "notNull": false,
3767
+ "default": ""
3768
+ },
3769
+ "merged": {
3770
+ "type": "BOOLEAN",
3771
+ "notNull": false,
3772
+ "default": false
3773
+ },
3774
+ "merged_at": {
3775
+ "type": "TIMESTAMP",
3776
+ "notNull": false
3777
+ },
3778
+ "mergeable": {
3779
+ "type": "BOOLEAN",
3780
+ "notNull": false,
3781
+ "default": true
3782
+ },
3783
+ "draft": {
3784
+ "type": "BOOLEAN",
3785
+ "notNull": false,
3786
+ "default": false
3787
+ },
3788
+ "additions": {
3789
+ "type": "INTEGER",
3790
+ "notNull": false,
3791
+ "default": 0
3792
+ },
3793
+ "deletions": {
3794
+ "type": "INTEGER",
3795
+ "notNull": false,
3796
+ "default": 0
3797
+ },
3798
+ "changed_files": {
3799
+ "type": "INTEGER",
3800
+ "notNull": false,
3801
+ "default": 0
3802
+ }
3803
+ },
3804
+ "indexes": [
3805
+ {
3806
+ "name": "issues_id_idx",
3807
+ "columns": [
3808
+ "id"
3809
+ ]
3810
+ },
3811
+ {
3812
+ "name": "issues_slug_context_meta_type_idx",
3813
+ "columns": [
3814
+ "slug",
3815
+ "context",
3816
+ "_meta_type"
3817
+ ],
3818
+ "unique": true
3819
+ },
3820
+ {
3821
+ "name": "issues_meta_type_idx",
3822
+ "columns": [
3823
+ "_meta_type"
3824
+ ]
3825
+ }
3826
+ ],
3827
+ "version": "f42d9cf0"
3828
+ }
3829
+ },
3830
+ "@happyvertical/smrt-projects:Repository": {
3831
+ "name": "repository",
3832
+ "className": "Repository",
3833
+ "qualifiedName": "@happyvertical/smrt-projects:Repository",
3834
+ "collection": "repositories",
3835
+ "filePath": "/home/runner/_work/smrt/smrt/packages/projects/src/models/Repository.ts",
3836
+ "packageName": "@happyvertical/smrt-projects",
3837
+ "fields": {
3838
+ "tenantId": {
3839
+ "type": "text",
3840
+ "required": false,
3841
+ "_meta": {
3842
+ "sqlType": "UUID",
3843
+ "nullable": true,
3844
+ "__tenancy": {
3845
+ "isTenantIdField": true,
3846
+ "autoFilter": true,
3847
+ "required": false,
3848
+ "autoPopulate": true,
3849
+ "nullable": true,
3850
+ "mode": "optional",
3851
+ "field": "tenantId",
3852
+ "allowSuperAdminBypass": false
3853
+ }
3854
+ }
3855
+ },
3856
+ "owner": {
3857
+ "type": "text",
3858
+ "required": false,
3859
+ "default": ""
3860
+ },
3861
+ "name": {
3862
+ "type": "text",
3863
+ "required": false,
3864
+ "default": ""
3865
+ },
3866
+ "fullName": {
3867
+ "type": "text",
3868
+ "required": false,
3869
+ "default": ""
3870
+ },
3871
+ "description": {
3872
+ "type": "text",
3873
+ "required": false,
3874
+ "default": ""
3875
+ },
3876
+ "defaultBranch": {
3877
+ "type": "text",
3878
+ "required": false,
3879
+ "default": "main"
3880
+ },
3881
+ "isPrivate": {
3882
+ "type": "boolean",
3883
+ "required": false,
3884
+ "default": false
3885
+ },
3886
+ "providerType": {
3887
+ "type": "text",
3888
+ "required": false,
3889
+ "default": "github"
3890
+ },
3891
+ "baseUrl": {
3892
+ "type": "text",
3893
+ "required": false,
3894
+ "default": ""
3895
+ },
3896
+ "tokenConfigKey": {
3897
+ "type": "text",
3898
+ "required": false,
3899
+ "default": "GITHUB_TOKEN"
3900
+ },
3901
+ "lastSyncedAt": {
3902
+ "type": "datetime",
3903
+ "required": false
3904
+ }
3905
+ },
3906
+ "methods": {
3907
+ "getClient": {
3908
+ "name": "getClient",
3909
+ "async": true,
3910
+ "parameters": [],
3911
+ "returnType": "Promise<IRepository>",
3912
+ "isStatic": false,
3913
+ "isPublic": true
3914
+ },
3915
+ "clearClient": {
3916
+ "name": "clearClient",
3917
+ "async": false,
3918
+ "parameters": [],
3919
+ "returnType": "void",
3920
+ "isStatic": false,
3921
+ "isPublic": true
3922
+ },
3923
+ "sync": {
3924
+ "name": "sync",
3925
+ "async": true,
3926
+ "parameters": [
3927
+ {
3928
+ "name": "options",
3929
+ "type": "SyncOptions",
3930
+ "optional": true
3931
+ }
3932
+ ],
3933
+ "returnType": "Promise",
3934
+ "isStatic": false,
3935
+ "isPublic": true
3936
+ },
3937
+ "getIssues": {
3938
+ "name": "getIssues",
3939
+ "async": true,
3940
+ "parameters": [
3941
+ {
3942
+ "name": "filters",
3943
+ "type": "SearchFilters",
3944
+ "optional": true
3945
+ }
3946
+ ],
3947
+ "returnType": "Promise<Issue[]>",
3948
+ "isStatic": false,
3949
+ "isPublic": true
3950
+ },
3951
+ "getPullRequests": {
3952
+ "name": "getPullRequests",
3953
+ "async": true,
3954
+ "parameters": [
3955
+ {
3956
+ "name": "filters",
3957
+ "type": "SearchFilters",
3958
+ "optional": true
3959
+ }
3960
+ ],
3961
+ "returnType": "Promise<PullRequest[]>",
3962
+ "isStatic": false,
3963
+ "isPublic": true
3964
+ },
3965
+ "createIssue": {
3966
+ "name": "createIssue",
3967
+ "async": true,
3968
+ "parameters": [
3969
+ {
3970
+ "name": "data",
3971
+ "type": "CreateIssueInput",
3972
+ "optional": false
3973
+ }
3974
+ ],
3975
+ "returnType": "Promise<Issue>",
3976
+ "isStatic": false,
3977
+ "isPublic": true
3978
+ },
3979
+ "createPullRequest": {
3980
+ "name": "createPullRequest",
3981
+ "async": true,
3982
+ "parameters": [
3983
+ {
3984
+ "name": "data",
3985
+ "type": "CreatePRInput",
3986
+ "optional": false
3987
+ }
3988
+ ],
3989
+ "returnType": "Promise<PullRequest>",
3990
+ "isStatic": false,
3991
+ "isPublic": true
3992
+ },
3993
+ "hasOpenIssuesMatching": {
3994
+ "name": "hasOpenIssuesMatching",
3995
+ "async": true,
3996
+ "parameters": [
3997
+ {
3998
+ "name": "criteria",
3999
+ "type": "string",
4000
+ "optional": false
4001
+ }
4002
+ ],
4003
+ "returnType": "Promise<boolean>",
4004
+ "isStatic": false,
4005
+ "isPublic": true
4006
+ },
4007
+ "summarizeActivity": {
4008
+ "name": "summarizeActivity",
4009
+ "async": true,
4010
+ "parameters": [],
4011
+ "returnType": "Promise<string>",
4012
+ "isStatic": false,
4013
+ "isPublic": true
4014
+ },
4015
+ "getByFullName": {
4016
+ "name": "getByFullName",
4017
+ "async": true,
4018
+ "parameters": [
4019
+ {
4020
+ "name": "owner",
4021
+ "type": "string",
4022
+ "optional": false
4023
+ },
4024
+ {
4025
+ "name": "name",
4026
+ "type": "string",
4027
+ "optional": false
4028
+ },
4029
+ {
4030
+ "name": "options",
4031
+ "type": "SmrtObjectOptions",
4032
+ "optional": true
4033
+ }
4034
+ ],
4035
+ "returnType": "Promise<Repository | null>",
4036
+ "isStatic": true,
4037
+ "isPublic": true
4038
+ }
4039
+ },
4040
+ "decoratorConfig": {
4041
+ "api": {
4042
+ "include": [
4043
+ "list",
4044
+ "get",
4045
+ "create",
4046
+ "update"
4047
+ ]
4048
+ },
4049
+ "mcp": {
4050
+ "include": [
4051
+ "list",
4052
+ "get",
4053
+ "sync"
4054
+ ]
4055
+ },
4056
+ "cli": {
4057
+ "include": [
4058
+ "list",
4059
+ "get",
4060
+ "sync",
4061
+ "create"
4062
+ ],
4063
+ "skipApiCheck": true
4064
+ },
4065
+ "tenantScoped": {
4066
+ "mode": "optional"
4067
+ }
4068
+ },
4069
+ "extends": "SmrtObject",
4070
+ "exportName": "Repository",
4071
+ "collectionExportName": "RepositoryCollection",
4072
+ "schema": {
4073
+ "tableName": "repositories",
4074
+ "ddl": "CREATE TABLE IF NOT EXISTS \"repositories\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"tenant_id\" UUID,\n \"owner\" TEXT DEFAULT '',\n \"name\" TEXT DEFAULT '',\n \"full_name\" TEXT DEFAULT '',\n \"description\" TEXT DEFAULT '',\n \"default_branch\" TEXT DEFAULT 'main',\n \"is_private\" BOOLEAN DEFAULT FALSE,\n \"provider_type\" TEXT DEFAULT 'github',\n \"base_url\" TEXT DEFAULT '',\n \"token_config_key\" TEXT DEFAULT 'GITHUB_TOKEN',\n \"last_synced_at\" TIMESTAMP\n);",
4075
+ "columns": {
4076
+ "id": {
4077
+ "type": "UUID",
4078
+ "primaryKey": true,
4079
+ "referenceKind": "id",
4080
+ "notNull": true
4081
+ },
4082
+ "slug": {
4083
+ "type": "TEXT",
4084
+ "notNull": true
4085
+ },
4086
+ "context": {
4087
+ "type": "TEXT",
4088
+ "notNull": true,
4089
+ "default": ""
4090
+ },
4091
+ "created_at": {
4092
+ "type": "TIMESTAMP",
4093
+ "notNull": true,
4094
+ "default": "current_timestamp"
4095
+ },
4096
+ "updated_at": {
4097
+ "type": "TIMESTAMP",
4098
+ "notNull": true,
4099
+ "default": "current_timestamp"
4100
+ },
4101
+ "tenant_id": {
4102
+ "type": "UUID",
4103
+ "referenceKind": "tenantId",
4104
+ "notNull": false,
4105
+ "unique": false
4106
+ },
4107
+ "owner": {
4108
+ "type": "TEXT",
4109
+ "notNull": false,
4110
+ "unique": false,
4111
+ "default": ""
4112
+ },
4113
+ "name": {
4114
+ "type": "TEXT",
4115
+ "notNull": false,
4116
+ "unique": false,
4117
+ "default": ""
4118
+ },
4119
+ "full_name": {
4120
+ "type": "TEXT",
4121
+ "notNull": false,
4122
+ "unique": false,
4123
+ "default": ""
4124
+ },
4125
+ "description": {
4126
+ "type": "TEXT",
4127
+ "notNull": false,
4128
+ "unique": false,
4129
+ "default": ""
4130
+ },
4131
+ "default_branch": {
4132
+ "type": "TEXT",
4133
+ "notNull": false,
4134
+ "unique": false,
4135
+ "default": "main"
4136
+ },
4137
+ "is_private": {
4138
+ "type": "BOOLEAN",
4139
+ "notNull": false,
4140
+ "unique": false,
4141
+ "default": false
4142
+ },
4143
+ "provider_type": {
4144
+ "type": "TEXT",
4145
+ "notNull": false,
4146
+ "unique": false,
4147
+ "default": "github"
4148
+ },
4149
+ "base_url": {
4150
+ "type": "TEXT",
4151
+ "notNull": false,
4152
+ "unique": false,
4153
+ "default": ""
4154
+ },
4155
+ "token_config_key": {
4156
+ "type": "TEXT",
4157
+ "notNull": false,
4158
+ "unique": false,
4159
+ "default": "GITHUB_TOKEN"
4160
+ },
4161
+ "last_synced_at": {
4162
+ "type": "TIMESTAMP",
4163
+ "notNull": false,
4164
+ "unique": false
4165
+ }
4166
+ },
4167
+ "indexes": [
4168
+ {
4169
+ "name": "repositories_id_idx",
4170
+ "columns": [
4171
+ "id"
4172
+ ]
4173
+ },
4174
+ {
4175
+ "name": "repositories_slug_context_idx",
4176
+ "columns": [
4177
+ "slug",
4178
+ "context"
4179
+ ],
4180
+ "unique": true
4181
+ }
4182
+ ],
4183
+ "version": "c302a5e5"
4184
+ }
4185
+ }
4186
+ },
4187
+ "moduleType": "smrt",
4188
+ "smrtDependencies": [
4189
+ "@happyvertical/smrt-core",
4190
+ "@happyvertical/smrt-prompts",
4191
+ "@happyvertical/smrt-tenancy"
4192
+ ]
4193
+ }