genalpha_test_cli 0.1.0__py3-none-any.whl

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.
@@ -0,0 +1,1216 @@
1
+ {
2
+ "schema_version": "1.0.0",
3
+ "command": "genalphacli",
4
+ "version": "0.1.0",
5
+ "base_url": "",
6
+ "auth": {
7
+ "type": "bearer",
8
+ "env_var": ""
9
+ },
10
+ "subcommands": [
11
+ {
12
+ "name": "health",
13
+ "description": "",
14
+ "method": "GET",
15
+ "endpoint": "/health",
16
+ "params": [],
17
+ "output": {
18
+ "format": "json",
19
+ "content_type": "application/json",
20
+ "response_model": "",
21
+ "response_schema": null
22
+ }
23
+ },
24
+ {
25
+ "name": "login",
26
+ "description": "Login and get a token.",
27
+ "method": "POST",
28
+ "endpoint": "/auth/login",
29
+ "params": [
30
+ {
31
+ "name": "body",
32
+ "flag": "--body",
33
+ "type": "json",
34
+ "required": true,
35
+ "description": "",
36
+ "default": null,
37
+ "enum_values": null
38
+ }
39
+ ],
40
+ "output": {
41
+ "format": "json",
42
+ "content_type": "application/json",
43
+ "response_model": "dict",
44
+ "response_schema": {
45
+ "name": "dict",
46
+ "type": "unknown"
47
+ }
48
+ }
49
+ },
50
+ {
51
+ "name": "get-me",
52
+ "description": "Get current user from token.",
53
+ "method": "GET",
54
+ "endpoint": "/auth/me",
55
+ "params": [],
56
+ "output": {
57
+ "format": "json",
58
+ "content_type": "application/json",
59
+ "response_model": "dict",
60
+ "response_schema": {
61
+ "name": "dict",
62
+ "type": "unknown"
63
+ }
64
+ }
65
+ },
66
+ {
67
+ "name": "list-users",
68
+ "description": "List all users.",
69
+ "method": "GET",
70
+ "endpoint": "/api/v1/users",
71
+ "params": [
72
+ {
73
+ "name": "limit",
74
+ "flag": "--limit",
75
+ "type": "integer",
76
+ "required": false,
77
+ "description": "",
78
+ "default": null,
79
+ "enum_values": null
80
+ },
81
+ {
82
+ "name": "offset",
83
+ "flag": "--offset",
84
+ "type": "integer",
85
+ "required": false,
86
+ "description": "",
87
+ "default": null,
88
+ "enum_values": null
89
+ }
90
+ ],
91
+ "output": {
92
+ "format": "json",
93
+ "content_type": "application/json",
94
+ "response_model": "dict",
95
+ "response_schema": {
96
+ "name": "dict",
97
+ "type": "unknown"
98
+ }
99
+ }
100
+ },
101
+ {
102
+ "name": "get-user",
103
+ "description": "Get a user by ID.",
104
+ "method": "GET",
105
+ "endpoint": "/api/v1/users/{user_id}",
106
+ "params": [
107
+ {
108
+ "name": "user_id",
109
+ "flag": "--user-id",
110
+ "type": "string",
111
+ "required": true,
112
+ "description": "",
113
+ "default": null,
114
+ "enum_values": null
115
+ }
116
+ ],
117
+ "output": {
118
+ "format": "json",
119
+ "content_type": "application/json",
120
+ "response_model": "dict",
121
+ "response_schema": {
122
+ "name": "dict",
123
+ "type": "unknown"
124
+ }
125
+ }
126
+ },
127
+ {
128
+ "name": "create-user",
129
+ "description": "Create a new user.",
130
+ "method": "POST",
131
+ "endpoint": "/api/v1/users",
132
+ "params": [
133
+ {
134
+ "name": "body",
135
+ "flag": "--body",
136
+ "type": "json",
137
+ "required": true,
138
+ "description": "",
139
+ "default": null,
140
+ "enum_values": null
141
+ }
142
+ ],
143
+ "output": {
144
+ "format": "json",
145
+ "content_type": "application/json",
146
+ "response_model": "dict",
147
+ "response_schema": {
148
+ "name": "dict",
149
+ "type": "unknown"
150
+ }
151
+ }
152
+ },
153
+ {
154
+ "name": "delete-user",
155
+ "description": "Delete a user.",
156
+ "method": "DELETE",
157
+ "endpoint": "/api/v1/users/{user_id}",
158
+ "params": [
159
+ {
160
+ "name": "user_id",
161
+ "flag": "--user-id",
162
+ "type": "string",
163
+ "required": true,
164
+ "description": "",
165
+ "default": null,
166
+ "enum_values": null
167
+ }
168
+ ],
169
+ "output": {
170
+ "format": "json",
171
+ "content_type": "application/json",
172
+ "response_model": "dict",
173
+ "response_schema": {
174
+ "name": "dict",
175
+ "type": "unknown"
176
+ }
177
+ }
178
+ },
179
+ {
180
+ "name": "list-projects",
181
+ "description": "List all projects.",
182
+ "method": "GET",
183
+ "endpoint": "/api/v1/projects",
184
+ "params": [
185
+ {
186
+ "name": "limit",
187
+ "flag": "--limit",
188
+ "type": "integer",
189
+ "required": false,
190
+ "description": "",
191
+ "default": null,
192
+ "enum_values": null
193
+ },
194
+ {
195
+ "name": "offset",
196
+ "flag": "--offset",
197
+ "type": "integer",
198
+ "required": false,
199
+ "description": "",
200
+ "default": null,
201
+ "enum_values": null
202
+ }
203
+ ],
204
+ "output": {
205
+ "format": "json",
206
+ "content_type": "application/json",
207
+ "response_model": "dict",
208
+ "response_schema": {
209
+ "name": "dict",
210
+ "type": "unknown"
211
+ }
212
+ }
213
+ },
214
+ {
215
+ "name": "get-project",
216
+ "description": "Get a project by ID.",
217
+ "method": "GET",
218
+ "endpoint": "/api/v1/projects/{project_id}",
219
+ "params": [
220
+ {
221
+ "name": "project_id",
222
+ "flag": "--project-id",
223
+ "type": "string",
224
+ "required": true,
225
+ "description": "",
226
+ "default": null,
227
+ "enum_values": null
228
+ }
229
+ ],
230
+ "output": {
231
+ "format": "json",
232
+ "content_type": "application/json",
233
+ "response_model": "dict",
234
+ "response_schema": {
235
+ "name": "dict",
236
+ "type": "unknown"
237
+ }
238
+ }
239
+ },
240
+ {
241
+ "name": "create-project",
242
+ "description": "Create a new project.",
243
+ "method": "POST",
244
+ "endpoint": "/api/v1/projects",
245
+ "params": [
246
+ {
247
+ "name": "body",
248
+ "flag": "--body",
249
+ "type": "json",
250
+ "required": true,
251
+ "description": "",
252
+ "default": null,
253
+ "enum_values": null
254
+ }
255
+ ],
256
+ "output": {
257
+ "format": "json",
258
+ "content_type": "application/json",
259
+ "response_model": "dict",
260
+ "response_schema": {
261
+ "name": "dict",
262
+ "type": "unknown"
263
+ }
264
+ }
265
+ },
266
+ {
267
+ "name": "get-root",
268
+ "description": "Root endpoint.",
269
+ "method": "GET",
270
+ "endpoint": "/",
271
+ "params": [],
272
+ "output": {
273
+ "format": "json",
274
+ "content_type": "application/json",
275
+ "response_model": "",
276
+ "response_schema": null
277
+ }
278
+ },
279
+ {
280
+ "name": "list-users",
281
+ "description": "",
282
+ "method": "GET",
283
+ "endpoint": "/users/",
284
+ "params": [
285
+ {
286
+ "name": "limit",
287
+ "flag": "--limit",
288
+ "type": "integer",
289
+ "required": false,
290
+ "description": "",
291
+ "default": null,
292
+ "enum_values": null
293
+ }
294
+ ],
295
+ "output": {
296
+ "format": "json",
297
+ "content_type": "application/json",
298
+ "response_model": "",
299
+ "response_schema": null
300
+ }
301
+ },
302
+ {
303
+ "name": "get-user",
304
+ "description": "",
305
+ "method": "GET",
306
+ "endpoint": "/users/{user_id}",
307
+ "params": [
308
+ {
309
+ "name": "user_id",
310
+ "flag": "--user-id",
311
+ "type": "integer",
312
+ "required": true,
313
+ "description": "",
314
+ "default": null,
315
+ "enum_values": null
316
+ }
317
+ ],
318
+ "output": {
319
+ "format": "json",
320
+ "content_type": "application/json",
321
+ "response_model": "",
322
+ "response_schema": null
323
+ }
324
+ },
325
+ {
326
+ "name": "create-user",
327
+ "description": "",
328
+ "method": "POST",
329
+ "endpoint": "/users/",
330
+ "params": [
331
+ {
332
+ "name": "name",
333
+ "flag": "--name",
334
+ "type": "string",
335
+ "required": true,
336
+ "description": "",
337
+ "default": null,
338
+ "enum_values": null
339
+ },
340
+ {
341
+ "name": "email",
342
+ "flag": "--email",
343
+ "type": "string",
344
+ "required": true,
345
+ "description": "",
346
+ "default": null,
347
+ "enum_values": null
348
+ }
349
+ ],
350
+ "output": {
351
+ "format": "json",
352
+ "content_type": "application/json",
353
+ "response_model": "",
354
+ "response_schema": null
355
+ }
356
+ },
357
+ {
358
+ "name": "delete-user",
359
+ "description": "",
360
+ "method": "DELETE",
361
+ "endpoint": "/users/{user_id}",
362
+ "params": [
363
+ {
364
+ "name": "user_id",
365
+ "flag": "--user-id",
366
+ "type": "integer",
367
+ "required": true,
368
+ "description": "",
369
+ "default": null,
370
+ "enum_values": null
371
+ }
372
+ ],
373
+ "output": {
374
+ "format": "json",
375
+ "content_type": "application/json",
376
+ "response_model": "",
377
+ "response_schema": null
378
+ }
379
+ },
380
+ {
381
+ "name": "request-magic-link",
382
+ "description": "Send a magic link to the user's email.\n\nAlways returns 200 regardless of whether the email exists (prevents enumeration).\nUses Resend for email delivery. Falls back to console logging if no API key.",
383
+ "method": "POST",
384
+ "endpoint": "/auth/magic-link",
385
+ "params": [
386
+ {
387
+ "name": "body",
388
+ "flag": "--body",
389
+ "type": "json",
390
+ "required": true,
391
+ "description": "",
392
+ "default": null,
393
+ "enum_values": null
394
+ }
395
+ ],
396
+ "output": {
397
+ "format": "json",
398
+ "content_type": "application/json",
399
+ "response_model": "MagicLinkResponse",
400
+ "response_schema": {
401
+ "fields": {
402
+ "message": {
403
+ "required": true,
404
+ "type": "string"
405
+ }
406
+ },
407
+ "name": "MagicLinkResponse"
408
+ }
409
+ }
410
+ },
411
+ {
412
+ "name": "verify-magic-link",
413
+ "description": "Verify a magic link token, create/find user, set session cookie.",
414
+ "method": "GET",
415
+ "endpoint": "/auth/verify",
416
+ "params": [],
417
+ "output": {
418
+ "format": "json",
419
+ "content_type": "application/json",
420
+ "response_model": "",
421
+ "response_schema": null
422
+ }
423
+ },
424
+ {
425
+ "name": "get-session",
426
+ "description": "Get the current user's session info including workspace.",
427
+ "method": "GET",
428
+ "endpoint": "/auth/session",
429
+ "params": [],
430
+ "output": {
431
+ "format": "json",
432
+ "content_type": "application/json",
433
+ "response_model": "",
434
+ "response_schema": null
435
+ }
436
+ },
437
+ {
438
+ "name": "logout",
439
+ "description": "Log out by deleting the session.",
440
+ "method": "POST",
441
+ "endpoint": "/auth/logout",
442
+ "params": [
443
+ {
444
+ "name": "session_id",
445
+ "flag": "--session-id",
446
+ "type": "string",
447
+ "required": false,
448
+ "description": "",
449
+ "default": null,
450
+ "enum_values": null
451
+ }
452
+ ],
453
+ "output": {
454
+ "format": "json",
455
+ "content_type": "application/json",
456
+ "response_model": "",
457
+ "response_schema": null
458
+ }
459
+ },
460
+ {
461
+ "name": "list-all-services",
462
+ "description": "List all services across all projects for the current workspace.",
463
+ "method": "GET",
464
+ "endpoint": "/services",
465
+ "params": [],
466
+ "output": {
467
+ "format": "json",
468
+ "content_type": "application/json",
469
+ "response_model": "",
470
+ "response_schema": null
471
+ }
472
+ },
473
+ {
474
+ "name": "list-services-by-project",
475
+ "description": "List all services for a project (excludes route_graph for performance).",
476
+ "method": "GET",
477
+ "endpoint": "/services/by-project/{project_id}",
478
+ "params": [
479
+ {
480
+ "name": "project_id",
481
+ "flag": "--project-id",
482
+ "type": "string",
483
+ "required": true,
484
+ "description": "",
485
+ "default": null,
486
+ "enum_values": null
487
+ }
488
+ ],
489
+ "output": {
490
+ "format": "json",
491
+ "content_type": "application/json",
492
+ "response_model": "",
493
+ "response_schema": null
494
+ }
495
+ },
496
+ {
497
+ "name": "get-service",
498
+ "description": "Get a service with ownership check.",
499
+ "method": "GET",
500
+ "endpoint": "/services/{service_id}",
501
+ "params": [
502
+ {
503
+ "name": "service_id",
504
+ "flag": "--service-id",
505
+ "type": "string",
506
+ "required": true,
507
+ "description": "",
508
+ "default": null,
509
+ "enum_values": null
510
+ }
511
+ ],
512
+ "output": {
513
+ "format": "json",
514
+ "content_type": "application/json",
515
+ "response_model": "",
516
+ "response_schema": null
517
+ }
518
+ },
519
+ {
520
+ "name": "delete-service",
521
+ "description": "Delete a service with ownership check.",
522
+ "method": "DELETE",
523
+ "endpoint": "/services/{service_id}",
524
+ "params": [
525
+ {
526
+ "name": "service_id",
527
+ "flag": "--service-id",
528
+ "type": "string",
529
+ "required": true,
530
+ "description": "",
531
+ "default": null,
532
+ "enum_values": null
533
+ }
534
+ ],
535
+ "output": {
536
+ "format": "json",
537
+ "content_type": "application/json",
538
+ "response_model": "",
539
+ "response_schema": null
540
+ }
541
+ },
542
+ {
543
+ "name": "download-service",
544
+ "description": "Download the generated zip for a service (redirects to artifact).",
545
+ "method": "GET",
546
+ "endpoint": "/services/{service_id}/download",
547
+ "params": [
548
+ {
549
+ "name": "service_id",
550
+ "flag": "--service-id",
551
+ "type": "string",
552
+ "required": true,
553
+ "description": "",
554
+ "default": null,
555
+ "enum_values": null
556
+ }
557
+ ],
558
+ "output": {
559
+ "format": "json",
560
+ "content_type": "application/json",
561
+ "response_model": "",
562
+ "response_schema": null
563
+ }
564
+ },
565
+ {
566
+ "name": "start-generate",
567
+ "description": "Start generation workflow for a parsed service.",
568
+ "method": "POST",
569
+ "endpoint": "/generate",
570
+ "params": [
571
+ {
572
+ "name": "body",
573
+ "flag": "--body",
574
+ "type": "json",
575
+ "required": true,
576
+ "description": "",
577
+ "default": null,
578
+ "enum_values": null
579
+ }
580
+ ],
581
+ "output": {
582
+ "format": "json",
583
+ "content_type": "application/json",
584
+ "response_model": "",
585
+ "response_schema": null
586
+ }
587
+ },
588
+ {
589
+ "name": "oauth-callback",
590
+ "description": "Public OAuth callback \u2014 no auth required. Context is in the encrypted state.",
591
+ "method": "GET",
592
+ "endpoint": "/oauth/callback",
593
+ "params": [
594
+ {
595
+ "name": "code",
596
+ "flag": "--code",
597
+ "type": "string",
598
+ "required": false,
599
+ "description": "",
600
+ "default": null,
601
+ "enum_values": null
602
+ },
603
+ {
604
+ "name": "state",
605
+ "flag": "--state",
606
+ "type": "string",
607
+ "required": false,
608
+ "description": "",
609
+ "default": null,
610
+ "enum_values": null
611
+ },
612
+ {
613
+ "name": "error",
614
+ "flag": "--error",
615
+ "type": "string",
616
+ "required": false,
617
+ "description": "",
618
+ "default": null,
619
+ "enum_values": null
620
+ }
621
+ ],
622
+ "output": {
623
+ "format": "json",
624
+ "content_type": "application/json",
625
+ "response_model": "",
626
+ "response_schema": null
627
+ }
628
+ },
629
+ {
630
+ "name": "upload-artifact",
631
+ "description": "Upload a generated artifact (ZIP) for a service. Called by the worker.",
632
+ "method": "POST",
633
+ "endpoint": "/services/{service_id}/artifacts",
634
+ "params": [
635
+ {
636
+ "name": "service_id",
637
+ "flag": "--service-id",
638
+ "type": "string",
639
+ "required": true,
640
+ "description": "",
641
+ "default": null,
642
+ "enum_values": null
643
+ },
644
+ {
645
+ "name": "file",
646
+ "flag": "--file",
647
+ "type": "file",
648
+ "required": false,
649
+ "description": "",
650
+ "default": null,
651
+ "enum_values": null
652
+ },
653
+ {
654
+ "name": "artifact_type",
655
+ "flag": "--artifact-type",
656
+ "type": "string",
657
+ "required": false,
658
+ "description": "",
659
+ "default": null,
660
+ "enum_values": null
661
+ }
662
+ ],
663
+ "output": {
664
+ "format": "json",
665
+ "content_type": "application/json",
666
+ "response_model": "",
667
+ "response_schema": null
668
+ }
669
+ },
670
+ {
671
+ "name": "download-artifact",
672
+ "description": "Download a generated artifact ZIP.",
673
+ "method": "GET",
674
+ "endpoint": "/artifacts/{artifact_id}/download",
675
+ "params": [
676
+ {
677
+ "name": "artifact_id",
678
+ "flag": "--artifact-id",
679
+ "type": "string",
680
+ "required": true,
681
+ "description": "",
682
+ "default": null,
683
+ "enum_values": null
684
+ }
685
+ ],
686
+ "output": {
687
+ "format": "json",
688
+ "content_type": "application/json",
689
+ "response_model": "",
690
+ "response_schema": null
691
+ }
692
+ },
693
+ {
694
+ "name": "start-parse",
695
+ "description": "Validate GitHub URL, check limits, create service record, start parse workflow.",
696
+ "method": "POST",
697
+ "endpoint": "/parse",
698
+ "params": [
699
+ {
700
+ "name": "body",
701
+ "flag": "--body",
702
+ "type": "json",
703
+ "required": true,
704
+ "description": "",
705
+ "default": null,
706
+ "enum_values": null
707
+ }
708
+ ],
709
+ "output": {
710
+ "format": "json",
711
+ "content_type": "application/json",
712
+ "response_model": "",
713
+ "response_schema": null
714
+ }
715
+ },
716
+ {
717
+ "name": "update-service-status",
718
+ "description": "Update service status \u2014 called by Temporal worker activities.",
719
+ "method": "POST",
720
+ "endpoint": "/services/{service_id}/status",
721
+ "params": [
722
+ {
723
+ "name": "service_id",
724
+ "flag": "--service-id",
725
+ "type": "string",
726
+ "required": true,
727
+ "description": "",
728
+ "default": null,
729
+ "enum_values": null
730
+ },
731
+ {
732
+ "name": "body",
733
+ "flag": "--body",
734
+ "type": "json",
735
+ "required": true,
736
+ "description": "",
737
+ "default": null,
738
+ "enum_values": null
739
+ }
740
+ ],
741
+ "output": {
742
+ "format": "json",
743
+ "content_type": "application/json",
744
+ "response_model": "",
745
+ "response_schema": null
746
+ }
747
+ },
748
+ {
749
+ "name": "list-projects",
750
+ "description": "List all projects in the current workspace.",
751
+ "method": "GET",
752
+ "endpoint": "/projects",
753
+ "params": [],
754
+ "output": {
755
+ "format": "json",
756
+ "content_type": "application/json",
757
+ "response_model": "",
758
+ "response_schema": null
759
+ }
760
+ },
761
+ {
762
+ "name": "create-project",
763
+ "description": "Create a new project in the current workspace.",
764
+ "method": "POST",
765
+ "endpoint": "/projects",
766
+ "params": [
767
+ {
768
+ "name": "body",
769
+ "flag": "--body",
770
+ "type": "json",
771
+ "required": true,
772
+ "description": "",
773
+ "default": null,
774
+ "enum_values": null
775
+ }
776
+ ],
777
+ "output": {
778
+ "format": "json",
779
+ "content_type": "application/json",
780
+ "response_model": "",
781
+ "response_schema": null
782
+ }
783
+ },
784
+ {
785
+ "name": "update-project",
786
+ "description": "Update a project's name or description.",
787
+ "method": "PATCH",
788
+ "endpoint": "/projects/{project_id}",
789
+ "params": [
790
+ {
791
+ "name": "project_id",
792
+ "flag": "--project-id",
793
+ "type": "string",
794
+ "required": true,
795
+ "description": "",
796
+ "default": null,
797
+ "enum_values": null
798
+ },
799
+ {
800
+ "name": "body",
801
+ "flag": "--body",
802
+ "type": "json",
803
+ "required": true,
804
+ "description": "",
805
+ "default": null,
806
+ "enum_values": null
807
+ }
808
+ ],
809
+ "output": {
810
+ "format": "json",
811
+ "content_type": "application/json",
812
+ "response_model": "",
813
+ "response_schema": null
814
+ }
815
+ },
816
+ {
817
+ "name": "delete-project",
818
+ "description": "Delete a project (cascade deletes services).",
819
+ "method": "DELETE",
820
+ "endpoint": "/projects/{project_id}",
821
+ "params": [
822
+ {
823
+ "name": "project_id",
824
+ "flag": "--project-id",
825
+ "type": "string",
826
+ "required": true,
827
+ "description": "",
828
+ "default": null,
829
+ "enum_values": null
830
+ }
831
+ ],
832
+ "output": {
833
+ "format": "json",
834
+ "content_type": "application/json",
835
+ "response_model": "",
836
+ "response_schema": null
837
+ }
838
+ },
839
+ {
840
+ "name": "list-apps",
841
+ "description": "",
842
+ "method": "GET",
843
+ "endpoint": "/integrations/apps",
844
+ "params": [],
845
+ "output": {
846
+ "format": "json",
847
+ "content_type": "application/json",
848
+ "response_model": "",
849
+ "response_schema": null
850
+ }
851
+ },
852
+ {
853
+ "name": "get-app",
854
+ "description": "",
855
+ "method": "GET",
856
+ "endpoint": "/integrations/apps/{identifier}",
857
+ "params": [
858
+ {
859
+ "name": "identifier",
860
+ "flag": "--identifier",
861
+ "type": "string",
862
+ "required": true,
863
+ "description": "",
864
+ "default": null,
865
+ "enum_values": null
866
+ }
867
+ ],
868
+ "output": {
869
+ "format": "json",
870
+ "content_type": "application/json",
871
+ "response_model": "",
872
+ "response_schema": null
873
+ }
874
+ },
875
+ {
876
+ "name": "list-integrations",
877
+ "description": "",
878
+ "method": "GET",
879
+ "endpoint": "/integrations",
880
+ "params": [],
881
+ "output": {
882
+ "format": "json",
883
+ "content_type": "application/json",
884
+ "response_model": "list[...]",
885
+ "response_schema": {
886
+ "items": null,
887
+ "name": "list[...]",
888
+ "type": "array"
889
+ }
890
+ }
891
+ },
892
+ {
893
+ "name": "get-integration",
894
+ "description": "",
895
+ "method": "GET",
896
+ "endpoint": "/integrations/{identifier}",
897
+ "params": [
898
+ {
899
+ "name": "identifier",
900
+ "flag": "--identifier",
901
+ "type": "string",
902
+ "required": true,
903
+ "description": "",
904
+ "default": null,
905
+ "enum_values": null
906
+ }
907
+ ],
908
+ "output": {
909
+ "format": "json",
910
+ "content_type": "application/json",
911
+ "response_model": "IntegrationDTO",
912
+ "response_schema": {
913
+ "fields": {
914
+ "app_name": {
915
+ "required": true,
916
+ "type": "string"
917
+ },
918
+ "created_at": {
919
+ "required": true,
920
+ "type": "string"
921
+ },
922
+ "id": {
923
+ "required": true,
924
+ "type": "string"
925
+ },
926
+ "identifier": {
927
+ "default": null,
928
+ "required": false,
929
+ "type": "json"
930
+ },
931
+ "status": {
932
+ "required": true,
933
+ "type": "string"
934
+ }
935
+ },
936
+ "name": "IntegrationDTO"
937
+ }
938
+ }
939
+ },
940
+ {
941
+ "name": "install-app",
942
+ "description": "Build OAuth authorize URL. TPS is stateless \u2014 just plugs state into URL.",
943
+ "method": "POST",
944
+ "endpoint": "/integrations/{app_name}/install",
945
+ "params": [
946
+ {
947
+ "name": "app_name",
948
+ "flag": "--app-name",
949
+ "type": "string",
950
+ "required": true,
951
+ "description": "",
952
+ "default": null,
953
+ "enum_values": null
954
+ },
955
+ {
956
+ "name": "body",
957
+ "flag": "--body",
958
+ "type": "json",
959
+ "required": true,
960
+ "description": "",
961
+ "default": null,
962
+ "enum_values": null
963
+ }
964
+ ],
965
+ "output": {
966
+ "format": "json",
967
+ "content_type": "application/json",
968
+ "response_model": "",
969
+ "response_schema": null
970
+ }
971
+ },
972
+ {
973
+ "name": "connect-app",
974
+ "description": "Connect a credential-based app. Validates fields, stores encrypted.",
975
+ "method": "POST",
976
+ "endpoint": "/integrations/{app_name}/connect",
977
+ "params": [
978
+ {
979
+ "name": "app_name",
980
+ "flag": "--app-name",
981
+ "type": "string",
982
+ "required": true,
983
+ "description": "",
984
+ "default": null,
985
+ "enum_values": null
986
+ },
987
+ {
988
+ "name": "body",
989
+ "flag": "--body",
990
+ "type": "json",
991
+ "required": true,
992
+ "description": "",
993
+ "default": null,
994
+ "enum_values": null
995
+ }
996
+ ],
997
+ "output": {
998
+ "format": "json",
999
+ "content_type": "application/json",
1000
+ "response_model": "ConnectResponse",
1001
+ "response_schema": {
1002
+ "fields": {
1003
+ "app_name": {
1004
+ "required": true,
1005
+ "type": "string"
1006
+ },
1007
+ "identifier": {
1008
+ "default": null,
1009
+ "required": false,
1010
+ "type": "json"
1011
+ },
1012
+ "integration_id": {
1013
+ "required": true,
1014
+ "type": "string"
1015
+ },
1016
+ "status": {
1017
+ "required": true,
1018
+ "type": "string"
1019
+ }
1020
+ },
1021
+ "name": "ConnectResponse"
1022
+ }
1023
+ }
1024
+ },
1025
+ {
1026
+ "name": "remove-integration",
1027
+ "description": "",
1028
+ "method": "DELETE",
1029
+ "endpoint": "/integrations/{integration_id}",
1030
+ "params": [
1031
+ {
1032
+ "name": "integration_id",
1033
+ "flag": "--integration-id",
1034
+ "type": "string",
1035
+ "required": true,
1036
+ "description": "",
1037
+ "default": null,
1038
+ "enum_values": null
1039
+ }
1040
+ ],
1041
+ "output": {
1042
+ "format": "json",
1043
+ "content_type": "application/json",
1044
+ "response_model": "OkResponse",
1045
+ "response_schema": {
1046
+ "fields": {
1047
+ "ok": {
1048
+ "required": true,
1049
+ "type": "boolean"
1050
+ }
1051
+ },
1052
+ "name": "OkResponse"
1053
+ }
1054
+ }
1055
+ },
1056
+ {
1057
+ "name": "list-apps",
1058
+ "description": "GET /apps \u2014 list all active apps, optionally filtered by category.",
1059
+ "method": "GET",
1060
+ "endpoint": "/apps",
1061
+ "params": [
1062
+ {
1063
+ "name": "category",
1064
+ "flag": "--category",
1065
+ "type": "string",
1066
+ "required": false,
1067
+ "description": "",
1068
+ "default": null,
1069
+ "enum_values": null
1070
+ }
1071
+ ],
1072
+ "output": {
1073
+ "format": "json",
1074
+ "content_type": "application/json",
1075
+ "response_model": "list[...]",
1076
+ "response_schema": {
1077
+ "items": null,
1078
+ "name": "list[...]",
1079
+ "type": "array"
1080
+ }
1081
+ }
1082
+ },
1083
+ {
1084
+ "name": "get-app",
1085
+ "description": "GET /apps/{identifier} \u2014 polymorphic lookup by app_name or app_code.",
1086
+ "method": "GET",
1087
+ "endpoint": "/apps/{identifier}",
1088
+ "params": [
1089
+ {
1090
+ "name": "identifier",
1091
+ "flag": "--identifier",
1092
+ "type": "string",
1093
+ "required": true,
1094
+ "description": "",
1095
+ "default": null,
1096
+ "enum_values": null
1097
+ }
1098
+ ],
1099
+ "output": {
1100
+ "format": "json",
1101
+ "content_type": "application/json",
1102
+ "response_model": "AppMarketplaceDTO",
1103
+ "response_schema": {
1104
+ "fields": {
1105
+ "app_code": {
1106
+ "required": true,
1107
+ "type": "integer"
1108
+ },
1109
+ "app_name": {
1110
+ "required": true,
1111
+ "type": "string"
1112
+ },
1113
+ "auth_type": {
1114
+ "required": true,
1115
+ "type": "json"
1116
+ },
1117
+ "category": {
1118
+ "required": true,
1119
+ "type": "json"
1120
+ },
1121
+ "display_name": {
1122
+ "required": true,
1123
+ "type": "string"
1124
+ },
1125
+ "id": {
1126
+ "required": true,
1127
+ "type": "string"
1128
+ },
1129
+ "is_install_required": {
1130
+ "required": true,
1131
+ "type": "boolean"
1132
+ },
1133
+ "meta": {
1134
+ "required": true,
1135
+ "type": "json"
1136
+ },
1137
+ "provider": {
1138
+ "required": true,
1139
+ "type": "json"
1140
+ }
1141
+ },
1142
+ "name": "AppMarketplaceDTO"
1143
+ }
1144
+ }
1145
+ },
1146
+ {
1147
+ "name": "exchange-oauth-code",
1148
+ "description": "Exchange OAuth code for token. No state validation \u2014 Core already did that.",
1149
+ "method": "POST",
1150
+ "endpoint": "/integrations/{app_name}/exchange",
1151
+ "params": [
1152
+ {
1153
+ "name": "app_name",
1154
+ "flag": "--app-name",
1155
+ "type": "string",
1156
+ "required": true,
1157
+ "description": "",
1158
+ "default": null,
1159
+ "enum_values": null
1160
+ },
1161
+ {
1162
+ "name": "body",
1163
+ "flag": "--body",
1164
+ "type": "json",
1165
+ "required": true,
1166
+ "description": "",
1167
+ "default": null,
1168
+ "enum_values": null
1169
+ }
1170
+ ],
1171
+ "output": {
1172
+ "format": "json",
1173
+ "content_type": "application/json",
1174
+ "response_model": "ConnectResponse",
1175
+ "response_schema": {
1176
+ "fields": {
1177
+ "app_name": {
1178
+ "required": true,
1179
+ "type": "string"
1180
+ },
1181
+ "identifier": {
1182
+ "default": null,
1183
+ "required": false,
1184
+ "type": "json"
1185
+ },
1186
+ "integration_id": {
1187
+ "required": true,
1188
+ "type": "string"
1189
+ },
1190
+ "status": {
1191
+ "required": true,
1192
+ "type": "string"
1193
+ }
1194
+ },
1195
+ "name": "ConnectResponse"
1196
+ }
1197
+ }
1198
+ }
1199
+ ],
1200
+ "metadata": {
1201
+ "warnings": [
1202
+ {
1203
+ "message": "Config detected: auth (bearer) from code: src/genalphacli/config_detector.py",
1204
+ "source_file": "",
1205
+ "layer": 0,
1206
+ "severity": "info"
1207
+ }
1208
+ ],
1209
+ "total_routes": 44,
1210
+ "layer_counts": {
1211
+ "AST": 44
1212
+ },
1213
+ "files_scanned": 230,
1214
+ "parse_time_ms": 2196
1215
+ }
1216
+ }