@autoweb/domain-models 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/README.md +100 -0
  2. package/index.d.ts +594 -0
  3. package/index.js +3 -0
  4. package/package.json +55 -0
  5. package/python-models/__init__.py +68 -0
  6. package/python-models/action-configs.py +1112 -0
  7. package/python-models/build/lib/floweb_models/__init__.py +194 -0
  8. package/python-models/build/lib/floweb_models/action_configs.py +783 -0
  9. package/python-models/build/lib/floweb_models/debug.py +209 -0
  10. package/python-models/build/lib/floweb_models/debug_models.py +141 -0
  11. package/python-models/build/lib/floweb_models/environment.py +158 -0
  12. package/python-models/build/lib/floweb_models/execution_results.py +208 -0
  13. package/python-models/build/lib/floweb_models/flow.py +345 -0
  14. package/python-models/build/lib/floweb_models/flow_validation.py +316 -0
  15. package/python-models/build/lib/floweb_models/parallel_execution.py +258 -0
  16. package/python-models/build/lib/floweb_models/performance_test.py +605 -0
  17. package/python-models/build/lib/floweb_models/websocket_communication.py +697 -0
  18. package/python-models/debug.py +209 -0
  19. package/python-models/dist/floweb_domain_models-1.0.0-py3-none-any.whl +0 -0
  20. package/python-models/environment.py +158 -0
  21. package/python-models/execution-results.py +208 -0
  22. package/python-models/flow-validation.py +316 -0
  23. package/python-models/flow.py +369 -0
  24. package/python-models/floweb_domain_models.egg-info/PKG-INFO +9 -0
  25. package/python-models/floweb_domain_models.egg-info/SOURCES.txt +16 -0
  26. package/python-models/floweb_domain_models.egg-info/dependency_links.txt +1 -0
  27. package/python-models/floweb_domain_models.egg-info/requires.txt +1 -0
  28. package/python-models/floweb_domain_models.egg-info/top_level.txt +1 -0
  29. package/python-models/floweb_models/__init__.py +194 -0
  30. package/python-models/floweb_models/__pycache__/__init__.cpython-312.pyc +0 -0
  31. package/python-models/floweb_models/__pycache__/action_configs.cpython-312.pyc +0 -0
  32. package/python-models/floweb_models/__pycache__/debug.cpython-312.pyc +0 -0
  33. package/python-models/floweb_models/__pycache__/debug_models.cpython-312.pyc +0 -0
  34. package/python-models/floweb_models/__pycache__/environment.cpython-312.pyc +0 -0
  35. package/python-models/floweb_models/__pycache__/execution_results.cpython-312.pyc +0 -0
  36. package/python-models/floweb_models/__pycache__/flow.cpython-312.pyc +0 -0
  37. package/python-models/floweb_models/__pycache__/flow_validation.cpython-312.pyc +0 -0
  38. package/python-models/floweb_models/__pycache__/parallel_execution.cpython-312.pyc +0 -0
  39. package/python-models/floweb_models/__pycache__/performance_test.cpython-312.pyc +0 -0
  40. package/python-models/floweb_models/__pycache__/websocket_communication.cpython-312.pyc +0 -0
  41. package/python-models/floweb_models/action_configs.py +1062 -0
  42. package/python-models/floweb_models/debug.py +209 -0
  43. package/python-models/floweb_models/debug_models.py +141 -0
  44. package/python-models/floweb_models/environment.py +158 -0
  45. package/python-models/floweb_models/execution_results.py +208 -0
  46. package/python-models/floweb_models/flow.py +345 -0
  47. package/python-models/floweb_models/flow_validation.py +316 -0
  48. package/python-models/floweb_models/parallel_execution.py +229 -0
  49. package/python-models/floweb_models/performance_test.py +605 -0
  50. package/python-models/floweb_models/websocket_communication.py +697 -0
  51. package/python-models/floweb_models.egg-info/PKG-INFO +9 -0
  52. package/python-models/floweb_models.egg-info/SOURCES.txt +16 -0
  53. package/python-models/floweb_models.egg-info/dependency_links.txt +1 -0
  54. package/python-models/floweb_models.egg-info/requires.txt +1 -0
  55. package/python-models/floweb_models.egg-info/top_level.txt +1 -0
  56. package/python-models/parallel-execution.py +475 -0
  57. package/python-models/performance-test.py +605 -0
  58. package/python-models/setup.py +13 -0
  59. package/python-models/websocket-communication.py +697 -0
  60. package/schemas/action-configs.json +1501 -0
  61. package/schemas/debug.json +203 -0
  62. package/schemas/environment.json +165 -0
  63. package/schemas/execution-results.json +209 -0
  64. package/schemas/flow-validation.json +311 -0
  65. package/schemas/flow.json +381 -0
  66. package/schemas/parallel-execution.json +219 -0
  67. package/schemas/performance-test.json +600 -0
  68. package/schemas/websocket-communication.json +1118 -0
