@walkeros/cli 1.3.0 → 1.4.0-next-1771252576264

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ import { Flow, Elb } from '@walkeros/core';
2
2
  export { Flow } from '@walkeros/core';
3
3
  import { BuildOptions as BuildOptions$1 } from 'esbuild';
4
4
  import { z } from '@walkeros/core/dev';
5
+ import * as openapi_fetch from 'openapi-fetch';
5
6
 
6
7
  /**
7
8
  * CLI Build Configuration
@@ -173,14 +174,8 @@ type Platform$1 = 'web' | 'server';
173
174
 
174
175
  declare function getToken(): string | undefined;
175
176
  declare function getAuthHeaders(): Record<string, string>;
176
- declare function authenticatedFetch(url: string, init?: RequestInit): Promise<Response>;
177
177
  declare function resolveBaseUrl(): string;
178
178
  declare function requireProjectId(): string;
179
- interface ApiRequestOptions extends RequestInit {
180
- responseFormat?: 'json' | 'raw';
181
- timeout?: number;
182
- }
183
- declare function apiRequest(path: string, options?: ApiRequestOptions): Promise<unknown>;
184
179
 
185
180
  interface BundleStats {
186
181
  totalSize: number;
@@ -245,6 +240,16 @@ declare function bundle(configOrPath: unknown, options?: {
245
240
  flowName?: string;
246
241
  buildOverrides?: Partial<BuildOptions>;
247
242
  }): Promise<BundleStats | void>;
243
+ /**
244
+ * Bundle a flow remotely using the walkerOS cloud service.
245
+ */
246
+ declare function bundleRemote(options: {
247
+ content: Record<string, unknown>;
248
+ }): Promise<{
249
+ bundle: string;
250
+ size: number;
251
+ stats: any;
252
+ }>;
248
253
 
249
254
  /**
250
255
  * Call Tracker for Simulation
@@ -525,7 +530,7 @@ declare function runCommand(mode: string, options: RunCommandOptions): Promise<v
525
530
  */
526
531
  declare function run(mode: RunMode, options: RunOptions): Promise<RunResult>;
527
532
 
