kaboo-workflows 0.9.0__tar.gz

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 (308) hide show
  1. kaboo_workflows-0.9.0/.github/ISSUE_TEMPLATE/bug_report.yml +124 -0
  2. kaboo_workflows-0.9.0/.github/ISSUE_TEMPLATE/config.yml +8 -0
  3. kaboo_workflows-0.9.0/.github/ISSUE_TEMPLATE/feature_request.yml +46 -0
  4. kaboo_workflows-0.9.0/.github/PULL_REQUEST_TEMPLATE.md +45 -0
  5. kaboo_workflows-0.9.0/.github/dependabot.yml +20 -0
  6. kaboo_workflows-0.9.0/.github/workflows/ci.yml +93 -0
  7. kaboo_workflows-0.9.0/.github/workflows/pages.yml +49 -0
  8. kaboo_workflows-0.9.0/.github/workflows/publish.yml +123 -0
  9. kaboo_workflows-0.9.0/.gitignore +63 -0
  10. kaboo_workflows-0.9.0/.kiro/skills/library-development/SKILL.md +314 -0
  11. kaboo_workflows-0.9.0/.kiro/skills/library-development/references/project-map.md +124 -0
  12. kaboo_workflows-0.9.0/.kiro/skills/library-testing/SKILL.md +332 -0
  13. kaboo_workflows-0.9.0/.kiro/skills/library-testing/references/test-patterns.md +380 -0
  14. kaboo_workflows-0.9.0/.pre-commit-config.yaml +48 -0
  15. kaboo_workflows-0.9.0/.secrets.baseline +127 -0
  16. kaboo_workflows-0.9.0/AGENTS.md +129 -0
  17. kaboo_workflows-0.9.0/CHANGELOG.md +105 -0
  18. kaboo_workflows-0.9.0/CONTRIBUTING.md +147 -0
  19. kaboo_workflows-0.9.0/LICENSE +174 -0
  20. kaboo_workflows-0.9.0/PKG-INFO +364 -0
  21. kaboo_workflows-0.9.0/README.md +324 -0
  22. kaboo_workflows-0.9.0/RELEASING.md +118 -0
  23. kaboo_workflows-0.9.0/SECURITY.md +31 -0
  24. kaboo_workflows-0.9.0/SUPPORT.md +34 -0
  25. kaboo_workflows-0.9.0/docs/api/adapters.md +8 -0
  26. kaboo_workflows-0.9.0/docs/api/config.md +8 -0
  27. kaboo_workflows-0.9.0/docs/api/converters.md +8 -0
  28. kaboo_workflows-0.9.0/docs/api/hooks.md +8 -0
  29. kaboo_workflows-0.9.0/docs/api/kaboo_workflows.md +9 -0
  30. kaboo_workflows-0.9.0/docs/api/mcp.md +8 -0
  31. kaboo_workflows-0.9.0/docs/api/renderers.md +8 -0
  32. kaboo_workflows-0.9.0/docs/api/tools.md +8 -0
  33. kaboo_workflows-0.9.0/docs/api/types.md +8 -0
  34. kaboo_workflows-0.9.0/docs/api-reference.md +66 -0
  35. kaboo_workflows-0.9.0/docs/assets/kaboo-icon.svg +14 -0
  36. kaboo_workflows-0.9.0/docs/concepts.md +73 -0
  37. kaboo_workflows-0.9.0/docs/configuration/Chapter_01.md +71 -0
  38. kaboo_workflows-0.9.0/docs/configuration/Chapter_02.md +106 -0
  39. kaboo_workflows-0.9.0/docs/configuration/Chapter_03.md +117 -0
  40. kaboo_workflows-0.9.0/docs/configuration/Chapter_04.md +115 -0
  41. kaboo_workflows-0.9.0/docs/configuration/Chapter_05.md +107 -0
  42. kaboo_workflows-0.9.0/docs/configuration/Chapter_06.md +180 -0
  43. kaboo_workflows-0.9.0/docs/configuration/Chapter_07.md +165 -0
  44. kaboo_workflows-0.9.0/docs/configuration/Chapter_08.md +71 -0
  45. kaboo_workflows-0.9.0/docs/configuration/Chapter_09.md +195 -0
  46. kaboo_workflows-0.9.0/docs/configuration/Chapter_10.md +170 -0
  47. kaboo_workflows-0.9.0/docs/configuration/Chapter_11.md +67 -0
  48. kaboo_workflows-0.9.0/docs/configuration/Chapter_12.md +118 -0
  49. kaboo_workflows-0.9.0/docs/configuration/Chapter_13.md +110 -0
  50. kaboo_workflows-0.9.0/docs/configuration/Chapter_14.md +97 -0
  51. kaboo_workflows-0.9.0/docs/configuration/Chapter_15.md +113 -0
  52. kaboo_workflows-0.9.0/docs/configuration/Chapter_16.md +70 -0
  53. kaboo_workflows-0.9.0/docs/configuration/Chapter_17.md +210 -0
  54. kaboo_workflows-0.9.0/docs/configuration/Chapter_18.md +155 -0
  55. kaboo_workflows-0.9.0/docs/configuration/Quick_Recipes.md +113 -0
  56. kaboo_workflows-0.9.0/docs/configuration/README.md +38 -0
  57. kaboo_workflows-0.9.0/docs/getting-started.md +99 -0
  58. kaboo_workflows-0.9.0/docs/img/logo-black.svg +213 -0
  59. kaboo_workflows-0.9.0/docs/img/logo-white.svg +213 -0
  60. kaboo_workflows-0.9.0/docs/img/logo.png +0 -0
  61. kaboo_workflows-0.9.0/docs/index.md +50 -0
  62. kaboo_workflows-0.9.0/docs/troubleshooting.md +68 -0
  63. kaboo_workflows-0.9.0/docs/workflows/deep-nesting.md +59 -0
  64. kaboo_workflows-0.9.0/docs/workflows/errors-and-rejection.md +50 -0
  65. kaboo_workflows-0.9.0/docs/workflows/human-in-the-loop.md +65 -0
  66. kaboo_workflows-0.9.0/docs/workflows/multi-turn-history.md +51 -0
  67. kaboo_workflows-0.9.0/docs/workflows/parallel.md +58 -0
  68. kaboo_workflows-0.9.0/docs/workflows/swarm-and-graph.md +54 -0
  69. kaboo_workflows-0.9.0/examples/01_minimal/README.md +67 -0
  70. kaboo_workflows-0.9.0/examples/01_minimal/config.yaml +22 -0
  71. kaboo_workflows-0.9.0/examples/01_minimal/main.py +47 -0
  72. kaboo_workflows-0.9.0/examples/02_vars_and_anchors/README.md +100 -0
  73. kaboo_workflows-0.9.0/examples/02_vars_and_anchors/config.yaml +48 -0
  74. kaboo_workflows-0.9.0/examples/02_vars_and_anchors/main.py +59 -0
  75. kaboo_workflows-0.9.0/examples/03_tools/README.md +78 -0
  76. kaboo_workflows-0.9.0/examples/03_tools/config.yaml +35 -0
  77. kaboo_workflows-0.9.0/examples/03_tools/main.py +48 -0
  78. kaboo_workflows-0.9.0/examples/03_tools/tools.py +48 -0
  79. kaboo_workflows-0.9.0/examples/04_session/README.md +144 -0
  80. kaboo_workflows-0.9.0/examples/04_session/config.yaml +32 -0
  81. kaboo_workflows-0.9.0/examples/04_session/main.py +47 -0
  82. kaboo_workflows-0.9.0/examples/05_hooks/README.md +84 -0
  83. kaboo_workflows-0.9.0/examples/05_hooks/config.yaml +40 -0
  84. kaboo_workflows-0.9.0/examples/05_hooks/custom_tools.py +50 -0
  85. kaboo_workflows-0.9.0/examples/05_hooks/hooks.py +36 -0
  86. kaboo_workflows-0.9.0/examples/05_hooks/main.py +50 -0
  87. kaboo_workflows-0.9.0/examples/06_mcp/README.md +126 -0
  88. kaboo_workflows-0.9.0/examples/06_mcp/config.yaml +68 -0
  89. kaboo_workflows-0.9.0/examples/06_mcp/main.py +49 -0
  90. kaboo_workflows-0.9.0/examples/06_mcp/server.py +75 -0
  91. kaboo_workflows-0.9.0/examples/07_delegate/README.md +86 -0
  92. kaboo_workflows-0.9.0/examples/07_delegate/config.yaml +57 -0
  93. kaboo_workflows-0.9.0/examples/07_delegate/main.py +47 -0
  94. kaboo_workflows-0.9.0/examples/08_swarm/README.md +75 -0
  95. kaboo_workflows-0.9.0/examples/08_swarm/config.yaml +52 -0
  96. kaboo_workflows-0.9.0/examples/08_swarm/main.py +47 -0
  97. kaboo_workflows-0.9.0/examples/09_graph/README.md +76 -0
  98. kaboo_workflows-0.9.0/examples/09_graph/config.yaml +55 -0
  99. kaboo_workflows-0.9.0/examples/09_graph/main.py +47 -0
  100. kaboo_workflows-0.9.0/examples/10_nested/README.md +85 -0
  101. kaboo_workflows-0.9.0/examples/10_nested/config.yaml +105 -0
  102. kaboo_workflows-0.9.0/examples/10_nested/main.py +48 -0
  103. kaboo_workflows-0.9.0/examples/11_multi_file_config/README.md +83 -0
  104. kaboo_workflows-0.9.0/examples/11_multi_file_config/agents.yaml +18 -0
  105. kaboo_workflows-0.9.0/examples/11_multi_file_config/base.yaml +19 -0
  106. kaboo_workflows-0.9.0/examples/11_multi_file_config/main.py +50 -0
  107. kaboo_workflows-0.9.0/examples/12_streaming/README.md +96 -0
  108. kaboo_workflows-0.9.0/examples/12_streaming/config.yaml +59 -0
  109. kaboo_workflows-0.9.0/examples/12_streaming/main.py +71 -0
  110. kaboo_workflows-0.9.0/examples/13_graph_conditions/README.md +90 -0
  111. kaboo_workflows-0.9.0/examples/13_graph_conditions/conditions.py +33 -0
  112. kaboo_workflows-0.9.0/examples/13_graph_conditions/config.yaml +55 -0
  113. kaboo_workflows-0.9.0/examples/13_graph_conditions/main.py +48 -0
  114. kaboo_workflows-0.9.0/examples/14_agent_factory/README.md +75 -0
  115. kaboo_workflows-0.9.0/examples/14_agent_factory/config.yaml +23 -0
  116. kaboo_workflows-0.9.0/examples/14_agent_factory/factory.py +53 -0
  117. kaboo_workflows-0.9.0/examples/14_agent_factory/main.py +47 -0
  118. kaboo_workflows-0.9.0/examples/15_deep_nesting/README.md +34 -0
  119. kaboo_workflows-0.9.0/examples/15_deep_nesting/config.yaml +72 -0
  120. kaboo_workflows-0.9.0/examples/15_deep_nesting/main.py +45 -0
  121. kaboo_workflows-0.9.0/examples/16_swarm_in_graph/README.md +32 -0
  122. kaboo_workflows-0.9.0/examples/16_swarm_in_graph/config.yaml +80 -0
  123. kaboo_workflows-0.9.0/examples/16_swarm_in_graph/main.py +44 -0
  124. kaboo_workflows-0.9.0/examples/17_parallel/README.md +34 -0
  125. kaboo_workflows-0.9.0/examples/17_parallel/config.yaml +74 -0
  126. kaboo_workflows-0.9.0/examples/17_parallel/main.py +45 -0
  127. kaboo_workflows-0.9.0/examples/18_hitl/README.md +40 -0
  128. kaboo_workflows-0.9.0/examples/18_hitl/config.yaml +53 -0
  129. kaboo_workflows-0.9.0/examples/18_hitl/main.py +50 -0
  130. kaboo_workflows-0.9.0/examples/19_multiturn_history/README.md +35 -0
  131. kaboo_workflows-0.9.0/examples/19_multiturn_history/config.yaml +50 -0
  132. kaboo_workflows-0.9.0/examples/19_multiturn_history/main.py +50 -0
  133. kaboo_workflows-0.9.0/examples/20_error_and_rejection/README.md +35 -0
  134. kaboo_workflows-0.9.0/examples/20_error_and_rejection/config.yaml +52 -0
  135. kaboo_workflows-0.9.0/examples/20_error_and_rejection/main.py +46 -0
  136. kaboo_workflows-0.9.0/examples/README.md +50 -0
  137. kaboo_workflows-0.9.0/examples/TEMPLATE_EXAMPLE.md +57 -0
  138. kaboo_workflows-0.9.0/examples/step1/config.yaml +33 -0
  139. kaboo_workflows-0.9.0/examples/step1/main.py +44 -0
  140. kaboo_workflows-0.9.0/examples/step1/tools/calculator_tool.py +18 -0
  141. kaboo_workflows-0.9.0/justfile +30 -0
  142. kaboo_workflows-0.9.0/llms-full.txt +3600 -0
  143. kaboo_workflows-0.9.0/llms.txt +65 -0
  144. kaboo_workflows-0.9.0/mkdocs.yml +102 -0
  145. kaboo_workflows-0.9.0/pyproject.toml +142 -0
  146. kaboo_workflows-0.9.0/scripts/gen_llms.py +116 -0
  147. kaboo_workflows-0.9.0/src/kaboo_workflows/__init__.py +66 -0
  148. kaboo_workflows-0.9.0/src/kaboo_workflows/_context.py +135 -0
  149. kaboo_workflows-0.9.0/src/kaboo_workflows/adapters/__init__.py +7 -0
  150. kaboo_workflows-0.9.0/src/kaboo_workflows/adapters/_activity.py +172 -0
  151. kaboo_workflows-0.9.0/src/kaboo_workflows/adapters/_multiagent.py +387 -0
  152. kaboo_workflows-0.9.0/src/kaboo_workflows/adapters/_strands_bridge.py +107 -0
  153. kaboo_workflows-0.9.0/src/kaboo_workflows/adapters/agui.py +958 -0
  154. kaboo_workflows-0.9.0/src/kaboo_workflows/cli.py +434 -0
  155. kaboo_workflows-0.9.0/src/kaboo_workflows/config/__init__.py +53 -0
  156. kaboo_workflows-0.9.0/src/kaboo_workflows/config/interpolation.py +196 -0
  157. kaboo_workflows-0.9.0/src/kaboo_workflows/config/loaders/__init__.py +12 -0
  158. kaboo_workflows-0.9.0/src/kaboo_workflows/config/loaders/helpers.py +409 -0
  159. kaboo_workflows-0.9.0/src/kaboo_workflows/config/loaders/loaders.py +292 -0
  160. kaboo_workflows-0.9.0/src/kaboo_workflows/config/loaders/validators.py +124 -0
  161. kaboo_workflows-0.9.0/src/kaboo_workflows/config/resolvers/__init__.py +28 -0
  162. kaboo_workflows-0.9.0/src/kaboo_workflows/config/resolvers/agents.py +255 -0
  163. kaboo_workflows-0.9.0/src/kaboo_workflows/config/resolvers/config.py +466 -0
  164. kaboo_workflows-0.9.0/src/kaboo_workflows/config/resolvers/conversation_manager.py +54 -0
  165. kaboo_workflows-0.9.0/src/kaboo_workflows/config/resolvers/hooks.py +68 -0
  166. kaboo_workflows-0.9.0/src/kaboo_workflows/config/resolvers/mcp.py +106 -0
  167. kaboo_workflows-0.9.0/src/kaboo_workflows/config/resolvers/models.py +47 -0
  168. kaboo_workflows-0.9.0/src/kaboo_workflows/config/resolvers/orchestrations/__init__.py +81 -0
  169. kaboo_workflows-0.9.0/src/kaboo_workflows/config/resolvers/orchestrations/builders.py +409 -0
  170. kaboo_workflows-0.9.0/src/kaboo_workflows/config/resolvers/orchestrations/planner.py +103 -0
  171. kaboo_workflows-0.9.0/src/kaboo_workflows/config/resolvers/schema_prompt.py +67 -0
  172. kaboo_workflows-0.9.0/src/kaboo_workflows/config/resolvers/session_manager.py +183 -0
  173. kaboo_workflows-0.9.0/src/kaboo_workflows/config/schema.py +457 -0
  174. kaboo_workflows-0.9.0/src/kaboo_workflows/converters/__init__.py +13 -0
  175. kaboo_workflows-0.9.0/src/kaboo_workflows/converters/base.py +54 -0
  176. kaboo_workflows-0.9.0/src/kaboo_workflows/converters/openai.py +381 -0
  177. kaboo_workflows-0.9.0/src/kaboo_workflows/converters/raw.py +31 -0
  178. kaboo_workflows-0.9.0/src/kaboo_workflows/exceptions.py +27 -0
  179. kaboo_workflows-0.9.0/src/kaboo_workflows/hooks/__init__.py +21 -0
  180. kaboo_workflows-0.9.0/src/kaboo_workflows/hooks/event_publisher.py +600 -0
  181. kaboo_workflows-0.9.0/src/kaboo_workflows/hooks/history_hook.py +145 -0
  182. kaboo_workflows-0.9.0/src/kaboo_workflows/hooks/interrupt_hook.py +52 -0
  183. kaboo_workflows-0.9.0/src/kaboo_workflows/hooks/max_calls_guard.py +90 -0
  184. kaboo_workflows-0.9.0/src/kaboo_workflows/hooks/stop_guard.py +113 -0
  185. kaboo_workflows-0.9.0/src/kaboo_workflows/hooks/tool_name_sanitizer.py +184 -0
  186. kaboo_workflows-0.9.0/src/kaboo_workflows/manifest.py +306 -0
  187. kaboo_workflows-0.9.0/src/kaboo_workflows/mcp/README.md +105 -0
  188. kaboo_workflows-0.9.0/src/kaboo_workflows/mcp/__init__.py +27 -0
  189. kaboo_workflows-0.9.0/src/kaboo_workflows/mcp/client.py +154 -0
  190. kaboo_workflows-0.9.0/src/kaboo_workflows/mcp/lifecycle.py +246 -0
  191. kaboo_workflows-0.9.0/src/kaboo_workflows/mcp/server.py +327 -0
  192. kaboo_workflows-0.9.0/src/kaboo_workflows/mcp/transports.py +188 -0
  193. kaboo_workflows-0.9.0/src/kaboo_workflows/models.py +69 -0
  194. kaboo_workflows-0.9.0/src/kaboo_workflows/py.typed +0 -0
  195. kaboo_workflows-0.9.0/src/kaboo_workflows/renderers/__init__.py +9 -0
  196. kaboo_workflows-0.9.0/src/kaboo_workflows/renderers/ansi.py +295 -0
  197. kaboo_workflows-0.9.0/src/kaboo_workflows/renderers/base.py +36 -0
  198. kaboo_workflows-0.9.0/src/kaboo_workflows/serve.py +64 -0
  199. kaboo_workflows-0.9.0/src/kaboo_workflows/startup/__init__.py +24 -0
  200. kaboo_workflows-0.9.0/src/kaboo_workflows/startup/report.py +174 -0
  201. kaboo_workflows-0.9.0/src/kaboo_workflows/startup/validator.py +167 -0
  202. kaboo_workflows-0.9.0/src/kaboo_workflows/tools/__init__.py +38 -0
  203. kaboo_workflows-0.9.0/src/kaboo_workflows/tools/ask_user.py +76 -0
  204. kaboo_workflows-0.9.0/src/kaboo_workflows/tools/extractors.py +154 -0
  205. kaboo_workflows-0.9.0/src/kaboo_workflows/tools/loaders.py +259 -0
  206. kaboo_workflows-0.9.0/src/kaboo_workflows/tools/wrappers.py +158 -0
  207. kaboo_workflows-0.9.0/src/kaboo_workflows/types.py +321 -0
  208. kaboo_workflows-0.9.0/src/kaboo_workflows/utils.py +209 -0
  209. kaboo_workflows-0.9.0/src/kaboo_workflows/wire.py +317 -0
  210. kaboo_workflows-0.9.0/tasks/README.md +152 -0
  211. kaboo_workflows-0.9.0/tasks/check.just +36 -0
  212. kaboo_workflows-0.9.0/tasks/clean.just +55 -0
  213. kaboo_workflows-0.9.0/tasks/commit.just +19 -0
  214. kaboo_workflows-0.9.0/tasks/docs.just +22 -0
  215. kaboo_workflows-0.9.0/tasks/format.just +13 -0
  216. kaboo_workflows-0.9.0/tasks/install.just +15 -0
  217. kaboo_workflows-0.9.0/tasks/release.just +39 -0
  218. kaboo_workflows-0.9.0/tasks/test.just +18 -0
  219. kaboo_workflows-0.9.0/tests/__init__.py +0 -0
  220. kaboo_workflows-0.9.0/tests/cli/__init__.py +0 -0
  221. kaboo_workflows-0.9.0/tests/cli/test_cli.py +52 -0
  222. kaboo_workflows-0.9.0/tests/cli/test_startup.py +42 -0
  223. kaboo_workflows-0.9.0/tests/conftest.py +52 -0
  224. kaboo_workflows-0.9.0/tests/contract/__init__.py +0 -0
  225. kaboo_workflows-0.9.0/tests/contract/shape_baseline.json +62 -0
  226. kaboo_workflows-0.9.0/tests/contract/test_llms.py +30 -0
  227. kaboo_workflows-0.9.0/tests/contract/test_public_api.py +90 -0
  228. kaboo_workflows-0.9.0/tests/contract/test_shape.py +49 -0
  229. kaboo_workflows-0.9.0/tests/e2e/__init__.py +9 -0
  230. kaboo_workflows-0.9.0/tests/e2e/configs/delegate.yaml +38 -0
  231. kaboo_workflows-0.9.0/tests/e2e/configs/delegate_2level.yaml +44 -0
  232. kaboo_workflows-0.9.0/tests/e2e/configs/delegate_3level.yaml +58 -0
  233. kaboo_workflows-0.9.0/tests/e2e/configs/delegate_graph.yaml +56 -0
  234. kaboo_workflows-0.9.0/tests/e2e/configs/delegate_swarm.yaml +50 -0
  235. kaboo_workflows-0.9.0/tests/e2e/configs/error_plain.yaml +12 -0
  236. kaboo_workflows-0.9.0/tests/e2e/configs/error_swarm.yaml +36 -0
  237. kaboo_workflows-0.9.0/tests/e2e/configs/graph.yaml +42 -0
  238. kaboo_workflows-0.9.0/tests/e2e/configs/graph_graph.yaml +46 -0
  239. kaboo_workflows-0.9.0/tests/e2e/configs/graph_swarm.yaml +46 -0
  240. kaboo_workflows-0.9.0/tests/e2e/configs/history.yaml +31 -0
  241. kaboo_workflows-0.9.0/tests/e2e/configs/interrupt.yaml +37 -0
  242. kaboo_workflows-0.9.0/tests/e2e/configs/interrupt_graph.yaml +32 -0
  243. kaboo_workflows-0.9.0/tests/e2e/configs/interrupt_parallel.yaml +18 -0
  244. kaboo_workflows-0.9.0/tests/e2e/configs/interrupt_plain.yaml +17 -0
  245. kaboo_workflows-0.9.0/tests/e2e/configs/interrupt_swarm.yaml +31 -0
  246. kaboo_workflows-0.9.0/tests/e2e/configs/kitchen_sink.yaml +77 -0
  247. kaboo_workflows-0.9.0/tests/e2e/configs/parallel_nested.yaml +49 -0
  248. kaboo_workflows-0.9.0/tests/e2e/configs/plain.yaml +11 -0
  249. kaboo_workflows-0.9.0/tests/e2e/configs/swarm.yaml +36 -0
  250. kaboo_workflows-0.9.0/tests/e2e/harness.py +219 -0
  251. kaboo_workflows-0.9.0/tests/e2e/test_complex.py +136 -0
  252. kaboo_workflows-0.9.0/tests/e2e/test_compositions.py +198 -0
  253. kaboo_workflows-0.9.0/tests/e2e/test_cross_cutting.py +120 -0
  254. kaboo_workflows-0.9.0/tests/factories.py +81 -0
  255. kaboo_workflows-0.9.0/tests/fakes/__init__.py +15 -0
  256. kaboo_workflows-0.9.0/tests/fakes/scripted_model.py +201 -0
  257. kaboo_workflows-0.9.0/tests/fakes/strands.py +205 -0
  258. kaboo_workflows-0.9.0/tests/parse/__init__.py +0 -0
  259. kaboo_workflows-0.9.0/tests/parse/test_helpers.py +177 -0
  260. kaboo_workflows-0.9.0/tests/parse/test_interpolation.py +77 -0
  261. kaboo_workflows-0.9.0/tests/pipeline/__init__.py +0 -0
  262. kaboo_workflows-0.9.0/tests/pipeline/conftest.py +22 -0
  263. kaboo_workflows-0.9.0/tests/pipeline/fixtures/delegate.yaml +13 -0
  264. kaboo_workflows-0.9.0/tests/pipeline/fixtures/graph.yaml +17 -0
  265. kaboo_workflows-0.9.0/tests/pipeline/fixtures/minimal.yaml +4 -0
  266. kaboo_workflows-0.9.0/tests/pipeline/fixtures/multi_source_base.yaml +4 -0
  267. kaboo_workflows-0.9.0/tests/pipeline/fixtures/multi_source_extra.yaml +3 -0
  268. kaboo_workflows-0.9.0/tests/pipeline/fixtures/nested.yaml +21 -0
  269. kaboo_workflows-0.9.0/tests/pipeline/fixtures/swarm.yaml +12 -0
  270. kaboo_workflows-0.9.0/tests/pipeline/test_examples.py +58 -0
  271. kaboo_workflows-0.9.0/tests/pipeline/test_load.py +58 -0
  272. kaboo_workflows-0.9.0/tests/property/__init__.py +0 -0
  273. kaboo_workflows-0.9.0/tests/property/test_interpolation.py +44 -0
  274. kaboo_workflows-0.9.0/tests/property/test_merge.py +28 -0
  275. kaboo_workflows-0.9.0/tests/property/test_sanitize_keys.py +28 -0
  276. kaboo_workflows-0.9.0/tests/resolve/__init__.py +0 -0
  277. kaboo_workflows-0.9.0/tests/resolve/test_agents.py +73 -0
  278. kaboo_workflows-0.9.0/tests/resolve/test_delegation.py +31 -0
  279. kaboo_workflows-0.9.0/tests/resolve/test_history.py +127 -0
  280. kaboo_workflows-0.9.0/tests/resolve/test_hooks.py +50 -0
  281. kaboo_workflows-0.9.0/tests/resolve/test_import.py +41 -0
  282. kaboo_workflows-0.9.0/tests/resolve/test_mcp.py +19 -0
  283. kaboo_workflows-0.9.0/tests/resolve/test_models.py +31 -0
  284. kaboo_workflows-0.9.0/tests/resolve/test_multiagent_groups.py +221 -0
  285. kaboo_workflows-0.9.0/tests/resolve/test_orchestrations.py +100 -0
  286. kaboo_workflows-0.9.0/tests/resolve/test_session_manager.py +125 -0
  287. kaboo_workflows-0.9.0/tests/resolve/test_tools.py +87 -0
  288. kaboo_workflows-0.9.0/tests/runtime/__init__.py +0 -0
  289. kaboo_workflows-0.9.0/tests/runtime/test_consume_run.py +149 -0
  290. kaboo_workflows-0.9.0/tests/runtime/test_converters.py +131 -0
  291. kaboo_workflows-0.9.0/tests/runtime/test_event_publisher_callback.py +139 -0
  292. kaboo_workflows-0.9.0/tests/runtime/test_event_queue.py +78 -0
  293. kaboo_workflows-0.9.0/tests/runtime/test_event_stream.py +105 -0
  294. kaboo_workflows-0.9.0/tests/runtime/test_guards.py +135 -0
  295. kaboo_workflows-0.9.0/tests/runtime/test_history_hook.py +140 -0
  296. kaboo_workflows-0.9.0/tests/runtime/test_manifest.py +89 -0
  297. kaboo_workflows-0.9.0/tests/runtime/test_mcp_lifecycle.py +90 -0
  298. kaboo_workflows-0.9.0/tests/runtime/test_multiagent_adapter.py +206 -0
  299. kaboo_workflows-0.9.0/tests/runtime/test_renderers.py +97 -0
  300. kaboo_workflows-0.9.0/tests/runtime/test_result_extraction.py +96 -0
  301. kaboo_workflows-0.9.0/tests/runtime/test_stream_group_reactivation.py +98 -0
  302. kaboo_workflows-0.9.0/tests/runtime/test_transcript_balance.py +247 -0
  303. kaboo_workflows-0.9.0/tests/runtime/test_turn_id.py +56 -0
  304. kaboo_workflows-0.9.0/tests/schema/__init__.py +0 -0
  305. kaboo_workflows-0.9.0/tests/schema/test_planner.py +41 -0
  306. kaboo_workflows-0.9.0/tests/schema/test_references.py +101 -0
  307. kaboo_workflows-0.9.0/tests/schema/test_validation.py +95 -0
  308. kaboo_workflows-0.9.0/uv.lock +2507 -0