@@ -0,0 +1,1118 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://floweb.com/schemas/websocket-communication.json",
4
+ "title": "WebSocket Communication Models",
5
+ "description": "Schema for WebSocket API commands and responses",
6
+ "type": "object",
7
+ "properties": {
8
+ "websocketCommunication": {
9
+ "type": "object",
10
+ "properties": {
11
+ "commands": {
12
+ "type": "array",
13
+ "items": {
14
+ "oneOf": [
15
+ {
16
+ "$ref": "#/$defs/RunCommand"
17
+ },
18
+ {
19
+ "$ref": "#/$defs/RecordCommand"
20
+ },
21
+ {
22
+ "$ref": "#/$defs/PauseRecordingCommand"
23
+ },
24
+ {
25
+ "$ref": "#/$defs/ResumeRecordingCommand"
26
+ },
27
+ {
28
+ "$ref": "#/$defs/StopRecordingCommand"
29
+ },
30
+ {
31
+ "$ref": "#/$defs/FinishRecordingCommand"
32
+ },
33
+ {
34
+ "$ref": "#/$defs/GetRecordingStatusCommand"
35
+ },
36
+ {
37
+ "$ref": "#/$defs/ListRecordingsCommand"
38
+ },
39
+ {
40
+ "$ref": "#/$defs/ConvertRecordingToFlowCommand"
41
+ },
42
+ {
43
+ "$ref": "#/$defs/GetRealtimeActionsCommand"
44
+ },
45
+ {
46
+ "$ref": "#/$defs/GetLatestRealtimeActionCommand"
47
+ },
48
+ {
49
+ "$ref": "#/$defs/StopCommand"
50
+ },
51
+ {
52
+ "$ref": "#/$defs/CloseCommand"
53
+ },
54
+ {
55
+ "$ref": "#/$defs/ListSessionsCommand"
56
+ },
57
+ {
58
+ "$ref": "#/$defs/CloseSessionCommand"
59
+ },
60
+ {
61
+ "$ref": "#/$defs/RestartEngineCommand"
62
+ },
63
+ {
64
+ "$ref": "#/$defs/CloseEngineCommand"
65
+ },
66
+ {
67
+ "$ref": "#/$defs/GetEngineStatusCommand"
68
+ },
69
+ {
70
+ "$ref": "#/$defs/StartPerformanceScanCommand"
71
+ },
72
+ {
73
+ "$ref": "#/$defs/StopPerformanceScanCommand"
74
+ },
75
+ {
76
+ "$ref": "#/$defs/RunLoadTestCommand"
77
+ },
78
+ {
79
+ "$ref": "#/$defs/StopLoadTestCommand"
80
+ },
81
+ {
82
+ "$ref": "#/$defs/DebugRunCommand"
83
+ },
84
+ {
85
+ "$ref": "#/$defs/DebugStepCommand"
86
+ },
87
+ {
88
+ "$ref": "#/$defs/DebugContinueCommand"
89
+ },
90
+ {
91
+ "$ref": "#/$defs/DebugPauseCommand"
92
+ },
93
+ {
94
+ "$ref": "#/$defs/DebugStopCommand"
95
+ }
96
+ ]
97
+ }
98
+ },
99
+ "responses": {
100
+ "type": "array",
101
+ "items": {
102
+ "oneOf": [
103
+ {
104
+ "$ref": "#/$defs/RunResponse"
105
+ },
106
+ {
107
+ "$ref": "#/$defs/ListSessionsResponse"
108
+ },
109
+ {
110
+ "$ref": "#/$defs/EngineStatusResponse"
111
+ },
112
+ {
113
+ "$ref": "#/$defs/RecordingResponse"
114
+ },
115
+ {
116
+ "$ref": "#/$defs/RecordingStatusResponse"
117
+ },
118
+ {
119
+ "$ref": "#/$defs/ListRecordingsResponse"
120
+ },
121
+ {
122
+ "$ref": "#/$defs/DebugResponse"
123
+ },
124
+ {
125
+ "$ref": "#/$defs/WebSocketResponse"
126
+ }
127
+ ]
128
+ }
129
+ }
130
+ }
131
+ }
132
+ },
133
+ "$defs": {
134
+ "WebSocketMessage": {
135
+ "type": "object",
136
+ "description": "Base WebSocket message structure",
137
+ "properties": {
138
+ "command": {
139
+ "type": "string",
140
+ "description": "Command type"
141
+ },
142
+ "flow_id": {
143
+ "type": "string",
144
+ "description": "Flow ID for the command"
145
+ }
146
+ },
147
+ "required": [
148
+ "command"
149
+ ]
150
+ },
151
+ "SessionInfo": {
152
+ "type": "object",
153
+ "description": "Information about an active session",
154
+ "properties": {
155
+ "flowId": {
156
+ "type": "string",
157
+ "description": "Flow ID"
158
+ },
159
+ "status": {
160
+ "type": "string",
161
+ "description": "Session status"
162
+ },
163
+ "browser": {
164
+ "type": "string",
165
+ "description": "Browser type"
166
+ },
167
+ "startedAt": {
168
+ "type": "integer",
169
+ "description": "Start timestamp"
170
+ }
171
+ },
172
+ "required": [
173
+ "flowId",
174
+ "status",
175
+ "browser",
176
+ "startedAt"
177
+ ]
178
+ },
179
+ "RunCommand": {
180
+ "allOf": [
181
+ {
182
+ "$ref": "#/$defs/WebSocketMessage"
183
+ },
184
+ {
185
+ "type": "object",
186
+ "properties": {
187
+ "command": {
188
+ "const": "run"
189
+ },
190
+ "flow": {
191
+ "type": "object",
192
+ "description": "Flow to execute",
193
+ "properties": {
194
+ "id": {
195
+ "type": "string"
196
+ },
197
+ "name": {
198
+ "type": "string"
199
+ },
200
+ "actions": {
201
+ "type": "array",
202
+ "items": {
203
+ "type": "object"
204
+ }
205
+ },
206
+ "edges": {
207
+ "type": "array",
208
+ "items": {
209
+ "type": "object"
210
+ }
211
+ }
212
+ },
213
+ "required": [
214
+ "id",
215
+ "name",
216
+ "actions",
217
+ "edges"
218
+ ]
219
+ },
220
+ "mode": {
221
+ "type": "string",
222
+ "enum": [
223
+ "full",
224
+ "partial"
225
+ ],
226
+ "default": "full"
227
+ },
228
+ "recording": {
229
+ "type": "object",
230
+ "additionalProperties": true
231
+ }
232
+ },
233
+ "required": [
234
+ "command",
235
+ "flow"
236
+ ]
237
+ }
238
+ ]
239
+ },
240
+ "RecordCommand": {
241
+ "allOf": [
242
+ {
243
+ "$ref": "#/$defs/WebSocketMessage"
244
+ },
245
+ {
246
+ "type": "object",
247
+ "properties": {
248
+ "command": {
249
+ "const": "record"
250
+ },
251
+ "flow_id": {
252
+ "type": "string"
253
+ },
254
+ "url": {
255
+ "type": "string"
256
+ },
257
+ "config": {
258
+ "type": "object",
259
+ "additionalProperties": true,
260
+ "default": {}
261
+ }
262
+ },
263
+ "required": [
264
+ "command"
265
+ ]
266
+ }
267
+ ]
268
+ },
269
+ "PauseRecordingCommand": {
270
+ "allOf": [
271
+ {
272
+ "$ref": "#/$defs/WebSocketMessage"
273
+ },
274
+ {
275
+ "type": "object",
276
+ "properties": {
277
+ "command": {
278
+ "const": "pause_recording"
279
+ },
280
+ "session_id": {
281
+ "type": "string",
282
+ "description": "Recording session ID"
283
+ }
284
+ },
285
+ "required": [
286
+ "command",
287
+ "session_id"
288
+ ]
289
+ }
290
+ ]
291
+ },
292
+ "ResumeRecordingCommand": {
293
+ "allOf": [
294
+ {
295
+ "$ref": "#/$defs/WebSocketMessage"
296
+ },
297
+ {
298
+ "type": "object",
299
+ "properties": {
300
+ "command": {
301
+ "const": "resume_recording"
302
+ },
303
+ "session_id": {
304
+ "type": "string",
305
+ "description": "Recording session ID"
306
+ }
307
+ },
308
+ "required": [
309
+ "command",
310
+ "session_id"
311
+ ]
312
+ }
313
+ ]
314
+ },
315
+ "StopRecordingCommand": {
316
+ "allOf": [
317
+ {
318
+ "$ref": "#/$defs/WebSocketMessage"
319
+ },
320
+ {
321
+ "type": "object",
322
+ "properties": {
323
+ "command": {
324
+ "const": "stop_recording"
325
+ },
326
+ "session_id": {
327
+ "type": "string",
328
+ "description": "Recording session ID"
329
+ }
330
+ },
331
+ "required": [
332
+ "command",
333
+ "session_id"
334
+ ]
335
+ }
336
+ ]
337
+ },
338
+ "FinishRecordingCommand": {
339
+ "allOf": [
340
+ {
341
+ "$ref": "#/$defs/WebSocketMessage"
342
+ },
343
+ {
344
+ "type": "object",
345
+ "properties": {
346
+ "command": {
347
+ "const": "finish_recording"
348
+ },
349
+ "session_id": {
350
+ "type": "string",
351
+ "description": "Recording session ID"
352
+ },
353
+ "flow_name": {
354
+ "type": "string",
355
+ "default": "Recorded Flow"
356
+ }
357
+ },
358
+ "required": [
359
+ "command",
360
+ "session_id"
361
+ ]
362
+ }
363
+ ]
364
+ },
365
+ "GetRecordingStatusCommand": {
366
+ "allOf": [
367
+ {
368
+ "$ref": "#/$defs/WebSocketMessage"
369
+ },
370
+ {
371
+ "type": "object",
372
+ "properties": {
373
+ "command": {
374
+ "const": "get_recording_status"
375
+ },
376
+ "session_id": {
377
+ "type": "string"
378
+ }
379
+ },
380
+ "required": [
381
+ "command"
382
+ ]
383
+ }
384
+ ]
385
+ },
386
+ "ListRecordingsCommand": {
387
+ "allOf": [
388
+ {
389
+ "$ref": "#/$defs/WebSocketMessage"
390
+ },
391
+ {
392
+ "type": "object",
393
+ "properties": {
394
+ "command": {
395
+ "const": "list_recordings"
396
+ }
397
+ },
398
+ "required": [
399
+ "command"
400
+ ]
401
+ }
402
+ ]
403
+ },
404
+ "ConvertRecordingToFlowCommand": {
405
+ "allOf": [
406
+ {
407
+ "$ref": "#/$defs/WebSocketMessage"
408
+ },
409
+ {
410
+ "type": "object",
411
+ "properties": {
412
+ "command": {
413
+ "const": "convert_recording_to_flow"
414
+ },
415
+ "session_id": {
416
+ "type": "string",
417
+ "description": "Recording session ID"
418
+ },
419
+ "flow_name": {
420
+ "type": "string",
421
+ "default": "Recorded Flow"
422
+ }
423
+ },
424
+ "required": [
425
+ "command",
426
+ "session_id"
427
+ ]
428
+ }
429
+ ]
430
+ },
431
+ "GetRealtimeActionsCommand": {
432
+ "allOf": [
433
+ {
434
+ "$ref": "#/$defs/WebSocketMessage"
435
+ },
436
+ {
437
+ "type": "object",
438
+ "properties": {
439
+ "command": {
440
+ "const": "get_realtime_actions"
441
+ },
442
+ "session_id": {
443
+ "type": "string",
444
+ "description": "Recording session ID"
445
+ }
446
+ },
447
+ "required": [
448
+ "command",
449
+ "session_id"
450
+ ]
451
+ }
452
+ ]
453
+ },
454
+ "GetLatestRealtimeActionCommand": {
455
+ "allOf": [
456
+ {
457
+ "$ref": "#/$defs/WebSocketMessage"
458
+ },
459
+ {
460
+ "type": "object",
461
+ "properties": {
462
+ "command": {
463
+ "const": "get_latest_realtime_action"
464
+ },
465
+ "session_id": {
466
+ "type": "string",
467
+ "description": "Recording session ID"
468
+ }
469
+ },
470
+ "required": [
471
+ "command",
472
+ "session_id"
473
+ ]
474
+ }
475
+ ]
476
+ },
477
+ "StopCommand": {
478
+ "allOf": [
479
+ {
480
+ "$ref": "#/$defs/WebSocketMessage"
481
+ },
482
+ {
483
+ "type": "object",
484
+ "properties": {
485
+ "command": {
486
+ "const": "stop"
487
+ },
488
+ "flow_id": {
489
+ "type": "string"
490
+ }
491
+ },
492
+ "required": [
493
+ "command"
494
+ ]
495
+ }
496
+ ]
497
+ },
498
+ "CloseCommand": {
499
+ "allOf": [
500
+ {
501
+ "$ref": "#/$defs/WebSocketMessage"
502
+ },
503
+ {
504
+ "type": "object",
505
+ "properties": {
506
+ "command": {
507
+ "const": "close"
508
+ }
509
+ },
510
+ "required": [
511
+ "command"
512
+ ]
513
+ }
514
+ ]
515
+ },
516
+ "ListSessionsCommand": {
517
+ "allOf": [
518
+ {
519
+ "$ref": "#/$defs/WebSocketMessage"
520
+ },
521
+ {
522
+ "type": "object",
523
+ "properties": {
524
+ "command": {
525
+ "const": "list_sessions"
526
+ }
527
+ },
528
+ "required": [
529
+ "command"
530
+ ]
531
+ }
532
+ ]
533
+ },
534
+ "CloseSessionCommand": {
535
+ "allOf": [
536
+ {
537
+ "$ref": "#/$defs/WebSocketMessage"
538
+ },
539
+ {
540
+ "type": "object",
541
+ "properties": {
542
+ "command": {
543
+ "const": "close_session"
544
+ },
545
+ "flow_id": {
546
+ "type": "string"
547
+ }
548
+ },
549
+ "required": [
550
+ "command"
551
+ ]
552
+ }
553
+ ]
554
+ },
555
+ "RestartEngineCommand": {
556
+ "allOf": [
557
+ {
558
+ "$ref": "#/$defs/WebSocketMessage"
559
+ },
560
+ {
561
+ "type": "object",
562
+ "properties": {
563
+ "command": {
564
+ "const": "restart_engine"
565
+ }
566
+ },
567
+ "required": [
568
+ "command"
569
+ ]
570
+ }
571
+ ]
572
+ },
573
+ "CloseEngineCommand": {
574
+ "allOf": [
575
+ {
576
+ "$ref": "#/$defs/WebSocketMessage"
577
+ },
578
+ {
579
+ "type": "object",
580
+ "properties": {
581
+ "command": {
582
+ "const": "close_engine"
583
+ }
584
+ },
585
+ "required": [
586
+ "command"
587
+ ]
588
+ }
589
+ ]
590
+ },
591
+ "GetEngineStatusCommand": {
592
+ "allOf": [
593
+ {
594
+ "$ref": "#/$defs/WebSocketMessage"
595
+ },
596
+ {
597
+ "type": "object",
598
+ "properties": {
599
+ "command": {
600
+ "const": "get_engine_status"
601
+ }
602
+ },
603
+ "required": [
604
+ "command"
605
+ ]
606
+ }
607
+ ]
608
+ },
609
+ "StartPerformanceScanCommand": {
610
+ "allOf": [
611
+ {
612
+ "$ref": "#/$defs/WebSocketMessage"
613
+ },
614
+ {
615
+ "type": "object",
616
+ "properties": {
617
+ "command": {
618
+ "const": "start_performance_scan"
619
+ },
620
+ "test_id": {
621
+ "type": "string",
622
+ "description": "Performance test ID"
623
+ },
624
+ "url": {
625
+ "type": "string",
626
+ "description": "URL to navigate to and record"
627
+ }
628
+ },
629
+ "required": [
630
+ "command",
631
+ "test_id",
632
+ "url"
633
+ ]
634
+ }
635
+ ]
636
+ },
637
+ "StopPerformanceScanCommand": {
638
+ "allOf": [
639
+ {
640
+ "$ref": "#/$defs/WebSocketMessage"
641
+ },
642
+ {
643
+ "type": "object",
644
+ "properties": {
645
+ "command": {
646
+ "const": "stop_performance_scan"
647
+ },
648
+ "test_id": {
649
+ "type": "string",
650
+ "description": "Performance test ID"
651
+ },
652
+ "session_id": {
653
+ "type": "string",
654
+ "description": "Recording session ID"
655
+ }
656
+ },
657
+ "required": [
658
+ "command",
659
+ "test_id",
660
+ "session_id"
661
+ ]
662
+ }
663
+ ]
664
+ },
665
+ "RunLoadTestCommand": {
666
+ "allOf": [
667
+ {
668
+ "$ref": "#/$defs/WebSocketMessage"
669
+ },
670
+ {
671
+ "type": "object",
672
+ "properties": {
673
+ "command": {
674
+ "const": "run_load_test"
675
+ },
676
+ "test_id": {
677
+ "type": "string",
678
+ "description": "Performance test ID"
679
+ },
680
+ "config": {
681
+ "type": "object",
682
+ "description": "Load test configuration",
683
+ "additionalProperties": true
684
+ },
685
+ "auth_config": {
686
+ "type": "object",
687
+ "description": "Authentication configuration for load test",
688
+ "additionalProperties": true
689
+ }
690
+ },
691
+ "required": [
692
+ "command",
693
+ "test_id",
694
+ "config"
695
+ ]
696
+ }
697
+ ]
698
+ },
699
+ "StopLoadTestCommand": {
700
+ "allOf": [
701
+ {
702
+ "$ref": "#/$defs/WebSocketMessage"
703
+ },
704
+ {
705
+ "type": "object",
706
+ "properties": {
707
+ "command": {
708
+ "const": "stop_load_test"
709
+ },
710
+ "test_id": {
711
+ "type": "string",
712
+ "description": "Performance test ID"
713
+ }
714
+ },
715
+ "required": [
716
+ "command",
717
+ "test_id"
718
+ ]
719
+ }
720
+ ]
721
+ },
722
+ "WebSocketResponse": {
723
+ "type": "object",
724
+ "description": "Base WebSocket response structure",
725
+ "properties": {
726
+ "command": {
727
+ "type": "string",
728
+ "description": "Command that was executed"
729
+ },
730
+ "success": {
731
+ "type": "boolean",
732
+ "description": "Whether the command succeeded"
733
+ },
734
+ "message": {
735
+ "type": "string",
736
+ "description": "Response message"
737
+ }
738
+ },
739
+ "required": [
740
+ "command",
741
+ "success"
742
+ ]
743
+ },
744
+ "RunResponse": {
745
+ "allOf": [
746
+ {
747
+ "$ref": "#/$defs/WebSocketResponse"
748
+ },
749
+ {
750
+ "type": "object",
751
+ "properties": {
752
+ "command": {
753
+ "const": "run"
754
+ },
755
+ "mode": {
756
+ "type": "string",
757
+ "enum": [
758
+ "full",
759
+ "partial"
760
+ ]
761
+ },
762
+ "reports": {
763
+ "type": "array",
764
+ "items": {
765
+ "type": "object",
766
+ "description": "Flow execution report",
767
+ "properties": {
768
+ "actions": {
769
+ "type": "array",
770
+ "items": {
771
+ "type": "object"
772
+ }
773
+ },
774
+ "variables": {
775
+ "type": "object"
776
+ },
777
+ "parameters": {
778
+ "type": "object"
779
+ },
780
+ "output": {
781
+ "type": "object"
782
+ }
783
+ }
784
+ }
785
+ }
786
+ },
787
+ "required": [
788
+ "command",
789
+ "mode",
790
+ "reports"
791
+ ]
792
+ }
793
+ ]
794
+ },
795
+ "ListSessionsResponse": {
796
+ "allOf": [
797
+ {
798
+ "$ref": "#/$defs/WebSocketResponse"
799
+ },
800
+ {
801
+ "type": "object",
802
+ "properties": {
803
+ "command": {
804
+ "const": "list_sessions"
805
+ },
806
+ "sessions": {
807
+ "type": "array",
808
+ "items": {
809
+ "$ref": "#/$defs/SessionInfo"
810
+ }
811
+ }
812
+ },
813
+ "required": [
814
+ "command",
815
+ "sessions"
816
+ ]
817
+ }
818
+ ]
819
+ },
820
+ "EngineStatusResponse": {
821
+ "allOf": [
822
+ {
823
+ "$ref": "#/$defs/WebSocketResponse"
824
+ },
825
+ {
826
+ "type": "object",
827
+ "properties": {
828
+ "command": {
829
+ "const": "get_engine_status"
830
+ },
831
+ "status": {
832
+ "type": "string",
833
+ "description": "Engine status"
834
+ },
835
+ "uptime": {
836
+ "type": "integer",
837
+ "description": "Engine uptime in seconds"
838
+ },
839
+ "active_sessions": {
840
+ "type": "integer",
841
+ "description": "Number of active sessions"
842
+ }
843
+ },
844
+ "required": [
845
+ "command",
846
+ "status",
847
+ "uptime",
848
+ "active_sessions"
849
+ ]
850
+ }
851
+ ]
852
+ },
853
+ "RecordingResponse": {
854
+ "allOf": [
855
+ {
856
+ "$ref": "#/$defs/WebSocketResponse"
857
+ },
858
+ {
859
+ "type": "object",
860
+ "properties": {
861
+ "command": {
862
+ "type": "string",
863
+ "enum": [
864
+ "record",
865
+ "pause_recording",
866
+ "resume_recording",
867
+ "stop_recording",
868
+ "finish_recording"
869
+ ]
870
+ },
871
+ "session_id": {
872
+ "type": "string"
873
+ },
874
+ "data": {
875
+ "type": "object",
876
+ "additionalProperties": true
877
+ }
878
+ },
879
+ "required": [
880
+ "command"
881
+ ]
882
+ }
883
+ ]
884
+ },
885
+ "RecordingStatusResponse": {
886
+ "allOf": [
887
+ {
888
+ "$ref": "#/$defs/WebSocketResponse"
889
+ },
890
+ {
891
+ "type": "object",
892
+ "properties": {
893
+ "command": {
894
+ "const": "get_recording_status"
895
+ },
896
+ "session_info": {
897
+ "type": "object",
898
+ "additionalProperties": true
899
+ }
900
+ },
901
+ "required": [
902
+ "command"
903
+ ]
904
+ }
905
+ ]
906
+ },
907
+ "ListRecordingsResponse": {
908
+ "allOf": [
909
+ {
910
+ "$ref": "#/$defs/WebSocketResponse"
911
+ },
912
+ {
913
+ "type": "object",
914
+ "properties": {
915
+ "command": {
916
+ "const": "list_recordings"
917
+ },
918
+ "recordings": {
919
+ "type": "array",
920
+ "items": {
921
+ "type": "object",
922
+ "additionalProperties": true
923
+ },
924
+ "default": []
925
+ }
926
+ },
927
+ "required": [
928
+ "command"
929
+ ]
930
+ }
931
+ ]
932
+ },
933
+ "DebugRunCommand": {
934
+ "allOf": [
935
+ {
936
+ "$ref": "#/$defs/WebSocketMessage"
937
+ },
938
+ {
939
+ "type": "object",
940
+ "properties": {
941
+ "command": {
942
+ "const": "debug_run"
943
+ },
944
+ "session_id": {
945
+ "type": "string",
946
+ "description": "Unique debug session identifier"
947
+ },
948
+ "flow": {
949
+ "type": "object",
950
+ "description": "Flow to execute in debug mode"
951
+ },
952
+ "breakpoints": {
953
+ "type": "array",
954
+ "items": {
955
+ "type": "string"
956
+ },
957
+ "description": "List of action IDs where execution should pause",
958
+ "default": []
959
+ },
960
+ "mode": {
961
+ "type": "string",
962
+ "const": "debug",
963
+ "default": "debug"
964
+ }
965
+ },
966
+ "required": [
967
+ "command",
968
+ "session_id",
969
+ "flow"
970
+ ]
971
+ }
972
+ ]
973
+ },
974
+ "DebugStepCommand": {
975
+ "allOf": [
976
+ {
977
+ "$ref": "#/$defs/WebSocketMessage"
978
+ },
979
+ {
980
+ "type": "object",
981
+ "properties": {
982
+ "command": {
983
+ "const": "debug_step"
984
+ },
985
+ "session_id": {
986
+ "type": "string",
987
+ "description": "Debug session identifier"
988
+ }
989
+ },
990
+ "required": [
991
+ "command",
992
+ "session_id"
993
+ ]
994
+ }
995
+ ]
996
+ },
997
+ "DebugContinueCommand": {
998
+ "allOf": [
999
+ {
1000
+ "$ref": "#/$defs/WebSocketMessage"
1001
+ },
1002
+ {
1003
+ "type": "object",
1004
+ "properties": {
1005
+ "command": {
1006
+ "const": "debug_continue"
1007
+ },
1008
+ "session_id": {
1009
+ "type": "string",
1010
+ "description": "Debug session identifier"
1011
+ }
1012
+ },
1013
+ "required": [
1014
+ "command",
1015
+ "session_id"
1016
+ ]
1017
+ }
1018
+ ]
1019
+ },
1020
+ "DebugPauseCommand": {
1021
+ "allOf": [
1022
+ {
1023
+ "$ref": "#/$defs/WebSocketMessage"
1024
+ },
1025
+ {
1026
+ "type": "object",
1027
+ "properties": {
1028
+ "command": {
1029
+ "const": "debug_pause"
1030
+ },
1031
+ "session_id": {
1032
+ "type": "string",
1033
+ "description": "Debug session identifier"
1034
+ }
1035
+ },
1036
+ "required": [
1037
+ "command",
1038
+ "session_id"
1039
+ ]
1040
+ }
1041
+ ]
1042
+ },
1043
+ "DebugStopCommand": {
1044
+ "allOf": [
1045
+ {
1046
+ "$ref": "#/$defs/WebSocketMessage"
1047
+ },
1048
+ {
1049
+ "type": "object",
1050
+ "properties": {
1051
+ "command": {
1052
+ "const": "debug_stop"
1053
+ },
1054
+ "session_id": {
1055
+ "type": "string",
1056
+ "description": "Debug session identifier"
1057
+ }
1058
+ },
1059
+ "required": [
1060
+ "command",
1061
+ "session_id"
1062
+ ]
1063
+ }
1064
+ ]
1065
+ },
1066
+ "DebugResponse": {
1067
+ "allOf": [
1068
+ {
1069
+ "$ref": "#/$defs/WebSocketResponse"
1070
+ },
1071
+ {
1072
+ "type": "object",
1073
+ "properties": {
1074
+ "command": {
1075
+ "type": "string",
1076
+ "enum": [
1077
+ "debug_run",
1078
+ "debug_step",
1079
+ "debug_continue",
1080
+ "debug_pause",
1081
+ "debug_stop",
1082
+ "debug_error"
1083
+ ]
1084
+ },
1085
+ "session_id": {
1086
+ "type": "string",
1087
+ "description": "Debug session identifier"
1088
+ },
1089
+ "state": {
1090
+ "type": "string",
1091
+ "enum": [
1092
+ "ready",
1093
+ "running",
1094
+ "paused",
1095
+ "stepping",
1096
+ "completed",
1097
+ "error",
1098
+ "stopped"
1099
+ ],
1100
+ "description": "Current debug session state"
1101
+ },
1102
+ "data": {
1103
+ "type": "object",
1104
+ "description": "Additional debug data (action results, variables, etc.)"
1105
+ },
1106
+ "error": {
1107
+ "type": "string",
1108
+ "description": "Error message if command failed"
1109
+ }
1110
+ },
1111
+ "required": [
1112
+ "command"
1113
+ ]
1114
+ }
1115
+ ]
1116
+ }
1117
+ }
1118
+ }