528
- type ValidationType = 'event' | 'flow' | 'mapping';
533
+ type ValidationType = 'event' | 'flow' | 'mapping' | 'entry';
529
534
  interface ValidationError {
530
535
  path: string;
531
536
  message: string;
@@ -549,26 +554,2243 @@ interface ValidateResult {
549
554
  * Programmatic API for validation.
550
555
  * Can be called directly from code or MCP server.
551
556
  */
552
- declare function validate(type: ValidationType, input: unknown, options?: {
557
+ declare function validate(type: ValidationType | string, input: unknown, options?: {
553
558
  flow?: string;
554
559
  }): Promise<ValidateResult>;
555
560
 
556
- declare function listProjects(): Promise<unknown>;
561
+ /**
562
+ * This file was auto-generated by openapi-typescript.
563
+ * Do not make direct changes to the file.
564
+ */
565
+
566
+ interface paths {
567
+ '/api/auth/magic-link': {
568
+ parameters: {
569
+ query?: never;
570
+ header?: never;
571
+ path?: never;
572
+ cookie?: never;
573
+ };
574
+ get?: never;
575
+ put?: never;
576
+ /**
577
+ * Request magic link
578
+ * @description Send a magic link to the provided email address for passwordless authentication. Always returns success to prevent email enumeration.
579
+ */
580
+ post: {
581
+ parameters: {
582
+ query?: never;
583
+ header?: never;
584
+ path?: never;
585
+ cookie?: never;
586
+ };
587
+ requestBody?: {
588
+ content: {
589
+ 'application/json': components['schemas']['MagicLinkRequest'];
590
+ };
591
+ };
592
+ responses: {
593
+ /** @description Magic link sent (or would be sent if email exists) */
594
+ 200: {
595
+ headers: {
596
+ [name: string]: unknown;
597
+ };
598
+ content: {
599
+ 'application/json': components['schemas']['MagicLinkResponse'];
600
+ };
601
+ };
602
+ /** @description Validation error */
603
+ 400: {
604
+ headers: {
605
+ [name: string]: unknown;
606
+ };
607
+ content: {
608
+ 'application/json': components['schemas']['ErrorResponse'];
609
+ };
610
+ };
611
+ };
612
+ };
613
+ delete?: never;
614
+ options?: never;
615
+ head?: never;
616
+ patch?: never;
617
+ trace?: never;
618
+ };
619
+ '/api/auth/verify': {
620
+ parameters: {
621
+ query?: never;
622
+ header?: never;
623
+ path?: never;
624
+ cookie?: never;
625
+ };
626
+ /**
627
+ * Verify magic link token
628
+ * @description Verify a magic link token and create an authenticated session. Redirects to the specified URL or home page.
629
+ */
630
+ get: {
631
+ parameters: {
632
+ query: {
633
+ /** @description Magic link token */
634
+ token: string;
635
+ /** @description Redirect URL after verification */
636
+ redirect_to?: string;
637
+ };
638
+ header?: never;
639
+ path?: never;
640
+ cookie?: never;
641
+ };
642
+ requestBody?: never;
643
+ responses: {
644
+ /** @description Redirect to target URL with session cookie set */
645
+ 302: {
646
+ headers: {
647
+ [name: string]: unknown;
648
+ };
649
+ content?: never;
650
+ };
651
+ };
652
+ };
653
+ put?: never;
654
+ post?: never;
655
+ delete?: never;
656
+ options?: never;
657
+ head?: never;
658
+ patch?: never;
659
+ trace?: never;
660
+ };
661
+ '/api/auth/logout': {
662
+ parameters: {
663
+ query?: never;
664
+ header?: never;
665
+ path?: never;
666
+ cookie?: never;
667
+ };
668
+ get?: never;
669
+ put?: never;
670
+ /**
671
+ * End session
672
+ * @description Destroy the current session and clear the session cookie.
673
+ */
674
+ post: {
675
+ parameters: {
676
+ query?: never;
677
+ header?: never;
678
+ path?: never;
679
+ cookie?: never;
680
+ };
681
+ requestBody?: never;
682
+ responses: {
683
+ /** @description Redirect to login page */
684
+ 302: {
685
+ headers: {
686
+ [name: string]: unknown;
687
+ };
688
+ content?: never;
689
+ };
690
+ };
691
+ };
692
+ delete?: never;
693
+ options?: never;
694
+ head?: never;
695
+ patch?: never;
696
+ trace?: never;
697
+ };
698
+ '/api/auth/whoami': {
699
+ parameters: {
700
+ query?: never;
701
+ header?: never;
702
+ path?: never;
703
+ cookie?: never;
704
+ };
705
+ /**
706
+ * Current identity
707
+ * @description Return the identity of the authenticated user. Supports session cookie and Bearer token.
708
+ */
709
+ get: {
710
+ parameters: {
711
+ query?: never;
712
+ header?: never;
713
+ path?: never;
714
+ cookie?: never;
715
+ };
716
+ requestBody?: never;
717
+ responses: {
718
+ /** @description Current user identity */
719
+ 200: {
720
+ headers: {
721
+ [name: string]: unknown;
722
+ };
723
+ content: {
724
+ 'application/json': components['schemas']['WhoamiResponse'];
725
+ };
726
+ };
727
+ /** @description Unauthorized */
728
+ 401: {
729
+ headers: {
730
+ [name: string]: unknown;
731
+ };
732
+ content: {
733
+ 'application/json': components['schemas']['ErrorResponse'];
734
+ };
735
+ };
736
+ };
737
+ };
738
+ put?: never;
739
+ post?: never;
740
+ delete?: never;
741
+ options?: never;
742
+ head?: never;
743
+ patch?: never;
744
+ trace?: never;
745
+ };
746
+ '/api/projects': {
747
+ parameters: {
748
+ query?: never;
749
+ header?: never;
750
+ path?: never;
751
+ cookie?: never;
752
+ };
753
+ /**
754
+ * List my projects
755
+ * @description List all projects where the authenticated user is a member.
756
+ */
757
+ get: {
758
+ parameters: {
759
+ query?: never;
760
+ header?: never;
761
+ path?: never;
762
+ cookie?: never;
763
+ };
764
+ requestBody?: never;
765
+ responses: {
766
+ /** @description List of projects */
767
+ 200: {
768
+ headers: {
769
+ [name: string]: unknown;
770
+ };
771
+ content: {
772
+ 'application/json': components['schemas']['ListProjectsResponse'];
773
+ };
774
+ };
775
+ /** @description Unauthorized */
776
+ 401: {
777
+ headers: {
778
+ [name: string]: unknown;
779
+ };
780
+ content: {
781
+ 'application/json': components['schemas']['ErrorResponse'];
782
+ };
783
+ };
784
+ };
785
+ };
786
+ put?: never;
787
+ /**
788
+ * Create project
789
+ * @description Create a new project. The authenticated user becomes the owner.
790
+ */
791
+ post: {
792
+ parameters: {
793
+ query?: never;
794
+ header?: never;
795
+ path?: never;
796
+ cookie?: never;
797
+ };
798
+ requestBody?: {
799
+ content: {
800
+ 'application/json': components['schemas']['CreateProjectRequest'];
801
+ };
802
+ };
803
+ responses: {
804
+ /** @description Project created */
805
+ 201: {
806
+ headers: {
807
+ [name: string]: unknown;
808
+ };
809
+ content: {
810
+ 'application/json': components['schemas']['Project'];
811
+ };
812
+ };
813
+ /** @description Validation error */
814
+ 400: {
815
+ headers: {
816
+ [name: string]: unknown;
817
+ };
818
+ content: {
819
+ 'application/json': components['schemas']['ErrorResponse'];
820
+ };
821
+ };
822
+ /** @description Unauthorized */
823
+ 401: {
824
+ headers: {
825
+ [name: string]: unknown;
826
+ };
827
+ content: {
828
+ 'application/json': components['schemas']['ErrorResponse'];
829
+ };
830
+ };
831
+ };
832
+ };
833
+ delete?: never;
834
+ options?: never;
835
+ head?: never;
836
+ patch?: never;
837
+ trace?: never;
838
+ };
839
+ '/api/projects/{projectId}': {
840
+ parameters: {
841
+ query?: never;
842
+ header?: never;
843
+ path?: never;
844
+ cookie?: never;
845
+ };
846
+ /**
847
+ * Get project
848
+ * @description Get a single project by ID. Requires membership.
849
+ */
850
+ get: {
851
+ parameters: {
852
+ query?: never;
853
+ header?: never;
854
+ path: {
855
+ projectId: string;
856
+ };
857
+ cookie?: never;
858
+ };
859
+ requestBody?: never;
860
+ responses: {
861
+ /** @description Project details */
862
+ 200: {
863
+ headers: {
864
+ [name: string]: unknown;
865
+ };
866
+ content: {
867
+ 'application/json': components['schemas']['Project'];
868
+ };
869
+ };
870
+ /** @description Unauthorized */
871
+ 401: {
872
+ headers: {
873
+ [name: string]: unknown;
874
+ };
875
+ content: {
876
+ 'application/json': components['schemas']['ErrorResponse'];
877
+ };
878
+ };
879
+ /** @description Not found */
880
+ 404: {
881
+ headers: {
882
+ [name: string]: unknown;
883
+ };
884
+ content: {
885
+ 'application/json': components['schemas']['ErrorResponse'];
886
+ };
887
+ };
888
+ };
889
+ };
890
+ put?: never;
891
+ post?: never;
892
+ /**
893
+ * Delete project
894
+ * @description Delete a project and all its resources. Requires owner role.
895
+ */
896
+ delete: {
897
+ parameters: {
898
+ query?: never;
899
+ header?: never;
900
+ path: {
901
+ projectId: string;
902
+ };
903
+ cookie?: never;
904
+ };
905
+ requestBody?: never;
906
+ responses: {
907
+ /** @description Project deleted */
908
+ 204: {
909
+ headers: {
910
+ [name: string]: unknown;
911
+ };
912
+ content?: never;
913
+ };
914
+ /** @description Unauthorized */
915
+ 401: {
916
+ headers: {
917
+ [name: string]: unknown;
918
+ };
919
+ content: {
920
+ 'application/json': components['schemas']['ErrorResponse'];
921
+ };
922
+ };
923
+ /** @description Forbidden */
924
+ 403: {
925
+ headers: {
926
+ [name: string]: unknown;
927
+ };
928
+ content: {
929
+ 'application/json': components['schemas']['ErrorResponse'];
930
+ };
931
+ };
932
+ /** @description Not found */
933
+ 404: {
934
+ headers: {
935
+ [name: string]: unknown;
936
+ };
937
+ content: {
938
+ 'application/json': components['schemas']['ErrorResponse'];
939
+ };
940
+ };
941
+ };
942
+ };
943
+ options?: never;
944
+ head?: never;
945
+ /**
946
+ * Update project
947
+ * @description Update project details. Requires owner role.
948
+ */
949
+ patch: {
950
+ parameters: {
951
+ query?: never;
952
+ header?: never;
953
+ path: {
954
+ projectId: string;
955
+ };
956
+ cookie?: never;
957
+ };
958
+ requestBody?: {
959
+ content: {
960
+ 'application/json': components['schemas']['UpdateProjectRequest'];
961
+ };
962
+ };
963
+ responses: {
964
+ /** @description Project updated */
965
+ 200: {
966
+ headers: {
967
+ [name: string]: unknown;
968
+ };
969
+ content: {
970
+ 'application/json': components['schemas']['Project'];
971
+ };
972
+ };
973
+ /** @description Validation error */
974
+ 400: {
975
+ headers: {
976
+ [name: string]: unknown;
977
+ };
978
+ content: {
979
+ 'application/json': components['schemas']['ErrorResponse'];
980
+ };
981
+ };
982
+ /** @description Unauthorized */
983
+ 401: {
984
+ headers: {
985
+ [name: string]: unknown;
986
+ };
987
+ content: {
988
+ 'application/json': components['schemas']['ErrorResponse'];
989
+ };
990
+ };
991
+ /** @description Forbidden */
992
+ 403: {
993
+ headers: {
994
+ [name: string]: unknown;
995
+ };
996
+ content: {
997
+ 'application/json': components['schemas']['ErrorResponse'];
998
+ };
999
+ };
1000
+ /** @description Not found */
1001
+ 404: {
1002
+ headers: {
1003
+ [name: string]: unknown;
1004
+ };
1005
+ content: {
1006
+ 'application/json': components['schemas']['ErrorResponse'];
1007
+ };
1008
+ };
1009
+ };
1010
+ };
1011
+ trace?: never;
1012
+ };
1013
+ '/api/projects/{projectId}/members': {
1014
+ parameters: {
1015
+ query?: never;
1016
+ header?: never;
1017
+ path?: never;
1018
+ cookie?: never;
1019
+ };
1020
+ /**
1021
+ * List members
1022
+ * @description List all members of a project. Requires membership.
1023
+ */
1024
+ get: {
1025
+ parameters: {
1026
+ query?: never;
1027
+ header?: never;
1028
+ path: {
1029
+ projectId: string;
1030
+ };
1031
+ cookie?: never;
1032
+ };
1033
+ requestBody?: never;
1034
+ responses: {
1035
+ /** @description List of members */
1036
+ 200: {
1037
+ headers: {
1038
+ [name: string]: unknown;
1039
+ };
1040
+ content: {
1041
+ 'application/json': components['schemas']['ListMembersResponse'];
1042
+ };
1043
+ };
1044
+ /** @description Unauthorized */
1045
+ 401: {
1046
+ headers: {
1047
+ [name: string]: unknown;
1048
+ };
1049
+ content: {
1050
+ 'application/json': components['schemas']['ErrorResponse'];
1051
+ };
1052
+ };
1053
+ /** @description Not found */
1054
+ 404: {
1055
+ headers: {
1056
+ [name: string]: unknown;
1057
+ };
1058
+ content: {
1059
+ 'application/json': components['schemas']['ErrorResponse'];
1060
+ };
1061
+ };
1062
+ };
1063
+ };
1064
+ put?: never;
1065
+ /**
1066
+ * Add member
1067
+ * @description Add a member to the project by email. Requires owner role.
1068
+ */
1069
+ post: {
1070
+ parameters: {
1071
+ query?: never;
1072
+ header?: never;
1073
+ path: {
1074
+ projectId: string;
1075
+ };
1076
+ cookie?: never;
1077
+ };
1078
+ requestBody?: {
1079
+ content: {
1080
+ 'application/json': components['schemas']['AddMemberRequest'];
1081
+ };
1082
+ };
1083
+ responses: {
1084
+ /** @description Member added */
1085
+ 201: {
1086
+ headers: {
1087
+ [name: string]: unknown;
1088
+ };
1089
+ content: {
1090
+ 'application/json': components['schemas']['Member'];
1091
+ };
1092
+ };
1093
+ /** @description Validation error */
1094
+ 400: {
1095
+ headers: {
1096
+ [name: string]: unknown;
1097
+ };
1098
+ content: {
1099
+ 'application/json': components['schemas']['ErrorResponse'];
1100
+ };
1101
+ };
1102
+ /** @description Unauthorized */
1103
+ 401: {
1104
+ headers: {
1105
+ [name: string]: unknown;
1106
+ };
1107
+ content: {
1108
+ 'application/json': components['schemas']['ErrorResponse'];
1109
+ };
1110
+ };
1111
+ /** @description Forbidden */
1112
+ 403: {
1113
+ headers: {
1114
+ [name: string]: unknown;
1115
+ };
1116
+ content: {
1117
+ 'application/json': components['schemas']['ErrorResponse'];
1118
+ };
1119
+ };
1120
+ /** @description Not found */
1121
+ 404: {
1122
+ headers: {
1123
+ [name: string]: unknown;
1124
+ };
1125
+ content: {
1126
+ 'application/json': components['schemas']['ErrorResponse'];
1127
+ };
1128
+ };
1129
+ /** @description Conflict */
1130
+ 409: {
1131
+ headers: {
1132
+ [name: string]: unknown;
1133
+ };
1134
+ content: {
1135
+ 'application/json': components['schemas']['ErrorResponse'];
1136
+ };
1137
+ };
1138
+ };
1139
+ };
1140
+ delete?: never;
1141
+ options?: never;
1142
+ head?: never;
1143
+ patch?: never;
1144
+ trace?: never;
1145
+ };
1146
+ '/api/projects/{projectId}/members/{userId}': {
1147
+ parameters: {
1148
+ query?: never;
1149
+ header?: never;
1150
+ path?: never;
1151
+ cookie?: never;
1152
+ };
1153
+ get?: never;
1154
+ put?: never;
1155
+ post?: never;
1156
+ /**
1157
+ * Remove member
1158
+ * @description Remove a member from the project. Requires owner role.
1159
+ */
1160
+ delete: {
1161
+ parameters: {
1162
+ query?: never;
1163
+ header?: never;
1164
+ path: {
1165
+ projectId: string;
1166
+ userId: string;
1167
+ };
1168
+ cookie?: never;
1169
+ };
1170
+ requestBody?: never;
1171
+ responses: {
1172
+ /** @description Member removed */
1173
+ 204: {
1174
+ headers: {
1175
+ [name: string]: unknown;
1176
+ };
1177
+ content?: never;
1178
+ };
1179
+ /** @description Unauthorized */
1180
+ 401: {
1181
+ headers: {
1182
+ [name: string]: unknown;
1183
+ };
1184
+ content: {
1185
+ 'application/json': components['schemas']['ErrorResponse'];
1186
+ };
1187
+ };
1188
+ /** @description Forbidden */
1189
+ 403: {
1190
+ headers: {
1191
+ [name: string]: unknown;
1192
+ };
1193
+ content: {
1194
+ 'application/json': components['schemas']['ErrorResponse'];
1195
+ };
1196
+ };
1197
+ /** @description Not found */
1198
+ 404: {
1199
+ headers: {
1200
+ [name: string]: unknown;
1201
+ };
1202
+ content: {
1203
+ 'application/json': components['schemas']['ErrorResponse'];
1204
+ };
1205
+ };
1206
+ };
1207
+ };
1208
+ options?: never;
1209
+ head?: never;
1210
+ /**
1211
+ * Update member role
1212
+ * @description Update a member's role. Requires owner role.
1213
+ */
1214
+ patch: {
1215
+ parameters: {
1216
+ query?: never;
1217
+ header?: never;
1218
+ path: {
1219
+ projectId: string;
1220
+ userId: string;
1221
+ };
1222
+ cookie?: never;
1223
+ };
1224
+ requestBody?: {
1225
+ content: {
1226
+ 'application/json': components['schemas']['UpdateMemberRequest'];
1227
+ };
1228
+ };
1229
+ responses: {
1230
+ /** @description Role updated */
1231
+ 200: {
1232
+ headers: {
1233
+ [name: string]: unknown;
1234
+ };
1235
+ content: {
1236
+ 'application/json': components['schemas']['Member'];
1237
+ };
1238
+ };
1239
+ /** @description Validation error */
1240
+ 400: {
1241
+ headers: {
1242
+ [name: string]: unknown;
1243
+ };
1244
+ content: {
1245
+ 'application/json': components['schemas']['ErrorResponse'];
1246
+ };
1247
+ };
1248
+ /** @description Unauthorized */
1249
+ 401: {
1250
+ headers: {
1251
+ [name: string]: unknown;
1252
+ };
1253
+ content: {
1254
+ 'application/json': components['schemas']['ErrorResponse'];
1255
+ };
1256
+ };
1257
+ /** @description Forbidden */
1258
+ 403: {
1259
+ headers: {
1260
+ [name: string]: unknown;
1261
+ };
1262
+ content: {
1263
+ 'application/json': components['schemas']['ErrorResponse'];
1264
+ };
1265
+ };
1266
+ /** @description Not found */
1267
+ 404: {
1268
+ headers: {
1269
+ [name: string]: unknown;
1270
+ };
1271
+ content: {
1272
+ 'application/json': components['schemas']['ErrorResponse'];
1273
+ };
1274
+ };
1275
+ };
1276
+ };
1277
+ trace?: never;
1278
+ };
1279
+ '/api/projects/{projectId}/flows': {
1280
+ parameters: {
1281
+ query?: never;
1282
+ header?: never;
1283
+ path?: never;
1284
+ cookie?: never;
1285
+ };
1286
+ /**
1287
+ * List flows
1288
+ * @description List all flows for a project.
1289
+ */
1290
+ get: {
1291
+ parameters: {
1292
+ query?: {
1293
+ sort?: 'name' | 'updated_at' | 'created_at';
1294
+ order?: 'asc' | 'desc';
1295
+ include_deleted?: 'true' | 'false';
1296
+ };
1297
+ header?: never;
1298
+ path: {
1299
+ projectId: string;
1300
+ };
1301
+ cookie?: never;
1302
+ };
1303
+ requestBody?: never;
1304
+ responses: {
1305
+ /** @description List of flows */
1306
+ 200: {
1307
+ headers: {
1308
+ [name: string]: unknown;
1309
+ };
1310
+ content: {
1311
+ 'application/json': components['schemas']['ListFlowsResponse'];
1312
+ };
1313
+ };
1314
+ /** @description Unauthorized */
1315
+ 401: {
1316
+ headers: {
1317
+ [name: string]: unknown;
1318
+ };
1319
+ content: {
1320
+ 'application/json': components['schemas']['ErrorResponse'];
1321
+ };
1322
+ };
1323
+ /** @description Not found */
1324
+ 404: {
1325
+ headers: {
1326
+ [name: string]: unknown;
1327
+ };
1328
+ content: {
1329
+ 'application/json': components['schemas']['ErrorResponse'];
1330
+ };
1331
+ };
1332
+ };
1333
+ };
1334
+ put?: never;
1335
+ /**
1336
+ * Create flow
1337
+ * @description Create a new flow in the project. Requires owner role.
1338
+ */
1339
+ post: {
1340
+ parameters: {
1341
+ query?: never;
1342
+ header?: never;
1343
+ path: {
1344
+ projectId: string;
1345
+ };
1346
+ cookie?: never;
1347
+ };
1348
+ requestBody?: {
1349
+ content: {
1350
+ 'application/json': components['schemas']['CreateFlowRequest'];
1351
+ };
1352
+ };
1353
+ responses: {
1354
+ /** @description Flow created */
1355
+ 201: {
1356
+ headers: {
1357
+ [name: string]: unknown;
1358
+ };
1359
+ content: {
1360
+ 'application/json': components['schemas']['Flow'];
1361
+ };
1362
+ };
1363
+ /** @description Validation error */
1364
+ 400: {
1365
+ headers: {
1366
+ [name: string]: unknown;
1367
+ };
1368
+ content: {
1369
+ 'application/json': components['schemas']['ErrorResponse'];
1370
+ };
1371
+ };
1372
+ /** @description Unauthorized */
1373
+ 401: {
1374
+ headers: {
1375
+ [name: string]: unknown;
1376
+ };
1377
+ content: {
1378
+ 'application/json': components['schemas']['ErrorResponse'];
1379
+ };
1380
+ };
1381
+ /** @description Forbidden */
1382
+ 403: {
1383
+ headers: {
1384
+ [name: string]: unknown;
1385
+ };
1386
+ content: {
1387
+ 'application/json': components['schemas']['ErrorResponse'];
1388
+ };
1389
+ };
1390
+ /** @description Conflict */
1391
+ 409: {
1392
+ headers: {
1393
+ [name: string]: unknown;
1394
+ };
1395
+ content: {
1396
+ 'application/json': components['schemas']['ErrorResponse'];
1397
+ };
1398
+ };
1399
+ };
1400
+ };
1401
+ delete?: never;
1402
+ options?: never;
1403
+ head?: never;
1404
+ patch?: never;
1405
+ trace?: never;
1406
+ };
1407
+ '/api/projects/{projectId}/flows/{flowId}': {
1408
+ parameters: {
1409
+ query?: never;
1410
+ header?: never;
1411
+ path?: never;
1412
+ cookie?: never;
1413
+ };
1414
+ /**
1415
+ * Get flow
1416
+ * @description Get a single flow by ID.
1417
+ */
1418
+ get: {
1419
+ parameters: {
1420
+ query?: never;
1421
+ header?: never;
1422
+ path: {
1423
+ projectId: string;
1424
+ flowId: string;
1425
+ };
1426
+ cookie?: never;
1427
+ };
1428
+ requestBody?: never;
1429
+ responses: {
1430
+ /** @description Flow details */
1431
+ 200: {
1432
+ headers: {
1433
+ [name: string]: unknown;
1434
+ };
1435
+ content: {
1436
+ 'application/json': components['schemas']['Flow'];
1437
+ };
1438
+ };
1439
+ /** @description Unauthorized */
1440
+ 401: {
1441
+ headers: {
1442
+ [name: string]: unknown;
1443
+ };
1444
+ content: {
1445
+ 'application/json': components['schemas']['ErrorResponse'];
1446
+ };
1447
+ };
1448
+ /** @description Not found */
1449
+ 404: {
1450
+ headers: {
1451
+ [name: string]: unknown;
1452
+ };
1453
+ content: {
1454
+ 'application/json': components['schemas']['ErrorResponse'];
1455
+ };
1456
+ };
1457
+ };
1458
+ };
1459
+ put?: never;
1460
+ post?: never;
1461
+ /**
1462
+ * Soft-delete flow
1463
+ * @description Soft delete a flow (sets deleted_at timestamp). Requires owner role.
1464
+ */
1465
+ delete: {
1466
+ parameters: {
1467
+ query?: never;
1468
+ header?: never;
1469
+ path: {
1470
+ projectId: string;
1471
+ flowId: string;
1472
+ };
1473
+ cookie?: never;
1474
+ };
1475
+ requestBody?: never;
1476
+ responses: {
1477
+ /** @description Flow deleted */
1478
+ 204: {
1479
+ headers: {
1480
+ [name: string]: unknown;
1481
+ };
1482
+ content?: never;
1483
+ };
1484
+ /** @description Unauthorized */
1485
+ 401: {
1486
+ headers: {
1487
+ [name: string]: unknown;
1488
+ };
1489
+ content: {
1490
+ 'application/json': components['schemas']['ErrorResponse'];
1491
+ };
1492
+ };
1493
+ /** @description Forbidden */
1494
+ 403: {
1495
+ headers: {
1496
+ [name: string]: unknown;
1497
+ };
1498
+ content: {
1499
+ 'application/json': components['schemas']['ErrorResponse'];
1500
+ };
1501
+ };
1502
+ /** @description Not found */
1503
+ 404: {
1504
+ headers: {
1505
+ [name: string]: unknown;
1506
+ };
1507
+ content: {
1508
+ 'application/json': components['schemas']['ErrorResponse'];
1509
+ };
1510
+ };
1511
+ };
1512
+ };
1513
+ options?: never;
1514
+ head?: never;
1515
+ /**
1516
+ * Update flow
1517
+ * @description Update an existing flow. Creates a version snapshot before applying changes. Requires owner role.
1518
+ */
1519
+ patch: {
1520
+ parameters: {
1521
+ query?: never;
1522
+ header?: never;
1523
+ path: {
1524
+ projectId: string;
1525
+ flowId: string;
1526
+ };
1527
+ cookie?: never;
1528
+ };
1529
+ requestBody?: {
1530
+ content: {
1531
+ 'application/json': components['schemas']['UpdateFlowRequest'];
1532
+ };
1533
+ };
1534
+ responses: {
1535
+ /** @description Flow updated */
1536
+ 200: {
1537
+ headers: {
1538
+ [name: string]: unknown;
1539
+ };
1540
+ content: {
1541
+ 'application/json': components['schemas']['Flow'];
1542
+ };
1543
+ };
1544
+ /** @description Validation error */
1545
+ 400: {
1546
+ headers: {
1547
+ [name: string]: unknown;
1548
+ };
1549
+ content: {
1550
+ 'application/json': components['schemas']['ErrorResponse'];
1551
+ };
1552
+ };
1553
+ /** @description Unauthorized */
1554
+ 401: {
1555
+ headers: {
1556
+ [name: string]: unknown;
1557
+ };
1558
+ content: {
1559
+ 'application/json': components['schemas']['ErrorResponse'];
1560
+ };
1561
+ };
1562
+ /** @description Forbidden */
1563
+ 403: {
1564
+ headers: {
1565
+ [name: string]: unknown;
1566
+ };
1567
+ content: {
1568
+ 'application/json': components['schemas']['ErrorResponse'];
1569
+ };
1570
+ };
1571
+ /** @description Not found */
1572
+ 404: {
1573
+ headers: {
1574
+ [name: string]: unknown;
1575
+ };
1576
+ content: {
1577
+ 'application/json': components['schemas']['ErrorResponse'];
1578
+ };
1579
+ };
1580
+ /** @description Conflict */
1581
+ 409: {
1582
+ headers: {
1583
+ [name: string]: unknown;
1584
+ };
1585
+ content: {
1586
+ 'application/json': components['schemas']['ErrorResponse'];
1587
+ };
1588
+ };
1589
+ };
1590
+ };
1591
+ trace?: never;
1592
+ };
1593
+ '/api/projects/{projectId}/flows/{flowId}/duplicate': {
1594
+ parameters: {
1595
+ query?: never;
1596
+ header?: never;
1597
+ path?: never;
1598
+ cookie?: never;
1599
+ };
1600
+ get?: never;
1601
+ put?: never;
1602
+ /**
1603
+ * Duplicate flow
1604
+ * @description Create a copy of an existing flow with a new ID and no version history. Requires owner role.
1605
+ */
1606
+ post: {
1607
+ parameters: {
1608
+ query?: never;
1609
+ header?: never;
1610
+ path: {
1611
+ projectId: string;
1612
+ flowId: string;
1613
+ };
1614
+ cookie?: never;
1615
+ };
1616
+ requestBody?: {
1617
+ content: {
1618
+ 'application/json': components['schemas']['DuplicateFlowRequest'];
1619
+ };
1620
+ };
1621
+ responses: {
1622
+ /** @description Flow duplicated */
1623
+ 201: {
1624
+ headers: {
1625
+ [name: string]: unknown;
1626
+ };
1627
+ content: {
1628
+ 'application/json': components['schemas']['Flow'];
1629
+ };
1630
+ };
1631
+ /** @description Validation error */
1632
+ 400: {
1633
+ headers: {
1634
+ [name: string]: unknown;
1635
+ };
1636
+ content: {
1637
+ 'application/json': components['schemas']['ErrorResponse'];
1638
+ };
1639
+ };
1640
+ /** @description Unauthorized */
1641
+ 401: {
1642
+ headers: {
1643
+ [name: string]: unknown;
1644
+ };
1645
+ content: {
1646
+ 'application/json': components['schemas']['ErrorResponse'];
1647
+ };
1648
+ };
1649
+ /** @description Forbidden */
1650
+ 403: {
1651
+ headers: {
1652
+ [name: string]: unknown;
1653
+ };
1654
+ content: {
1655
+ 'application/json': components['schemas']['ErrorResponse'];
1656
+ };
1657
+ };
1658
+ /** @description Not found */
1659
+ 404: {
1660
+ headers: {
1661
+ [name: string]: unknown;
1662
+ };
1663
+ content: {
1664
+ 'application/json': components['schemas']['ErrorResponse'];
1665
+ };
1666
+ };
1667
+ /** @description Conflict */
1668
+ 409: {
1669
+ headers: {
1670
+ [name: string]: unknown;
1671
+ };
1672
+ content: {
1673
+ 'application/json': components['schemas']['ErrorResponse'];
1674
+ };
1675
+ };
1676
+ };
1677
+ };
1678
+ delete?: never;
1679
+ options?: never;
1680
+ head?: never;
1681
+ patch?: never;
1682
+ trace?: never;
1683
+ };
1684
+ '/api/projects/{projectId}/flows/{flowId}/versions': {
1685
+ parameters: {
1686
+ query?: never;
1687
+ header?: never;
1688
+ path?: never;
1689
+ cookie?: never;
1690
+ };
1691
+ /**
1692
+ * List versions
1693
+ * @description List all versions for a flow.
1694
+ */
1695
+ get: {
1696
+ parameters: {
1697
+ query?: never;
1698
+ header?: never;
1699
+ path: {
1700
+ projectId: string;
1701
+ flowId: string;
1702
+ };
1703
+ cookie?: never;
1704
+ };
1705
+ requestBody?: never;
1706
+ responses: {
1707
+ /** @description List of versions */
1708
+ 200: {
1709
+ headers: {
1710
+ [name: string]: unknown;
1711
+ };
1712
+ content: {
1713
+ 'application/json': components['schemas']['ListVersionsResponse'];
1714
+ };
1715
+ };
1716
+ /** @description Unauthorized */
1717
+ 401: {
1718
+ headers: {
1719
+ [name: string]: unknown;
1720
+ };
1721
+ content: {
1722
+ 'application/json': components['schemas']['ErrorResponse'];
1723
+ };
1724
+ };
1725
+ /** @description Not found */
1726
+ 404: {
1727
+ headers: {
1728
+ [name: string]: unknown;
1729
+ };
1730
+ content: {
1731
+ 'application/json': components['schemas']['ErrorResponse'];
1732
+ };
1733
+ };
1734
+ };
1735
+ };
1736
+ put?: never;
1737
+ post?: never;
1738
+ delete?: never;
1739
+ options?: never;
1740
+ head?: never;
1741
+ patch?: never;
1742
+ trace?: never;
1743
+ };
1744
+ '/api/projects/{projectId}/flows/{flowId}/versions/{versionNumber}': {
1745
+ parameters: {
1746
+ query?: never;
1747
+ header?: never;
1748
+ path?: never;
1749
+ cookie?: never;
1750
+ };
1751
+ /**
1752
+ * Get version
1753
+ * @description Get a specific version of a flow.
1754
+ */
1755
+ get: {
1756
+ parameters: {
1757
+ query?: never;
1758
+ header?: never;
1759
+ path: {
1760
+ projectId: string;
1761
+ flowId: string;
1762
+ versionNumber: number;
1763
+ };
1764
+ cookie?: never;
1765
+ };
1766
+ requestBody?: never;
1767
+ responses: {
1768
+ /** @description Version details with content */
1769
+ 200: {
1770
+ headers: {
1771
+ [name: string]: unknown;
1772
+ };
1773
+ content: {
1774
+ 'application/json': components['schemas']['GetVersionResponse'];
1775
+ };
1776
+ };
1777
+ /** @description Unauthorized */
1778
+ 401: {
1779
+ headers: {
1780
+ [name: string]: unknown;
1781
+ };
1782
+ content: {
1783
+ 'application/json': components['schemas']['ErrorResponse'];
1784
+ };
1785
+ };
1786
+ /** @description Not found */
1787
+ 404: {
1788
+ headers: {
1789
+ [name: string]: unknown;
1790
+ };
1791
+ content: {
1792
+ 'application/json': components['schemas']['ErrorResponse'];
1793
+ };
1794
+ };
1795
+ };
1796
+ };
1797
+ put?: never;
1798
+ post?: never;
1799
+ delete?: never;
1800
+ options?: never;
1801
+ head?: never;
1802
+ patch?: never;
1803
+ trace?: never;
1804
+ };
1805
+ '/api/projects/{projectId}/flows/{flowId}/versions/{versionNumber}/restore': {
1806
+ parameters: {
1807
+ query?: never;
1808
+ header?: never;
1809
+ path?: never;
1810
+ cookie?: never;
1811
+ };
1812
+ get?: never;
1813
+ put?: never;
1814
+ /**
1815
+ * Restore version
1816
+ * @description Restore a flow to a specific version. Creates a new version snapshot. Requires owner role.
1817
+ */
1818
+ post: {
1819
+ parameters: {
1820
+ query?: never;
1821
+ header?: never;
1822
+ path: {
1823
+ projectId: string;
1824
+ flowId: string;
1825
+ versionNumber: number;
1826
+ };
1827
+ cookie?: never;
1828
+ };
1829
+ requestBody?: never;
1830
+ responses: {
1831
+ /** @description Flow restored */
1832
+ 200: {
1833
+ headers: {
1834
+ [name: string]: unknown;
1835
+ };
1836
+ content: {
1837
+ 'application/json': components['schemas']['Flow'];
1838
+ };
1839
+ };
1840
+ /** @description Unauthorized */
1841
+ 401: {
1842
+ headers: {
1843
+ [name: string]: unknown;
1844
+ };
1845
+ content: {
1846
+ 'application/json': components['schemas']['ErrorResponse'];
1847
+ };
1848
+ };
1849
+ /** @description Forbidden */
1850
+ 403: {
1851
+ headers: {
1852
+ [name: string]: unknown;
1853
+ };
1854
+ content: {
1855
+ 'application/json': components['schemas']['ErrorResponse'];
1856
+ };
1857
+ };
1858
+ /** @description Not found */
1859
+ 404: {
1860
+ headers: {
1861
+ [name: string]: unknown;
1862
+ };
1863
+ content: {
1864
+ 'application/json': components['schemas']['ErrorResponse'];
1865
+ };
1866
+ };
1867
+ };
1868
+ };
1869
+ delete?: never;
1870
+ options?: never;
1871
+ head?: never;
1872
+ patch?: never;
1873
+ trace?: never;
1874
+ };
1875
+ '/api/tokens': {
1876
+ parameters: {
1877
+ query?: never;
1878
+ header?: never;
1879
+ path?: never;
1880
+ cookie?: never;
1881
+ };
1882
+ /**
1883
+ * List my tokens
1884
+ * @description List all API tokens for the authenticated user. Returns summaries (no raw token values).
1885
+ */
1886
+ get: {
1887
+ parameters: {
1888
+ query?: never;
1889
+ header?: never;
1890
+ path?: never;
1891
+ cookie?: never;
1892
+ };
1893
+ requestBody?: never;
1894
+ responses: {
1895
+ /** @description List of tokens */
1896
+ 200: {
1897
+ headers: {
1898
+ [name: string]: unknown;
1899
+ };
1900
+ content: {
1901
+ 'application/json': components['schemas']['ListApiTokensResponse'];
1902
+ };
1903
+ };
1904
+ /** @description Unauthorized */
1905
+ 401: {
1906
+ headers: {
1907
+ [name: string]: unknown;
1908
+ };
1909
+ content: {
1910
+ 'application/json': components['schemas']['ErrorResponse'];
1911
+ };
1912
+ };
1913
+ };
1914
+ };
1915
+ put?: never;
1916
+ /**
1917
+ * Create token
1918
+ * @description Create a new API token. The raw token is returned once and cannot be retrieved again.
1919
+ */
1920
+ post: {
1921
+ parameters: {
1922
+ query?: never;
1923
+ header?: never;
1924
+ path?: never;
1925
+ cookie?: never;
1926
+ };
1927
+ requestBody?: {
1928
+ content: {
1929
+ 'application/json': components['schemas']['CreateApiTokenRequest'];
1930
+ };
1931
+ };
1932
+ responses: {
1933
+ /** @description Token created (raw token shown once) */
1934
+ 201: {
1935
+ headers: {
1936
+ [name: string]: unknown;
1937
+ };
1938
+ content: {
1939
+ 'application/json': components['schemas']['CreateApiTokenResponse'];
1940
+ };
1941
+ };
1942
+ /** @description Validation error */
1943
+ 400: {
1944
+ headers: {
1945
+ [name: string]: unknown;
1946
+ };
1947
+ content: {
1948
+ 'application/json': components['schemas']['ErrorResponse'];
1949
+ };
1950
+ };
1951
+ /** @description Unauthorized */
1952
+ 401: {
1953
+ headers: {
1954
+ [name: string]: unknown;
1955
+ };
1956
+ content: {
1957
+ 'application/json': components['schemas']['ErrorResponse'];
1958
+ };
1959
+ };
1960
+ /** @description Conflict */
1961
+ 409: {
1962
+ headers: {
1963
+ [name: string]: unknown;
1964
+ };
1965
+ content: {
1966
+ 'application/json': components['schemas']['ErrorResponse'];
1967
+ };
1968
+ };
1969
+ };
1970
+ };
1971
+ delete?: never;
1972
+ options?: never;
1973
+ head?: never;
1974
+ patch?: never;
1975
+ trace?: never;
1976
+ };
1977
+ '/api/tokens/{tokenId}': {
1978
+ parameters: {
1979
+ query?: never;
1980
+ header?: never;
1981
+ path?: never;
1982
+ cookie?: never;
1983
+ };
1984
+ get?: never;
1985
+ put?: never;
1986
+ post?: never;
1987
+ /**
1988
+ * Revoke token
1989
+ * @description Revoke an API token (soft delete via revokedAt timestamp).
1990
+ */
1991
+ delete: {
1992
+ parameters: {
1993
+ query?: never;
1994
+ header?: never;
1995
+ path: {
1996
+ tokenId: string;
1997
+ };
1998
+ cookie?: never;
1999
+ };
2000
+ requestBody?: never;
2001
+ responses: {
2002
+ /** @description Token revoked */
2003
+ 204: {
2004
+ headers: {
2005
+ [name: string]: unknown;
2006
+ };
2007
+ content?: never;
2008
+ };
2009
+ /** @description Unauthorized */
2010
+ 401: {
2011
+ headers: {
2012
+ [name: string]: unknown;
2013
+ };
2014
+ content: {
2015
+ 'application/json': components['schemas']['ErrorResponse'];
2016
+ };
2017
+ };
2018
+ };
2019
+ };
2020
+ options?: never;
2021
+ head?: never;
2022
+ patch?: never;
2023
+ trace?: never;
2024
+ };
2025
+ '/api/bundle': {
2026
+ parameters: {
2027
+ query?: never;
2028
+ header?: never;
2029
+ path?: never;
2030
+ cookie?: never;
2031
+ };
2032
+ get?: never;
2033
+ put?: never;
2034
+ /**
2035
+ * Bundle flow
2036
+ * @description Bundle a walkerOS flow into a deployable JavaScript module.
2037
+ */
2038
+ post: {
2039
+ parameters: {
2040
+ query?: never;
2041
+ header?: never;
2042
+ path?: never;
2043
+ cookie?: never;
2044
+ };
2045
+ /** @description Flow content to bundle */
2046
+ requestBody?: {
2047
+ content: {
2048
+ 'application/json': {
2049
+ [key: string]: unknown;
2050
+ };
2051
+ };
2052
+ };
2053
+ responses: {
2054
+ /** @description Bundled JavaScript module */
2055
+ 200: {
2056
+ headers: {
2057
+ [name: string]: unknown;
2058
+ };
2059
+ content: {
2060
+ 'application/javascript': string;
2061
+ };
2062
+ };
2063
+ /** @description Validation error */
2064
+ 400: {
2065
+ headers: {
2066
+ [name: string]: unknown;
2067
+ };
2068
+ content: {
2069
+ 'application/json': components['schemas']['ErrorResponse'];
2070
+ };
2071
+ };
2072
+ /** @description Payload too large */
2073
+ 413: {
2074
+ headers: {
2075
+ [name: string]: unknown;
2076
+ };
2077
+ content: {
2078
+ 'application/json': components['schemas']['ErrorResponse'];
2079
+ };
2080
+ };
2081
+ };
2082
+ };
2083
+ delete?: never;
2084
+ options?: never;
2085
+ head?: never;
2086
+ patch?: never;
2087
+ trace?: never;
2088
+ };
2089
+ '/api/projects/{projectId}/observe/ticket': {
2090
+ parameters: {
2091
+ query?: never;
2092
+ header?: never;
2093
+ path?: never;
2094
+ cookie?: never;
2095
+ };
2096
+ get?: never;
2097
+ put?: never;
2098
+ /**
2099
+ * Create SSE ticket
2100
+ * @description Generate a one-time ticket for authenticating an SSE connection to the Observer service. Requires project membership.
2101
+ */
2102
+ post: {
2103
+ parameters: {
2104
+ query?: never;
2105
+ header?: never;
2106
+ path: {
2107
+ projectId: string;
2108
+ };
2109
+ cookie?: never;
2110
+ };
2111
+ requestBody?: never;
2112
+ responses: {
2113
+ /** @description Ticket generated */
2114
+ 200: {
2115
+ headers: {
2116
+ [name: string]: unknown;
2117
+ };
2118
+ content: {
2119
+ 'application/json': components['schemas']['CreateTicketResponse'];
2120
+ };
2121
+ };
2122
+ /** @description Unauthorized */
2123
+ 401: {
2124
+ headers: {
2125
+ [name: string]: unknown;
2126
+ };
2127
+ content: {
2128
+ 'application/json': components['schemas']['ErrorResponse'];
2129
+ };
2130
+ };
2131
+ /** @description Not found */
2132
+ 404: {
2133
+ headers: {
2134
+ [name: string]: unknown;
2135
+ };
2136
+ content: {
2137
+ 'application/json': components['schemas']['ErrorResponse'];
2138
+ };
2139
+ };
2140
+ };
2141
+ };
2142
+ delete?: never;
2143
+ options?: never;
2144
+ head?: never;
2145
+ patch?: never;
2146
+ trace?: never;
2147
+ };
2148
+ '/api/projects/{projectId}/observe/validate-ticket': {
2149
+ parameters: {
2150
+ query?: never;
2151
+ header?: never;
2152
+ path?: never;
2153
+ cookie?: never;
2154
+ };
2155
+ get?: never;
2156
+ put?: never;
2157
+ /**
2158
+ * Validate ticket
2159
+ * @description Internal endpoint for the Observer service to validate and consume a ticket.
2160
+ */
2161
+ post: {
2162
+ parameters: {
2163
+ query?: never;
2164
+ header?: never;
2165
+ path: {
2166
+ projectId: string;
2167
+ };
2168
+ cookie?: never;
2169
+ };
2170
+ requestBody?: {
2171
+ content: {
2172
+ 'application/json': components['schemas']['ValidateTicketRequest'];
2173
+ };
2174
+ };
2175
+ responses: {
2176
+ /** @description Ticket payload */
2177
+ 200: {
2178
+ headers: {
2179
+ [name: string]: unknown;
2180
+ };
2181
+ content: {
2182
+ 'application/json': components['schemas']['ValidateTicketResponse'];
2183
+ };
2184
+ };
2185
+ /** @description Validation error */
2186
+ 400: {
2187
+ headers: {
2188
+ [name: string]: unknown;
2189
+ };
2190
+ content: {
2191
+ 'application/json': components['schemas']['ErrorResponse'];
2192
+ };
2193
+ };
2194
+ /** @description Invalid or expired ticket */
2195
+ 401: {
2196
+ headers: {
2197
+ [name: string]: unknown;
2198
+ };
2199
+ content: {
2200
+ 'application/json': components['schemas']['ErrorResponse'];
2201
+ };
2202
+ };
2203
+ /** @description Forbidden */
2204
+ 403: {
2205
+ headers: {
2206
+ [name: string]: unknown;
2207
+ };
2208
+ content: {
2209
+ 'application/json': components['schemas']['ErrorResponse'];
2210
+ };
2211
+ };
2212
+ };
2213
+ };
2214
+ delete?: never;
2215
+ options?: never;
2216
+ head?: never;
2217
+ patch?: never;
2218
+ trace?: never;
2219
+ };
2220
+ '/api/health': {
2221
+ parameters: {
2222
+ query?: never;
2223
+ header?: never;
2224
+ path?: never;
2225
+ cookie?: never;
2226
+ };
2227
+ /**
2228
+ * Health check
2229
+ * @description Check the health of the API and its dependencies.
2230
+ */
2231
+ get: {
2232
+ parameters: {
2233
+ query?: never;
2234
+ header?: never;
2235
+ path?: never;
2236
+ cookie?: never;
2237
+ };
2238
+ requestBody?: never;
2239
+ responses: {
2240
+ /** @description Health status */
2241
+ 200: {
2242
+ headers: {
2243
+ [name: string]: unknown;
2244
+ };
2245
+ content: {
2246
+ 'application/json': components['schemas']['HealthResponse'];
2247
+ };
2248
+ };
2249
+ };
2250
+ };
2251
+ put?: never;
2252
+ post?: never;
2253
+ delete?: never;
2254
+ options?: never;
2255
+ head?: never;
2256
+ patch?: never;
2257
+ trace?: never;
2258
+ };
2259
+ '/api/openapi.json': {
2260
+ parameters: {
2261
+ query?: never;
2262
+ header?: never;
2263
+ path?: never;
2264
+ cookie?: never;
2265
+ };
2266
+ /**
2267
+ * OpenAPI spec
2268
+ * @description Return the OpenAPI 3.1 specification for this API.
2269
+ */
2270
+ get: {
2271
+ parameters: {
2272
+ query?: never;
2273
+ header?: never;
2274
+ path?: never;
2275
+ cookie?: never;
2276
+ };
2277
+ requestBody?: never;
2278
+ responses: {
2279
+ /** @description OpenAPI document */
2280
+ 200: {
2281
+ headers: {
2282
+ [name: string]: unknown;
2283
+ };
2284
+ content: {
2285
+ 'application/json': {
2286
+ [key: string]: unknown;
2287
+ };
2288
+ };
2289
+ };
2290
+ };
2291
+ };
2292
+ put?: never;
2293
+ post?: never;
2294
+ delete?: never;
2295
+ options?: never;
2296
+ head?: never;
2297
+ patch?: never;
2298
+ trace?: never;
2299
+ };
2300
+ '/ingest/v1/{projectId}': {
2301
+ parameters: {
2302
+ query?: never;
2303
+ header?: never;
2304
+ path?: never;
2305
+ cookie?: never;
2306
+ };
2307
+ get?: never;
2308
+ put?: never;
2309
+ /**
2310
+ * Event ingestion
2311
+ * @description Ingest walkerOS events for a project. Served by the Observer service (port 3001).
2312
+ */
2313
+ post: {
2314
+ parameters: {
2315
+ query?: never;
2316
+ header?: never;
2317
+ path: {
2318
+ projectId: string;
2319
+ };
2320
+ cookie?: never;
2321
+ };
2322
+ requestBody?: never;
2323
+ responses: {
2324
+ /** @description Accepted */
2325
+ 202: {
2326
+ headers: {
2327
+ [name: string]: unknown;
2328
+ };
2329
+ content?: never;
2330
+ };
2331
+ };
2332
+ };
2333
+ delete?: never;
2334
+ options?: never;
2335
+ head?: never;
2336
+ patch?: never;
2337
+ trace?: never;
2338
+ };
2339
+ '/stream/v1': {
2340
+ parameters: {
2341
+ query?: never;
2342
+ header?: never;
2343
+ path?: never;
2344
+ cookie?: never;
2345
+ };
2346
+ /**
2347
+ * SSE stream
2348
+ * @description Server-Sent Events stream for real-time event observation. Requires a valid ticket. Served by the Observer service (port 3001).
2349
+ */
2350
+ get: {
2351
+ parameters: {
2352
+ query: {
2353
+ /** @description One-time ticket from /api/projects/{projectId}/observe/ticket */
2354
+ ticket: string;
2355
+ /** @description Project ID for scoped validation */
2356
+ project: string;
2357
+ };
2358
+ header?: never;
2359
+ path?: never;
2360
+ cookie?: never;
2361
+ };
2362
+ requestBody?: never;
2363
+ responses: {
2364
+ /** @description SSE event stream */
2365
+ 200: {
2366
+ headers: {
2367
+ [name: string]: unknown;
2368
+ };
2369
+ content?: never;
2370
+ };
2371
+ /** @description Unauthorized */
2372
+ 401: {
2373
+ headers: {
2374
+ [name: string]: unknown;
2375
+ };
2376
+ content: {
2377
+ 'application/json': components['schemas']['ErrorResponse'];
2378
+ };
2379
+ };
2380
+ };
2381
+ };
2382
+ put?: never;
2383
+ post?: never;
2384
+ delete?: never;
2385
+ options?: never;
2386
+ head?: never;
2387
+ patch?: never;
2388
+ trace?: never;
2389
+ };
2390
+ '/health': {
2391
+ parameters: {
2392
+ query?: never;
2393
+ header?: never;
2394
+ path?: never;
2395
+ cookie?: never;
2396
+ };
2397
+ /**
2398
+ * Observer health
2399
+ * @description Health check for the Observer service (port 3001).
2400
+ */
2401
+ get: {
2402
+ parameters: {
2403
+ query?: never;
2404
+ header?: never;
2405
+ path?: never;
2406
+ cookie?: never;
2407
+ };
2408
+ requestBody?: never;
2409
+ responses: {
2410
+ /** @description Health status */
2411
+ 200: {
2412
+ headers: {
2413
+ [name: string]: unknown;
2414
+ };
2415
+ content: {
2416
+ 'application/json': {
2417
+ status: string;
2418
+ };
2419
+ };
2420
+ };
2421
+ };
2422
+ };
2423
+ put?: never;
2424
+ post?: never;
2425
+ delete?: never;
2426
+ options?: never;
2427
+ head?: never;
2428
+ patch?: never;
2429
+ trace?: never;
2430
+ };
2431
+ }
2432
+ interface components {
2433
+ schemas: {
2434
+ ErrorResponse: {
2435
+ error: {
2436
+ /** @example VALIDATION_ERROR */
2437
+ code: string;
2438
+ /** @example Validation failed */
2439
+ message: string;
2440
+ details?: {
2441
+ field?: string;
2442
+ reason?: string;
2443
+ errors?: {
2444
+ path: string;
2445
+ message: string;
2446
+ }[];
2447
+ } & {
2448
+ [key: string]: unknown;
2449
+ };
2450
+ };
2451
+ };
2452
+ FlowContent: {
2453
+ /** @enum {number} */
2454
+ version: 1;
2455
+ $schema?: string;
2456
+ include?: string[];
2457
+ variables?: {
2458
+ [key: string]: string | number | boolean;
2459
+ };
2460
+ definitions?: {
2461
+ [key: string]: unknown;
2462
+ };
2463
+ flows?: {
2464
+ [key: string]: unknown;
2465
+ };
2466
+ };
2467
+ Flow: {
2468
+ /** @example flow_a1b2c3d4 */
2469
+ id: string;
2470
+ /** @example my-website-flow */
2471
+ name: string;
2472
+ content: components['schemas']['FlowContent'];
2473
+ /**
2474
+ * Format: date-time
2475
+ * @example 2026-01-26T14:30:00.000Z
2476
+ */
2477
+ createdAt: string;
2478
+ /**
2479
+ * Format: date-time
2480
+ * @example 2026-01-26T14:30:00.000Z
2481
+ */
2482
+ updatedAt: string;
2483
+ /** Format: date-time */
2484
+ deletedAt?: string | null;
2485
+ };
2486
+ FlowSummary: {
2487
+ /** @example flow_a1b2c3d4 */
2488
+ id: string;
2489
+ /** @example my-website-flow */
2490
+ name: string;
2491
+ /**
2492
+ * Format: date-time
2493
+ * @example 2026-01-26T14:30:00.000Z
2494
+ */
2495
+ createdAt: string;
2496
+ /**
2497
+ * Format: date-time
2498
+ * @example 2026-01-26T14:30:00.000Z
2499
+ */
2500
+ updatedAt: string;
2501
+ /** Format: date-time */
2502
+ deletedAt: string | null;
2503
+ };
2504
+ Version: {
2505
+ /** @example 1 */
2506
+ version: number;
2507
+ /**
2508
+ * Format: date-time
2509
+ * @example 2026-01-26T14:30:00.000Z
2510
+ */
2511
+ createdAt: string;
2512
+ /**
2513
+ * @example user
2514
+ * @enum {string}
2515
+ */
2516
+ createdBy: 'user' | 'auto_save' | 'restore';
2517
+ /** @example sha256:abc123... */
2518
+ contentHash?: string;
2519
+ };
2520
+ Project: {
2521
+ /** @example proj_x7y8z9 */
2522
+ id: string;
2523
+ /** @example My Website */
2524
+ name: string;
2525
+ /**
2526
+ * @example owner
2527
+ * @enum {string}
2528
+ */
2529
+ role: 'owner' | 'member';
2530
+ /**
2531
+ * Format: date-time
2532
+ * @example 2026-01-26T14:30:00.000Z
2533
+ */
2534
+ createdAt: string;
2535
+ /**
2536
+ * Format: date-time
2537
+ * @example 2026-01-26T14:30:00.000Z
2538
+ */
2539
+ updatedAt: string;
2540
+ };
2541
+ Member: {
2542
+ userId: string;
2543
+ /** Format: email */
2544
+ email: string;
2545
+ /** @enum {string} */
2546
+ role: 'owner' | 'member';
2547
+ /**
2548
+ * Format: date-time
2549
+ * @example 2026-01-26T14:30:00.000Z
2550
+ */
2551
+ createdAt: string;
2552
+ };
2553
+ ApiTokenSummary: {
2554
+ /** @example tok_a1b2c3d4 */
2555
+ id: string;
2556
+ /** @example CI Pipeline */
2557
+ name: string;
2558
+ /** @example sk-walkeros-abcd */
2559
+ prefix: string;
2560
+ /** @example null */
2561
+ projectId: string | null;
2562
+ /** @example null */
2563
+ scopes: string[] | null;
2564
+ /**
2565
+ * Format: date-time
2566
+ * @example 2026-01-26T14:30:00.000Z
2567
+ */
2568
+ createdAt: string;
2569
+ /**
2570
+ * Format: date-time
2571
+ * @example 2026-01-26T14:30:00.000Z
2572
+ */
2573
+ lastUsedAt: string | null;
2574
+ /**
2575
+ * Format: date-time
2576
+ * @example 2026-01-26T14:30:00.000Z
2577
+ */
2578
+ expiresAt: string | null;
2579
+ /**
2580
+ * Format: date-time
2581
+ * @example 2026-01-26T14:30:00.000Z
2582
+ */
2583
+ revokedAt: string | null;
2584
+ };
2585
+ MagicLinkResponse: {
2586
+ /** @example true */
2587
+ success: boolean;
2588
+ /** @example Magic link sent */
2589
+ message: string;
2590
+ };
2591
+ MagicLinkRequest: {
2592
+ /**
2593
+ * Format: email
2594
+ * @example user@example.com
2595
+ */
2596
+ email: string;
2597
+ /**
2598
+ * Format: uri
2599
+ * @example /dashboard
2600
+ */
2601
+ redirect_to?: string;
2602
+ };
2603
+ WhoamiResponse: {
2604
+ /** @example user_a1b2c3d4 */
2605
+ userId: string;
2606
+ /**
2607
+ * Format: email
2608
+ * @example user@example.com
2609
+ */
2610
+ email: string;
2611
+ /** @example null */
2612
+ projectId: string | null;
2613
+ };
2614
+ ListProjectsResponse: {
2615
+ projects: components['schemas']['Project'][];
2616
+ total: number;
2617
+ };
2618
+ CreateProjectRequest: {
2619
+ name: string;
2620
+ };
2621
+ UpdateProjectRequest: {
2622
+ name?: string;
2623
+ };
2624
+ ListMembersResponse: {
2625
+ members: components['schemas']['Member'][];
2626
+ total: number;
2627
+ };
2628
+ AddMemberRequest: {
2629
+ /**
2630
+ * Format: email
2631
+ * @example user@example.com
2632
+ */
2633
+ email: string;
2634
+ /**
2635
+ * @default member
2636
+ * @enum {string}
2637
+ */
2638
+ role: 'owner' | 'member';
2639
+ };
2640
+ UpdateMemberRequest: {
2641
+ /** @enum {string} */
2642
+ role: 'owner' | 'member';
2643
+ };
2644
+ ListFlowsResponse: {
2645
+ flows: components['schemas']['FlowSummary'][];
2646
+ total: number;
2647
+ };
2648
+ CreateFlowRequest: {
2649
+ /** @example my-website-flow */
2650
+ name: string;
2651
+ content?: components['schemas']['FlowContent'];
2652
+ };
2653
+ UpdateFlowRequest: {
2654
+ /** @example my-website-flow */
2655
+ name?: string;
2656
+ content?: components['schemas']['FlowContent'];
2657
+ };
2658
+ DuplicateFlowRequest: {
2659
+ /** @example my-website-flow */
2660
+ name?: string;
2661
+ };
2662
+ ListVersionsResponse: {
2663
+ data: components['schemas']['Version'][];
2664
+ /** @example flow_a1b2c3d4 */
2665
+ flowId: string;
2666
+ total: number;
2667
+ };
2668
+ GetVersionResponse: {
2669
+ /** @example 1 */
2670
+ version: number;
2671
+ content: components['schemas']['FlowContent'];
2672
+ /**
2673
+ * Format: date-time
2674
+ * @example 2026-01-26T14:30:00.000Z
2675
+ */
2676
+ createdAt: string;
2677
+ /** @enum {string} */
2678
+ createdBy: 'user' | 'auto_save' | 'restore';
2679
+ };
2680
+ ListApiTokensResponse: {
2681
+ tokens: components['schemas']['ApiTokenSummary'][];
2682
+ };
2683
+ CreateApiTokenResponse: {
2684
+ /** @example tok_a1b2c3d4 */
2685
+ id: string;
2686
+ /** @example CI Pipeline */
2687
+ name: string;
2688
+ /** @example sk-walkeros-abcd1234... */
2689
+ token: string;
2690
+ /** @example sk-walkeros-abcd */
2691
+ prefix: string;
2692
+ /**
2693
+ * Format: date-time
2694
+ * @example 2026-01-26T14:30:00.000Z
2695
+ */
2696
+ createdAt: string;
2697
+ /**
2698
+ * Format: date-time
2699
+ * @example 2026-01-26T14:30:00.000Z
2700
+ */
2701
+ expiresAt: string | null;
2702
+ /** @example null */
2703
+ projectId: string | null;
2704
+ };
2705
+ CreateApiTokenRequest: {
2706
+ /** @example CI Pipeline */
2707
+ name: string;
2708
+ /** @example 90 */
2709
+ expiresInDays?: number | null;
2710
+ };
2711
+ CreateTicketResponse: {
2712
+ /** @example tkt_abc123... */
2713
+ ticket: string;
2714
+ /**
2715
+ * Format: uri
2716
+ * @example http://localhost:3001
2717
+ */
2718
+ observerUrl: string;
2719
+ };
2720
+ ValidateTicketResponse: {
2721
+ userId: string;
2722
+ projectId: string;
2723
+ replay: {
2724
+ size: number;
2725
+ ttlMs: number;
2726
+ };
2727
+ };
2728
+ ValidateTicketRequest: {
2729
+ ticket: string;
2730
+ };
2731
+ HealthResponse: {
2732
+ /** @example ok */
2733
+ status: string;
2734
+ };
2735
+ };
2736
+ responses: never;
2737
+ parameters: never;
2738
+ requestBodies: never;
2739
+ headers: never;
2740
+ pathItems: never;
2741
+ }
2742
+
2743
+ declare function createApiClient(): openapi_fetch.Client<paths, `${string}/${string}`>;
2744
+
2745
+ declare function listProjects(): Promise<{
2746
+ projects: {
2747
+ id: string;
2748
+ name: string;
2749
+ role: "owner" | "member";
2750
+ createdAt: string;
2751
+ updatedAt: string;
2752
+ }[];
2753
+ total: number;
2754
+ }>;
557
2755
  declare function getProject(options?: {
558
2756
  projectId?: string;
559
- }): Promise<unknown>;
2757
+ }): Promise<{
2758
+ id: string;
2759
+ name: string;
2760
+ role: "owner" | "member";
2761
+ createdAt: string;
2762
+ updatedAt: string;
2763
+ }>;
560
2764
  declare function createProject(options: {
561
2765
  name: string;
562
- }): Promise<unknown>;
2766
+ }): Promise<{
2767
+ id: string;
2768
+ name: string;
2769
+ role: "owner" | "member";
2770
+ createdAt: string;
2771
+ updatedAt: string;
2772
+ }>;
563
2773
  declare function updateProject(options: {
564
2774
  projectId?: string;
565
2775
  name: string;
566
- }): Promise<unknown>;
2776
+ }): Promise<{
2777
+ id: string;
2778
+ name: string;
2779
+ role: "owner" | "member";
2780
+ createdAt: string;
2781
+ updatedAt: string;
2782
+ }>;
567
2783
  declare function deleteProject(options?: {
568
2784
  projectId?: string;
569
- }): Promise<unknown>;
2785
+ }): Promise<{
2786
+ success: boolean;
2787
+ }>;
570
2788
 
