functualize 0.1.0__py3-none-any.whl

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 (349) hide show
  1. functualize/__init__.py +27 -0
  2. functualize/__main__.py +8 -0
  3. functualize/_app/__init__.py +101 -0
  4. functualize/_app/boot.py +1226 -0
  5. functualize/_app/decorators.py +151 -0
  6. functualize/_app/environment.py +65 -0
  7. functualize/_app/impl.py +817 -0
  8. functualize/_app/models.py +31 -0
  9. functualize/_app/state.py +50 -0
  10. functualize/_cli/__init__.py +11 -0
  11. functualize/_cli/annotation_utils.py +233 -0
  12. functualize/_cli/builtins.py +1376 -0
  13. functualize/_cli/completions/__init__.py +38 -0
  14. functualize/_cli/completions/cursor_context.py +257 -0
  15. functualize/_cli/completions/data.py +199 -0
  16. functualize/_cli/completions/engine.py +269 -0
  17. functualize/_cli/completions/flag_filtering.py +64 -0
  18. functualize/_cli/completions/provenance.py +240 -0
  19. functualize/_cli/completions/quote_handling.py +95 -0
  20. functualize/_cli/completions/shell_init.py +256 -0
  21. functualize/_cli/config.py +808 -0
  22. functualize/_cli/data/__init__.py +40 -0
  23. functualize/_cli/data/argument_history.py +255 -0
  24. functualize/_cli/data/config_snapshot_store.py +242 -0
  25. functualize/_cli/data/config_target.py +47 -0
  26. functualize/_cli/data/func_settings.py +938 -0
  27. functualize/_cli/data/invocation_preset.py +106 -0
  28. functualize/_cli/data/override_applicator.py +141 -0
  29. functualize/_cli/data/path_suggestion.py +27 -0
  30. functualize/_cli/data/pending_execution.py +124 -0
  31. functualize/_cli/data/resolved_value_compat.py +45 -0
  32. functualize/_cli/data/settings_schema.py +173 -0
  33. functualize/_cli/data/shortcut_generator.py +195 -0
  34. functualize/_cli/data/toml_writer.py +320 -0
  35. functualize/_cli/dispatch.py +815 -0
  36. functualize/_cli/inline_tui.py +251 -0
  37. functualize/_cli/introspect.py +416 -0
  38. functualize/_cli/main.py +1935 -0
  39. functualize/_cli/orchestrator.py +80 -0
  40. functualize/_cli/parallel_output.py +150 -0
  41. functualize/_cli/pep723.py +314 -0
  42. functualize/_cli/scaffold/__init__.py +5 -0
  43. functualize/_cli/scaffold/cli.py +391 -0
  44. functualize/_cli/scaffold/context.py +62 -0
  45. functualize/_cli/scaffold/generator.py +557 -0
  46. functualize/_cli/scaffold/registry.py +69 -0
  47. functualize/_cli/scaffold/templates/__init__.py +0 -0
  48. functualize/_cli/scaffold/templates/_shared/config.base.toml.j2 +11 -0
  49. functualize/_cli/scaffold/templates/_shared/config.dev.toml.j2 +10 -0
  50. functualize/_cli/scaffold/templates/_shared/config.prod.toml.j2 +10 -0
  51. functualize/_cli/scaffold/templates/config.base.ini.j2 +28 -0
  52. functualize/_cli/scaffold/templates/config.base.toml.j2 +36 -0
  53. functualize/_cli/scaffold/templates/domain-plugin/__init__.py.j2 +5 -0
  54. functualize/_cli/scaffold/templates/domain-plugin/_plugin.py.j2 +27 -0
  55. functualize/_cli/scaffold/templates/domain-plugin/pyproject.toml.j2 +20 -0
  56. functualize/_cli/scaffold/templates/domain-plugin/test_plugin.py.j2 +34 -0
  57. functualize/_cli/scaffold/templates/domain-sdk/__init__.py.j2 +12 -0
  58. functualize/_cli/scaffold/templates/domain-sdk/_errors.py.j2 +9 -0
  59. functualize/_cli/scaffold/templates/domain-sdk/_events.py.j2 +6 -0
  60. functualize/_cli/scaffold/templates/domain-sdk/_metadata.py.j2 +37 -0
  61. functualize/_cli/scaffold/templates/domain-sdk/_protocols.py.j2 +12 -0
  62. functualize/_cli/scaffold/templates/domain-sdk/_types.py.j2 +3 -0
  63. functualize/_cli/scaffold/templates/domain-sdk/pyproject.toml.j2 +20 -0
  64. functualize/_cli/scaffold/templates/domain-sdk/testing/__init__.py.j2 +3 -0
  65. functualize/_cli/scaffold/templates/file_plugin.py.j2 +50 -0
  66. functualize/_cli/scaffold/templates/full-interactivity/README.md.j2 +88 -0
  67. functualize/_cli/scaffold/templates/full-interactivity/__init__.py.j2 +3 -0
  68. functualize/_cli/scaffold/templates/full-interactivity/events_job.py.j2 +56 -0
  69. functualize/_cli/scaffold/templates/full-interactivity/interactive_job.py.j2 +62 -0
  70. functualize/_cli/scaffold/templates/full-interactivity/main.py.j2 +30 -0
  71. functualize/_cli/scaffold/templates/full-interactivity/pyproject.toml.j2 +36 -0
  72. functualize/_cli/scaffold/templates/full-interactivity/workflow_job.py.j2 +53 -0
  73. functualize/_cli/scaffold/templates/job-folder/README.md.j2 +84 -0
  74. functualize/_cli/scaffold/templates/job-folder/config.base.toml.j2 +13 -0
  75. functualize/_cli/scaffold/templates/job-folder/file_plugin.py.j2 +56 -0
  76. functualize/_cli/scaffold/templates/job-folder/sample_job.py.j2 +33 -0
  77. functualize/_cli/scaffold/templates/job.py.j2 +63 -0
  78. functualize/_cli/scaffold/templates/main.py.j2 +21 -0
  79. functualize/_cli/scaffold/templates/plugin-project/README.md.j2 +58 -0
  80. functualize/_cli/scaffold/templates/plugin-project/__init__.py.j2 +3 -0
  81. functualize/_cli/scaffold/templates/plugin-project/plugin.py.j2 +10 -0
  82. functualize/_cli/scaffold/templates/plugin-project/provider.py.j2 +29 -0
  83. functualize/_cli/scaffold/templates/plugin-project/pyproject.toml.j2 +20 -0
  84. functualize/_cli/scaffold/templates/plugin-project/renderer.py.j2 +29 -0
  85. functualize/_cli/scaffold/templates/plugin.py.j2 +35 -0
  86. functualize/_cli/scaffold/templates/pyproject.toml.j2 +31 -0
  87. functualize/_cli/scaffold/templates/screen.py.j2 +21 -0
  88. functualize/_cli/scaffold/templates/screen.tcss.j2 +7 -0
  89. functualize/_cli/scaffold/templates/simple/README.md.j2 +71 -0
  90. functualize/_cli/scaffold/templates/simple/__init__.py.j2 +3 -0
  91. functualize/_cli/scaffold/templates/simple/main.py.j2 +21 -0
  92. functualize/_cli/scaffold/templates/simple/pyproject.toml.j2 +31 -0
  93. functualize/_cli/scaffold/templates/simple/sample_job.py.j2 +43 -0
  94. functualize/_cli/scaffold/templates/standalone_job.py.j2 +41 -0
  95. functualize/_cli/stdin_reader.py +176 -0
  96. functualize/_cli/tui/__init__.py +90 -0
  97. functualize/_cli/tui/app.py +2606 -0
  98. functualize/_cli/tui/bar.py +260 -0
  99. functualize/_cli/tui/bar_items.py +132 -0
  100. functualize/_cli/tui/breadcrumb_header_widget.py +67 -0
  101. functualize/_cli/tui/chain_resolution.py +499 -0
  102. functualize/_cli/tui/cli_arg_parser.py +206 -0
  103. functualize/_cli/tui/config_diff.py +108 -0
  104. functualize/_cli/tui/config_target_discovery.py +148 -0
  105. functualize/_cli/tui/descriptor_fields.py +21 -0
  106. functualize/_cli/tui/diff_view_widget.py +408 -0
  107. functualize/_cli/tui/display_affinity.py +144 -0
  108. functualize/_cli/tui/display_chrome.py +45 -0
  109. functualize/_cli/tui/display_provider_discovery.py +229 -0
  110. functualize/_cli/tui/display_slot.py +858 -0
  111. functualize/_cli/tui/dynamic_footer.py +25 -0
  112. functualize/_cli/tui/dynamic_footer_widget.py +62 -0
  113. functualize/_cli/tui/dynamic_input_bar.py +165 -0
  114. functualize/_cli/tui/editable_table.py +406 -0
  115. functualize/_cli/tui/field_priority.py +41 -0
  116. functualize/_cli/tui/focus.py +161 -0
  117. functualize/_cli/tui/functualize_autocomplete.py +365 -0
  118. functualize/_cli/tui/insert_mode.py +241 -0
  119. functualize/_cli/tui/integration.py +155 -0
  120. functualize/_cli/tui/job_execution.py +617 -0
  121. functualize/_cli/tui/job_listing.py +128 -0
  122. functualize/_cli/tui/key_handler.py +263 -0
  123. functualize/_cli/tui/live_panel_widget.py +147 -0
  124. functualize/_cli/tui/missing_args.py +110 -0
  125. functualize/_cli/tui/modals/__init__.py +5 -0
  126. functualize/_cli/tui/models/__init__.py +1 -0
  127. functualize/_cli/tui/models/focus_state.py +206 -0
  128. functualize/_cli/tui/models/panel_ring_controller.py +150 -0
  129. functualize/_cli/tui/models/ring_models.py +287 -0
  130. functualize/_cli/tui/models/source_chain.py +176 -0
  131. functualize/_cli/tui/new_file_picker.py +159 -0
  132. functualize/_cli/tui/panel_host.py +477 -0
  133. functualize/_cli/tui/panel_live_zone.py +287 -0
  134. functualize/_cli/tui/panels/__init__.py +109 -0
  135. functualize/_cli/tui/panels/config_files.py +689 -0
  136. functualize/_cli/tui/panels/config_table.py +513 -0
  137. functualize/_cli/tui/panels/job_browser.py +224 -0
  138. functualize/_cli/tui/panels/ring.py +114 -0
  139. functualize/_cli/tui/panels/settings_files.py +95 -0
  140. functualize/_cli/tui/path_field_editor.py +390 -0
  141. functualize/_cli/tui/path_suggestion_scanner.py +180 -0
  142. functualize/_cli/tui/preflight_summary.py +218 -0
  143. functualize/_cli/tui/preflight_widget.py +168 -0
  144. functualize/_cli/tui/settings_panel.py +415 -0
  145. functualize/_cli/tui/settings_validator.py +24 -0
  146. functualize/_cli/tui/shell_mode.py +322 -0
  147. functualize/_cli/tui/shortcut_save_modal.py +376 -0
  148. functualize/_cli/tui/smart_bar_autocomplete.py +944 -0
  149. functualize/_cli/tui/source_chain_detail.py +502 -0
  150. functualize/_cli/tui/source_chain_providers.py +348 -0
  151. functualize/_cli/tui/sync.py +162 -0
  152. functualize/_cli/tui/theme_manager.py +145 -0
  153. functualize/_cli/tui/thread_marshal.py +62 -0
  154. functualize/_cli/tui/type_hint_formatter.py +118 -0
  155. functualize/_config/__init__.py +44 -0
  156. functualize/_config/_emit.py +62 -0
  157. functualize/_config/chain.py +223 -0
  158. functualize/_config/cli_adapter.py +232 -0
  159. functualize/_config/errors.py +168 -0
  160. functualize/_config/interactivity.py +26 -0
  161. functualize/_config/job_config.py +453 -0
  162. functualize/_config/manifest.py +106 -0
  163. functualize/_config/merge.py +75 -0
  164. functualize/_config/migration.py +91 -0
  165. functualize/_config/protocols.py +145 -0
  166. functualize/_config/providers/__init__.py +16 -0
  167. functualize/_config/providers/ini.py +78 -0
  168. functualize/_config/providers/toml.py +191 -0
  169. functualize/_config/registry.py +213 -0
  170. functualize/_config/roles.py +80 -0
  171. functualize/_config/sources.py +837 -0
  172. functualize/_discovery/__init__.py +59 -0
  173. functualize/_discovery/ast_extractor.py +200 -0
  174. functualize/_discovery/cached_provider.py +868 -0
  175. functualize/_discovery/filter_factory.py +164 -0
  176. functualize/_discovery/group_options_extractor.py +96 -0
  177. functualize/_discovery/hierarchy.py +50 -0
  178. functualize/_discovery/hierarchy_errors.py +21 -0
  179. functualize/_discovery/hierarchy_validator.py +372 -0
  180. functualize/_discovery/lazy_wrapper.py +227 -0
  181. functualize/_discovery/naming.py +85 -0
  182. functualize/_discovery/pipeline.py +227 -0
  183. functualize/_discovery/pre_filter.py +50 -0
  184. functualize/_discovery/providers.py +814 -0
  185. functualize/_discovery/registry.py +626 -0
  186. functualize/_discovery/schema_extractor.py +273 -0
  187. functualize/_discovery/sync.py +431 -0
  188. functualize/_discovery/transforms.py +344 -0
  189. functualize/_discovery/version_resolver.py +221 -0
  190. functualize/_engine/__init__.py +30 -0
  191. functualize/_engine/ambient.py +161 -0
  192. functualize/_engine/capabilities/__init__.py +23 -0
  193. functualize/_engine/capabilities/invoke.py +804 -0
  194. functualize/_engine/capabilities/job_context.py +47 -0
  195. functualize/_engine/capabilities/live.py +119 -0
  196. functualize/_engine/capabilities/log.py +72 -0
  197. functualize/_engine/capabilities/perf.py +100 -0
  198. functualize/_engine/capabilities/prompt.py +148 -0
  199. functualize/_engine/capabilities/protocols.py +65 -0
  200. functualize/_engine/capabilities/runcontext.py +870 -0
  201. functualize/_engine/capabilities/shell.py +1091 -0
  202. functualize/_engine/capabilities/state.py +69 -0
  203. functualize/_engine/capabilities/state_store.py +199 -0
  204. functualize/_engine/capabilities/stdin_collector.py +198 -0
  205. functualize/_engine/capabilities/stdout.py +113 -0
  206. functualize/_engine/capabilities/tty.py +115 -0
  207. functualize/_engine/capabilities/workflow.py +241 -0
  208. functualize/_engine/capabilities/workflow_scope.py +131 -0
  209. functualize/_engine/context.py +80 -0
  210. functualize/_engine/errors.py +10 -0
  211. functualize/_engine/exec_policy.py +153 -0
  212. functualize/_engine/executor.py +2389 -0
  213. functualize/_engine/explain.py +99 -0
  214. functualize/_engine/frontier.py +247 -0
  215. functualize/_engine/guards.py +293 -0
  216. functualize/_engine/job_graph.py +211 -0
  217. functualize/_engine/job_middleware.py +331 -0
  218. functualize/_engine/middleware.py +302 -0
  219. functualize/_engine/missing_value.py +115 -0
  220. functualize/_engine/preflight.py +212 -0
  221. functualize/_engine/resolution.py +266 -0
  222. functualize/_engine/result.py +11 -0
  223. functualize/_engine/scheduler.py +272 -0
  224. functualize/_engine/surface_routing.py +95 -0
  225. functualize/_engine/validation.py +115 -0
  226. functualize/_engine/workflow_runner.py +138 -0
  227. functualize/_engine/workflow_validation.py +198 -0
  228. functualize/_engine/workflow_walker.py +462 -0
  229. functualize/_events/__init__.py +63 -0
  230. functualize/_events/_catalog_entries.py +271 -0
  231. functualize/_events/_obs_types.py +56 -0
  232. functualize/_events/_pattern_matcher.py +95 -0
  233. functualize/_events/adapter.py +111 -0
  234. functualize/_events/bus.py +429 -0
  235. functualize/_events/catalog.py +37 -0
  236. functualize/_events/hooks.py +396 -0
  237. functualize/_events/instrumentation.py +130 -0
  238. functualize/_events/introspection.py +50 -0
  239. functualize/_events/middleware_stack.py +292 -0
  240. functualize/_events/perf.py +269 -0
  241. functualize/_events/tracing.py +160 -0
  242. functualize/_gate/__init__.py +25 -0
  243. functualize/_gate/_context.py +34 -0
  244. functualize/_gate/_registry.py +233 -0
  245. functualize/_gate/_resolver.py +77 -0
  246. functualize/_gate/_strategy.py +17 -0
  247. functualize/_gate/prompt_strategy.py +170 -0
  248. functualize/_plugins/__init__.py +47 -0
  249. functualize/_plugins/config.py +80 -0
  250. functualize/_plugins/domain_metadata.py +42 -0
  251. functualize/_plugins/domain_registry.py +337 -0
  252. functualize/_plugins/loader.py +817 -0
  253. functualize/_primitives/__init__.py +93 -0
  254. functualize/_primitives/cache_format.py +345 -0
  255. functualize/_primitives/di.py +393 -0
  256. functualize/_primitives/display_detection.py +59 -0
  257. functualize/_primitives/fingerprint.py +421 -0
  258. functualize/_primitives/graph.py +200 -0
  259. functualize/_primitives/group_options_detection.py +77 -0
  260. functualize/_primitives/job_filter.py +163 -0
  261. functualize/_primitives/lazy.py +55 -0
  262. functualize/_primitives/locator.py +533 -0
  263. functualize/_primitives/middleware.py +294 -0
  264. functualize/_primitives/modules.py +39 -0
  265. functualize/_primitives/pre_filter.py +482 -0
  266. functualize/_primitives/resilient.py +40 -0
  267. functualize/_primitives/resolution.py +22 -0
  268. functualize/_primitives/state_format.py +273 -0
  269. functualize/_primitives/state_store.py +365 -0
  270. functualize/_primitives/stdout_emitter.py +207 -0
  271. functualize/_types/__init__.py +135 -0
  272. functualize/_types/annotations.py +60 -0
  273. functualize/_types/commands.py +127 -0
  274. functualize/_types/descriptors.py +676 -0
  275. functualize/_types/enums.py +97 -0
  276. functualize/_types/errors.py +206 -0
  277. functualize/_types/exit_codes.py +76 -0
  278. functualize/_types/from_job.py +327 -0
  279. functualize/_types/group_options.py +56 -0
  280. functualize/_types/input_modes.py +125 -0
  281. functualize/_types/interactivity.py +279 -0
  282. functualize/_types/job_declaration.py +528 -0
  283. functualize/_types/naming.py +611 -0
  284. functualize/_types/protocols.py +230 -0
  285. functualize/_types/redaction.py +175 -0
  286. functualize/_types/settings.py +155 -0
  287. functualize/_types/shell.py +165 -0
  288. functualize/_types/stdout.py +49 -0
  289. functualize/_types/workflow.py +614 -0
  290. functualize/app/__init__.py +59 -0
  291. functualize/app/_workflow_resume.py +97 -0
  292. functualize/app/adapters/__init__.py +55 -0
  293. functualize/app/adapters/_validation.py +35 -0
  294. functualize/app/adapters/cli.py +1242 -0
  295. functualize/app/adapters/click_params.py +1123 -0
  296. functualize/app/adapters/lazy_command.py +134 -0
  297. functualize/app/adapters/surface_gate.py +89 -0
  298. functualize/app/adapters/tui.py +107 -0
  299. functualize/app/commands.py +374 -0
  300. functualize/app/config.py +141 -0
  301. functualize/app/core.py +1200 -0
  302. functualize/app/fallback.py +29 -0
  303. functualize/app/presets.py +114 -0
  304. functualize/app/utils.py +1519 -0
  305. functualize/job/__init__.py +124 -0
  306. functualize/job/_invoke.py +8 -0
  307. functualize/job/_job_context.py +8 -0
  308. functualize/job/_log.py +8 -0
  309. functualize/job/_middleware.py +17 -0
  310. functualize/job/_perf.py +8 -0
  311. functualize/job/_prompt.py +20 -0
  312. functualize/job/_protocols.py +5 -0
  313. functualize/job/_runcontext.py +24 -0
  314. functualize/job/_shell.py +21 -0
  315. functualize/job/_state.py +8 -0
  316. functualize/job/_state_store.py +5 -0
  317. functualize/job/_stdout.py +9 -0
  318. functualize/job/_workflow_scope.py +9 -0
  319. functualize/job/capabilities.py +66 -0
  320. functualize/job/context.py +32 -0
  321. functualize/job/decorators.py +326 -0
  322. functualize/job/markers.py +122 -0
  323. functualize/plugin/__init__.py +105 -0
  324. functualize/plugin/protocols.py +266 -0
  325. functualize/py.typed +0 -0
  326. functualize/testing/__init__.py +23 -0
  327. functualize/testing/builder.py +160 -0
  328. functualize/testing/doubles.py +227 -0
  329. functualize/testing/shell.py +117 -0
  330. functualize/testing/stdout.py +62 -0
  331. functualize/types/__init__.py +39 -0
  332. functualize/ui/__init__.py +39 -0
  333. functualize/ui/_prompt_modal.py +295 -0
  334. functualize/ui/display.py +126 -0
  335. functualize/ui/fullscreen/__init__.py +7 -0
  336. functualize/ui/fullscreen/app.py +71 -0
  337. functualize/ui/fullscreen/screens.py +73 -0
  338. functualize/ui/fullscreen/widgets.py +236 -0
  339. functualize/ui/py.typed +0 -0
  340. functualize/ui/stdout_surface.py +246 -0
  341. functualize/ui/textual_app.py +149 -0
  342. functualize/workflow/__init__.py +42 -0
  343. functualize/workflow/_decorator.py +54 -0
  344. functualize/workflow/_validation.py +80 -0
  345. functualize-0.1.0.dist-info/METADATA +922 -0
  346. functualize-0.1.0.dist-info/RECORD +349 -0
  347. functualize-0.1.0.dist-info/WHEEL +4 -0
  348. functualize-0.1.0.dist-info/entry_points.txt +7 -0
  349. functualize-0.1.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,27 @@