@@ -0,0 +1,124 @@
1
+ name: Bug Report
2
+ description: Report a bug in kaboo-workflows
3
+ title: "[BUG] "
4
+ labels: ["bug", "triage"]
5
+ assignees: []
6
+ body:
7
+ - type: markdown
8
+ attributes:
9
+ value: |
10
+ Thanks for taking the time to fill out this bug report for kaboo-workflows!
11
+
12
+ - type: checkboxes
13
+ id: checks
14
+ attributes:
15
+ label: Checks
16
+ options:
17
+ - label: I have updated to the latest version of kaboo-workflows
18
+ required: true
19
+ - label: I have checked the documentation and this is not expected behavior
20
+ required: true
21
+ - label: I have searched [./issues](./issues?q=) and there are no duplicates of my issue
22
+ required: true
23
+
24
+ - type: input
25
+ id: compose-version
26
+ attributes:
27
+ label: kaboo-workflows Version
28
+ description: Which version of kaboo-workflows are you using?
29
+ placeholder: e.g., 0.1.0
30
+ validations:
31
+ required: true
32
+
33
+ - type: input
34
+ id: strands-version
35
+ attributes:
36
+ label: strands-agents Version
37
+ description: Which version of strands-agents are you using?
38
+ placeholder: e.g., 1.32.0
39
+ validations:
40
+ required: true
41
+
42
+ - type: input
43
+ id: python-version
44
+ attributes:
45
+ label: Python Version
46
+ description: Which version of Python are you using?
47
+ placeholder: e.g., 3.11.5
48
+ validations:
49
+ required: true
50
+
51
+ - type: input
52
+ id: os
53
+ attributes:
54
+ label: Operating System
55
+ description: Which operating system are you using?
56
+ placeholder: e.g., Ubuntu 22.04 / Windows 11 / macOS 14
57
+ validations:
58
+ required: true
59
+
60
+ - type: dropdown
61
+ id: installation-method
62
+ attributes:
63
+ label: Installation Method
64
+ description: How did you install kaboo-workflows?
65
+ options:
66
+ - pip
67
+ - uv
68
+ - git clone
69
+ - other
70
+ validations:
71
+ required: true
72
+
73
+ - type: textarea
74
+ id: config-yaml
75
+ attributes:
76
+ label: Relevant YAML Config
77
+ description: Paste the relevant portion of your `config.yaml` (remove any secrets)
78
+ render: yaml
79
+
80
+ - type: textarea
81
+ id: steps-to-reproduce
82
+ attributes:
83
+ label: Steps to Reproduce
84
+ description: Detailed steps to reproduce the behavior
85
+ placeholder: |
86
+ 1. config.yaml and code snippet (minimal reproducible example)
87
+ 2. Run the command...
88
+ 3. See error...
89
+ validations:
90
+ required: true
91
+
92
+ - type: textarea
93
+ id: expected-behavior
94
+ attributes:
95
+ label: Expected Behavior
96
+ description: A clear description of what you expected to happen
97
+ validations:
98
+ required: true
99
+
100
+ - type: textarea
101
+ id: actual-behavior
102
+ attributes:
103
+ label: Actual Behavior
104
+ description: What actually happened — include full traceback if applicable
105
+ validations:
106
+ required: true
107
+
108
+ - type: textarea
109
+ id: additional-context
110
+ attributes:
111
+ label: Additional Context
112
+ description: Any other relevant information, logs, screenshots, etc.
113
+
114
+ - type: textarea
115
+ id: possible-solution
116
+ attributes:
117
+ label: Possible Solution
118
+ description: Optional — if you have suggestions on how to fix the bug
119
+
120
+ - type: input
121
+ id: related-issues
122
+ attributes:
123
+ label: Related Issues
124
+ description: Optional — link to related issues if applicable
@@ -0,0 +1,8 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: kaboo-workflows Discussions
4
+ url: https://github.com/gl-pgege/kaboo-workflows/discussions
5
+ about: Please ask and answer questions here
6
+ - name: kaboo-workflows Documentation
7
+ url: https://gl-pgege.github.io/kaboo-workflows/
8
+ about: Visit the documentation for help
@@ -0,0 +1,46 @@
1
+ name: Feature Request
2
+ description: Suggest a new feature or enhancement for kaboo-workflows
3
+ title: "[FEATURE] "
4
+ labels: ["enhancement", "triage"]
5
+ assignees: []
6
+ body:
7
+ - type: markdown
8
+ attributes:
9
+ value: |
10
+ Thanks for suggesting a new feature for kaboo-workflows!
11
+
12
+ - type: textarea
13
+ id: problem-statement
14
+ attributes:
15
+ label: Problem Statement
16
+ description: Describe the problem you're trying to solve. What is currently difficult or impossible to do?
17
+ placeholder: I would like kaboo-workflows to...
18
+ validations:
19
+ required: true
20
+
21
+ - type: textarea
22
+ id: proposed-solution
23
+ attributes:
24
+ label: Proposed Solution
25
+ description: Optional — describe your proposed solution. How would this feature work? Include example YAML or Python if helpful.
26
+
27
+ - type: textarea
28
+ id: use-case
29
+ attributes:
30
+ label: Use Case
31
+ description: Provide specific use cases for the feature. How would people use it?
32
+ placeholder: This would help with...
33
+ validations:
34
+ required: true
35
+
36
+ - type: textarea
37
+ id: alternatives
38
+ attributes:
39
+ label: Alternatives Considered
40
+ description: Optional — have you considered alternative approaches? What are their pros and cons?
41
+
42
+ - type: textarea
43
+ id: additional-context
44
+ attributes:
45
+ label: Additional Context
46
+ description: Any other context, screenshots, code examples, or references that might help understand the request.
@@ -0,0 +1,45 @@
1
+ ## Description
2
+
3
+ <!-- Provide a detailed description of the changes in this PR -->
4
+
5
+ ## Related Issues
6
+
7
+ <!-- Link to related issues using #issue-number format -->
8
+
9
+ ## Type of Change
10
+
11
+ <!-- Choose one and delete the rest -->
12
+
13
+ - Bug fix
14
+ - New feature
15
+ - Breaking change
16
+ - Documentation update
17
+ - Other (please describe):
18
+
19
+ ## YAML / API Impact
20
+
21
+ <!-- Does this change affect the config schema or the public Python API?
22
+ If yes, describe what changes and whether it's backwards-compatible. -->
23
+
24
+ ## Testing
25
+
26
+ How have you tested the change?
27
+
28
+ - [ ] I ran `uv run just check` (lint + type check)
29
+ - [ ] I ran `uv run just test` for overall testing
30
+ - [ ] I ran `uv run just test-docs` and `uv run mkdocs build --strict`
31
+ - [ ] I added or updated tests that prove my fix is effective or my feature works
32
+ - [ ] New public symbols have a docstring + an autodoc page (`docs/api/`)
33
+ - [ ] I verified existing examples in `examples/` still work
34
+ - [ ] I regenerated `llms.txt` / `llms-full.txt` if docs changed (`uv run just docs-llms`)
35
+
36
+ ## Checklist
37
+
38
+ - [ ] I have read the [CONTRIBUTING](CONTRIBUTING.md) document
39
+ - [ ] I have updated the documentation accordingly
40
+ - [ ] My changes generate no new warnings
41
+ - [ ] Any dependent changes have been merged and published
42
+
43
+ ---
44
+
45
+ By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
@@ -0,0 +1,20 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "pip"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "daily"
7
+ open-pull-requests-limit: 100
8
+ commit-message:
9
+ prefix: ci
10
+ groups:
11
+ dev-dependencies:
12
+ patterns:
13
+ - "pytest"
14
+ - package-ecosystem: "github-actions"
15
+ directory: "/"
16
+ schedule:
17
+ interval: "daily"
18
+ open-pull-requests-limit: 100
19
+ commit-message:
20
+ prefix: ci
@@ -0,0 +1,93 @@
1
+ # Continuous Integration — runs on every push and pull request.
2
+
3
+ name: CI
4
+
5
+ on:
6
+ push:
7
+ branches: ["main"]
8
+ pull_request:
9
+ branches: ["main"]
10
+ workflow_call:
11
+
12
+ concurrency:
13
+ group: ci-${{ github.ref }}
14
+ cancel-in-progress: true
15
+
16
+ permissions:
17
+ contents: read
18
+
19
+ jobs:
20
+ # ── Quality checks (format · lint · type · security) ──────────────────────
21
+ check:
22
+ name: Quality checks
23
+ runs-on: ubuntu-latest
24
+ permissions:
25
+ contents: read
26
+ steps:
27
+ - uses: actions/checkout@v7
28
+
29
+ - uses: astral-sh/setup-uv@v8.2.0
30
+ with:
31
+ enable-cache: true
32
+
33
+ - name: Install dev deps
34
+ run: uv sync --all-groups --all-extras
35
+
36
+ - name: Ruff — format check
37
+ run: uv run just check-format-ci
38
+
39
+ - name: Ruff — lint
40
+ run: uv run just check-code
41
+
42
+ - name: ty — type check
43
+ run: uv run just check-type
44
+
45
+ - name: Bandit — security scan
46
+ run: uv run just check-security
47
+
48
+ # ── Tests ──────────────────────────────────────────────────────────────────
49
+ test:
50
+ name: Tests (Python ${{ matrix.python-version }}, ${{ matrix.os }})
51
+ runs-on: ${{ matrix.os }}
52
+ permissions:
53
+ contents: read
54
+ strategy:
55
+ fail-fast: false
56
+ matrix:
57
+ os: [ubuntu-latest, windows-latest]
58
+ python-version: ["3.12", "3.13"]
59
+ steps:
60
+ - uses: actions/checkout@v7
61
+
62
+ - uses: astral-sh/setup-uv@v8.2.0
63
+ with:
64
+ enable-cache: true
65
+ python-version: ${{ matrix.python-version }}
66
+
67
+ - name: Install dev deps
68
+ run: uv sync --all-groups --all-extras
69
+
70
+ - name: pytest with coverage
71
+ run: uv run just test
72
+
73
+ # ── Docs (proven snippets + strict site build) ──────────────────────────────
74
+ docs:
75
+ name: Docs
76
+ runs-on: ubuntu-latest
77
+ permissions:
78
+ contents: read
79
+ steps:
80
+ - uses: actions/checkout@v7
81
+
82
+ - uses: astral-sh/setup-uv@v8.2.0
83
+ with:
84
+ enable-cache: true
85
+
86
+ - name: Install deps (dev + docs)
87
+ run: uv sync --all-groups --all-extras
88
+
89
+ - name: Execute doc snippets
90
+ run: uv run just test-docs
91
+
92
+ - name: Build docs (strict) + render sanity check
93
+ run: uv run just docs-check-render
@@ -0,0 +1,49 @@
1
+ # Build and deploy the MkDocs Material site to GitHub Pages.
2
+ #
3
+ # One-time manual step (a maintainer must do this once; the workflow cannot
4
+ # self-enable Pages): repo Settings -> Pages -> Source = "GitHub Actions".
5
+ name: Pages
6
+
7
+ on:
8
+ push:
9
+ branches: ["main"]
10
+ workflow_dispatch:
11
+
12
+ permissions:
13
+ contents: read
14
+ pages: write
15
+ id-token: write
16
+
17
+ concurrency:
18
+ group: pages
19
+ cancel-in-progress: true
20
+
21
+ jobs:
22
+ build:
23
+ runs-on: ubuntu-latest
24
+ steps:
25
+ - uses: actions/checkout@v7
26
+
27
+ - uses: astral-sh/setup-uv@v8.2.0
28
+ with:
29
+ enable-cache: true
30
+
31
+ - name: Install docs dependencies
32
+ run: uv sync --group docs
33
+
34
+ - name: Build (strict)
35
+ run: uv run mkdocs build --strict
36
+
37
+ - uses: actions/upload-pages-artifact@v3
38
+ with:
39
+ path: site
40
+
41
+ deploy:
42
+ needs: build
43
+ runs-on: ubuntu-latest
44
+ environment:
45
+ name: github-pages
46
+ url: ${{ steps.deployment.outputs.page_url }}
47
+ steps:
48
+ - id: deployment
49
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,123 @@
1
+ # Publish to PyPI — triggered by pushing a version tag (v*.*.*).
2
+ # Uses Trusted Publishing (OIDC — no API tokens required).
3
+ #
4
+ # One-time setup on PyPI:
5
+ # 1. Create a project for "kaboo-workflows" at https://pypi.org/manage/account/publishing/
6
+ # 2. Configure Trusted Publisher:
7
+ # - Owner: gl-pgege
8
+ # - Repository: kaboo-workflows
9
+ # - Workflow: publish.yml
10
+ # - Environment: release
11
+
12
+ name: Publish
13
+
14
+ on:
15
+ push:
16
+ tags:
17
+ - "v[0-9]+.[0-9]+.[0-9]+"
18
+ - "v[0-9]+.[0-9]+.[0-9]+.post*"
19
+ - "v[0-9]+.[0-9]+.[0-9]+rc*"
20
+
21
+ permissions:
22
+ contents: read
23
+
24
+ jobs:
25
+ # ── Gate: run CI checks before publishing ─────────────────────────────────
26
+ ci:
27
+ uses: ./.github/workflows/ci.yml
28
+ permissions:
29
+ contents: read
30
+
31
+ # ── Build distribution package ────────────────────────────────────────────
32
+ # Pure Python package — one wheel (py3-none-any) runs on every OS and arch.
33
+ # No need for cibuildwheel or a platform matrix.
34
+ build:
35
+ name: Build
36
+ needs: ci
37
+ runs-on: ubuntu-latest
38
+ permissions:
39
+ contents: read
40
+ steps:
41
+ - uses: actions/checkout@v7
42
+
43
+ - uses: astral-sh/setup-uv@v8.2.0
44
+ with:
45
+ enable-cache: true
46
+
47
+ - name: Build wheel + sdist
48
+ run: uv build --out-dir dist/
49
+
50
+ - name: Upload build artifacts
51
+ uses: actions/upload-artifact@v7
52
+ with:
53
+ name: dist
54
+ path: dist/
55
+ if-no-files-found: error
56
+
57
+ # ── Publish to PyPI ───────────────────────────────────────────────────────
58
+ publish:
59
+ name: Publish to PyPI
60
+ needs: build
61
+ runs-on: ubuntu-latest
62
+ environment: release
63
+ permissions:
64
+ id-token: write
65
+ steps:
66
+ - name: Download build artifacts
67
+ uses: actions/download-artifact@v8
68
+ with:
69
+ name: dist
70
+ path: dist/
71
+
72
+ - name: Publish to PyPI
73
+ uses: pypa/gh-action-pypi-publish@release/v1
74
+ with:
75
+ packages-dir: dist/
76
+
77
+ # ── Create GitHub Release with CHANGELOG notes ────────────────────────────
78
+ github-release:
79
+ name: GitHub Release
80
+ needs: publish
81
+ runs-on: ubuntu-latest
82
+ permissions:
83
+ contents: write
84
+ steps:
85
+ - uses: actions/checkout@v7
86
+ with:
87
+ fetch-depth: 0
88
+
89
+ - uses: actions/setup-python@v6
90
+ with:
91
+ python-version: "3.x"
92
+
93
+ - name: Extract changelog for this version
94
+ id: changelog
95
+ run: |
96
+ VERSION="${GITHUB_REF_NAME#v}"
97
+ NOTES=$(python -c "
98
+ import re, pathlib
99
+ text = pathlib.Path('CHANGELOG.md').read_text()
100
+ match = re.search(
101
+ r'(?:^|\n)(## v?' + re.escape('$VERSION') + r'[^\n]*\n.*?)(?=\n## |\Z)',
102
+ text, re.DOTALL
103
+ )
104
+ print(match.group(1).strip() if match else 'See CHANGELOG.md for details.')
105
+ " VERSION="$VERSION")
106
+ {
107
+ echo 'notes<<EOF'
108
+ echo "$NOTES"
109
+ echo EOF
110
+ } >> "$GITHUB_OUTPUT"
111
+
112
+ - name: Download all artifacts
113
+ uses: actions/download-artifact@v8
114
+ with:
115
+ path: dist-all/
116
+ merge-multiple: true
117
+
118
+ - name: Create GitHub Release
119
+ uses: softprops/action-gh-release@v3
120
+ with:
121
+ body: ${{ steps.changelog.outputs.notes }}
122
+ files: dist-all/**/*
123
+ prerelease: ${{ contains(github.ref_name, 'rc') || contains(github.ref_name, 'alpha') || contains(github.ref_name, 'beta') }}
@@ -0,0 +1,63 @@
1
+ .env
2
+ .claude
3
+ .kiro/specs
4
+ .sessions
5
+ .converter
6
+ .hypothesis
7
+
8
+ # Ignore Python cache and compiled files
9
+ __pycache__/
10
+ *.py[cod]
11
+ *.pyo
12
+ *.pyd
13
+ .ruff_cache
14
+
15
+ # Ignore virtual environments
16
+ venv/
17
+ env/
18
+ .venv/
19
+ .env/
20
+
21
+ # Ignore Jupyter Notebook checkpoints
22
+ .ipynb_checkpoints/
23
+
24
+ # Existing rules
25
+ python/*
26
+ .req.txt
27
+ *.egg-info/
28
+ dist/
29
+ build/
30
+ requirements.txt
31
+ *.log
32
+ .logs/
33
+
34
+ # Pytest cache
35
+ .pytest_cache/
36
+ .coverage*
37
+ htmlcov/
38
+ .tox/
39
+ .nox/
40
+
41
+ # VS Code settings
42
+ .vscode/
43
+
44
+ # Visual Studio files
45
+ *.user
46
+ *.suo
47
+ *.userosscache
48
+ *.sln.docstates
49
+
50
+ # JetBrains IDEs (PyCharm, IntelliJ, etc.)
51
+ .idea/
52
+ *.iml
53
+
54
+ # Sublime Text
55
+ *.sublime-workspace
56
+ *.sublime-project
57
+
58
+ # MacOS and Windows system files
59
+ .DS_Store
60
+ Thumbs.db
61
+
62
+ # MkDocs site build output
63
+ /site/