571
- declare function whoami(): Promise<unknown>;
2789
+ declare function whoami(): Promise<{
2790
+ userId: string;
2791
+ email: string;
2792
+ projectId: string | null;
2793
+ }>;
572
2794
 
573
2795
  interface ListFlowsOptions {
574
2796
  projectId?: string;
@@ -576,30 +2798,121 @@ interface ListFlowsOptions {
576
2798
  order?: 'asc' | 'desc';
577
2799
  includeDeleted?: boolean;
578
2800
  }
579
- declare function listFlows(options?: ListFlowsOptions): Promise<unknown>;
2801
+ declare function listFlows(options?: ListFlowsOptions): Promise<{
2802
+ flows: {
2803
+ id: string;
2804
+ name: string;
2805
+ createdAt: string;
2806
+ updatedAt: string;
2807
+ deletedAt: string | null;
2808
+ }[];
2809
+ total: number;
2810
+ }>;
580
2811
  declare function getFlow(options: {
581
2812
  flowId: string;
582
2813
  projectId?: string;
583
- }): Promise<unknown>;
2814
+ }): Promise<{
2815
+ id: string;
2816
+ name: string;
2817
+ content: {
2818
+ version: 1;
2819
+ $schema?: string | undefined;
2820
+ include?: string[] | undefined;
2821
+ variables?: {
2822
+ [x: string]: string | number | boolean;
2823
+ } | undefined;
2824
+ definitions?: {
2825
+ [x: string]: unknown;
2826
+ } | undefined;
2827
+ flows?: {
2828
+ [x: string]: unknown;
2829
+ } | undefined;
2830
+ };
2831
+ createdAt: string;
2832
+ updatedAt: string;
2833
+ deletedAt?: string | null | undefined;
2834
+ }>;
584
2835
  declare function createFlow(options: {
585
2836
  name: string;
586
2837
  content: Record<string, unknown>;
587
2838
  projectId?: string;
588
- }): Promise<unknown>;
2839
+ }): Promise<{
2840
+ id: string;
2841
+ name: string;
2842
+ content: {
2843
+ version: 1;
2844
+ $schema?: string | undefined;
2845
+ include?: string[] | undefined;
2846
+ variables?: {
2847
+ [x: string]: string | number | boolean;
2848
+ } | undefined;
2849
+ definitions?: {
2850
+ [x: string]: unknown;
2851
+ } | undefined;
2852
+ flows?: {
2853
+ [x: string]: unknown;
2854
+ } | undefined;
2855
+ };
2856
+ createdAt: string;
2857
+ updatedAt: string;
2858
+ deletedAt?: string | null | undefined;
2859
+ }>;
589
2860
  declare function updateFlow(options: {
590
2861
  flowId: string;
591
2862
  name?: string;
592
2863
  content?: Record<string, unknown>;
593
2864
  projectId?: string;
594
- }): Promise<unknown>;
2865
+ }): Promise<{
2866
+ id: string;
2867
+ name: string;
2868
+ content: {
2869
+ version: 1;
2870
+ $schema?: string | undefined;
2871
+ include?: string[] | undefined;
2872
+ variables?: {
2873
+ [x: string]: string | number | boolean;
2874
+ } | undefined;
2875
+ definitions?: {
2876
+ [x: string]: unknown;
2877
+ } | undefined;
2878
+ flows?: {
2879
+ [x: string]: unknown;
2880
+ } | undefined;
2881
+ };
2882
+ createdAt: string;
2883
+ updatedAt: string;
2884
+ deletedAt?: string | null | undefined;
2885
+ }>;
595
2886
  declare function deleteFlow(options: {
596
2887
  flowId: string;
597
2888
  projectId?: string;
598
- }): Promise<unknown>;
2889
+ }): Promise<{
2890
+ success: boolean;
2891
+ }>;
599
2892
  declare function duplicateFlow(options: {
600
2893
  flowId: string;
601
2894
  name?: string;
602
2895
  projectId?: string;
603
- }): Promise<unknown>;
2896
+ }): Promise<{
2897
+ id: string;
2898
+ name: string;
2899
+ content: {
2900
+ version: 1;
2901
+ $schema?: string | undefined;
2902
+ include?: string[] | undefined;
2903
+ variables?: {
2904
+ [x: string]: string | number | boolean;
2905
+ } | undefined;
2906
+ definitions?: {
2907
+ [x: string]: unknown;
2908
+ } | undefined;
2909
+ flows?: {
2910
+ [x: string]: unknown;
2911
+ } | undefined;
2912
+ };
2913
+ createdAt: string;
2914
+ updatedAt: string;
2915
+ deletedAt?: string | null | undefined;
2916
+ }>;
604
2917
 
