LICENSE
README.md
pyproject.toml
setup.py
src/pystator/__init__.py
src/pystator/_engine.py
src/pystator/_hierarchy.py
src/pystator/_parallel.py
src/pystator/_types.py
src/pystator/actions.py
src/pystator/builtins.py
src/pystator/cli.py
src/pystator/context.py
src/pystator/errors.py
src/pystator/event.py
src/pystator/guards.py
src/pystator/hooks.py
src/pystator/instance.py
src/pystator/lint.py
src/pystator/machine.py
src/pystator/orchestrator.py
src/pystator/py.typed
src/pystator/visualization.py
src/pystator.egg-info/PKG-INFO
src/pystator.egg-info/SOURCES.txt
src/pystator.egg-info/dependency_links.txt
src/pystator.egg-info/entry_points.txt
src/pystator.egg-info/requires.txt
src/pystator.egg-info/top_level.txt
src/pystator/api/__init__.py
src/pystator/api/main.py
src/pystator/api/dependencies/__init__.py
src/pystator/api/dependencies/auth.py
src/pystator/api/dependencies/core.py
src/pystator/api/dependencies/database.py
src/pystator/api/models/__init__.py
src/pystator/api/models/requests.py
src/pystator/api/models/responses.py
src/pystator/api/routes/__init__.py
src/pystator/api/routes/v1/__init__.py
src/pystator/api/routes/v1/auth.py
src/pystator/api/routes/v1/entities.py
src/pystator/api/routes/v1/machines.py
src/pystator/api/routes/v1/process.py
src/pystator/api/routes/v1/settings.py
src/pystator/api/routes/v1/templates.py
src/pystator/api/services/__init__.py
src/pystator/api/services/fsm_service.py
src/pystator/config/__init__.py
src/pystator/config/_raw_parser.py
src/pystator/config/auth.py
src/pystator/config/converter.py
src/pystator/config/database.py
src/pystator/config/loader.py
src/pystator/config/models.py
src/pystator/config/paths.py
src/pystator/config/validator.py
src/pystator/contrib/__init__.py
src/pystator/contrib/trading/__init__.py
src/pystator/contrib/trading/actions.py
src/pystator/contrib/trading/guards.py
src/pystator/contrib/trading/registry.py
src/pystator/data/seed/machines.yaml
src/pystator/data/seed/trading_machines.yaml
src/pystator/data/templates/fsm/blank.yaml
src/pystator/data/templates/fsm/day_trading.yaml
src/pystator/data/templates/fsm/optimization_cycle.yaml
src/pystator/data/templates/fsm/order_management.yaml
src/pystator/data/templates/fsm/portfolio_lifecycle.yaml
src/pystator/data/templates/fsm/portfolio_optimization.yaml
src/pystator/db/__init__.py
src/pystator/db/base.py
src/pystator/db/cli.py
src/pystator/db/config.py
src/pystator/db/paths.py
src/pystator/db/migrations/env.py
src/pystator/db/migrations/versions/20260130000000_initial_machines.py
src/pystator/db/migrations/versions/20260205000000_add_entity_states.py
src/pystator/db/migrations/versions/20260206000000_add_entity_states_is_terminal.py
src/pystator/db/migrations/versions/20260216000000_add_worker_events.py
src/pystator/db/migrations/versions/20260219000000_add_worker_events_result_json.py
src/pystator/db/migrations/versions/20260223100000_change_duration_ms_to_integer.py
src/pystator/db/migrations/versions/20260223110000_add_entity_states_version.py
src/pystator/db/migrations/versions/__init__.py
src/pystator/db/models/__init__.py
src/pystator/db/models/entity_state.py
src/pystator/db/models/machine.py
src/pystator/db/models/transition_history.py
src/pystator/db/models/worker_event.py
src/pystator/scheduler/__init__.py
src/pystator/scheduler/asyncio_scheduler.py
src/pystator/scheduler/base.py
src/pystator/scheduler/celery_scheduler.py
src/pystator/scheduler/redis_scheduler.py
src/pystator/stores/__init__.py
src/pystator/stores/base.py
src/pystator/stores/redis.py
src/pystator/stores/sqlalchemy.py
src/pystator/ui/__init__.py
src/pystator/ui/build.py
src/pystator/ui/dev.py
src/pystator/ui/server.py
src/pystator/ui/node_modules/flatted/python/flatted.py
src/pystator/ui/node_modules/katex/src/fonts/generate_fonts.py
src/pystator/ui/node_modules/katex/src/metrics/extract_tfms.py
src/pystator/ui/node_modules/katex/src/metrics/extract_ttfs.py
src/pystator/ui/node_modules/katex/src/metrics/format_json.py
src/pystator/ui/node_modules/katex/src/metrics/parse_tfm.py
src/pystator/ui/out/404.html
src/pystator/ui/out/__next.__PAGE__.txt
src/pystator/ui/out/__next._full.txt
src/pystator/ui/out/__next._head.txt
src/pystator/ui/out/__next._index.txt
src/pystator/ui/out/__next._tree.txt
src/pystator/ui/out/index.html
src/pystator/ui/out/index.txt
src/pystator/ui/out/404/index.html
src/pystator/ui/out/_next/static/chunks/0ac2c33f74cfed15.js
src/pystator/ui/out/_next/static/chunks/11817ca87e13a786.js
src/pystator/ui/out/_next/static/chunks/121d372457204b13.js
src/pystator/ui/out/_next/static/chunks/1662da3413150cbc.js
src/pystator/ui/out/_next/static/chunks/1d17bad024f729a9.js
src/pystator/ui/out/_next/static/chunks/244155a5b032cefa.js
src/pystator/ui/out/_next/static/chunks/30566116d6973901.js
src/pystator/ui/out/_next/static/chunks/441bf35cf7a833aa.js
src/pystator/ui/out/_next/static/chunks/4d1cdfdf0d14030e.js
src/pystator/ui/out/_next/static/chunks/4d348ff2302e5aac.js
src/pystator/ui/out/_next/static/chunks/5c6a655e5b6dd0e6.js
src/pystator/ui/out/_next/static/chunks/670670ff16752a36.js
src/pystator/ui/out/_next/static/chunks/82abf2d65f5428ae.js
src/pystator/ui/out/_next/static/chunks/a6dad97d9634a72d.js
src/pystator/ui/out/_next/static/chunks/a6dad97d9634a72d.js.map
src/pystator/ui/out/_next/static/chunks/a8e343de85c036a6.js
src/pystator/ui/out/_next/static/chunks/ac2bde319e505601.js
src/pystator/ui/out/_next/static/chunks/afafbe33954249fe.css
src/pystator/ui/out/_next/static/chunks/be242a37436dfeb0.js
src/pystator/ui/out/_next/static/chunks/c43ba105dcdec444.css
src/pystator/ui/out/_next/static/chunks/d41b9989786f504d.js
src/pystator/ui/out/_next/static/chunks/d59f830a2b8e768c.js
src/pystator/ui/out/_next/static/chunks/dfd26145a832942d.js
src/pystator/ui/out/_next/static/chunks/eb6941c31937677e.js
src/pystator/ui/out/_next/static/chunks/f2f58a7e93290fbb.js
src/pystator/ui/out/_next/static/chunks/facdd0769126435b.js
src/pystator/ui/out/_next/static/chunks/ff1a16fafef87110.js
src/pystator/ui/out/_next/static/chunks/ffc06e8ddcd43fa6.js
src/pystator/ui/out/_next/static/chunks/turbopack-2d2bdff18970af68.js
src/pystator/ui/out/_next/static/n_XTIhI7pRSFzWiEUfsfK/_buildManifest.js
src/pystator/ui/out/_next/static/n_XTIhI7pRSFzWiEUfsfK/_clientMiddlewareManifest.json
src/pystator/ui/out/_next/static/n_XTIhI7pRSFzWiEUfsfK/_ssgManifest.js
src/pystator/ui/out/_not-found/__next._full.txt
src/pystator/ui/out/_not-found/__next._head.txt
src/pystator/ui/out/_not-found/__next._index.txt
src/pystator/ui/out/_not-found/__next._not-found.__PAGE__.txt
src/pystator/ui/out/_not-found/__next._not-found.txt
src/pystator/ui/out/_not-found/__next._tree.txt
src/pystator/ui/out/_not-found/index.html
src/pystator/ui/out/_not-found/index.txt
src/pystator/ui/out/documentation/__next._full.txt
src/pystator/ui/out/documentation/__next._head.txt
src/pystator/ui/out/documentation/__next._index.txt
src/pystator/ui/out/documentation/__next._tree.txt
src/pystator/ui/out/documentation/__next.documentation.__PAGE__.txt
src/pystator/ui/out/documentation/__next.documentation.txt
src/pystator/ui/out/documentation/index.html
src/pystator/ui/out/documentation/index.txt
src/pystator/ui/out/entities/__next._full.txt
src/pystator/ui/out/entities/__next._head.txt
src/pystator/ui/out/entities/__next._index.txt
src/pystator/ui/out/entities/__next._tree.txt
src/pystator/ui/out/entities/__next.entities.__PAGE__.txt
src/pystator/ui/out/entities/__next.entities.txt
src/pystator/ui/out/entities/index.html
src/pystator/ui/out/entities/index.txt
src/pystator/ui/out/login/__next._full.txt
src/pystator/ui/out/login/__next._head.txt
src/pystator/ui/out/login/__next._index.txt
src/pystator/ui/out/login/__next._tree.txt
src/pystator/ui/out/login/__next.login.__PAGE__.txt
src/pystator/ui/out/login/__next.login.txt
src/pystator/ui/out/login/index.html
src/pystator/ui/out/login/index.txt
src/pystator/ui/out/machines/__next._full.txt
src/pystator/ui/out/machines/__next._head.txt
src/pystator/ui/out/machines/__next._index.txt
src/pystator/ui/out/machines/__next._tree.txt
src/pystator/ui/out/machines/__next.machines.__PAGE__.txt
src/pystator/ui/out/machines/__next.machines.txt
src/pystator/ui/out/machines/index.html
src/pystator/ui/out/machines/index.txt
src/pystator/ui/out/settings/__next._full.txt
src/pystator/ui/out/settings/__next._head.txt
src/pystator/ui/out/settings/__next._index.txt
src/pystator/ui/out/settings/__next._tree.txt
src/pystator/ui/out/settings/__next.settings.__PAGE__.txt
src/pystator/ui/out/settings/__next.settings.txt
src/pystator/ui/out/settings/index.html
src/pystator/ui/out/settings/index.txt
src/pystator/ui/out/table-editor/__next._full.txt
src/pystator/ui/out/table-editor/__next._head.txt
src/pystator/ui/out/table-editor/__next._index.txt
src/pystator/ui/out/table-editor/__next._tree.txt
src/pystator/ui/out/table-editor/__next.table-editor.__PAGE__.txt
src/pystator/ui/out/table-editor/__next.table-editor.txt
src/pystator/ui/out/table-editor/index.html
src/pystator/ui/out/table-editor/index.txt
src/pystator/ui/out/templates/__next._full.txt
src/pystator/ui/out/templates/__next._head.txt
src/pystator/ui/out/templates/__next._index.txt
src/pystator/ui/out/templates/__next._tree.txt
src/pystator/ui/out/templates/__next.templates.__PAGE__.txt
src/pystator/ui/out/templates/__next.templates.txt
src/pystator/ui/out/templates/index.html
src/pystator/ui/out/templates/index.txt
src/pystator/ui/out/visualization/__next._full.txt
src/pystator/ui/out/visualization/__next._head.txt
src/pystator/ui/out/visualization/__next._index.txt
src/pystator/ui/out/visualization/__next._tree.txt
src/pystator/ui/out/visualization/__next.visualization.__PAGE__.txt
src/pystator/ui/out/visualization/__next.visualization.txt
src/pystator/ui/out/visualization/index.html
src/pystator/ui/out/visualization/index.txt
src/pystator/ui/out/workspace/__next._full.txt
src/pystator/ui/out/workspace/__next._head.txt
src/pystator/ui/out/workspace/__next._index.txt
src/pystator/ui/out/workspace/__next._tree.txt
src/pystator/ui/out/workspace/__next.workspace.__PAGE__.txt
src/pystator/ui/out/workspace/__next.workspace.txt
src/pystator/ui/out/workspace/index.html
src/pystator/ui/out/workspace/index.txt
src/pystator/ui/static/404.html
src/pystator/ui/static/__next.__PAGE__.txt
src/pystator/ui/static/__next._full.txt
src/pystator/ui/static/__next._head.txt
src/pystator/ui/static/__next._index.txt
src/pystator/ui/static/__next._tree.txt
src/pystator/ui/static/index.html
src/pystator/ui/static/index.txt
src/pystator/ui/static/404/index.html
src/pystator/ui/static/_next/static/chunks/0ac2c33f74cfed15.js
src/pystator/ui/static/_next/static/chunks/11817ca87e13a786.js
src/pystator/ui/static/_next/static/chunks/121d372457204b13.js
src/pystator/ui/static/_next/static/chunks/1662da3413150cbc.js
src/pystator/ui/static/_next/static/chunks/1d17bad024f729a9.js
src/pystator/ui/static/_next/static/chunks/244155a5b032cefa.js
src/pystator/ui/static/_next/static/chunks/30566116d6973901.js
src/pystator/ui/static/_next/static/chunks/441bf35cf7a833aa.js
src/pystator/ui/static/_next/static/chunks/4d1cdfdf0d14030e.js
src/pystator/ui/static/_next/static/chunks/4d348ff2302e5aac.js
src/pystator/ui/static/_next/static/chunks/5c6a655e5b6dd0e6.js
src/pystator/ui/static/_next/static/chunks/670670ff16752a36.js
src/pystator/ui/static/_next/static/chunks/82abf2d65f5428ae.js
src/pystator/ui/static/_next/static/chunks/a6dad97d9634a72d.js
src/pystator/ui/static/_next/static/chunks/a6dad97d9634a72d.js.map
src/pystator/ui/static/_next/static/chunks/a8e343de85c036a6.js
src/pystator/ui/static/_next/static/chunks/ac2bde319e505601.js
src/pystator/ui/static/_next/static/chunks/afafbe33954249fe.css
src/pystator/ui/static/_next/static/chunks/be242a37436dfeb0.js
src/pystator/ui/static/_next/static/chunks/c43ba105dcdec444.css
src/pystator/ui/static/_next/static/chunks/d41b9989786f504d.js
src/pystator/ui/static/_next/static/chunks/d59f830a2b8e768c.js
src/pystator/ui/static/_next/static/chunks/dfd26145a832942d.js
src/pystator/ui/static/_next/static/chunks/eb6941c31937677e.js
src/pystator/ui/static/_next/static/chunks/f2f58a7e93290fbb.js
src/pystator/ui/static/_next/static/chunks/facdd0769126435b.js
src/pystator/ui/static/_next/static/chunks/ff1a16fafef87110.js
src/pystator/ui/static/_next/static/chunks/ffc06e8ddcd43fa6.js
src/pystator/ui/static/_next/static/chunks/turbopack-2d2bdff18970af68.js
src/pystator/ui/static/_next/static/n_XTIhI7pRSFzWiEUfsfK/_buildManifest.js
src/pystator/ui/static/_next/static/n_XTIhI7pRSFzWiEUfsfK/_clientMiddlewareManifest.json
src/pystator/ui/static/_next/static/n_XTIhI7pRSFzWiEUfsfK/_ssgManifest.js
src/pystator/ui/static/_not-found/__next._full.txt
src/pystator/ui/static/_not-found/__next._head.txt
src/pystator/ui/static/_not-found/__next._index.txt
src/pystator/ui/static/_not-found/__next._not-found.__PAGE__.txt
src/pystator/ui/static/_not-found/__next._not-found.txt
src/pystator/ui/static/_not-found/__next._tree.txt
src/pystator/ui/static/_not-found/index.html
src/pystator/ui/static/_not-found/index.txt
src/pystator/ui/static/documentation/__next._full.txt
src/pystator/ui/static/documentation/__next._head.txt
src/pystator/ui/static/documentation/__next._index.txt
src/pystator/ui/static/documentation/__next._tree.txt
src/pystator/ui/static/documentation/__next.documentation.__PAGE__.txt
src/pystator/ui/static/documentation/__next.documentation.txt
src/pystator/ui/static/documentation/index.html
src/pystator/ui/static/documentation/index.txt
src/pystator/ui/static/entities/__next._full.txt
src/pystator/ui/static/entities/__next._head.txt
src/pystator/ui/static/entities/__next._index.txt
src/pystator/ui/static/entities/__next._tree.txt
src/pystator/ui/static/entities/__next.entities.__PAGE__.txt
src/pystator/ui/static/entities/__next.entities.txt
src/pystator/ui/static/entities/index.html
src/pystator/ui/static/entities/index.txt
src/pystator/ui/static/login/__next._full.txt
src/pystator/ui/static/login/__next._head.txt
src/pystator/ui/static/login/__next._index.txt
src/pystator/ui/static/login/__next._tree.txt
src/pystator/ui/static/login/__next.login.__PAGE__.txt
src/pystator/ui/static/login/__next.login.txt
src/pystator/ui/static/login/index.html
src/pystator/ui/static/login/index.txt
src/pystator/ui/static/machines/__next._full.txt
src/pystator/ui/static/machines/__next._head.txt
src/pystator/ui/static/machines/__next._index.txt
src/pystator/ui/static/machines/__next._tree.txt
src/pystator/ui/static/machines/__next.machines.__PAGE__.txt
src/pystator/ui/static/machines/__next.machines.txt
src/pystator/ui/static/machines/index.html
src/pystator/ui/static/machines/index.txt
src/pystator/ui/static/settings/__next._full.txt
src/pystator/ui/static/settings/__next._head.txt
src/pystator/ui/static/settings/__next._index.txt
src/pystator/ui/static/settings/__next._tree.txt
src/pystator/ui/static/settings/__next.settings.__PAGE__.txt
src/pystator/ui/static/settings/__next.settings.txt
src/pystator/ui/static/settings/index.html
src/pystator/ui/static/settings/index.txt
src/pystator/ui/static/table-editor/__next._full.txt
src/pystator/ui/static/table-editor/__next._head.txt
src/pystator/ui/static/table-editor/__next._index.txt
src/pystator/ui/static/table-editor/__next._tree.txt
src/pystator/ui/static/table-editor/__next.table-editor.__PAGE__.txt
src/pystator/ui/static/table-editor/__next.table-editor.txt
src/pystator/ui/static/table-editor/index.html
src/pystator/ui/static/table-editor/index.txt
src/pystator/ui/static/templates/__next._full.txt
src/pystator/ui/static/templates/__next._head.txt
src/pystator/ui/static/templates/__next._index.txt
src/pystator/ui/static/templates/__next._tree.txt
src/pystator/ui/static/templates/__next.templates.__PAGE__.txt
src/pystator/ui/static/templates/__next.templates.txt
src/pystator/ui/static/templates/index.html
src/pystator/ui/static/templates/index.txt
src/pystator/ui/static/visualization/__next._full.txt
src/pystator/ui/static/visualization/__next._head.txt
src/pystator/ui/static/visualization/__next._index.txt
src/pystator/ui/static/visualization/__next._tree.txt
src/pystator/ui/static/visualization/__next.visualization.__PAGE__.txt
src/pystator/ui/static/visualization/__next.visualization.txt
src/pystator/ui/static/visualization/index.html
src/pystator/ui/static/visualization/index.txt
src/pystator/ui/static/workspace/__next._full.txt
src/pystator/ui/static/workspace/__next._head.txt
src/pystator/ui/static/workspace/__next._index.txt
src/pystator/ui/static/workspace/__next._tree.txt
src/pystator/ui/static/workspace/__next.workspace.__PAGE__.txt
src/pystator/ui/static/workspace/__next.workspace.txt
src/pystator/ui/static/workspace/index.html
src/pystator/ui/static/workspace/index.txt
src/pystator/worker/__init__.py
src/pystator/worker/config.py
src/pystator/worker/health.py
src/pystator/worker/models.py
src/pystator/worker/processor.py
src/pystator/worker/registry.py
src/pystator/worker/runner.py
src/pystator/worker/event_sources/__init__.py
src/pystator/worker/event_sources/base.py
src/pystator/worker/event_sources/database.py
tests/test_version.py