@happyvertical/smrt-projects 0.44.0 → 0.45.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.
@@ -2,7 +2,7 @@
2
2
  "version": "1.0.0",
3
3
  "timestamp": 0,
4
4
  "packageName": "@happyvertical/smrt-projects",
5
- "packageVersion": "0.44.0",
5
+ "packageVersion": "0.45.0",
6
6
  "objects": {
7
7
  "@happyvertical/smrt-projects:DevelopmentRequestHistoryCollection": {
8
8
  "name": "developmentrequesthistorycollection",
@@ -2195,751 +2195,209 @@
2195
2195
  }
2196
2196
  },
2197
2197
  "methods": {
2198
- "withDatabase": {
2199
- "name": "withDatabase",
2198
+ "getRepository": {
2199
+ "name": "getRepository",
2200
2200
  "async": true,
2201
- "parameters": [
2202
- {
2203
- "name": "db",
2204
- "type": "DatabaseInterface",
2205
- "optional": false
2206
- },
2207
- {
2208
- "name": "operation",
2209
- "type": "Function",
2210
- "optional": false
2211
- }
2212
- ],
2213
- "returnType": "Promise<T>",
2214
- "isStatic": false,
2215
- "isPublic": true
2216
- },
2217
- "getAiUsageSnapshot": {
2218
- "name": "getAiUsageSnapshot",
2219
- "async": false,
2220
- "parameters": [],
2221
- "returnType": "AiUsageSnapshot | undefined",
2222
- "isStatic": false,
2223
- "isPublic": true
2224
- },
2225
- "resetAiUsage": {
2226
- "name": "resetAiUsage",
2227
- "async": false,
2228
2201
  "parameters": [],
2229
- "returnType": "void",
2230
- "isStatic": false,
2231
- "isPublic": true
2232
- },
2233
- "listAiUsage": {
2234
- "name": "listAiUsage",
2235
- "async": true,
2236
- "parameters": [
2237
- {
2238
- "name": "options",
2239
- "type": "AiUsageListOptions",
2240
- "optional": true
2241
- }
2242
- ],
2243
- "returnType": "Promise<SmrtAiUsageRecord[]>",
2202
+ "returnType": "Promise<Repository>",
2244
2203
  "isStatic": false,
2245
2204
  "isPublic": true
2246
2205
  },
2247
- "summarizeAiUsage": {
2248
- "name": "summarizeAiUsage",
2206
+ "getClient": {
2207
+ "name": "getClient",
2249
2208
  "async": true,
2250
- "parameters": [
2251
- {
2252
- "name": "options",
2253
- "type": "AiUsageSummaryOptions",
2254
- "optional": true
2255
- }
2256
- ],
2257
- "returnType": "Promise<Record<string, AiUsageStats>>",
2258
- "isStatic": false,
2259
- "isPublic": true
2260
- },
2261
- "destroy": {
2262
- "name": "destroy",
2263
- "async": false,
2264
- "parameters": [],
2265
- "returnType": "void",
2266
- "isStatic": false,
2267
- "isPublic": true
2268
- },
2269
- "markAsPersisted": {
2270
- "name": "markAsPersisted",
2271
- "async": false,
2272
2209
  "parameters": [],
2273
- "returnType": "void",
2210
+ "returnType": "Promise<IRepository>",
2274
2211
  "isStatic": false,
2275
2212
  "isPublic": true
2276
2213
  },
2277
- "requireInsertOnSave": {
2278
- "name": "requireInsertOnSave",
2214
+ "clearCache": {
2215
+ "name": "clearCache",
2279
2216
  "async": false,
2280
2217
  "parameters": [],
2281
2218
  "returnType": "void",
2282
2219
  "isStatic": false,
2283
2220
  "isPublic": true
2284
2221
  },
2285
- "withTransaction": {
2286
- "name": "withTransaction",
2222
+ "sync": {
2223
+ "name": "sync",
2287
2224
  "async": true,
2288
2225
  "parameters": [
2289
2226
  {
2290
- "name": "operation",
2291
- "type": "Function",
2292
- "optional": false
2227
+ "name": "options",
2228
+ "type": "SyncOptions",
2229
+ "optional": true
2293
2230
  }
2294
2231
  ],
2295
- "returnType": "Promise<T>",
2232
+ "returnType": "Promise",
2296
2233
  "isStatic": false,
2297
2234
  "isPublic": true
2298
2235
  },
2299
- "initialize": {
2300
- "name": "initialize",
2236
+ "getComments": {
2237
+ "name": "getComments",
2301
2238
  "async": true,
2302
2239
  "parameters": [],
2303
- "returnType": "Promise",
2240
+ "returnType": "Promise<Comment[]>",
2304
2241
  "isStatic": false,
2305
2242
  "isPublic": true
2306
2243
  },
2307
- "loadDataFromDb": {
2308
- "name": "loadDataFromDb",
2244
+ "addComment": {
2245
+ "name": "addComment",
2309
2246
  "async": true,
2310
2247
  "parameters": [
2311
2248
  {
2312
- "name": "data",
2313
- "type": "Record<string>",
2249
+ "name": "body",
2250
+ "type": "string",
2314
2251
  "optional": false
2315
2252
  }
2316
2253
  ],
2317
- "returnType": "any",
2254
+ "returnType": "Promise<Comment>",
2318
2255
  "isStatic": false,
2319
2256
  "isPublic": true
2320
2257
  },
2321
- "getFields": {
2322
- "name": "getFields",
2258
+ "incorporateFeedback": {
2259
+ "name": "incorporateFeedback",
2323
2260
  "async": true,
2324
- "parameters": [],
2325
- "returnType": "Promise<any>",
2326
- "isStatic": false,
2327
- "isPublic": true
2328
- },
2329
- "toJSON": {
2330
- "name": "toJSON",
2331
- "async": false,
2332
- "parameters": [],
2333
- "returnType": "any",
2334
- "isStatic": false,
2335
- "isPublic": true
2336
- },
2337
- "toPlainObject": {
2338
- "name": "toPlainObject",
2339
- "async": false,
2340
- "parameters": [],
2341
- "returnType": "Record<string>",
2342
- "isStatic": false,
2343
- "isPublic": true
2344
- },
2345
- "toPublicJSON": {
2346
- "name": "toPublicJSON",
2347
- "async": false,
2348
2261
  "parameters": [
2349
2262
  {
2350
2263
  "name": "options",
2351
- "type": "PublicJsonOptions",
2264
+ "type": "IncorporateFeedbackOptions",
2352
2265
  "optional": true
2353
2266
  }
2354
2267
  ],
2355
- "returnType": "Record<string>",
2268
+ "returnType": "Promise<IncorporateFeedbackResult>",
2356
2269
  "isStatic": false,
2357
2270
  "isPublic": true
2358
2271
  },
2359
- "getId": {
2360
- "name": "getId",
2272
+ "rollback": {
2273
+ "name": "rollback",
2361
2274
  "async": true,
2362
2275
  "parameters": [],
2363
- "returnType": "any",
2276
+ "returnType": "Promise<object>",
2364
2277
  "isStatic": false,
2365
2278
  "isPublic": true
2366
2279
  },
2367
- "getSlug": {
2368
- "name": "getSlug",
2280
+ "needsReview": {
2281
+ "name": "needsReview",
2369
2282
  "async": true,
2370
2283
  "parameters": [],
2371
- "returnType": "any",
2284
+ "returnType": "Promise<boolean>",
2372
2285
  "isStatic": false,
2373
2286
  "isPublic": true
2374
2287
  },
2375
- "getSavedId": {
2376
- "name": "getSavedId",
2288
+ "isBugReport": {
2289
+ "name": "isBugReport",
2377
2290
  "async": true,
2378
2291
  "parameters": [],
2379
- "returnType": "any",
2292
+ "returnType": "Promise<boolean>",
2380
2293
  "isStatic": false,
2381
2294
  "isPublic": true
2382
2295
  },
2383
- "isSaved": {
2384
- "name": "isSaved",
2296
+ "isFeatureRequest": {
2297
+ "name": "isFeatureRequest",
2385
2298
  "async": true,
2386
2299
  "parameters": [],
2387
- "returnType": "any",
2388
- "isStatic": false,
2389
- "isPublic": true
2390
- },
2391
- "save": {
2392
- "name": "save",
2393
- "async": true,
2394
- "parameters": [
2395
- {
2396
- "name": "options",
2397
- "type": "SmrtSaveOptions",
2398
- "optional": true
2399
- }
2400
- ],
2401
- "returnType": "any",
2402
- "isStatic": false,
2403
- "isPublic": true
2404
- },
2405
- "claimRevision": {
2406
- "name": "claimRevision",
2407
- "async": true,
2408
- "parameters": [
2409
- {
2410
- "name": "expectedUpdatedAt",
2411
- "type": "Date | string",
2412
- "optional": false
2413
- }
2414
- ],
2415
- "returnType": "Promise",
2300
+ "returnType": "Promise<boolean>",
2416
2301
  "isStatic": false,
2417
2302
  "isPublic": true
2418
2303
  },
2419
- "classifyConstraintError": {
2420
- "name": "classifyConstraintError",
2421
- "async": false,
2422
- "parameters": [
2423
- {
2424
- "name": "message",
2425
- "type": "string",
2426
- "optional": false
2427
- }
2428
- ],
2429
- "returnType": "'unique' | 'not_null' | null",
2430
- "isStatic": true,
2431
- "isPublic": true
2432
- },
2433
- "loadFromId": {
2434
- "name": "loadFromId",
2304
+ "suggestLabels": {
2305
+ "name": "suggestLabels",
2435
2306
  "async": true,
2436
2307
  "parameters": [],
2437
- "returnType": "any",
2308
+ "returnType": "Promise<string[]>",
2438
2309
  "isStatic": false,
2439
2310
  "isPublic": true
2440
2311
  },
2441
- "loadFromSlug": {
2442
- "name": "loadFromSlug",
2312
+ "close": {
2313
+ "name": "close",
2443
2314
  "async": true,
2444
2315
  "parameters": [],
2445
- "returnType": "any",
2316
+ "returnType": "Promise<void>",
2446
2317
  "isStatic": false,
2447
2318
  "isPublic": true
2448
2319
  },
2449
- "is": {
2450
- "name": "is",
2320
+ "addLabels": {
2321
+ "name": "addLabels",
2451
2322
  "async": true,
2452
2323
  "parameters": [
2453
2324
  {
2454
- "name": "criteria",
2455
- "type": "string",
2325
+ "name": "labels",
2326
+ "type": "string[]",
2456
2327
  "optional": false
2457
- },
2458
- {
2459
- "name": "options",
2460
- "type": "AiOperationOptions",
2461
- "optional": true
2462
2328
  }
2463
2329
  ],
2464
- "returnType": "any",
2330
+ "returnType": "Promise<void>",
2465
2331
  "isStatic": false,
2466
2332
  "isPublic": true
2467
2333
  },
2468
- "do": {
2469
- "name": "do",
2334
+ "removeLabel": {
2335
+ "name": "removeLabel",
2470
2336
  "async": true,
2471
2337
  "parameters": [
2472
2338
  {
2473
- "name": "instructions",
2339
+ "name": "label",
2474
2340
  "type": "string",
2475
2341
  "optional": false
2476
- },
2477
- {
2478
- "name": "options",
2479
- "type": "AiOperationOptions",
2480
- "optional": true
2481
2342
  }
2482
2343
  ],
2483
- "returnType": "any",
2344
+ "returnType": "Promise<void>",
2484
2345
  "isStatic": false,
2485
2346
  "isPublic": true
2486
2347
  },
2487
- "describe": {
2488
- "name": "describe",
2348
+ "assign": {
2349
+ "name": "assign",
2489
2350
  "async": true,
2490
2351
  "parameters": [
2491
2352
  {
2492
- "name": "options",
2493
- "type": "AiOperationOptions",
2494
- "optional": true
2353
+ "name": "assignees",
2354
+ "type": "string[]",
2355
+ "optional": false
2495
2356
  }
2496
2357
  ],
2497
- "returnType": "any",
2498
- "isStatic": false,
2499
- "isPublic": true
2500
- },
2501
- "delete": {
2502
- "name": "delete",
2503
- "async": true,
2504
- "parameters": [],
2505
2358
  "returnType": "Promise<void>",
2506
2359
  "isStatic": false,
2507
2360
  "isPublic": true
2508
2361
  },
2509
- "isRelatedLoaded": {
2510
- "name": "isRelatedLoaded",
2362
+ "getUrl": {
2363
+ "name": "getUrl",
2511
2364
  "async": false,
2512
- "parameters": [
2513
- {
2514
- "name": "fieldName",
2515
- "type": "string",
2516
- "optional": false
2517
- }
2518
- ],
2519
- "returnType": "boolean",
2365
+ "parameters": [],
2366
+ "returnType": "string",
2520
2367
  "isStatic": false,
2521
2368
  "isPublic": true
2369
+ }
2370
+ },
2371
+ "decoratorConfig": {
2372
+ "tableStrategy": "sti",
2373
+ "api": {
2374
+ "include": [
2375
+ "list",
2376
+ "get",
2377
+ "create",
2378
+ "update"
2379
+ ]
2522
2380
  },
2523
- "_setLoadedRelationship": {
2524
- "name": "_setLoadedRelationship",
2525
- "async": false,
2526
- "parameters": [
2527
- {
2528
- "name": "fieldName",
2529
- "type": "string",
2530
- "optional": false
2531
- },
2532
- {
2533
- "name": "value",
2534
- "type": "any",
2535
- "optional": false
2536
- }
2537
- ],
2538
- "returnType": "void",
2539
- "isStatic": false,
2540
- "isPublic": true
2381
+ "mcp": {
2382
+ "include": [
2383
+ "list",
2384
+ "get",
2385
+ "sync",
2386
+ "incorporateFeedback"
2387
+ ]
2541
2388
  },
2542
- "loadRelated": {
2543
- "name": "loadRelated",
2544
- "async": true,
2545
- "parameters": [
2546
- {
2547
- "name": "fieldName",
2548
- "type": "string",
2549
- "optional": false
2550
- },
2551
- {
2552
- "name": "opts",
2553
- "type": "LoadRelatedOptions",
2554
- "optional": true
2555
- }
2389
+ "cli": {
2390
+ "include": [
2391
+ "list",
2392
+ "get",
2393
+ "sync",
2394
+ "incorporateFeedback",
2395
+ "rollback"
2556
2396
  ],
2557
- "returnType": "Promise<any>",
2558
- "isStatic": false,
2559
- "isPublic": true
2397
+ "skipApiCheck": true
2560
2398
  },
2561
- "loadRelatedMany": {
2562
- "name": "loadRelatedMany",
2563
- "async": true,
2564
- "parameters": [
2565
- {
2566
- "name": "fieldName",
2567
- "type": "string",
2568
- "optional": false
2569
- },
2570
- {
2571
- "name": "opts",
2572
- "type": "LoadRelatedOptions",
2573
- "optional": true
2574
- }
2575
- ],
2576
- "returnType": "Promise<any[]>",
2577
- "isStatic": false,
2578
- "isPublic": true
2579
- },
2580
- "getRelated": {
2581
- "name": "getRelated",
2582
- "async": true,
2583
- "parameters": [
2584
- {
2585
- "name": "fieldName",
2586
- "type": "string",
2587
- "optional": false
2588
- },
2589
- {
2590
- "name": "opts",
2591
- "type": "LoadRelatedOptions",
2592
- "optional": true
2593
- }
2594
- ],
2595
- "returnType": "Promise<any>",
2596
- "isStatic": false,
2597
- "isPublic": true
2598
- },
2599
- "getAvailableTools": {
2600
- "name": "getAvailableTools",
2601
- "async": false,
2602
- "parameters": [],
2603
- "returnType": "AITool[]",
2604
- "isStatic": false,
2605
- "isPublic": true
2606
- },
2607
- "executeToolCall": {
2608
- "name": "executeToolCall",
2609
- "async": true,
2610
- "parameters": [
2611
- {
2612
- "name": "toolCall",
2613
- "type": "ToolCall",
2614
- "optional": false
2615
- }
2616
- ],
2617
- "returnType": "Promise<ToolCallResult>",
2618
- "isStatic": false,
2619
- "isPublic": true
2620
- },
2621
- "remember": {
2622
- "name": "remember",
2623
- "async": true,
2624
- "parameters": [
2625
- {
2626
- "name": "options",
2627
- "type": "object",
2628
- "optional": false
2629
- }
2630
- ],
2631
- "returnType": "Promise<void>",
2632
- "isStatic": false,
2633
- "isPublic": true
2634
- },
2635
- "recall": {
2636
- "name": "recall",
2637
- "async": true,
2638
- "parameters": [
2639
- {
2640
- "name": "options",
2641
- "type": "object",
2642
- "optional": false
2643
- }
2644
- ],
2645
- "returnType": "Promise",
2646
- "isStatic": false,
2647
- "isPublic": true
2648
- },
2649
- "recallAll": {
2650
- "name": "recallAll",
2651
- "async": true,
2652
- "parameters": [
2653
- {
2654
- "name": "options",
2655
- "type": "object",
2656
- "optional": true
2657
- }
2658
- ],
2659
- "returnType": "Promise<Map<string>>",
2660
- "isStatic": false,
2661
- "isPublic": true
2662
- },
2663
- "forget": {
2664
- "name": "forget",
2665
- "async": true,
2666
- "parameters": [
2667
- {
2668
- "name": "options",
2669
- "type": "object",
2670
- "optional": false
2671
- }
2672
- ],
2673
- "returnType": "Promise<void>",
2674
- "isStatic": false,
2675
- "isPublic": true
2676
- },
2677
- "forgetScope": {
2678
- "name": "forgetScope",
2679
- "async": true,
2680
- "parameters": [
2681
- {
2682
- "name": "options",
2683
- "type": "object",
2684
- "optional": false
2685
- }
2686
- ],
2687
- "returnType": "Promise<number>",
2688
- "isStatic": false,
2689
- "isPublic": true
2690
- },
2691
- "generateEmbeddings": {
2692
- "name": "generateEmbeddings",
2693
- "async": true,
2694
- "parameters": [
2695
- {
2696
- "name": "options",
2697
- "type": "GenerateEmbeddingsOptions",
2698
- "optional": true
2699
- }
2700
- ],
2701
- "returnType": "Promise<void>",
2702
- "isStatic": false,
2703
- "isPublic": true
2704
- },
2705
- "getEmbedding": {
2706
- "name": "getEmbedding",
2707
- "async": true,
2708
- "parameters": [
2709
- {
2710
- "name": "fieldName",
2711
- "type": "string",
2712
- "optional": false
2713
- },
2714
- {
2715
- "name": "model",
2716
- "type": "string",
2717
- "optional": true
2718
- }
2719
- ],
2720
- "returnType": "Promise<number[] | null>",
2721
- "isStatic": false,
2722
- "isPublic": true
2723
- },
2724
- "hasStaleEmbeddings": {
2725
- "name": "hasStaleEmbeddings",
2726
- "async": true,
2727
- "parameters": [],
2728
- "returnType": "Promise<boolean>",
2729
- "isStatic": false,
2730
- "isPublic": true
2731
- },
2732
- "clearEmbeddings": {
2733
- "name": "clearEmbeddings",
2734
- "async": true,
2735
- "parameters": [],
2736
- "returnType": "Promise<void>",
2737
- "isStatic": false,
2738
- "isPublic": true
2739
- },
2740
- "getRepository": {
2741
- "name": "getRepository",
2742
- "async": true,
2743
- "parameters": [],
2744
- "returnType": "Promise<Repository>",
2745
- "isStatic": false,
2746
- "isPublic": true
2747
- },
2748
- "getClient": {
2749
- "name": "getClient",
2750
- "async": true,
2751
- "parameters": [],
2752
- "returnType": "Promise<IRepository>",
2753
- "isStatic": false,
2754
- "isPublic": true
2755
- },
2756
- "clearCache": {
2757
- "name": "clearCache",
2758
- "async": false,
2759
- "parameters": [],
2760
- "returnType": "void",
2761
- "isStatic": false,
2762
- "isPublic": true
2763
- },
2764
- "sync": {
2765
- "name": "sync",
2766
- "async": true,
2767
- "parameters": [
2768
- {
2769
- "name": "options",
2770
- "type": "SyncOptions",
2771
- "optional": true
2772
- }
2773
- ],
2774
- "returnType": "Promise",
2775
- "isStatic": false,
2776
- "isPublic": true
2777
- },
2778
- "getComments": {
2779
- "name": "getComments",
2780
- "async": true,
2781
- "parameters": [],
2782
- "returnType": "Promise<Comment[]>",
2783
- "isStatic": false,
2784
- "isPublic": true
2785
- },
2786
- "addComment": {
2787
- "name": "addComment",
2788
- "async": true,
2789
- "parameters": [
2790
- {
2791
- "name": "body",
2792
- "type": "string",
2793
- "optional": false
2794
- }
2795
- ],
2796
- "returnType": "Promise<Comment>",
2797
- "isStatic": false,
2798
- "isPublic": true
2799
- },
2800
- "incorporateFeedback": {
2801
- "name": "incorporateFeedback",
2802
- "async": true,
2803
- "parameters": [
2804
- {
2805
- "name": "options",
2806
- "type": "IncorporateFeedbackOptions",
2807
- "optional": true
2808
- }
2809
- ],
2810
- "returnType": "Promise<IncorporateFeedbackResult>",
2811
- "isStatic": false,
2812
- "isPublic": true
2813
- },
2814
- "rollback": {
2815
- "name": "rollback",
2816
- "async": true,
2817
- "parameters": [],
2818
- "returnType": "Promise<object>",
2819
- "isStatic": false,
2820
- "isPublic": true
2821
- },
2822
- "needsReview": {
2823
- "name": "needsReview",
2824
- "async": true,
2825
- "parameters": [],
2826
- "returnType": "Promise<boolean>",
2827
- "isStatic": false,
2828
- "isPublic": true
2829
- },
2830
- "isBugReport": {
2831
- "name": "isBugReport",
2832
- "async": true,
2833
- "parameters": [],
2834
- "returnType": "Promise<boolean>",
2835
- "isStatic": false,
2836
- "isPublic": true
2837
- },
2838
- "isFeatureRequest": {
2839
- "name": "isFeatureRequest",
2840
- "async": true,
2841
- "parameters": [],
2842
- "returnType": "Promise<boolean>",
2843
- "isStatic": false,
2844
- "isPublic": true
2845
- },
2846
- "suggestLabels": {
2847
- "name": "suggestLabels",
2848
- "async": true,
2849
- "parameters": [],
2850
- "returnType": "Promise<string[]>",
2851
- "isStatic": false,
2852
- "isPublic": true
2853
- },
2854
- "close": {
2855
- "name": "close",
2856
- "async": true,
2857
- "parameters": [],
2858
- "returnType": "Promise<void>",
2859
- "isStatic": false,
2860
- "isPublic": true
2861
- },
2862
- "addLabels": {
2863
- "name": "addLabels",
2864
- "async": true,
2865
- "parameters": [
2866
- {
2867
- "name": "labels",
2868
- "type": "string[]",
2869
- "optional": false
2870
- }
2871
- ],
2872
- "returnType": "Promise<void>",
2873
- "isStatic": false,
2874
- "isPublic": true
2875
- },
2876
- "removeLabel": {
2877
- "name": "removeLabel",
2878
- "async": true,
2879
- "parameters": [
2880
- {
2881
- "name": "label",
2882
- "type": "string",
2883
- "optional": false
2884
- }
2885
- ],
2886
- "returnType": "Promise<void>",
2887
- "isStatic": false,
2888
- "isPublic": true
2889
- },
2890
- "assign": {
2891
- "name": "assign",
2892
- "async": true,
2893
- "parameters": [
2894
- {
2895
- "name": "assignees",
2896
- "type": "string[]",
2897
- "optional": false
2898
- }
2899
- ],
2900
- "returnType": "Promise<void>",
2901
- "isStatic": false,
2902
- "isPublic": true
2903
- },
2904
- "getUrl": {
2905
- "name": "getUrl",
2906
- "async": false,
2907
- "parameters": [],
2908
- "returnType": "string",
2909
- "isStatic": false,
2910
- "isPublic": true
2911
- }
2912
- },
2913
- "decoratorConfig": {
2914
- "tableStrategy": "sti",
2915
- "api": {
2916
- "include": [
2917
- "list",
2918
- "get",
2919
- "create",
2920
- "update"
2921
- ]
2922
- },
2923
- "mcp": {
2924
- "include": [
2925
- "list",
2926
- "get",
2927
- "sync",
2928
- "incorporateFeedback"
2929
- ]
2930
- },
2931
- "cli": {
2932
- "include": [
2933
- "list",
2934
- "get",
2935
- "sync",
2936
- "incorporateFeedback",
2937
- "rollback"
2938
- ],
2939
- "skipApiCheck": true
2940
- },
2941
- "tenantScoped": {
2942
- "mode": "optional"
2399
+ "tenantScoped": {
2400
+ "mode": "optional"
2943
2401
  },
2944
2402
  "conflictColumns": [
2945
2403
  "tenant_id",
@@ -3061,600 +2519,187 @@
3061
2519
  "notNull": false
3062
2520
  },
3063
2521
  "original_body": {
3064
- "type": "TEXT",
3065
- "notNull": false,
3066
- "default": ""
3067
- },
3068
- "synthesis_count": {
3069
- "type": "INTEGER",
3070
- "notNull": false,
3071
- "default": 0
3072
- },
3073
- "head_ref": {
3074
- "type": "TEXT",
3075
- "notNull": false,
3076
- "default": ""
3077
- },
3078
- "base_ref": {
3079
- "type": "TEXT",
3080
- "notNull": false,
3081
- "default": ""
3082
- },
3083
- "merged": {
3084
- "type": "BOOLEAN",
3085
- "notNull": false,
3086
- "default": false
3087
- },
3088
- "merged_at": {
3089
- "type": "TIMESTAMP",
3090
- "notNull": false
3091
- },
3092
- "mergeable": {
3093
- "type": "BOOLEAN",
3094
- "notNull": false,
3095
- "default": true
3096
- },
3097
- "draft": {
3098
- "type": "BOOLEAN",
3099
- "notNull": false,
3100
- "default": false
3101
- },
3102
- "additions": {
3103
- "type": "INTEGER",
3104
- "notNull": false,
3105
- "default": 0
3106
- },
3107
- "deletions": {
3108
- "type": "INTEGER",
3109
- "notNull": false,
3110
- "default": 0
3111
- },
3112
- "changed_files": {
3113
- "type": "INTEGER",
3114
- "notNull": false,
3115
- "default": 0
3116
- }
3117
- },
3118
- "indexes": [
3119
- {
3120
- "name": "issues_slug_context_meta_type_idx",
3121
- "columns": [
3122
- "tenant_id",
3123
- "slug",
3124
- "context",
3125
- "_meta_type"
3126
- ],
3127
- "unique": true
3128
- },
3129
- {
3130
- "name": "issues_meta_type_idx",
3131
- "columns": [
3132
- "_meta_type"
3133
- ]
3134
- },
3135
- {
3136
- "name": "issues_tenant_id_created_at_idx",
3137
- "columns": [
3138
- "tenant_id",
3139
- "created_at"
3140
- ]
3141
- },
3142
- {
3143
- "name": "issues_repository_id_idx",
3144
- "columns": [
3145
- "repository_id"
3146
- ]
3147
- }
3148
- ],
3149
- "version": "c3d5425b"
3150
- }
3151
- },
3152
- "@happyvertical/smrt-projects:Label": {
3153
- "name": "label",
3154
- "className": "Label",
3155
- "qualifiedName": "@happyvertical/smrt-projects:Label",
3156
- "collection": "labels",
3157
- "filePath": "/home/runner/work/smrt/smrt/packages/projects/src/models/Label.ts",
3158
- "packageName": "@happyvertical/smrt-projects",
3159
- "fields": {
3160
- "repositoryId": {
3161
- "type": "foreignKey",
3162
- "required": false,
3163
- "related": "Repository"
3164
- },
3165
- "name": {
3166
- "type": "text",
3167
- "required": false,
3168
- "default": ""
3169
- },
3170
- "color": {
3171
- "type": "text",
3172
- "required": false,
3173
- "default": ""
3174
- },
3175
- "description": {
3176
- "type": "text",
3177
- "required": false,
3178
- "default": ""
3179
- }
3180
- },
3181
- "methods": {
3182
- "isTypeLabel": {
3183
- "name": "isTypeLabel",
3184
- "async": false,
3185
- "parameters": [],
3186
- "returnType": "boolean",
3187
- "isStatic": false,
3188
- "isPublic": true
3189
- },
3190
- "isPriorityLabel": {
3191
- "name": "isPriorityLabel",
3192
- "async": false,
3193
- "parameters": [],
3194
- "returnType": "boolean",
3195
- "isStatic": false,
3196
- "isPublic": true
3197
- },
3198
- "isStatusLabel": {
3199
- "name": "isStatusLabel",
3200
- "async": false,
3201
- "parameters": [],
3202
- "returnType": "boolean",
3203
- "isStatic": false,
3204
- "isPublic": true
3205
- },
3206
- "getCategory": {
3207
- "name": "getCategory",
3208
- "async": false,
3209
- "parameters": [],
3210
- "returnType": "'type' | 'priority' | 'status' | 'area' | 'other'",
3211
- "isStatic": false,
3212
- "isPublic": true
3213
- },
3214
- "getPriorityLevel": {
3215
- "name": "getPriorityLevel",
3216
- "async": false,
3217
- "parameters": [],
3218
- "returnType": "number | null",
3219
- "isStatic": false,
3220
- "isPublic": true
3221
- },
3222
- "getHexColor": {
3223
- "name": "getHexColor",
3224
- "async": false,
3225
- "parameters": [],
3226
- "returnType": "string",
3227
- "isStatic": false,
3228
- "isPublic": true
3229
- },
3230
- "createInRepository": {
3231
- "name": "createInRepository",
3232
- "async": true,
3233
- "parameters": [],
3234
- "returnType": "Promise<void>",
3235
- "isStatic": false,
3236
- "isPublic": true
3237
- },
3238
- "updateInRepository": {
3239
- "name": "updateInRepository",
3240
- "async": true,
3241
- "parameters": [],
3242
- "returnType": "Promise<void>",
3243
- "isStatic": false,
3244
- "isPublic": true
3245
- }
3246
- },
3247
- "decoratorConfig": {
3248
- "api": {
3249
- "include": [
3250
- "list",
3251
- "get",
3252
- "create",
3253
- "update",
3254
- "delete"
3255
- ]
3256
- },
3257
- "mcp": {
3258
- "include": [
3259
- "list",
3260
- "get",
3261
- "create"
3262
- ]
3263
- },
3264
- "cli": {
3265
- "include": [
3266
- "list",
3267
- "get",
3268
- "create",
3269
- "update",
3270
- "delete"
3271
- ]
3272
- }
3273
- },
3274
- "extends": "SmrtObject",
3275
- "exportName": "Label",
3276
- "collectionExportName": "LabelCollection",
3277
- "schema": {
3278
- "tableName": "labels",
3279
- "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);",
3280
- "columns": {
3281
- "id": {
3282
- "type": "UUID",
3283
- "primaryKey": true,
3284
- "referenceKind": "id",
3285
- "notNull": true
2522
+ "type": "TEXT",
2523
+ "notNull": false,
2524
+ "default": ""
3286
2525
  },
3287
- "slug": {
2526
+ "synthesis_count": {
2527
+ "type": "INTEGER",
2528
+ "notNull": false,
2529
+ "default": 0
2530
+ },
2531
+ "head_ref": {
3288
2532
  "type": "TEXT",
3289
- "notNull": true
2533
+ "notNull": false,
2534
+ "default": ""
3290
2535
  },
3291
- "context": {
2536
+ "base_ref": {
3292
2537
  "type": "TEXT",
3293
- "notNull": true,
2538
+ "notNull": false,
3294
2539
  "default": ""
3295
2540
  },
3296
- "created_at": {
3297
- "type": "TIMESTAMP",
3298
- "notNull": true,
3299
- "default": "current_timestamp"
2541
+ "merged": {
2542
+ "type": "BOOLEAN",
2543
+ "notNull": false,
2544
+ "default": false
3300
2545
  },
3301
- "updated_at": {
2546
+ "merged_at": {
3302
2547
  "type": "TIMESTAMP",
3303
- "notNull": true,
3304
- "default": "current_timestamp"
2548
+ "notNull": false
3305
2549
  },
3306
- "repository_id": {
3307
- "type": "UUID",
3308
- "referenceKind": "foreignKey",
2550
+ "mergeable": {
2551
+ "type": "BOOLEAN",
3309
2552
  "notNull": false,
3310
- "unique": false,
3311
- "foreignKey": {
3312
- "table": "repositories",
3313
- "column": "id",
3314
- "onDelete": "NO ACTION",
3315
- "onUpdate": "CASCADE"
3316
- }
2553
+ "default": true
3317
2554
  },
3318
- "name": {
3319
- "type": "TEXT",
2555
+ "draft": {
2556
+ "type": "BOOLEAN",
3320
2557
  "notNull": false,
3321
- "unique": false,
3322
- "default": ""
2558
+ "default": false
3323
2559
  },
3324
- "color": {
3325
- "type": "TEXT",
2560
+ "additions": {
2561
+ "type": "INTEGER",
3326
2562
  "notNull": false,
3327
- "unique": false,
3328
- "default": ""
2563
+ "default": 0
3329
2564
  },
3330
- "description": {
3331
- "type": "TEXT",
2565
+ "deletions": {
2566
+ "type": "INTEGER",
3332
2567
  "notNull": false,
3333
- "unique": false,
3334
- "default": ""
2568
+ "default": 0
2569
+ },
2570
+ "changed_files": {
2571
+ "type": "INTEGER",
2572
+ "notNull": false,
2573
+ "default": 0
3335
2574
  }
3336
2575
  },
3337
2576
  "indexes": [
3338
2577
  {
3339
- "name": "labels_slug_context_idx",
2578
+ "name": "issues_slug_context_meta_type_idx",
3340
2579
  "columns": [
2580
+ "tenant_id",
3341
2581
  "slug",
3342
- "context"
2582
+ "context",
2583
+ "_meta_type"
3343
2584
  ],
3344
2585
  "unique": true
3345
2586
  },
3346
2587
  {
3347
- "name": "labels_created_at_idx",
2588
+ "name": "issues_meta_type_idx",
2589
+ "columns": [
2590
+ "_meta_type"
2591
+ ]
2592
+ },
2593
+ {
2594
+ "name": "issues_tenant_id_created_at_idx",
3348
2595
  "columns": [
2596
+ "tenant_id",
3349
2597
  "created_at"
3350
2598
  ]
3351
2599
  },
3352
2600
  {
3353
- "name": "labels_repository_id_idx",
2601
+ "name": "issues_repository_id_idx",
3354
2602
  "columns": [
3355
2603
  "repository_id"
3356
2604
  ]
3357
2605
  }
3358
2606
  ],
3359
- "version": "d1e8d236"
2607
+ "version": "c3d5425b"
3360
2608
  }
3361
2609
  },
3362
- "@happyvertical/smrt-projects:Project": {
3363
- "name": "project",
3364
- "className": "Project",
3365
- "qualifiedName": "@happyvertical/smrt-projects:Project",
3366
- "collection": "projects",
3367
- "filePath": "/home/runner/work/smrt/smrt/packages/projects/src/models/Project.ts",
2610
+ "@happyvertical/smrt-projects:Label": {
2611
+ "name": "label",
2612
+ "className": "Label",
2613
+ "qualifiedName": "@happyvertical/smrt-projects:Label",
2614
+ "collection": "labels",
2615
+ "filePath": "/home/runner/work/smrt/smrt/packages/projects/src/models/Label.ts",
3368
2616
  "packageName": "@happyvertical/smrt-projects",
3369
- "fields": {
3370
- "tenantId": {
3371
- "type": "text",
3372
- "required": false,
3373
- "_meta": {
3374
- "sqlType": "UUID",
3375
- "nullable": true,
3376
- "__tenancy": {
3377
- "isTenantIdField": true,
3378
- "autoFilter": true,
3379
- "required": false,
3380
- "autoPopulate": true,
3381
- "nullable": true,
3382
- "mode": "optional",
3383
- "field": "tenantId",
3384
- "allowSuperAdminBypass": false
3385
- }
3386
- }
3387
- },
3388
- "projectId": {
3389
- "type": "text",
3390
- "required": false,
3391
- "default": ""
3392
- },
3393
- "projectNumber": {
3394
- "type": "integer",
3395
- "required": false,
3396
- "default": 0
3397
- },
3398
- "title": {
3399
- "type": "text",
3400
- "required": false,
3401
- "default": ""
3402
- },
3403
- "description": {
3404
- "type": "text",
3405
- "required": false,
3406
- "default": ""
3407
- },
3408
- "owner": {
3409
- "type": "text",
3410
- "required": false,
3411
- "default": ""
3412
- },
3413
- "url": {
3414
- "type": "text",
3415
- "required": false,
3416
- "default": ""
3417
- },
3418
- "providerType": {
3419
- "type": "text",
3420
- "required": false,
3421
- "default": "github"
3422
- },
3423
- "tokenConfigKey": {
3424
- "type": "text",
3425
- "required": false,
3426
- "default": "GITHUB_TOKEN"
3427
- },
3428
- "statuses": {
3429
- "type": "json",
3430
- "required": false,
3431
- "default": []
3432
- },
3433
- "fields": {
3434
- "type": "json",
3435
- "required": false,
3436
- "default": []
3437
- },
3438
- "statusFieldId": {
3439
- "type": "text",
3440
- "required": false,
3441
- "default": ""
3442
- },
3443
- "statusOptions": {
3444
- "type": "json",
3445
- "required": false,
3446
- "default": {}
3447
- },
3448
- "lastSyncedAt": {
3449
- "type": "datetime",
3450
- "required": false
3451
- }
3452
- },
3453
- "methods": {
3454
- "getClient": {
3455
- "name": "getClient",
3456
- "async": true,
3457
- "parameters": [],
3458
- "returnType": "Promise<IProject>",
3459
- "isStatic": false,
3460
- "isPublic": true
3461
- },
3462
- "clearClient": {
3463
- "name": "clearClient",
3464
- "async": false,
3465
- "parameters": [],
3466
- "returnType": "void",
3467
- "isStatic": false,
3468
- "isPublic": true
3469
- },
3470
- "sync": {
3471
- "name": "sync",
3472
- "async": true,
3473
- "parameters": [
3474
- {
3475
- "name": "options",
3476
- "type": "SyncOptions",
3477
- "optional": true
3478
- }
3479
- ],
3480
- "returnType": "Promise",
3481
- "isStatic": false,
3482
- "isPublic": true
3483
- },
3484
- "addItem": {
3485
- "name": "addItem",
3486
- "async": true,
3487
- "parameters": [
3488
- {
3489
- "name": "item",
3490
- "type": "Issue | PullRequest",
3491
- "optional": false
3492
- }
3493
- ],
3494
- "returnType": "Promise<ProjectItem>",
3495
- "isStatic": false,
3496
- "isPublic": true
3497
- },
3498
- "removeItem": {
3499
- "name": "removeItem",
3500
- "async": true,
3501
- "parameters": [
3502
- {
3503
- "name": "itemId",
3504
- "type": "string",
3505
- "optional": false
3506
- }
3507
- ],
3508
- "returnType": "Promise<void>",
3509
- "isStatic": false,
3510
- "isPublic": true
3511
- },
3512
- "getItem": {
3513
- "name": "getItem",
3514
- "async": true,
3515
- "parameters": [
3516
- {
3517
- "name": "itemId",
3518
- "type": "string",
3519
- "optional": false
3520
- }
3521
- ],
3522
- "returnType": "Promise<ProjectItem | null>",
3523
- "isStatic": false,
3524
- "isPublic": true
2617
+ "fields": {
2618
+ "repositoryId": {
2619
+ "type": "foreignKey",
2620
+ "required": false,
2621
+ "related": "Repository"
3525
2622
  },
3526
- "listItems": {
3527
- "name": "listItems",
3528
- "async": true,
3529
- "parameters": [
3530
- {
3531
- "name": "filters",
3532
- "type": "ItemFilters",
3533
- "optional": true
3534
- }
3535
- ],
3536
- "returnType": "Promise<ProjectItem[]>",
2623
+ "name": {
2624
+ "type": "text",
2625
+ "required": false,
2626
+ "default": ""
2627
+ },
2628
+ "color": {
2629
+ "type": "text",
2630
+ "required": false,
2631
+ "default": ""
2632
+ },
2633
+ "description": {
2634
+ "type": "text",
2635
+ "required": false,
2636
+ "default": ""
2637
+ }
2638
+ },
2639
+ "methods": {
2640
+ "isTypeLabel": {
2641
+ "name": "isTypeLabel",
2642
+ "async": false,
2643
+ "parameters": [],
2644
+ "returnType": "boolean",
3537
2645
  "isStatic": false,
3538
2646
  "isPublic": true
3539
2647
  },
3540
- "updateItemStatus": {
3541
- "name": "updateItemStatus",
3542
- "async": true,
3543
- "parameters": [
3544
- {
3545
- "name": "itemId",
3546
- "type": "string",
3547
- "optional": false
3548
- },
3549
- {
3550
- "name": "status",
3551
- "type": "string",
3552
- "optional": false
3553
- }
3554
- ],
3555
- "returnType": "Promise<void>",
2648
+ "isPriorityLabel": {
2649
+ "name": "isPriorityLabel",
2650
+ "async": false,
2651
+ "parameters": [],
2652
+ "returnType": "boolean",
3556
2653
  "isStatic": false,
3557
2654
  "isPublic": true
3558
2655
  },
3559
- "updateItemField": {
3560
- "name": "updateItemField",
3561
- "async": true,
3562
- "parameters": [
3563
- {
3564
- "name": "itemId",
3565
- "type": "string",
3566
- "optional": false
3567
- },
3568
- {
3569
- "name": "fieldId",
3570
- "type": "string",
3571
- "optional": false
3572
- },
3573
- {
3574
- "name": "value",
3575
- "type": "any",
3576
- "optional": false
3577
- }
3578
- ],
3579
- "returnType": "Promise<void>",
2656
+ "isStatusLabel": {
2657
+ "name": "isStatusLabel",
2658
+ "async": false,
2659
+ "parameters": [],
2660
+ "returnType": "boolean",
3580
2661
  "isStatic": false,
3581
2662
  "isPublic": true
3582
2663
  },
3583
- "getStatuses": {
3584
- "name": "getStatuses",
3585
- "async": true,
2664
+ "getCategory": {
2665
+ "name": "getCategory",
2666
+ "async": false,
3586
2667
  "parameters": [],
3587
- "returnType": "Promise<ProjectStatus[]>",
2668
+ "returnType": "'type' | 'priority' | 'status' | 'area' | 'other'",
3588
2669
  "isStatic": false,
3589
2670
  "isPublic": true
3590
2671
  },
3591
- "getFields": {
3592
- "name": "getFields",
3593
- "async": true,
2672
+ "getPriorityLevel": {
2673
+ "name": "getPriorityLevel",
2674
+ "async": false,
3594
2675
  "parameters": [],
3595
- "returnType": "Promise<ProjectField[]>",
2676
+ "returnType": "number | null",
3596
2677
  "isStatic": false,
3597
2678
  "isPublic": true
3598
2679
  },
3599
- "getItemsByStatus": {
3600
- "name": "getItemsByStatus",
3601
- "async": true,
3602
- "parameters": [
3603
- {
3604
- "name": "status",
3605
- "type": "string",
3606
- "optional": false
3607
- }
3608
- ],
3609
- "returnType": "Promise<ProjectItem[]>",
2680
+ "getHexColor": {
2681
+ "name": "getHexColor",
2682
+ "async": false,
2683
+ "parameters": [],
2684
+ "returnType": "string",
3610
2685
  "isStatic": false,
3611
2686
  "isPublic": true
3612
2687
  },
3613
- "moveItem": {
3614
- "name": "moveItem",
2688
+ "createInRepository": {
2689
+ "name": "createInRepository",
3615
2690
  "async": true,
3616
- "parameters": [
3617
- {
3618
- "name": "item",
3619
- "type": "Issue | PullRequest",
3620
- "optional": false
3621
- },
3622
- {
3623
- "name": "status",
3624
- "type": "string",
3625
- "optional": false
3626
- }
3627
- ],
2691
+ "parameters": [],
3628
2692
  "returnType": "Promise<void>",
3629
2693
  "isStatic": false,
3630
2694
  "isPublic": true
3631
2695
  },
3632
- "analyzeHealth": {
3633
- "name": "analyzeHealth",
2696
+ "updateInRepository": {
2697
+ "name": "updateInRepository",
3634
2698
  "async": true,
3635
2699
  "parameters": [],
3636
- "returnType": "Promise<string>",
2700
+ "returnType": "Promise<void>",
3637
2701
  "isStatic": false,
3638
2702
  "isPublic": true
3639
- },
3640
- "getByTitle": {
3641
- "name": "getByTitle",
3642
- "async": true,
3643
- "parameters": [
3644
- {
3645
- "name": "title",
3646
- "type": "string",
3647
- "optional": false
3648
- },
3649
- {
3650
- "name": "options",
3651
- "type": "SmrtObjectOptions",
3652
- "optional": true
3653
- }
3654
- ],
3655
- "returnType": "Promise<Project | null>",
3656
- "isStatic": true,
3657
- "isPublic": true
3658
2703
  }
3659
2704
  },
3660
2705
  "decoratorConfig": {
@@ -3663,44 +2708,33 @@
3663
2708
  "list",
3664
2709
  "get",
3665
2710
  "create",
3666
- "update"
2711
+ "update",
2712
+ "delete"
3667
2713
  ]
3668
2714
  },
3669
2715
  "mcp": {
3670
2716
  "include": [
3671
2717
  "list",
3672
2718
  "get",
3673
- "sync",
3674
- "addItem",
3675
- "updateItemStatus"
2719
+ "create"
3676
2720
  ]
3677
2721
  },
3678
2722
  "cli": {
3679
2723
  "include": [
3680
2724
  "list",
3681
2725
  "get",
3682
- "sync",
3683
- "addItem",
3684
- "updateItemStatus",
3685
- "listItems"
3686
- ],
3687
- "skipApiCheck": true
3688
- },
3689
- "tenantScoped": {
3690
- "mode": "optional"
3691
- },
3692
- "conflictColumns": [
3693
- "tenant_id",
3694
- "slug",
3695
- "context"
3696
- ]
2726
+ "create",
2727
+ "update",
2728
+ "delete"
2729
+ ]
2730
+ }
3697
2731
  },
3698
2732
  "extends": "SmrtObject",
3699
- "exportName": "Project",
3700
- "collectionExportName": "ProjectCollection",
2733
+ "exportName": "Label",
2734
+ "collectionExportName": "LabelCollection",
3701
2735
  "schema": {
3702
- "tableName": "projects",
3703
- "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);",
2736
+ "tableName": "labels",
2737
+ "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);",
3704
2738
  "columns": {
3705
2739
  "id": {
3706
2740
  "type": "UUID",
@@ -3727,131 +2761,83 @@
3727
2761
  "notNull": true,
3728
2762
  "default": "current_timestamp"
3729
2763
  },
3730
- "tenant_id": {
3731
- "type": "UUID",
3732
- "referenceKind": "tenantId",
3733
- "notNull": false,
3734
- "unique": false
3735
- },
3736
- "project_id": {
3737
- "type": "TEXT",
3738
- "notNull": false,
3739
- "unique": false,
3740
- "default": ""
3741
- },
3742
- "project_number": {
3743
- "type": "INTEGER",
3744
- "notNull": false,
3745
- "unique": false,
3746
- "default": 0
3747
- },
3748
- "title": {
3749
- "type": "TEXT",
3750
- "notNull": false,
3751
- "unique": false,
3752
- "default": ""
3753
- },
3754
- "description": {
3755
- "type": "TEXT",
3756
- "notNull": false,
3757
- "unique": false,
3758
- "default": ""
3759
- },
3760
- "owner": {
3761
- "type": "TEXT",
3762
- "notNull": false,
3763
- "unique": false,
3764
- "default": ""
3765
- },
3766
- "url": {
3767
- "type": "TEXT",
3768
- "notNull": false,
3769
- "unique": false,
3770
- "default": ""
3771
- },
3772
- "provider_type": {
3773
- "type": "TEXT",
3774
- "notNull": false,
3775
- "unique": false,
3776
- "default": "github"
3777
- },
3778
- "token_config_key": {
3779
- "type": "TEXT",
3780
- "notNull": false,
3781
- "unique": false,
3782
- "default": "GITHUB_TOKEN"
3783
- },
3784
- "statuses": {
3785
- "type": "JSON",
3786
- "notNull": false,
3787
- "unique": false,
3788
- "default": []
3789
- },
3790
- "fields": {
3791
- "type": "JSON",
2764
+ "repository_id": {
2765
+ "type": "UUID",
2766
+ "referenceKind": "foreignKey",
3792
2767
  "notNull": false,
3793
2768
  "unique": false,
3794
- "default": []
2769
+ "foreignKey": {
2770
+ "table": "repositories",
2771
+ "column": "id",
2772
+ "onDelete": "NO ACTION",
2773
+ "onUpdate": "CASCADE"
2774
+ }
3795
2775
  },
3796
- "status_field_id": {
2776
+ "name": {
3797
2777
  "type": "TEXT",
3798
2778
  "notNull": false,
3799
2779
  "unique": false,
3800
2780
  "default": ""
3801
2781
  },
3802
- "status_options": {
3803
- "type": "JSON",
2782
+ "color": {
2783
+ "type": "TEXT",
3804
2784
  "notNull": false,
3805
2785
  "unique": false,
3806
- "default": {}
2786
+ "default": ""
3807
2787
  },
3808
- "last_synced_at": {
3809
- "type": "TIMESTAMP",
2788
+ "description": {
2789
+ "type": "TEXT",
3810
2790
  "notNull": false,
3811
- "unique": false
2791
+ "unique": false,
2792
+ "default": ""
3812
2793
  }
3813
2794
  },
3814
2795
  "indexes": [
3815
2796
  {
3816
- "name": "projects_slug_context_idx",
2797
+ "name": "labels_slug_context_idx",
3817
2798
  "columns": [
3818
- "tenant_id",
3819
2799
  "slug",
3820
2800
  "context"
3821
2801
  ],
3822
2802
  "unique": true
3823
2803
  },
3824
2804
  {
3825
- "name": "projects_tenant_id_created_at_idx",
2805
+ "name": "labels_created_at_idx",
3826
2806
  "columns": [
3827
- "tenant_id",
3828
2807
  "created_at"
3829
2808
  ]
2809
+ },
2810
+ {
2811
+ "name": "labels_repository_id_idx",
2812
+ "columns": [
2813
+ "repository_id"
2814
+ ]
3830
2815
  }
3831
2816
  ],
3832
- "version": "2e8c344a"
2817
+ "version": "d1e8d236"
3833
2818
  }
3834
2819
  },
3835
- "@happyvertical/smrt-projects:ProjectIntegration": {
3836
- "name": "projectintegration",
3837
- "className": "ProjectIntegration",
3838
- "qualifiedName": "@happyvertical/smrt-projects:ProjectIntegration",
3839
- "collection": "projectintegrations",
3840
- "filePath": "/home/runner/work/smrt/smrt/packages/projects/src/models/ProjectIntegration.ts",
2820
+ "@happyvertical/smrt-projects:Project": {
2821
+ "name": "project",
2822
+ "className": "Project",
2823
+ "qualifiedName": "@happyvertical/smrt-projects:Project",
2824
+ "collection": "projects",
2825
+ "filePath": "/home/runner/work/smrt/smrt/packages/projects/src/models/Project.ts",
3841
2826
  "packageName": "@happyvertical/smrt-projects",
3842
2827
  "fields": {
3843
2828
  "tenantId": {
3844
2829
  "type": "text",
3845
- "required": true,
2830
+ "required": false,
3846
2831
  "_meta": {
3847
2832
  "sqlType": "UUID",
2833
+ "nullable": true,
3848
2834
  "__tenancy": {
3849
2835
  "isTenantIdField": true,
3850
2836
  "autoFilter": true,
3851
- "required": true,
2837
+ "required": false,
3852
2838
  "autoPopulate": true,
3853
- "nullable": false,
3854
- "mode": "required",
2839
+ "nullable": true,
2840
+ "mode": "optional",
3855
2841
  "field": "tenantId",
3856
2842
  "allowSuperAdminBypass": false
3857
2843
  }
@@ -3862,95 +2848,317 @@
3862
2848
  "required": false,
3863
2849
  "default": ""
3864
2850
  },
3865
- "name": {
2851
+ "projectNumber": {
2852
+ "type": "integer",
2853
+ "required": false,
2854
+ "default": 0
2855
+ },
2856
+ "title": {
3866
2857
  "type": "text",
3867
2858
  "required": false,
3868
2859
  "default": ""
3869
2860
  },
3870
- "credentialHash": {
2861
+ "description": {
3871
2862
  "type": "text",
3872
2863
  "required": false,
3873
- "default": "",
3874
- "_meta": {
3875
- "sensitive": true
3876
- },
3877
- "sensitive": true
2864
+ "default": ""
3878
2865
  },
3879
- "capabilities": {
2866
+ "owner": {
2867
+ "type": "text",
2868
+ "required": false,
2869
+ "default": ""
2870
+ },
2871
+ "url": {
2872
+ "type": "text",
2873
+ "required": false,
2874
+ "default": ""
2875
+ },
2876
+ "providerType": {
2877
+ "type": "text",
2878
+ "required": false,
2879
+ "default": "github"
2880
+ },
2881
+ "tokenConfigKey": {
2882
+ "type": "text",
2883
+ "required": false,
2884
+ "default": "GITHUB_TOKEN"
2885
+ },
2886
+ "statuses": {
2887
+ "type": "json",
2888
+ "required": false,
2889
+ "default": []
2890
+ },
2891
+ "fields": {
3880
2892
  "type": "json",
3881
2893
  "required": false,
3882
2894
  "default": []
3883
2895
  },
3884
- "status": {
3885
- "type": "text",
3886
- "required": false,
3887
- "default": "active"
2896
+ "statusFieldId": {
2897
+ "type": "text",
2898
+ "required": false,
2899
+ "default": ""
2900
+ },
2901
+ "statusOptions": {
2902
+ "type": "json",
2903
+ "required": false,
2904
+ "default": {}
2905
+ },
2906
+ "lastSyncedAt": {
2907
+ "type": "datetime",
2908
+ "required": false
2909
+ }
2910
+ },
2911
+ "methods": {
2912
+ "getClient": {
2913
+ "name": "getClient",
2914
+ "async": true,
2915
+ "parameters": [],
2916
+ "returnType": "Promise<IProject>",
2917
+ "isStatic": false,
2918
+ "isPublic": true
2919
+ },
2920
+ "clearClient": {
2921
+ "name": "clearClient",
2922
+ "async": false,
2923
+ "parameters": [],
2924
+ "returnType": "void",
2925
+ "isStatic": false,
2926
+ "isPublic": true
2927
+ },
2928
+ "sync": {
2929
+ "name": "sync",
2930
+ "async": true,
2931
+ "parameters": [
2932
+ {
2933
+ "name": "options",
2934
+ "type": "SyncOptions",
2935
+ "optional": true
2936
+ }
2937
+ ],
2938
+ "returnType": "Promise",
2939
+ "isStatic": false,
2940
+ "isPublic": true
2941
+ },
2942
+ "addItem": {
2943
+ "name": "addItem",
2944
+ "async": true,
2945
+ "parameters": [
2946
+ {
2947
+ "name": "item",
2948
+ "type": "Issue | PullRequest",
2949
+ "optional": false
2950
+ }
2951
+ ],
2952
+ "returnType": "Promise<ProjectItem>",
2953
+ "isStatic": false,
2954
+ "isPublic": true
2955
+ },
2956
+ "removeItem": {
2957
+ "name": "removeItem",
2958
+ "async": true,
2959
+ "parameters": [
2960
+ {
2961
+ "name": "itemId",
2962
+ "type": "string",
2963
+ "optional": false
2964
+ }
2965
+ ],
2966
+ "returnType": "Promise<void>",
2967
+ "isStatic": false,
2968
+ "isPublic": true
2969
+ },
2970
+ "getItem": {
2971
+ "name": "getItem",
2972
+ "async": true,
2973
+ "parameters": [
2974
+ {
2975
+ "name": "itemId",
2976
+ "type": "string",
2977
+ "optional": false
2978
+ }
2979
+ ],
2980
+ "returnType": "Promise<ProjectItem | null>",
2981
+ "isStatic": false,
2982
+ "isPublic": true
2983
+ },
2984
+ "listItems": {
2985
+ "name": "listItems",
2986
+ "async": true,
2987
+ "parameters": [
2988
+ {
2989
+ "name": "filters",
2990
+ "type": "ItemFilters",
2991
+ "optional": true
2992
+ }
2993
+ ],
2994
+ "returnType": "Promise<ProjectItem[]>",
2995
+ "isStatic": false,
2996
+ "isPublic": true
2997
+ },
2998
+ "updateItemStatus": {
2999
+ "name": "updateItemStatus",
3000
+ "async": true,
3001
+ "parameters": [
3002
+ {
3003
+ "name": "itemId",
3004
+ "type": "string",
3005
+ "optional": false
3006
+ },
3007
+ {
3008
+ "name": "status",
3009
+ "type": "string",
3010
+ "optional": false
3011
+ }
3012
+ ],
3013
+ "returnType": "Promise<void>",
3014
+ "isStatic": false,
3015
+ "isPublic": true
3016
+ },
3017
+ "updateItemField": {
3018
+ "name": "updateItemField",
3019
+ "async": true,
3020
+ "parameters": [
3021
+ {
3022
+ "name": "itemId",
3023
+ "type": "string",
3024
+ "optional": false
3025
+ },
3026
+ {
3027
+ "name": "fieldId",
3028
+ "type": "string",
3029
+ "optional": false
3030
+ },
3031
+ {
3032
+ "name": "value",
3033
+ "type": "any",
3034
+ "optional": false
3035
+ }
3036
+ ],
3037
+ "returnType": "Promise<void>",
3038
+ "isStatic": false,
3039
+ "isPublic": true
3040
+ },
3041
+ "getStatuses": {
3042
+ "name": "getStatuses",
3043
+ "async": true,
3044
+ "parameters": [],
3045
+ "returnType": "Promise<ProjectStatus[]>",
3046
+ "isStatic": false,
3047
+ "isPublic": true
3048
+ },
3049
+ "getFields": {
3050
+ "name": "getFields",
3051
+ "async": true,
3052
+ "parameters": [],
3053
+ "returnType": "Promise<ProjectField[]>",
3054
+ "isStatic": false,
3055
+ "isPublic": true
3056
+ },
3057
+ "getItemsByStatus": {
3058
+ "name": "getItemsByStatus",
3059
+ "async": true,
3060
+ "parameters": [
3061
+ {
3062
+ "name": "status",
3063
+ "type": "string",
3064
+ "optional": false
3065
+ }
3066
+ ],
3067
+ "returnType": "Promise<ProjectItem[]>",
3068
+ "isStatic": false,
3069
+ "isPublic": true
3888
3070
  },
3889
- "revokedAt": {
3890
- "type": "datetime",
3891
- "required": false
3892
- }
3893
- },
3894
- "methods": {
3895
- "hasCapability": {
3896
- "name": "hasCapability",
3897
- "async": false,
3071
+ "moveItem": {
3072
+ "name": "moveItem",
3073
+ "async": true,
3898
3074
  "parameters": [
3899
3075
  {
3900
- "name": "capability",
3901
- "type": "ProjectIntegrationCapability",
3076
+ "name": "item",
3077
+ "type": "Issue | PullRequest",
3078
+ "optional": false
3079
+ },
3080
+ {
3081
+ "name": "status",
3082
+ "type": "string",
3902
3083
  "optional": false
3903
3084
  }
3904
3085
  ],
3905
- "returnType": "boolean",
3086
+ "returnType": "Promise<void>",
3906
3087
  "isStatic": false,
3907
3088
  "isPublic": true
3908
3089
  },
3909
- "isActive": {
3910
- "name": "isActive",
3911
- "async": false,
3090
+ "analyzeHealth": {
3091
+ "name": "analyzeHealth",
3092
+ "async": true,
3912
3093
  "parameters": [],
3913
- "returnType": "boolean",
3094
+ "returnType": "Promise<string>",
3914
3095
  "isStatic": false,
3915
3096
  "isPublic": true
3097
+ },
3098
+ "getByTitle": {
3099
+ "name": "getByTitle",
3100
+ "async": true,
3101
+ "parameters": [
3102
+ {
3103
+ "name": "title",
3104
+ "type": "string",
3105
+ "optional": false
3106
+ },
3107
+ {
3108
+ "name": "options",
3109
+ "type": "SmrtObjectOptions",
3110
+ "optional": true
3111
+ }
3112
+ ],
3113
+ "returnType": "Promise<Project | null>",
3114
+ "isStatic": true,
3115
+ "isPublic": true
3916
3116
  }
3917
3117
  },
3918
3118
  "decoratorConfig": {
3919
- "tableName": "project_integrations",
3920
- "conflictColumns": [
3921
- "tenant_id",
3922
- "project_id",
3923
- "name"
3924
- ],
3925
3119
  "api": {
3926
3120
  "include": [
3927
3121
  "list",
3928
- "get"
3122
+ "get",
3123
+ "create",
3124
+ "update"
3929
3125
  ]
3930
3126
  },
3931
3127
  "mcp": {
3932
3128
  "include": [
3933
3129
  "list",
3934
- "get"
3130
+ "get",
3131
+ "sync",
3132
+ "addItem",
3133
+ "updateItemStatus"
3935
3134
  ]
3936
3135
  },
3937
3136
  "cli": {
3938
3137
  "include": [
3939
3138
  "list",
3940
- "get"
3941
- ]
3139
+ "get",
3140
+ "sync",
3141
+ "addItem",
3142
+ "updateItemStatus",
3143
+ "listItems"
3144
+ ],
3145
+ "skipApiCheck": true
3942
3146
  },
3943
3147
  "tenantScoped": {
3944
- "mode": "required"
3945
- }
3148
+ "mode": "optional"
3149
+ },
3150
+ "conflictColumns": [
3151
+ "tenant_id",
3152
+ "slug",
3153
+ "context"
3154
+ ]
3946
3155
  },
3947
3156
  "extends": "SmrtObject",
3948
- "exportName": "ProjectIntegration",
3949
- "collectionExportName": "ProjectIntegrationCollection",
3950
- "validationRules": [],
3157
+ "exportName": "Project",
3158
+ "collectionExportName": "ProjectCollection",
3951
3159
  "schema": {
3952
- "tableName": "project_integrations",
3953
- "ddl": "CREATE TABLE IF NOT EXISTS \"project_integrations\" (\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 NOT NULL,\n \"project_id\" TEXT DEFAULT '',\n \"name\" TEXT DEFAULT '',\n \"credential_hash\" TEXT DEFAULT '',\n \"capabilities\" JSON DEFAULT '[]',\n \"status\" TEXT DEFAULT 'active',\n \"revoked_at\" TIMESTAMP\n);",
3160
+ "tableName": "projects",
3161
+ "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);",
3954
3162
  "columns": {
3955
3163
  "id": {
3956
3164
  "type": "UUID",
@@ -3980,7 +3188,7 @@
3980
3188
  "tenant_id": {
3981
3189
  "type": "UUID",
3982
3190
  "referenceKind": "tenantId",
3983
- "notNull": true,
3191
+ "notNull": false,
3984
3192
  "unique": false
3985
3193
  },
3986
3194
  "project_id": {
@@ -3989,194 +3197,81 @@
3989
3197
  "unique": false,
3990
3198
  "default": ""
3991
3199
  },
3992
- "name": {
3993
- "type": "TEXT",
3200
+ "project_number": {
3201
+ "type": "INTEGER",
3994
3202
  "notNull": false,
3995
3203
  "unique": false,
3996
- "default": ""
3204
+ "default": 0
3997
3205
  },
3998
- "credential_hash": {
3206
+ "title": {
3999
3207
  "type": "TEXT",
4000
3208
  "notNull": false,
4001
3209
  "unique": false,
4002
3210
  "default": ""
4003
3211
  },
4004
- "capabilities": {
4005
- "type": "JSON",
3212
+ "description": {
3213
+ "type": "TEXT",
4006
3214
  "notNull": false,
4007
3215
  "unique": false,
4008
- "default": []
3216
+ "default": ""
4009
3217
  },
4010
- "status": {
3218
+ "owner": {
4011
3219
  "type": "TEXT",
4012
3220
  "notNull": false,
4013
3221
  "unique": false,
4014
- "default": "active"
3222
+ "default": ""
4015
3223
  },
4016
- "revoked_at": {
4017
- "type": "TIMESTAMP",
3224
+ "url": {
3225
+ "type": "TEXT",
4018
3226
  "notNull": false,
4019
- "unique": false
4020
- }
4021
- },
4022
- "indexes": [
4023
- {
4024
- "name": "project_integrations_tenant_id_project_id_idx",
4025
- "columns": [
4026
- "tenant_id",
4027
- "project_id",
4028
- "name"
4029
- ],
4030
- "unique": true
4031
- },
4032
- {
4033
- "name": "project_integrations_slug_context_idx",
4034
- "columns": [
4035
- "slug",
4036
- "context"
4037
- ]
4038
- },
4039
- {
4040
- "name": "project_integrations_tenant_id_created_at_idx",
4041
- "columns": [
4042
- "tenant_id",
4043
- "created_at"
4044
- ]
4045
- }
4046
- ],
4047
- "version": "bfbaa783"
4048
- }
4049
- },
4050
- "@happyvertical/smrt-projects:ProjectIntegrationAudit": {
4051
- "name": "projectintegrationaudit",
4052
- "className": "ProjectIntegrationAudit",
4053
- "qualifiedName": "@happyvertical/smrt-projects:ProjectIntegrationAudit",
4054
- "collection": "projectintegrationaudits",
4055
- "filePath": "/home/runner/work/smrt/smrt/packages/projects/src/models/ProjectIntegrationAudit.ts",
4056
- "packageName": "@happyvertical/smrt-projects",
4057
- "fields": {
4058
- "tenantId": {
4059
- "type": "text",
4060
- "required": true,
4061
- "_meta": {
4062
- "sqlType": "UUID",
4063
- "__tenancy": {
4064
- "isTenantIdField": true,
4065
- "autoFilter": true,
4066
- "required": true,
4067
- "autoPopulate": true,
4068
- "nullable": false,
4069
- "mode": "required",
4070
- "field": "tenantId",
4071
- "allowSuperAdminBypass": false
4072
- }
4073
- }
4074
- },
4075
- "integrationId": {
4076
- "type": "foreignKey",
4077
- "required": true,
4078
- "related": "ProjectIntegration",
4079
- "_meta": {
4080
- "required": true
4081
- }
4082
- },
4083
- "action": {
4084
- "type": "text",
4085
- "required": false,
4086
- "default": "created"
4087
- },
4088
- "note": {
4089
- "type": "text",
4090
- "required": false
4091
- }
4092
- },
4093
- "methods": {},
4094
- "decoratorConfig": {
4095
- "tableName": "project_integration_audits",
4096
- "api": false,
4097
- "mcp": false,
4098
- "cli": false,
4099
- "tenantScoped": {
4100
- "mode": "required"
4101
- },
4102
- "conflictColumns": [
4103
- "tenant_id",
4104
- "slug",
4105
- "context"
4106
- ]
4107
- },
4108
- "extends": "SmrtObject",
4109
- "exportName": "ProjectIntegrationAudit",
4110
- "collectionExportName": "ProjectIntegrationAuditCollection",
4111
- "validationRules": [
4112
- {
4113
- "field": "integrationId",
4114
- "rule": "required",
4115
- "fieldType": "foreignKey"
4116
- }
4117
- ],
4118
- "schema": {
4119
- "tableName": "project_integration_audits",
4120
- "ddl": "CREATE TABLE IF NOT EXISTS \"project_integration_audits\" (\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 NOT NULL,\n \"integration_id\" UUID NOT NULL,\n \"action\" TEXT DEFAULT 'created',\n \"note\" TEXT\n);",
4121
- "columns": {
4122
- "id": {
4123
- "type": "UUID",
4124
- "primaryKey": true,
4125
- "referenceKind": "id",
4126
- "notNull": true
3227
+ "unique": false,
3228
+ "default": ""
4127
3229
  },
4128
- "slug": {
3230
+ "provider_type": {
4129
3231
  "type": "TEXT",
4130
- "notNull": true
3232
+ "notNull": false,
3233
+ "unique": false,
3234
+ "default": "github"
4131
3235
  },
4132
- "context": {
3236
+ "token_config_key": {
4133
3237
  "type": "TEXT",
4134
- "notNull": true,
4135
- "default": ""
4136
- },
4137
- "created_at": {
4138
- "type": "TIMESTAMP",
4139
- "notNull": true,
4140
- "default": "current_timestamp"
4141
- },
4142
- "updated_at": {
4143
- "type": "TIMESTAMP",
4144
- "notNull": true,
4145
- "default": "current_timestamp"
3238
+ "notNull": false,
3239
+ "unique": false,
3240
+ "default": "GITHUB_TOKEN"
4146
3241
  },
4147
- "tenant_id": {
4148
- "type": "UUID",
4149
- "referenceKind": "tenantId",
4150
- "notNull": true,
4151
- "unique": false
3242
+ "statuses": {
3243
+ "type": "JSON",
3244
+ "notNull": false,
3245
+ "unique": false,
3246
+ "default": []
4152
3247
  },
4153
- "integration_id": {
4154
- "type": "UUID",
4155
- "referenceKind": "foreignKey",
4156
- "notNull": true,
3248
+ "fields": {
3249
+ "type": "JSON",
3250
+ "notNull": false,
4157
3251
  "unique": false,
4158
- "foreignKey": {
4159
- "table": "project_integrations",
4160
- "column": "id",
4161
- "onDelete": "NO ACTION",
4162
- "onUpdate": "CASCADE"
4163
- }
3252
+ "default": []
4164
3253
  },
4165
- "action": {
3254
+ "status_field_id": {
4166
3255
  "type": "TEXT",
4167
3256
  "notNull": false,
4168
3257
  "unique": false,
4169
- "default": "created"
3258
+ "default": ""
4170
3259
  },
4171
- "note": {
4172
- "type": "TEXT",
3260
+ "status_options": {
3261
+ "type": "JSON",
3262
+ "notNull": false,
3263
+ "unique": false,
3264
+ "default": {}
3265
+ },
3266
+ "last_synced_at": {
3267
+ "type": "TIMESTAMP",
4173
3268
  "notNull": false,
4174
3269
  "unique": false
4175
3270
  }
4176
3271
  },
4177
3272
  "indexes": [
4178
3273
  {
4179
- "name": "project_integration_audits_slug_context_idx",
3274
+ "name": "projects_slug_context_idx",
4180
3275
  "columns": [
4181
3276
  "tenant_id",
4182
3277
  "slug",
@@ -4185,711 +3280,532 @@
4185
3280
  "unique": true
4186
3281
  },
4187
3282
  {
4188
- "name": "project_integration_audits_tenant_id_created_at_idx",
3283
+ "name": "projects_tenant_id_created_at_idx",
4189
3284
  "columns": [
4190
3285
  "tenant_id",
4191
3286
  "created_at"
4192
3287
  ]
4193
- },
4194
- {
4195
- "name": "project_integration_audits_integration_id_idx",
4196
- "columns": [
4197
- "integration_id"
4198
- ]
4199
3288
  }
4200
3289
  ],
4201
- "version": "03cc10a2"
3290
+ "version": "2e8c344a"
4202
3291
  }
4203
3292
  },
4204
- "@happyvertical/smrt-projects:PullRequest": {
4205
- "name": "pullrequest",
4206
- "className": "PullRequest",
4207
- "qualifiedName": "@happyvertical/smrt-projects:PullRequest",
4208
- "collection": "issues",
4209
- "filePath": "/home/runner/work/smrt/smrt/packages/projects/src/models/PullRequest.ts",
3293
+ "@happyvertical/smrt-projects:ProjectIntegration": {
3294
+ "name": "projectintegration",
3295
+ "className": "ProjectIntegration",
3296
+ "qualifiedName": "@happyvertical/smrt-projects:ProjectIntegration",
3297
+ "collection": "projectintegrations",
3298
+ "filePath": "/home/runner/work/smrt/smrt/packages/projects/src/models/ProjectIntegration.ts",
4210
3299
  "packageName": "@happyvertical/smrt-projects",
4211
3300
  "fields": {
4212
- "created_at": {
4213
- "type": "datetime",
4214
- "required": false
4215
- },
4216
- "updated_at": {
4217
- "type": "datetime",
4218
- "required": false
4219
- },
4220
- "tenantId": {
4221
- "type": "text",
4222
- "required": false,
4223
- "_meta": {
4224
- "sqlType": "UUID",
4225
- "nullable": true,
4226
- "__tenancy": {
4227
- "isTenantIdField": true,
4228
- "autoFilter": true,
4229
- "required": false,
4230
- "autoPopulate": true,
4231
- "nullable": true,
4232
- "mode": "optional",
4233
- "field": "tenantId",
4234
- "allowSuperAdminBypass": false
4235
- }
4236
- }
4237
- },
4238
- "repositoryId": {
4239
- "type": "foreignKey",
4240
- "required": true,
4241
- "related": "Repository",
4242
- "_meta": {
4243
- "required": true
4244
- }
4245
- },
4246
- "number": {
4247
- "type": "integer",
4248
- "required": false,
4249
- "default": 0
4250
- },
4251
- "nodeId": {
4252
- "type": "text",
4253
- "required": false,
4254
- "default": ""
4255
- },
4256
- "title": {
4257
- "type": "text",
4258
- "required": false,
4259
- "default": ""
4260
- },
4261
- "body": {
4262
- "type": "text",
4263
- "required": false,
4264
- "default": ""
4265
- },
4266
- "state": {
4267
- "type": "text",
4268
- "required": false,
4269
- "default": "open"
4270
- },
4271
- "author": {
4272
- "type": "text",
4273
- "required": false,
4274
- "default": ""
4275
- },
4276
- "labels": {
4277
- "type": "json",
4278
- "required": false,
4279
- "default": []
4280
- },
4281
- "assignees": {
4282
- "type": "json",
4283
- "required": false,
4284
- "default": []
4285
- },
4286
- "commentsCount": {
4287
- "type": "integer",
4288
- "required": false,
4289
- "default": 0
4290
- },
4291
- "lastSyncedAt": {
4292
- "type": "datetime",
4293
- "required": false
4294
- },
4295
- "originalBody": {
4296
- "type": "text",
4297
- "required": false,
4298
- "default": ""
4299
- },
4300
- "synthesisCount": {
4301
- "type": "integer",
4302
- "required": false,
4303
- "default": 0
4304
- },
4305
- "headRef": {
4306
- "type": "text",
4307
- "required": false,
4308
- "default": ""
4309
- },
4310
- "baseRef": {
4311
- "type": "text",
4312
- "required": false,
4313
- "default": ""
4314
- },
4315
- "merged": {
4316
- "type": "boolean",
4317
- "required": false,
4318
- "default": false
4319
- },
4320
- "mergedAt": {
4321
- "type": "datetime",
4322
- "required": false
4323
- },
4324
- "mergeable": {
4325
- "type": "boolean",
4326
- "required": false,
4327
- "default": true
4328
- },
4329
- "draft": {
4330
- "type": "boolean",
4331
- "required": false,
4332
- "default": false
4333
- },
4334
- "additions": {
4335
- "type": "integer",
4336
- "required": false,
4337
- "default": 0
4338
- },
4339
- "deletions": {
4340
- "type": "integer",
4341
- "required": false,
4342
- "default": 0
4343
- },
4344
- "changedFiles": {
4345
- "type": "integer",
4346
- "required": false,
4347
- "default": 0
4348
- }
4349
- },
4350
- "methods": {
4351
- "withDatabase": {
4352
- "name": "withDatabase",
4353
- "async": true,
4354
- "parameters": [
4355
- {
4356
- "name": "db",
4357
- "type": "DatabaseInterface",
4358
- "optional": false
4359
- },
4360
- {
4361
- "name": "operation",
4362
- "type": "Function",
4363
- "optional": false
4364
- }
4365
- ],
4366
- "returnType": "Promise<T>",
4367
- "isStatic": false,
4368
- "isPublic": true
4369
- },
4370
- "getAiUsageSnapshot": {
4371
- "name": "getAiUsageSnapshot",
4372
- "async": false,
4373
- "parameters": [],
4374
- "returnType": "AiUsageSnapshot | undefined",
4375
- "isStatic": false,
4376
- "isPublic": true
4377
- },
4378
- "resetAiUsage": {
4379
- "name": "resetAiUsage",
4380
- "async": false,
4381
- "parameters": [],
4382
- "returnType": "void",
4383
- "isStatic": false,
4384
- "isPublic": true
4385
- },
4386
- "listAiUsage": {
4387
- "name": "listAiUsage",
4388
- "async": true,
4389
- "parameters": [
4390
- {
4391
- "name": "options",
4392
- "type": "AiUsageListOptions",
4393
- "optional": true
4394
- }
4395
- ],
4396
- "returnType": "Promise<SmrtAiUsageRecord[]>",
4397
- "isStatic": false,
4398
- "isPublic": true
4399
- },
4400
- "summarizeAiUsage": {
4401
- "name": "summarizeAiUsage",
4402
- "async": true,
4403
- "parameters": [
4404
- {
4405
- "name": "options",
4406
- "type": "AiUsageSummaryOptions",
4407
- "optional": true
3301
+ "tenantId": {
3302
+ "type": "text",
3303
+ "required": true,
3304
+ "_meta": {
3305
+ "sqlType": "UUID",
3306
+ "__tenancy": {
3307
+ "isTenantIdField": true,
3308
+ "autoFilter": true,
3309
+ "required": true,
3310
+ "autoPopulate": true,
3311
+ "nullable": false,
3312
+ "mode": "required",
3313
+ "field": "tenantId",
3314
+ "allowSuperAdminBypass": false
4408
3315
  }
4409
- ],
4410
- "returnType": "Promise<Record<string, AiUsageStats>>",
4411
- "isStatic": false,
4412
- "isPublic": true
3316
+ }
4413
3317
  },
4414
- "destroy": {
4415
- "name": "destroy",
4416
- "async": false,
4417
- "parameters": [],
4418
- "returnType": "void",
4419
- "isStatic": false,
4420
- "isPublic": true
3318
+ "projectId": {
3319
+ "type": "text",
3320
+ "required": false,
3321
+ "default": ""
4421
3322
  },
4422
- "markAsPersisted": {
4423
- "name": "markAsPersisted",
4424
- "async": false,
4425
- "parameters": [],
4426
- "returnType": "void",
4427
- "isStatic": false,
4428
- "isPublic": true
3323
+ "name": {
3324
+ "type": "text",
3325
+ "required": false,
3326
+ "default": ""
4429
3327
  },
4430
- "requireInsertOnSave": {
4431
- "name": "requireInsertOnSave",
4432
- "async": false,
4433
- "parameters": [],
4434
- "returnType": "void",
4435
- "isStatic": false,
4436
- "isPublic": true
3328
+ "credentialHash": {
3329
+ "type": "text",
3330
+ "required": false,
3331
+ "default": "",
3332
+ "_meta": {
3333
+ "sensitive": true
3334
+ },
3335
+ "sensitive": true
4437
3336
  },
4438
- "withTransaction": {
4439
- "name": "withTransaction",
4440
- "async": true,
4441
- "parameters": [
4442
- {
4443
- "name": "operation",
4444
- "type": "Function",
4445
- "optional": false
4446
- }
4447
- ],
4448
- "returnType": "Promise<T>",
4449
- "isStatic": false,
4450
- "isPublic": true
3337
+ "capabilities": {
3338
+ "type": "json",
3339
+ "required": false,
3340
+ "default": []
4451
3341
  },
4452
- "initialize": {
4453
- "name": "initialize",
4454
- "async": true,
4455
- "parameters": [],
4456
- "returnType": "Promise",
4457
- "isStatic": false,
4458
- "isPublic": true
3342
+ "status": {
3343
+ "type": "text",
3344
+ "required": false,
3345
+ "default": "active"
4459
3346
  },
4460
- "loadDataFromDb": {
4461
- "name": "loadDataFromDb",
4462
- "async": true,
3347
+ "revokedAt": {
3348
+ "type": "datetime",
3349
+ "required": false
3350
+ }
3351
+ },
3352
+ "methods": {
3353
+ "hasCapability": {
3354
+ "name": "hasCapability",
3355
+ "async": false,
4463
3356
  "parameters": [
4464
3357
  {
4465
- "name": "data",
4466
- "type": "Record<string>",
3358
+ "name": "capability",
3359
+ "type": "ProjectIntegrationCapability",
4467
3360
  "optional": false
4468
3361
  }
4469
3362
  ],
4470
- "returnType": "any",
4471
- "isStatic": false,
4472
- "isPublic": true
4473
- },
4474
- "getFields": {
4475
- "name": "getFields",
4476
- "async": true,
4477
- "parameters": [],
4478
- "returnType": "Promise<any>",
3363
+ "returnType": "boolean",
4479
3364
  "isStatic": false,
4480
3365
  "isPublic": true
4481
3366
  },
4482
- "toJSON": {
4483
- "name": "toJSON",
3367
+ "isActive": {
3368
+ "name": "isActive",
4484
3369
  "async": false,
4485
3370
  "parameters": [],
4486
- "returnType": "any",
3371
+ "returnType": "boolean",
4487
3372
  "isStatic": false,
4488
3373
  "isPublic": true
3374
+ }
3375
+ },
3376
+ "decoratorConfig": {
3377
+ "tableName": "project_integrations",
3378
+ "conflictColumns": [
3379
+ "tenant_id",
3380
+ "project_id",
3381
+ "name"
3382
+ ],
3383
+ "api": {
3384
+ "include": [
3385
+ "list",
3386
+ "get"
3387
+ ]
4489
3388
  },
4490
- "toPlainObject": {
4491
- "name": "toPlainObject",
4492
- "async": false,
4493
- "parameters": [],
4494
- "returnType": "Record<string>",
4495
- "isStatic": false,
4496
- "isPublic": true
3389
+ "mcp": {
3390
+ "include": [
3391
+ "list",
3392
+ "get"
3393
+ ]
4497
3394
  },
4498
- "toPublicJSON": {
4499
- "name": "toPublicJSON",
4500
- "async": false,
4501
- "parameters": [
4502
- {
4503
- "name": "options",
4504
- "type": "PublicJsonOptions",
4505
- "optional": true
3395
+ "cli": {
3396
+ "include": [
3397
+ "list",
3398
+ "get"
3399
+ ]
3400
+ },
3401
+ "tenantScoped": {
3402
+ "mode": "required"
3403
+ }
3404
+ },
3405
+ "extends": "SmrtObject",
3406
+ "exportName": "ProjectIntegration",
3407
+ "collectionExportName": "ProjectIntegrationCollection",
3408
+ "validationRules": [],
3409
+ "schema": {
3410
+ "tableName": "project_integrations",
3411
+ "ddl": "CREATE TABLE IF NOT EXISTS \"project_integrations\" (\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 NOT NULL,\n \"project_id\" TEXT DEFAULT '',\n \"name\" TEXT DEFAULT '',\n \"credential_hash\" TEXT DEFAULT '',\n \"capabilities\" JSON DEFAULT '[]',\n \"status\" TEXT DEFAULT 'active',\n \"revoked_at\" TIMESTAMP\n);",
3412
+ "columns": {
3413
+ "id": {
3414
+ "type": "UUID",
3415
+ "primaryKey": true,
3416
+ "referenceKind": "id",
3417
+ "notNull": true
3418
+ },
3419
+ "slug": {
3420
+ "type": "TEXT",
3421
+ "notNull": true
3422
+ },
3423
+ "context": {
3424
+ "type": "TEXT",
3425
+ "notNull": true,
3426
+ "default": ""
3427
+ },
3428
+ "created_at": {
3429
+ "type": "TIMESTAMP",
3430
+ "notNull": true,
3431
+ "default": "current_timestamp"
3432
+ },
3433
+ "updated_at": {
3434
+ "type": "TIMESTAMP",
3435
+ "notNull": true,
3436
+ "default": "current_timestamp"
3437
+ },
3438
+ "tenant_id": {
3439
+ "type": "UUID",
3440
+ "referenceKind": "tenantId",
3441
+ "notNull": true,
3442
+ "unique": false
3443
+ },
3444
+ "project_id": {
3445
+ "type": "TEXT",
3446
+ "notNull": false,
3447
+ "unique": false,
3448
+ "default": ""
3449
+ },
3450
+ "name": {
3451
+ "type": "TEXT",
3452
+ "notNull": false,
3453
+ "unique": false,
3454
+ "default": ""
3455
+ },
3456
+ "credential_hash": {
3457
+ "type": "TEXT",
3458
+ "notNull": false,
3459
+ "unique": false,
3460
+ "default": ""
3461
+ },
3462
+ "capabilities": {
3463
+ "type": "JSON",
3464
+ "notNull": false,
3465
+ "unique": false,
3466
+ "default": []
3467
+ },
3468
+ "status": {
3469
+ "type": "TEXT",
3470
+ "notNull": false,
3471
+ "unique": false,
3472
+ "default": "active"
3473
+ },
3474
+ "revoked_at": {
3475
+ "type": "TIMESTAMP",
3476
+ "notNull": false,
3477
+ "unique": false
3478
+ }
3479
+ },
3480
+ "indexes": [
3481
+ {
3482
+ "name": "project_integrations_tenant_id_project_id_idx",
3483
+ "columns": [
3484
+ "tenant_id",
3485
+ "project_id",
3486
+ "name"
3487
+ ],
3488
+ "unique": true
3489
+ },
3490
+ {
3491
+ "name": "project_integrations_slug_context_idx",
3492
+ "columns": [
3493
+ "slug",
3494
+ "context"
3495
+ ]
3496
+ },
3497
+ {
3498
+ "name": "project_integrations_tenant_id_created_at_idx",
3499
+ "columns": [
3500
+ "tenant_id",
3501
+ "created_at"
3502
+ ]
3503
+ }
3504
+ ],
3505
+ "version": "bfbaa783"
3506
+ }
3507
+ },
3508
+ "@happyvertical/smrt-projects:ProjectIntegrationAudit": {
3509
+ "name": "projectintegrationaudit",
3510
+ "className": "ProjectIntegrationAudit",
3511
+ "qualifiedName": "@happyvertical/smrt-projects:ProjectIntegrationAudit",
3512
+ "collection": "projectintegrationaudits",
3513
+ "filePath": "/home/runner/work/smrt/smrt/packages/projects/src/models/ProjectIntegrationAudit.ts",
3514
+ "packageName": "@happyvertical/smrt-projects",
3515
+ "fields": {
3516
+ "tenantId": {
3517
+ "type": "text",
3518
+ "required": true,
3519
+ "_meta": {
3520
+ "sqlType": "UUID",
3521
+ "__tenancy": {
3522
+ "isTenantIdField": true,
3523
+ "autoFilter": true,
3524
+ "required": true,
3525
+ "autoPopulate": true,
3526
+ "nullable": false,
3527
+ "mode": "required",
3528
+ "field": "tenantId",
3529
+ "allowSuperAdminBypass": false
4506
3530
  }
4507
- ],
4508
- "returnType": "Record<string>",
4509
- "isStatic": false,
4510
- "isPublic": true
4511
- },
4512
- "getId": {
4513
- "name": "getId",
4514
- "async": true,
4515
- "parameters": [],
4516
- "returnType": "any",
4517
- "isStatic": false,
4518
- "isPublic": true
4519
- },
4520
- "getSlug": {
4521
- "name": "getSlug",
4522
- "async": true,
4523
- "parameters": [],
4524
- "returnType": "any",
4525
- "isStatic": false,
4526
- "isPublic": true
4527
- },
4528
- "getSavedId": {
4529
- "name": "getSavedId",
4530
- "async": true,
4531
- "parameters": [],
4532
- "returnType": "any",
4533
- "isStatic": false,
4534
- "isPublic": true
3531
+ }
4535
3532
  },
4536
- "isSaved": {
4537
- "name": "isSaved",
4538
- "async": true,
4539
- "parameters": [],
4540
- "returnType": "any",
4541
- "isStatic": false,
4542
- "isPublic": true
3533
+ "integrationId": {
3534
+ "type": "foreignKey",
3535
+ "required": true,
3536
+ "related": "ProjectIntegration",
3537
+ "_meta": {
3538
+ "required": true
3539
+ }
4543
3540
  },
4544
- "save": {
4545
- "name": "save",
4546
- "async": true,
4547
- "parameters": [
4548
- {
4549
- "name": "options",
4550
- "type": "SmrtSaveOptions",
4551
- "optional": true
4552
- }
4553
- ],
4554
- "returnType": "any",
4555
- "isStatic": false,
4556
- "isPublic": true
3541
+ "action": {
3542
+ "type": "text",
3543
+ "required": false,
3544
+ "default": "created"
4557
3545
  },
4558
- "claimRevision": {
4559
- "name": "claimRevision",
4560
- "async": true,
4561
- "parameters": [
4562
- {
4563
- "name": "expectedUpdatedAt",
4564
- "type": "Date | string",
4565
- "optional": false
4566
- }
4567
- ],
4568
- "returnType": "Promise",
4569
- "isStatic": false,
4570
- "isPublic": true
3546
+ "note": {
3547
+ "type": "text",
3548
+ "required": false
3549
+ }
3550
+ },
3551
+ "methods": {},
3552
+ "decoratorConfig": {
3553
+ "tableName": "project_integration_audits",
3554
+ "api": false,
3555
+ "mcp": false,
3556
+ "cli": false,
3557
+ "tenantScoped": {
3558
+ "mode": "required"
4571
3559
  },
4572
- "classifyConstraintError": {
4573
- "name": "classifyConstraintError",
4574
- "async": false,
4575
- "parameters": [
4576
- {
4577
- "name": "message",
4578
- "type": "string",
4579
- "optional": false
3560
+ "conflictColumns": [
3561
+ "tenant_id",
3562
+ "slug",
3563
+ "context"
3564
+ ]
3565
+ },
3566
+ "extends": "SmrtObject",
3567
+ "exportName": "ProjectIntegrationAudit",
3568
+ "collectionExportName": "ProjectIntegrationAuditCollection",
3569
+ "validationRules": [
3570
+ {
3571
+ "field": "integrationId",
3572
+ "rule": "required",
3573
+ "fieldType": "foreignKey"
3574
+ }
3575
+ ],
3576
+ "schema": {
3577
+ "tableName": "project_integration_audits",
3578
+ "ddl": "CREATE TABLE IF NOT EXISTS \"project_integration_audits\" (\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 NOT NULL,\n \"integration_id\" UUID NOT NULL,\n \"action\" TEXT DEFAULT 'created',\n \"note\" TEXT\n);",
3579
+ "columns": {
3580
+ "id": {
3581
+ "type": "UUID",
3582
+ "primaryKey": true,
3583
+ "referenceKind": "id",
3584
+ "notNull": true
3585
+ },
3586
+ "slug": {
3587
+ "type": "TEXT",
3588
+ "notNull": true
3589
+ },
3590
+ "context": {
3591
+ "type": "TEXT",
3592
+ "notNull": true,
3593
+ "default": ""
3594
+ },
3595
+ "created_at": {
3596
+ "type": "TIMESTAMP",
3597
+ "notNull": true,
3598
+ "default": "current_timestamp"
3599
+ },
3600
+ "updated_at": {
3601
+ "type": "TIMESTAMP",
3602
+ "notNull": true,
3603
+ "default": "current_timestamp"
3604
+ },
3605
+ "tenant_id": {
3606
+ "type": "UUID",
3607
+ "referenceKind": "tenantId",
3608
+ "notNull": true,
3609
+ "unique": false
3610
+ },
3611
+ "integration_id": {
3612
+ "type": "UUID",
3613
+ "referenceKind": "foreignKey",
3614
+ "notNull": true,
3615
+ "unique": false,
3616
+ "foreignKey": {
3617
+ "table": "project_integrations",
3618
+ "column": "id",
3619
+ "onDelete": "NO ACTION",
3620
+ "onUpdate": "CASCADE"
4580
3621
  }
4581
- ],
4582
- "returnType": "'unique' | 'not_null' | null",
4583
- "isStatic": true,
4584
- "isPublic": true
3622
+ },
3623
+ "action": {
3624
+ "type": "TEXT",
3625
+ "notNull": false,
3626
+ "unique": false,
3627
+ "default": "created"
3628
+ },
3629
+ "note": {
3630
+ "type": "TEXT",
3631
+ "notNull": false,
3632
+ "unique": false
3633
+ }
4585
3634
  },
4586
- "loadFromId": {
4587
- "name": "loadFromId",
4588
- "async": true,
4589
- "parameters": [],
4590
- "returnType": "any",
4591
- "isStatic": false,
4592
- "isPublic": true
3635
+ "indexes": [
3636
+ {
3637
+ "name": "project_integration_audits_slug_context_idx",
3638
+ "columns": [
3639
+ "tenant_id",
3640
+ "slug",
3641
+ "context"
3642
+ ],
3643
+ "unique": true
3644
+ },
3645
+ {
3646
+ "name": "project_integration_audits_tenant_id_created_at_idx",
3647
+ "columns": [
3648
+ "tenant_id",
3649
+ "created_at"
3650
+ ]
3651
+ },
3652
+ {
3653
+ "name": "project_integration_audits_integration_id_idx",
3654
+ "columns": [
3655
+ "integration_id"
3656
+ ]
3657
+ }
3658
+ ],
3659
+ "version": "03cc10a2"
3660
+ }
3661
+ },
3662
+ "@happyvertical/smrt-projects:PullRequest": {
3663
+ "name": "pullrequest",
3664
+ "className": "PullRequest",
3665
+ "qualifiedName": "@happyvertical/smrt-projects:PullRequest",
3666
+ "collection": "issues",
3667
+ "filePath": "/home/runner/work/smrt/smrt/packages/projects/src/models/PullRequest.ts",
3668
+ "packageName": "@happyvertical/smrt-projects",
3669
+ "fields": {
3670
+ "created_at": {
3671
+ "type": "datetime",
3672
+ "required": false
4593
3673
  },
4594
- "loadFromSlug": {
4595
- "name": "loadFromSlug",
4596
- "async": true,
4597
- "parameters": [],
4598
- "returnType": "any",
4599
- "isStatic": false,
4600
- "isPublic": true
3674
+ "updated_at": {
3675
+ "type": "datetime",
3676
+ "required": false
4601
3677
  },
4602
- "is": {
4603
- "name": "is",
4604
- "async": true,
4605
- "parameters": [
4606
- {
4607
- "name": "criteria",
4608
- "type": "string",
4609
- "optional": false
4610
- },
4611
- {
4612
- "name": "options",
4613
- "type": "AiOperationOptions",
4614
- "optional": true
3678
+ "tenantId": {
3679
+ "type": "text",
3680
+ "required": false,
3681
+ "_meta": {
3682
+ "sqlType": "UUID",
3683
+ "nullable": true,
3684
+ "__tenancy": {
3685
+ "isTenantIdField": true,
3686
+ "autoFilter": true,
3687
+ "required": false,
3688
+ "autoPopulate": true,
3689
+ "nullable": true,
3690
+ "mode": "optional",
3691
+ "field": "tenantId",
3692
+ "allowSuperAdminBypass": false
4615
3693
  }
4616
- ],
4617
- "returnType": "any",
4618
- "isStatic": false,
4619
- "isPublic": true
3694
+ }
4620
3695
  },
4621
- "do": {
4622
- "name": "do",
4623
- "async": true,
4624
- "parameters": [
4625
- {
4626
- "name": "instructions",
4627
- "type": "string",
4628
- "optional": false
4629
- },
4630
- {
4631
- "name": "options",
4632
- "type": "AiOperationOptions",
4633
- "optional": true
4634
- }
4635
- ],
4636
- "returnType": "any",
4637
- "isStatic": false,
4638
- "isPublic": true
3696
+ "repositoryId": {
3697
+ "type": "foreignKey",
3698
+ "required": true,
3699
+ "related": "Repository",
3700
+ "_meta": {
3701
+ "required": true
3702
+ }
3703
+ },
3704
+ "number": {
3705
+ "type": "integer",
3706
+ "required": false,
3707
+ "default": 0
4639
3708
  },
4640
- "describe": {
4641
- "name": "describe",
4642
- "async": true,
4643
- "parameters": [
4644
- {
4645
- "name": "options",
4646
- "type": "AiOperationOptions",
4647
- "optional": true
4648
- }
4649
- ],
4650
- "returnType": "any",
4651
- "isStatic": false,
4652
- "isPublic": true
3709
+ "nodeId": {
3710
+ "type": "text",
3711
+ "required": false,
3712
+ "default": ""
4653
3713
  },
4654
- "delete": {
4655
- "name": "delete",
4656
- "async": true,
4657
- "parameters": [],
4658
- "returnType": "Promise<void>",
4659
- "isStatic": false,
4660
- "isPublic": true
3714
+ "title": {
3715
+ "type": "text",
3716
+ "required": false,
3717
+ "default": ""
4661
3718
  },
4662
- "isRelatedLoaded": {
4663
- "name": "isRelatedLoaded",
4664
- "async": false,
4665
- "parameters": [
4666
- {
4667
- "name": "fieldName",
4668
- "type": "string",
4669
- "optional": false
4670
- }
4671
- ],
4672
- "returnType": "boolean",
4673
- "isStatic": false,
4674
- "isPublic": true
3719
+ "body": {
3720
+ "type": "text",
3721
+ "required": false,
3722
+ "default": ""
4675
3723
  },
4676
- "_setLoadedRelationship": {
4677
- "name": "_setLoadedRelationship",
4678
- "async": false,
4679
- "parameters": [
4680
- {
4681
- "name": "fieldName",
4682
- "type": "string",
4683
- "optional": false
4684
- },
4685
- {
4686
- "name": "value",
4687
- "type": "any",
4688
- "optional": false
4689
- }
4690
- ],
4691
- "returnType": "void",
4692
- "isStatic": false,
4693
- "isPublic": true
3724
+ "state": {
3725
+ "type": "text",
3726
+ "required": false,
3727
+ "default": "open"
4694
3728
  },
4695
- "loadRelated": {
4696
- "name": "loadRelated",
4697
- "async": true,
4698
- "parameters": [
4699
- {
4700
- "name": "fieldName",
4701
- "type": "string",
4702
- "optional": false
4703
- },
4704
- {
4705
- "name": "opts",
4706
- "type": "LoadRelatedOptions",
4707
- "optional": true
4708
- }
4709
- ],
4710
- "returnType": "Promise<any>",
4711
- "isStatic": false,
4712
- "isPublic": true
3729
+ "author": {
3730
+ "type": "text",
3731
+ "required": false,
3732
+ "default": ""
4713
3733
  },
4714
- "loadRelatedMany": {
4715
- "name": "loadRelatedMany",
4716
- "async": true,
4717
- "parameters": [
4718
- {
4719
- "name": "fieldName",
4720
- "type": "string",
4721
- "optional": false
4722
- },
4723
- {
4724
- "name": "opts",
4725
- "type": "LoadRelatedOptions",
4726
- "optional": true
4727
- }
4728
- ],
4729
- "returnType": "Promise<any[]>",
4730
- "isStatic": false,
4731
- "isPublic": true
3734
+ "labels": {
3735
+ "type": "json",
3736
+ "required": false,
3737
+ "default": []
4732
3738
  },
4733
- "getRelated": {
4734
- "name": "getRelated",
4735
- "async": true,
4736
- "parameters": [
4737
- {
4738
- "name": "fieldName",
4739
- "type": "string",
4740
- "optional": false
4741
- },
4742
- {
4743
- "name": "opts",
4744
- "type": "LoadRelatedOptions",
4745
- "optional": true
4746
- }
4747
- ],
4748
- "returnType": "Promise<any>",
4749
- "isStatic": false,
4750
- "isPublic": true
3739
+ "assignees": {
3740
+ "type": "json",
3741
+ "required": false,
3742
+ "default": []
4751
3743
  },
4752
- "getAvailableTools": {
4753
- "name": "getAvailableTools",
4754
- "async": false,
4755
- "parameters": [],
4756
- "returnType": "AITool[]",
4757
- "isStatic": false,
4758
- "isPublic": true
3744
+ "commentsCount": {
3745
+ "type": "integer",
3746
+ "required": false,
3747
+ "default": 0
4759
3748
  },
4760
- "executeToolCall": {
4761
- "name": "executeToolCall",
4762
- "async": true,
4763
- "parameters": [
4764
- {
4765
- "name": "toolCall",
4766
- "type": "ToolCall",
4767
- "optional": false
4768
- }
4769
- ],
4770
- "returnType": "Promise<ToolCallResult>",
4771
- "isStatic": false,
4772
- "isPublic": true
3749
+ "lastSyncedAt": {
3750
+ "type": "datetime",
3751
+ "required": false
4773
3752
  },
4774
- "remember": {
4775
- "name": "remember",
4776
- "async": true,
4777
- "parameters": [
4778
- {
4779
- "name": "options",
4780
- "type": "object",
4781
- "optional": false
4782
- }
4783
- ],
4784
- "returnType": "Promise<void>",
4785
- "isStatic": false,
4786
- "isPublic": true
3753
+ "originalBody": {
3754
+ "type": "text",
3755
+ "required": false,
3756
+ "default": ""
4787
3757
  },
4788
- "recall": {
4789
- "name": "recall",
4790
- "async": true,
4791
- "parameters": [
4792
- {
4793
- "name": "options",
4794
- "type": "object",
4795
- "optional": false
4796
- }
4797
- ],
4798
- "returnType": "Promise",
4799
- "isStatic": false,
4800
- "isPublic": true
3758
+ "synthesisCount": {
3759
+ "type": "integer",
3760
+ "required": false,
3761
+ "default": 0
4801
3762
  },
4802
- "recallAll": {
4803
- "name": "recallAll",
4804
- "async": true,
4805
- "parameters": [
4806
- {
4807
- "name": "options",
4808
- "type": "object",
4809
- "optional": true
4810
- }
4811
- ],
4812
- "returnType": "Promise<Map<string>>",
4813
- "isStatic": false,
4814
- "isPublic": true
3763
+ "headRef": {
3764
+ "type": "text",
3765
+ "required": false,
3766
+ "default": ""
4815
3767
  },
4816
- "forget": {
4817
- "name": "forget",
4818
- "async": true,
4819
- "parameters": [
4820
- {
4821
- "name": "options",
4822
- "type": "object",
4823
- "optional": false
4824
- }
4825
- ],
4826
- "returnType": "Promise<void>",
4827
- "isStatic": false,
4828
- "isPublic": true
3768
+ "baseRef": {
3769
+ "type": "text",
3770
+ "required": false,
3771
+ "default": ""
4829
3772
  },
4830
- "forgetScope": {
4831
- "name": "forgetScope",
4832
- "async": true,
4833
- "parameters": [
4834
- {
4835
- "name": "options",
4836
- "type": "object",
4837
- "optional": false
4838
- }
4839
- ],
4840
- "returnType": "Promise<number>",
4841
- "isStatic": false,
4842
- "isPublic": true
3773
+ "merged": {
3774
+ "type": "boolean",
3775
+ "required": false,
3776
+ "default": false
4843
3777
  },
4844
- "generateEmbeddings": {
4845
- "name": "generateEmbeddings",
4846
- "async": true,
4847
- "parameters": [
4848
- {
4849
- "name": "options",
4850
- "type": "GenerateEmbeddingsOptions",
4851
- "optional": true
4852
- }
4853
- ],
4854
- "returnType": "Promise<void>",
4855
- "isStatic": false,
4856
- "isPublic": true
3778
+ "mergedAt": {
3779
+ "type": "datetime",
3780
+ "required": false
4857
3781
  },
4858
- "getEmbedding": {
4859
- "name": "getEmbedding",
4860
- "async": true,
4861
- "parameters": [
4862
- {
4863
- "name": "fieldName",
4864
- "type": "string",
4865
- "optional": false
4866
- },
4867
- {
4868
- "name": "model",
4869
- "type": "string",
4870
- "optional": true
4871
- }
4872
- ],
4873
- "returnType": "Promise<number[] | null>",
4874
- "isStatic": false,
4875
- "isPublic": true
3782
+ "mergeable": {
3783
+ "type": "boolean",
3784
+ "required": false,
3785
+ "default": true
4876
3786
  },
4877
- "hasStaleEmbeddings": {
4878
- "name": "hasStaleEmbeddings",
4879
- "async": true,
4880
- "parameters": [],
4881
- "returnType": "Promise<boolean>",
4882
- "isStatic": false,
4883
- "isPublic": true
3787
+ "draft": {
3788
+ "type": "boolean",
3789
+ "required": false,
3790
+ "default": false
4884
3791
  },
4885
- "clearEmbeddings": {
4886
- "name": "clearEmbeddings",
4887
- "async": true,
4888
- "parameters": [],
4889
- "returnType": "Promise<void>",
4890
- "isStatic": false,
4891
- "isPublic": true
3792
+ "additions": {
3793
+ "type": "integer",
3794
+ "required": false,
3795
+ "default": 0
3796
+ },
3797
+ "deletions": {
3798
+ "type": "integer",
3799
+ "required": false,
3800
+ "default": 0
4892
3801
  },
3802
+ "changedFiles": {
3803
+ "type": "integer",
3804
+ "required": false,
3805
+ "default": 0
3806
+ }
3807
+ },
3808
+ "methods": {
4893
3809
  "getRepository": {
4894
3810
  "name": "getRepository",
4895
3811
  "async": true,