605
- export { type ApiRequestOptions, type BuildOptions, type BundleStats, type CLIBuildOptions, type GlobalOptions, type ListFlowsOptions, type MinifyOptions, type PushResult, type RunCommandOptions, type RunMode, type RunOptions, type RunResult, type SimulationResult, type ValidateResult, type ValidationError, type ValidationType, type ValidationWarning, apiRequest, authenticatedFetch, bundle, bundleCommand, createFlow, createProject, deleteFlow, deleteProject, duplicateFlow, getAuthHeaders, getFlow, getProject, getToken, listFlows, listProjects, push, pushCommand, requireProjectId, resolveBaseUrl, run, runCommand, simulate, simulateCommand, updateFlow, updateProject, validate, whoami };
2918
+ export { type BuildOptions, type BundleStats, type CLIBuildOptions, type GlobalOptions, type ListFlowsOptions, type MinifyOptions, type PushResult, type RunCommandOptions, type RunMode, type RunOptions, type RunResult, type SimulationResult, type ValidateResult, type ValidationError, type ValidationType, type ValidationWarning, bundle, bundleCommand, bundleRemote, createApiClient, createFlow, createProject, deleteFlow, deleteProject, duplicateFlow, getAuthHeaders, getFlow, getProject, getToken, listFlows, listProjects, push, pushCommand, requireProjectId, resolveBaseUrl, run, runCommand, simulate, simulateCommand, updateFlow, updateProject, validate, whoami };