@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,475 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: parallel-execution.json
3
+ # timestamp: 2026-02-04T16:19:29+00:00
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import StrEnum
8
+ from typing import Annotated, Any
9
+
10
+ from pydantic import AwareDatetime, BaseModel, ConfigDict, Field, RootModel
11
+
12
+
13
+ class Mode(StrEnum):
14
+ """
15
+ Execution mode
16
+ """
17
+
18
+ full = 'full'
19
+ partial = 'partial'
20
+
21
+
22
+ class Flow(RootModel[Any]):
23
+ root: Any
24
+
25
+
26
+ class Position(BaseModel):
27
+ model_config = ConfigDict(
28
+ populate_by_name=True,
29
+ )
30
+ x: float
31
+ """
32
+ X coordinate
33
+ """
34
+ y: float
35
+ """
36
+ Y coordinate
37
+ """
38
+
39
+
40
+ class ActionData(BaseModel):
41
+ model_config = ConfigDict(
42
+ populate_by_name=True,
43
+ )
44
+ label: str
45
+ """
46
+ Human-readable label
47
+ """
48
+ type: str
49
+ """
50
+ Action type identifier
51
+ """
52
+ config: dict[str, Any]
53
+ """
54
+ Action-specific configuration
55
+ """
56
+
57
+
58
+ class Action(BaseModel):
59
+ model_config = ConfigDict(
60
+ populate_by_name=True,
61
+ )
62
+ id: str
63
+ """
64
+ Unique action identifier
65
+ """
66
+ type: str
67
+ """
68
+ Action type
69
+ """
70
+ position: Position
71
+ data: ActionData
72
+
73
+
74
+ class Edge(BaseModel):
75
+ model_config = ConfigDict(
76
+ populate_by_name=True,
77
+ )
78
+ id: str
79
+ """
80
+ Unique edge identifier
81
+ """
82
+ source: str
83
+ """
84
+ Source action ID
85
+ """
86
+ sourceHandle: str | None = None
87
+ """
88
+ Source handle identifier
89
+ """
90
+ target: str
91
+ """
92
+ Target action ID
93
+ """
94
+ targetHandle: str | None = None
95
+ """
96
+ Target handle identifier
97
+ """
98
+ type: str | None = 'step'
99
+ """
100
+ Edge type
101
+ """
102
+ data: dict[str, Any] | None = None
103
+ """
104
+ Additional edge data
105
+ """
106
+
107
+
108
+ class Zoom(BaseModel):
109
+ model_config = ConfigDict(
110
+ populate_by_name=True,
111
+ )
112
+ x: float
113
+ """
114
+ Pan X position
115
+ """
116
+ y: float
117
+ """
118
+ Pan Y position
119
+ """
120
+ zoom: float
121
+ """
122
+ Zoom level
123
+ """
124
+
125
+
126
+ class Variable(BaseModel):
127
+ model_config = ConfigDict(
128
+ populate_by_name=True,
129
+ )
130
+ id: str
131
+ """
132
+ Variable identifier
133
+ """
134
+ name: str
135
+ """
136
+ Variable name
137
+ """
138
+ type: str
139
+ """
140
+ Variable data type
141
+ """
142
+ value: str
143
+ """
144
+ Variable value
145
+ """
146
+ description: str | None = None
147
+ """
148
+ Optional description
149
+ """
150
+ isOutput: bool | None = None
151
+ """
152
+ Whether this is an output variable
153
+ """
154
+
155
+
156
+ class FlowVariables(BaseModel):
157
+ model_config = ConfigDict(
158
+ populate_by_name=True,
159
+ )
160
+ input: list[Variable]
161
+ """
162
+ Input variables
163
+ """
164
+ output: list[Variable]
165
+ """
166
+ Output variables
167
+ """
168
+
169
+
170
+ class FlowParameters(BaseModel):
171
+ model_config = ConfigDict(
172
+ populate_by_name=True,
173
+ )
174
+ input: list[Variable]
175
+ """
176
+ Input parameters
177
+ """
178
+ output: list[Variable]
179
+ """
180
+ Output parameters
181
+ """
182
+
183
+
184
+ class EnvironmentVariable(BaseModel):
185
+ model_config = ConfigDict(
186
+ populate_by_name=True,
187
+ )
188
+ id: str
189
+ """
190
+ Variable identifier
191
+ """
192
+ name: str
193
+ """
194
+ Variable name
195
+ """
196
+ type: str
197
+ """
198
+ Variable data type
199
+ """
200
+ value: str
201
+ """
202
+ Variable value
203
+ """
204
+ description: str | None = None
205
+ """
206
+ Optional description
207
+ """
208
+
209
+
210
+ class Environment(BaseModel):
211
+ model_config = ConfigDict(
212
+ populate_by_name=True,
213
+ )
214
+ id: str
215
+ """
216
+ Environment identifier
217
+ """
218
+ name: str
219
+ """
220
+ Environment name
221
+ """
222
+ variables: list[EnvironmentVariable]
223
+ """
224
+ Environment variables
225
+ """
226
+ description: str | None = None
227
+ """
228
+ Environment description
229
+ """
230
+ isDefault: bool | None = None
231
+ """
232
+ Whether this is the default environment
233
+ """
234
+ isActive: bool | None = None
235
+ """
236
+ Whether this environment is active
237
+ """
238
+ createdAt: AwareDatetime
239
+ """
240
+ Creation timestamp
241
+ """
242
+ updatedAt: AwareDatetime
243
+ """
244
+ Last update timestamp
245
+ """
246
+
247
+
248
+ class GlobalVariable(BaseModel):
249
+ model_config = ConfigDict(
250
+ populate_by_name=True,
251
+ )
252
+ id: str
253
+ """
254
+ Variable identifier
255
+ """
256
+ name: str
257
+ """
258
+ Variable name
259
+ """
260
+ type: str
261
+ """
262
+ Variable data type
263
+ """
264
+ value: str
265
+ """
266
+ Variable value
267
+ """
268
+ description: str | None = None
269
+ """
270
+ Optional description
271
+ """
272
+ createdAt: AwareDatetime
273
+ """
274
+ Creation timestamp
275
+ """
276
+ updatedAt: AwareDatetime
277
+ """
278
+ Last update timestamp
279
+ """
280
+
281
+
282
+ class Status(StrEnum):
283
+ """
284
+ Execution status
285
+ """
286
+
287
+ completed = 'completed'
288
+ error = 'error'
289
+ stopped = 'stopped'
290
+ running = 'running'
291
+ pending = 'pending'
292
+
293
+
294
+ class FlowExecutionResult(BaseModel):
295
+ """
296
+ Result of a single test execution
297
+ """
298
+
299
+ model_config = ConfigDict(
300
+ populate_by_name=True,
301
+ )
302
+ flow_id: str
303
+ """
304
+ ID of the executed flow
305
+ """
306
+ flow_name: str
307
+ """
308
+ Name of the executed flow
309
+ """
310
+ success: bool
311
+ """
312
+ Whether the test passed
313
+ """
314
+ status: Status
315
+ """
316
+ Execution status
317
+ """
318
+ total_actions: Annotated[int, Field(ge=0)]
319
+ """
320
+ Total actions in the flow
321
+ """
322
+ executed_actions: Annotated[int, Field(ge=0)]
323
+ """
324
+ Number of actions executed
325
+ """
326
+ successful_actions: Annotated[int, Field(ge=0)]
327
+ """
328
+ Number of successful actions
329
+ """
330
+ duration_seconds: Annotated[float, Field(ge=0.0)]
331
+ """
332
+ Total execution time in seconds
333
+ """
334
+ report: dict[str, Any]
335
+ """
336
+ Full flow report
337
+ """
338
+ error: str | None = None
339
+ """
340
+ Error message if failed
341
+ """
342
+ metadata: dict[str, Any] | None = {}
343
+ """
344
+ Additional test metadata
345
+ """
346
+
347
+
348
+ class BrowserMode(StrEnum):
349
+ """
350
+ Browser mode
351
+ """
352
+
353
+ headful = 'headful'
354
+ headless = 'headless'
355
+
356
+
357
+ class ParallelTestsResult(BaseModel):
358
+ """
359
+ Result of parallel test execution
360
+ """
361
+
362
+ model_config = ConfigDict(
363
+ populate_by_name=True,
364
+ )
365
+ total_tests: Annotated[int, Field(ge=0)]
366
+ """
367
+ Total number of tests
368
+ """
369
+ passed_tests: Annotated[int, Field(ge=0)]
370
+ """
371
+ Number of passed tests
372
+ """
373
+ failed_tests: Annotated[int, Field(ge=0)]
374
+ """
375
+ Number of failed tests
376
+ """
377
+ skipped_tests: Annotated[int | None, Field(ge=0)] = 0
378
+ """
379
+ Number of skipped tests
380
+ """
381
+ total_duration_seconds: Annotated[float, Field(ge=0.0)]
382
+ """
383
+ Total execution time
384
+ """
385
+ results: list[FlowExecutionResult]
386
+ """
387
+ Individual test results
388
+ """
389
+ success: bool
390
+ """
391
+ Overall success status
392
+ """
393
+
394
+
395
+ class FlowExecutionRequest(BaseModel):
396
+ """
397
+ Request to execute a single test/flow
398
+ """
399
+
400
+ model_config = ConfigDict(
401
+ populate_by_name=True,
402
+ )
403
+ flow: Flow
404
+ """
405
+ Flow to execute with all required fields
406
+ """
407
+ mode: Mode | None = 'full'
408
+ """
409
+ Execution mode
410
+ """
411
+ recording: dict[str, Any] | None = None
412
+ """
413
+ Recording configuration
414
+ """
415
+ metadata: dict[str, Any] | None = {}
416
+ """
417
+ Additional test metadata
418
+ """
419
+
420
+
421
+ class ParallelTestsRequest(BaseModel):
422
+ """
423
+ Request to execute multiple tests in parallel
424
+ """
425
+
426
+ model_config = ConfigDict(
427
+ populate_by_name=True,
428
+ )
429
+ tests: list[FlowExecutionRequest]
430
+ """
431
+ List of tests to execute
432
+ """
433
+ data: dict[str, Any] | None = None
434
+ """
435
+ Shared data containing environment and globalVariables for all tests
436
+ """
437
+ max_parallel: Annotated[int | None, Field(ge=1, le=50)] = 10
438
+ """
439
+ Maximum number of parallel executions
440
+ """
441
+ stop_on_failure: bool | None = False
442
+ """
443
+ Stop all tests if one fails
444
+ """
445
+ cleanup_after: bool | None = True
446
+ """
447
+ Cleanup resources after execution
448
+ """
449
+ browser_mode: BrowserMode | None = 'headful'
450
+ """
451
+ Browser mode
452
+ """
453
+ max_retries: Annotated[int | None, Field(ge=0, le=10)] = 3
454
+ """
455
+ Maximum retries for transient failures
456
+ """
457
+
458
+
459
+ class ParallelExecution(BaseModel):
460
+ model_config = ConfigDict(
461
+ populate_by_name=True,
462
+ )
463
+ requests: list[ParallelTestsRequest] | None = None
464
+ results: list[ParallelTestsResult] | None = None
465
+
466
+
467
+ class ParallelExecutionModels(BaseModel):
468
+ """
469
+ Schema for parallel test execution requests and results
470
+ """
471
+
472
+ model_config = ConfigDict(
473
+ populate_by_name=True,
474
+ )
475
+ parallelExecution: ParallelExecution | None = None