@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,697 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: websocket-communication.json
3
+ # timestamp: 2026-02-04T15:38:26+00:00
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import StrEnum
8
+ from typing import Any, Literal
9
+
10
+ from pydantic import BaseModel, ConfigDict
11
+
12
+
13
+ class WebSocketMessage(BaseModel):
14
+ """
15
+ Base WebSocket message structure
16
+ """
17
+
18
+ model_config = ConfigDict(
19
+ populate_by_name=True,
20
+ )
21
+ command: str
22
+ """
23
+ Command type
24
+ """
25
+ flow_id: str | None = None
26
+ """
27
+ Flow ID for the command
28
+ """
29
+
30
+
31
+ class SessionInfo(BaseModel):
32
+ """
33
+ Information about an active session
34
+ """
35
+
36
+ model_config = ConfigDict(
37
+ populate_by_name=True,
38
+ )
39
+ flowId: str
40
+ """
41
+ Flow ID
42
+ """
43
+ status: str
44
+ """
45
+ Session status
46
+ """
47
+ browser: str
48
+ """
49
+ Browser type
50
+ """
51
+ startedAt: int
52
+ """
53
+ Start timestamp
54
+ """
55
+
56
+
57
+ class Flow(BaseModel):
58
+ """
59
+ Flow to execute
60
+ """
61
+
62
+ model_config = ConfigDict(
63
+ populate_by_name=True,
64
+ )
65
+ id: str
66
+ name: str
67
+ actions: list[dict[str, Any]]
68
+ edges: list[dict[str, Any]]
69
+
70
+
71
+ class Mode(StrEnum):
72
+ full = 'full'
73
+ partial = 'partial'
74
+
75
+
76
+ class RunCommand(WebSocketMessage):
77
+ model_config = ConfigDict(
78
+ populate_by_name=True,
79
+ )
80
+ command: Literal['run']
81
+ """
82
+ Command type
83
+ """
84
+ flow: Flow
85
+ """
86
+ Flow to execute
87
+ """
88
+ mode: Mode | None = 'full'
89
+ recording: dict[str, Any] | None = None
90
+
91
+
92
+ class RecordCommand(WebSocketMessage):
93
+ model_config = ConfigDict(
94
+ populate_by_name=True,
95
+ )
96
+ command: Literal['record']
97
+ """
98
+ Command type
99
+ """
100
+ flow_id: str | None = None
101
+ """
102
+ Flow ID for the command
103
+ """
104
+ url: str | None = None
105
+ config: dict[str, Any] | None = {}
106
+
107
+
108
+ class PauseRecordingCommand(WebSocketMessage):
109
+ model_config = ConfigDict(
110
+ populate_by_name=True,
111
+ )
112
+ command: Literal['pause_recording']
113
+ """
114
+ Command type
115
+ """
116
+ session_id: str
117
+ """
118
+ Recording session ID
119
+ """
120
+
121
+
122
+ class ResumeRecordingCommand(WebSocketMessage):
123
+ model_config = ConfigDict(
124
+ populate_by_name=True,
125
+ )
126
+ command: Literal['resume_recording']
127
+ """
128
+ Command type
129
+ """
130
+ session_id: str
131
+ """
132
+ Recording session ID
133
+ """
134
+
135
+
136
+ class StopRecordingCommand(WebSocketMessage):
137
+ model_config = ConfigDict(
138
+ populate_by_name=True,
139
+ )
140
+ command: Literal['stop_recording']
141
+ """
142
+ Command type
143
+ """
144
+ session_id: str
145
+ """
146
+ Recording session ID
147
+ """
148
+
149
+
150
+ class FinishRecordingCommand(WebSocketMessage):
151
+ model_config = ConfigDict(
152
+ populate_by_name=True,
153
+ )
154
+ command: Literal['finish_recording']
155
+ """
156
+ Command type
157
+ """
158
+ session_id: str
159
+ """
160
+ Recording session ID
161
+ """
162
+ flow_name: str | None = 'Recorded Flow'
163
+
164
+
165
+ class GetRecordingStatusCommand(WebSocketMessage):
166
+ model_config = ConfigDict(
167
+ populate_by_name=True,
168
+ )
169
+ command: Literal['get_recording_status']
170
+ """
171
+ Command type
172
+ """
173
+ session_id: str | None = None
174
+
175
+
176
+ class ListRecordingsCommand(WebSocketMessage):
177
+ model_config = ConfigDict(
178
+ populate_by_name=True,
179
+ )
180
+ command: Literal['list_recordings']
181
+ """
182
+ Command type
183
+ """
184
+
185
+
186
+ class ConvertRecordingToFlowCommand(WebSocketMessage):
187
+ model_config = ConfigDict(
188
+ populate_by_name=True,
189
+ )
190
+ command: Literal['convert_recording_to_flow']
191
+ """
192
+ Command type
193
+ """
194
+ session_id: str
195
+ """
196
+ Recording session ID
197
+ """
198
+ flow_name: str | None = 'Recorded Flow'
199
+
200
+
201
+ class GetRealtimeActionsCommand(WebSocketMessage):
202
+ model_config = ConfigDict(
203
+ populate_by_name=True,
204
+ )
205
+ command: Literal['get_realtime_actions']
206
+ """
207
+ Command type
208
+ """
209
+ session_id: str
210
+ """
211
+ Recording session ID
212
+ """
213
+
214
+
215
+ class GetLatestRealtimeActionCommand(WebSocketMessage):
216
+ model_config = ConfigDict(
217
+ populate_by_name=True,
218
+ )
219
+ command: Literal['get_latest_realtime_action']
220
+ """
221
+ Command type
222
+ """
223
+ session_id: str
224
+ """
225
+ Recording session ID
226
+ """
227
+
228
+
229
+ class StopCommand(WebSocketMessage):
230
+ model_config = ConfigDict(
231
+ populate_by_name=True,
232
+ )
233
+ command: Literal['stop']
234
+ """
235
+ Command type
236
+ """
237
+ flow_id: str | None = None
238
+ """
239
+ Flow ID for the command
240
+ """
241
+
242
+
243
+ class CloseCommand(WebSocketMessage):
244
+ model_config = ConfigDict(
245
+ populate_by_name=True,
246
+ )
247
+ command: Literal['close']
248
+ """
249
+ Command type
250
+ """
251
+
252
+
253
+ class ListSessionsCommand(WebSocketMessage):
254
+ model_config = ConfigDict(
255
+ populate_by_name=True,
256
+ )
257
+ command: Literal['list_sessions']
258
+ """
259
+ Command type
260
+ """
261
+
262
+
263
+ class CloseSessionCommand(WebSocketMessage):
264
+ model_config = ConfigDict(
265
+ populate_by_name=True,
266
+ )
267
+ command: Literal['close_session']
268
+ """
269
+ Command type
270
+ """
271
+ flow_id: str | None = None
272
+ """
273
+ Flow ID for the command
274
+ """
275
+
276
+
277
+ class RestartEngineCommand(WebSocketMessage):
278
+ model_config = ConfigDict(
279
+ populate_by_name=True,
280
+ )
281
+ command: Literal['restart_engine']
282
+ """
283
+ Command type
284
+ """
285
+
286
+
287
+ class CloseEngineCommand(WebSocketMessage):
288
+ model_config = ConfigDict(
289
+ populate_by_name=True,
290
+ )
291
+ command: Literal['close_engine']
292
+ """
293
+ Command type
294
+ """
295
+
296
+
297
+ class GetEngineStatusCommand(WebSocketMessage):
298
+ model_config = ConfigDict(
299
+ populate_by_name=True,
300
+ )
301
+ command: Literal['get_engine_status']
302
+ """
303
+ Command type
304
+ """
305
+
306
+
307
+ class StartPerformanceScanCommand(WebSocketMessage):
308
+ model_config = ConfigDict(
309
+ populate_by_name=True,
310
+ )
311
+ command: Literal['start_performance_scan']
312
+ """
313
+ Command type
314
+ """
315
+ test_id: str
316
+ """
317
+ Performance test ID
318
+ """
319
+ url: str
320
+ """
321
+ URL to navigate to and record
322
+ """
323
+
324
+
325
+ class StopPerformanceScanCommand(WebSocketMessage):
326
+ model_config = ConfigDict(
327
+ populate_by_name=True,
328
+ )
329
+ command: Literal['stop_performance_scan']
330
+ """
331
+ Command type
332
+ """
333
+ test_id: str
334
+ """
335
+ Performance test ID
336
+ """
337
+ session_id: str
338
+ """
339
+ Recording session ID
340
+ """
341
+
342
+
343
+ class RunLoadTestCommand(WebSocketMessage):
344
+ model_config = ConfigDict(
345
+ populate_by_name=True,
346
+ )
347
+ command: Literal['run_load_test']
348
+ """
349
+ Command type
350
+ """
351
+ test_id: str
352
+ """
353
+ Performance test ID
354
+ """
355
+ config: dict[str, Any]
356
+ """
357
+ Load test configuration
358
+ """
359
+ auth_config: dict[str, Any] | None = None
360
+ """
361
+ Authentication configuration for load test
362
+ """
363
+
364
+
365
+ class StopLoadTestCommand(WebSocketMessage):
366
+ model_config = ConfigDict(
367
+ populate_by_name=True,
368
+ )
369
+ command: Literal['stop_load_test']
370
+ """
371
+ Command type
372
+ """
373
+ test_id: str
374
+ """
375
+ Performance test ID
376
+ """
377
+
378
+
379
+ class WebSocketResponse(BaseModel):
380
+ """
381
+ Base WebSocket response structure
382
+ """
383
+
384
+ model_config = ConfigDict(
385
+ populate_by_name=True,
386
+ )
387
+ command: str
388
+ """
389
+ Command that was executed
390
+ """
391
+ success: bool
392
+ """
393
+ Whether the command succeeded
394
+ """
395
+ message: str | None = None
396
+ """
397
+ Response message
398
+ """
399
+
400
+
401
+ class Report(BaseModel):
402
+ """
403
+ Flow execution report
404
+ """
405
+
406
+ model_config = ConfigDict(
407
+ populate_by_name=True,
408
+ )
409
+ actions: list[dict[str, Any]] | None = None
410
+ variables: dict[str, Any] | None = None
411
+ parameters: dict[str, Any] | None = None
412
+ output: dict[str, Any] | None = None
413
+
414
+
415
+ class RunResponse(WebSocketResponse):
416
+ model_config = ConfigDict(
417
+ populate_by_name=True,
418
+ )
419
+ command: Literal['run']
420
+ """
421
+ Command that was executed
422
+ """
423
+ mode: Mode
424
+ reports: list[Report]
425
+
426
+
427
+ class ListSessionsResponse(WebSocketResponse):
428
+ model_config = ConfigDict(
429
+ populate_by_name=True,
430
+ )
431
+ command: Literal['list_sessions']
432
+ """
433
+ Command that was executed
434
+ """
435
+ sessions: list[SessionInfo]
436
+
437
+
438
+ class EngineStatusResponse(WebSocketResponse):
439
+ model_config = ConfigDict(
440
+ populate_by_name=True,
441
+ )
442
+ command: Literal['get_engine_status']
443
+ """
444
+ Command that was executed
445
+ """
446
+ status: str
447
+ """
448
+ Engine status
449
+ """
450
+ uptime: int
451
+ """
452
+ Engine uptime in seconds
453
+ """
454
+ active_sessions: int
455
+ """
456
+ Number of active sessions
457
+ """
458
+
459
+
460
+ class Command(StrEnum):
461
+ """
462
+ Command that was executed
463
+ """
464
+
465
+ record = 'record'
466
+ pause_recording = 'pause_recording'
467
+ resume_recording = 'resume_recording'
468
+ stop_recording = 'stop_recording'
469
+ finish_recording = 'finish_recording'
470
+
471
+
472
+ class RecordingResponse(WebSocketResponse):
473
+ model_config = ConfigDict(
474
+ populate_by_name=True,
475
+ )
476
+ command: Command
477
+ """
478
+ Command that was executed
479
+ """
480
+ session_id: str | None = None
481
+ data: dict[str, Any] | None = None
482
+
483
+
484
+ class RecordingStatusResponse(WebSocketResponse):
485
+ model_config = ConfigDict(
486
+ populate_by_name=True,
487
+ )
488
+ command: Literal['get_recording_status']
489
+ """
490
+ Command that was executed
491
+ """
492
+ session_info: dict[str, Any] | None = None
493
+
494
+
495
+ class ListRecordingsResponse(WebSocketResponse):
496
+ model_config = ConfigDict(
497
+ populate_by_name=True,
498
+ )
499
+ command: Literal['list_recordings']
500
+ """
501
+ Command that was executed
502
+ """
503
+ recordings: list[dict[str, Any]] | None = []
504
+
505
+
506
+ class DebugRunCommand(WebSocketMessage):
507
+ model_config = ConfigDict(
508
+ populate_by_name=True,
509
+ )
510
+ command: Literal['debug_run']
511
+ """
512
+ Command type
513
+ """
514
+ session_id: str
515
+ """
516
+ Unique debug session identifier
517
+ """
518
+ flow: dict[str, Any]
519
+ """
520
+ Flow to execute in debug mode
521
+ """
522
+ breakpoints: list[str] | None = []
523
+ """
524
+ List of action IDs where execution should pause
525
+ """
526
+ mode: Literal['debug'] = 'debug'
527
+
528
+
529
+ class DebugStepCommand(WebSocketMessage):
530
+ model_config = ConfigDict(
531
+ populate_by_name=True,
532
+ )
533
+ command: Literal['debug_step']
534
+ """
535
+ Command type
536
+ """
537
+ session_id: str
538
+ """
539
+ Debug session identifier
540
+ """
541
+
542
+
543
+ class DebugContinueCommand(WebSocketMessage):
544
+ model_config = ConfigDict(
545
+ populate_by_name=True,
546
+ )
547
+ command: Literal['debug_continue']
548
+ """
549
+ Command type
550
+ """
551
+ session_id: str
552
+ """
553
+ Debug session identifier
554
+ """
555
+
556
+
557
+ class DebugPauseCommand(WebSocketMessage):
558
+ model_config = ConfigDict(
559
+ populate_by_name=True,
560
+ )
561
+ command: Literal['debug_pause']
562
+ """
563
+ Command type
564
+ """
565
+ session_id: str
566
+ """
567
+ Debug session identifier
568
+ """
569
+
570
+
571
+ class DebugStopCommand(WebSocketMessage):
572
+ model_config = ConfigDict(
573
+ populate_by_name=True,
574
+ )
575
+ command: Literal['debug_stop']
576
+ """
577
+ Command type
578
+ """
579
+ session_id: str
580
+ """
581
+ Debug session identifier
582
+ """
583
+
584
+
585
+ class Command1(StrEnum):
586
+ """
587
+ Command that was executed
588
+ """
589
+
590
+ debug_run = 'debug_run'
591
+ debug_step = 'debug_step'
592
+ debug_continue = 'debug_continue'
593
+ debug_pause = 'debug_pause'
594
+ debug_stop = 'debug_stop'
595
+ debug_error = 'debug_error'
596
+
597
+
598
+ class State(StrEnum):
599
+ """
600
+ Current debug session state
601
+ """
602
+
603
+ ready = 'ready'
604
+ running = 'running'
605
+ paused = 'paused'
606
+ stepping = 'stepping'
607
+ completed = 'completed'
608
+ error = 'error'
609
+ stopped = 'stopped'
610
+
611
+
612
+ class DebugResponse(WebSocketResponse):
613
+ model_config = ConfigDict(
614
+ populate_by_name=True,
615
+ )
616
+ command: Command1
617
+ """
618
+ Command that was executed
619
+ """
620
+ session_id: str | None = None
621
+ """
622
+ Debug session identifier
623
+ """
624
+ state: State | None = None
625
+ """
626
+ Current debug session state
627
+ """
628
+ data: dict[str, Any] | None = None
629
+ """
630
+ Additional debug data (action results, variables, etc.)
631
+ """
632
+ error: str | None = None
633
+ """
634
+ Error message if command failed
635
+ """
636
+
637
+
638
+ class WebsocketCommunication(BaseModel):
639
+ model_config = ConfigDict(
640
+ populate_by_name=True,
641
+ )
642
+ commands: (
643
+ list[
644
+ RunCommand
645
+ | RecordCommand
646
+ | PauseRecordingCommand
647
+ | ResumeRecordingCommand
648
+ | StopRecordingCommand
649
+ | FinishRecordingCommand
650
+ | GetRecordingStatusCommand
651
+ | ListRecordingsCommand
652
+ | ConvertRecordingToFlowCommand
653
+ | GetRealtimeActionsCommand
654
+ | GetLatestRealtimeActionCommand
655
+ | StopCommand
656
+ | CloseCommand
657
+ | ListSessionsCommand
658
+ | CloseSessionCommand
659
+ | RestartEngineCommand
660
+ | CloseEngineCommand
661
+ | GetEngineStatusCommand
662
+ | StartPerformanceScanCommand
663
+ | StopPerformanceScanCommand
664
+ | RunLoadTestCommand
665
+ | StopLoadTestCommand
666
+ | DebugRunCommand
667
+ | DebugStepCommand
668
+ | DebugContinueCommand
669
+ | DebugPauseCommand
670
+ | DebugStopCommand
671
+ ]
672
+ | None
673
+ ) = None
674
+ responses: (
675
+ list[
676
+ RunResponse
677
+ | ListSessionsResponse
678
+ | EngineStatusResponse
679
+ | RecordingResponse
680
+ | RecordingStatusResponse
681
+ | ListRecordingsResponse
682
+ | DebugResponse
683
+ | WebSocketResponse
684
+ ]
685
+ | None
686
+ ) = None
687
+
688
+
689
+ class WebSocketCommunicationModels(BaseModel):
690
+ """
691
+ Schema for WebSocket API commands and responses
692
+ """
693
+
694
+ model_config = ConfigDict(
695
+ populate_by_name=True,
696
+ )
697
+ websocketCommunication: WebsocketCommunication | None = None