1
+ """Functualize - A reusable Python CLI framework."""
2
+
3
+ __version__ = "0.1.0"
4
+
5
+ from functualize._config.job_config import JobConfigView
6
+ from functualize._gate import GateContext, GateResolver, GateStrategy
7
+ from functualize.app.core import FunctualizeApp
8
+ from functualize.job.context import RunContext
9
+ from functualize.workflow import END, ConditionalEdge, Edge, Gate, Step, workflow
10
+
11
+ __all__ = [
12
+ "FunctualizeApp",
13
+ "JobConfigView",
14
+ "RunContext",
15
+ "__version__",
16
+ # Workflow types and decorator
17
+ "workflow",
18
+ "Step",
19
+ "Gate",
20
+ "Edge",
21
+ "ConditionalEdge",
22
+ "END",
23
+ # Gate resolution types
24
+ "GateStrategy",
25
+ "GateResolver",
26
+ "GateContext",
27
+ ]
@@ -0,0 +1,8 @@
1
+ """Enable running functualize as a module: python -m functualize."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from functualize._cli.main import main
6
+
7
+ if __name__ == "__main__":
8
+ main()
@@ -0,0 +1,101 @@
1
+ """Composition root package for functualize.
2
+
3
+ The `_app/` package is the ONLY internal package allowed to import from
4
+ ALL peer layers (`_discovery`, `_config`, `_engine`, `_plugins`, `_events`,
5
+ `_primitives`, `_types`) to wire them together via dependency injection.
6
+
7
+ Contains:
8
+ - boot.py: Boot orchestration (provider wiring, config chain, plugin loading)
9
+ - impl.py: FunctualizeApp internal method implementations (heavy lifting)
10
+ - state.py: AppState thread-safe global state container
11
+
12
+ This package must NOT import from `_cli/` or any public folder
13
+ (`app/`, `job/`, `plugin/`, `types/`, `testing/`).
14
+ """
15
+
16
+ from functualize._app.boot import (
17
+ boot_standard,
18
+ boot_static,
19
+ build_resolution_chain,
20
+ discover_config_path,
21
+ init_observability,
22
+ register_descriptors,
23
+ resolve_and_register_jobs,
24
+ wire_children_to_pipeline,
25
+ )
26
+ from functualize._app.impl import (
27
+ build_cached_provider,
28
+ build_resource_locator,
29
+ create_workflow_scope,
30
+ get_cache_stats,
31
+ get_plugin,
32
+ get_workflow_scope,
33
+ is_fully_explicit,
34
+ make_before_job_decorator,
35
+ make_instrument_decorator,
36
+ make_on_event_decorator,
37
+ make_on_invoke_end_decorator,
38
+ make_on_invoke_failure_decorator,
39
+ make_on_invoke_start_decorator,
40
+ make_on_job_failure_decorator,
41
+ make_on_job_success_decorator,
42
+ make_on_job_teardown_decorator,
43
+ make_on_phase_complete_decorator,
44
+ make_on_phase_failure_decorator,
45
+ make_on_phase_start_decorator,
46
+ make_on_ready_decorator,
47
+ make_pre_execute_decorator,
48
+ make_run_middleware_decorator,
49
+ on_job_submit_event,
50
+ register_dynamic_job,
51
+ register_plugin_command,
52
+ register_run_middleware,
53
+ resolve_model,
54
+ shutdown_plugins,
55
+ )
56
+ from functualize._app.state import AppState
57
+ from functualize._primitives.cache_format import find_functualize_dir
58
+
59
+ __all__ = [
60
+ # Boot orchestration
61
+ "boot_standard",
62
+ "boot_static",
63
+ "build_resolution_chain",
64
+ "discover_config_path",
65
+ "init_observability",
66
+ "register_descriptors",
67
+ "resolve_and_register_jobs",
68
+ "wire_children_to_pipeline",
69
+ # Implementation helpers
70
+ "build_cached_provider",
71
+ "build_resource_locator",
72
+ "create_workflow_scope",
73
+ "find_functualize_dir",
74
+ "get_cache_stats",
75
+ "get_plugin",
76
+ "get_workflow_scope",
77
+ "is_fully_explicit",
78
+ "make_before_job_decorator",
79
+ "make_instrument_decorator",
80
+ "make_on_event_decorator",
81
+ "make_on_invoke_end_decorator",
82
+ "make_on_invoke_failure_decorator",
83
+ "make_on_invoke_start_decorator",
84
+ "make_on_job_failure_decorator",
85
+ "make_on_job_success_decorator",
86
+ "make_on_job_teardown_decorator",
87
+ "make_on_ready_decorator",
88
+ "make_on_phase_complete_decorator",
89
+ "make_on_phase_failure_decorator",
90
+ "make_on_phase_start_decorator",
91
+ "make_pre_execute_decorator",
92
+ "make_run_middleware_decorator",
93
+ "on_job_submit_event",
94
+ "register_dynamic_job",
95
+ "register_plugin_command",
96
+ "register_run_middleware",
97
+ "resolve_model",
98
+ "shutdown_plugins",
99
+ # State
100
+ "AppState",
101
+ ]