geny-executor 0.26.0__tar.gz → 0.26.2__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 (322) hide show
  1. {geny_executor-0.26.0 → geny_executor-0.26.2}/PKG-INFO +1 -1
  2. {geny_executor-0.26.0 → geny_executor-0.26.2}/pyproject.toml +1 -1
  3. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/__init__.py +1 -1
  4. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/core/pipeline.py +27 -0
  5. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/test_adhoc_providers.py +47 -0
  6. {geny_executor-0.26.0 → geny_executor-0.26.2}/.gitignore +0 -0
  7. {geny_executor-0.26.0 → geny_executor-0.26.2}/LICENSE +0 -0
  8. {geny_executor-0.26.0 → geny_executor-0.26.2}/README.md +0 -0
  9. {geny_executor-0.26.0 → geny_executor-0.26.2}/README_ko.md +0 -0
  10. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/core/__init__.py +0 -0
  11. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/core/artifact.py +0 -0
  12. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/core/builder.py +0 -0
  13. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/core/config.py +0 -0
  14. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/core/diff.py +0 -0
  15. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/core/environment.py +0 -0
  16. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/core/errors.py +0 -0
  17. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/core/introspection.py +0 -0
  18. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/core/mutation.py +0 -0
  19. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/core/presets.py +0 -0
  20. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/core/result.py +0 -0
  21. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/core/schema.py +0 -0
  22. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/core/slot.py +0 -0
  23. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/core/snapshot.py +0 -0
  24. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/core/stage.py +0 -0
  25. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/core/state.py +0 -0
  26. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/events/__init__.py +0 -0
  27. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/events/bus.py +0 -0
  28. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/events/types.py +0 -0
  29. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/history/__init__.py +0 -0
  30. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/history/ab_test.py +0 -0
  31. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/history/cost.py +0 -0
  32. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/history/models.py +0 -0
  33. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/history/monitor.py +0 -0
  34. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/history/replay.py +0 -0
  35. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/history/service.py +0 -0
  36. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/__init__.py +0 -0
  37. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/composite/__init__.py +0 -0
  38. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/composite/provider.py +0 -0
  39. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/composite/routing.py +0 -0
  40. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/composite/snapshot.py +0 -0
  41. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/embedding/__init__.py +0 -0
  42. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/embedding/client.py +0 -0
  43. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/embedding/google.py +0 -0
  44. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/embedding/local.py +0 -0
  45. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/embedding/openai.py +0 -0
  46. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/embedding/registry.py +0 -0
  47. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/embedding/voyage.py +0 -0
  48. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/factory.py +0 -0
  49. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/persistence.py +0 -0
  50. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/presets.py +0 -0
  51. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/provider.py +0 -0
  52. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/__init__.py +0 -0
  53. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/ephemeral.py +0 -0
  54. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/file/__init__.py +0 -0
  55. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/file/config.py +0 -0
  56. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/file/frontmatter.py +0 -0
  57. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/file/index_store.py +0 -0
  58. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/file/layout.py +0 -0
  59. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/file/ltm_store.py +0 -0
  60. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/file/notes_store.py +0 -0
  61. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/file/provider.py +0 -0
  62. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/file/snapshot.py +0 -0
  63. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/file/stm_store.py +0 -0
  64. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/file/timezone.py +0 -0
  65. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/file/vector_store.py +0 -0
  66. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/sql/__init__.py +0 -0
  67. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/sql/config.py +0 -0
  68. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/sql/connection.py +0 -0
  69. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/sql/index_store.py +0 -0
  70. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/sql/ltm_store.py +0 -0
  71. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/sql/notes_store.py +0 -0
  72. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/sql/provider.py +0 -0
  73. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/sql/schema.py +0 -0
  74. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/sql/snapshot.py +0 -0
  75. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/sql/stm_store.py +0 -0
  76. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/providers/sql/vector_store.py +0 -0
  77. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/retriever.py +0 -0
  78. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/memory/strategy.py +0 -0
  79. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/py.typed +0 -0
  80. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/security/__init__.py +0 -0
  81. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/security/import_validator.py +0 -0
  82. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/security/script_sandbox.py +0 -0
  83. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/session/__init__.py +0 -0
  84. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/session/freshness.py +0 -0
  85. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/session/manager.py +0 -0
  86. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/session/persistence.py +0 -0
  87. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/session/session.py +0 -0
  88. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/__init__.py +0 -0
  89. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s01_input/__init__.py +0 -0
  90. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s01_input/artifact/__init__.py +0 -0
  91. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s01_input/artifact/default/__init__.py +0 -0
  92. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s01_input/artifact/default/normalizers.py +0 -0
  93. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s01_input/artifact/default/stage.py +0 -0
  94. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s01_input/artifact/default/validators.py +0 -0
  95. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s01_input/interface.py +0 -0
  96. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s01_input/normalizers.py +0 -0
  97. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s01_input/stage.py +0 -0
  98. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s01_input/types.py +0 -0
  99. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s01_input/validators.py +0 -0
  100. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s02_context/__init__.py +0 -0
  101. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s02_context/artifact/__init__.py +0 -0
  102. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s02_context/artifact/default/__init__.py +0 -0
  103. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s02_context/artifact/default/compactors.py +0 -0
  104. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s02_context/artifact/default/retrievers.py +0 -0
  105. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s02_context/artifact/default/stage.py +0 -0
  106. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s02_context/artifact/default/strategies.py +0 -0
  107. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s02_context/compactors.py +0 -0
  108. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s02_context/interface.py +0 -0
  109. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s02_context/retrievers.py +0 -0
  110. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s02_context/stage.py +0 -0
  111. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s02_context/strategies.py +0 -0
  112. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s02_context/types.py +0 -0
  113. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s03_system/__init__.py +0 -0
  114. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s03_system/artifact/__init__.py +0 -0
  115. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s03_system/artifact/default/__init__.py +0 -0
  116. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s03_system/artifact/default/builders.py +0 -0
  117. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s03_system/artifact/default/stage.py +0 -0
  118. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s03_system/builders.py +0 -0
  119. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s03_system/interface.py +0 -0
  120. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s03_system/stage.py +0 -0
  121. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s04_guard/__init__.py +0 -0
  122. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s04_guard/artifact/__init__.py +0 -0
  123. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s04_guard/artifact/default/__init__.py +0 -0
  124. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s04_guard/artifact/default/guards.py +0 -0
  125. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s04_guard/artifact/default/stage.py +0 -0
  126. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s04_guard/guards.py +0 -0
  127. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s04_guard/interface.py +0 -0
  128. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s04_guard/stage.py +0 -0
  129. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s04_guard/types.py +0 -0
  130. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s05_cache/__init__.py +0 -0
  131. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s05_cache/artifact/__init__.py +0 -0
  132. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s05_cache/artifact/default/__init__.py +0 -0
  133. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s05_cache/artifact/default/stage.py +0 -0
  134. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s05_cache/artifact/default/strategies.py +0 -0
  135. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s05_cache/interface.py +0 -0
  136. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s05_cache/stage.py +0 -0
  137. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s05_cache/strategies.py +0 -0
  138. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s06_api/__init__.py +0 -0
  139. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s06_api/_translate.py +0 -0
  140. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s06_api/artifact/__init__.py +0 -0
  141. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s06_api/artifact/default/__init__.py +0 -0
  142. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s06_api/artifact/default/providers.py +0 -0
  143. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s06_api/artifact/default/retry.py +0 -0
  144. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s06_api/artifact/default/stage.py +0 -0
  145. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s06_api/artifact/google/__init__.py +0 -0
  146. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s06_api/artifact/google/providers.py +0 -0
  147. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s06_api/artifact/openai/__init__.py +0 -0
  148. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s06_api/artifact/openai/providers.py +0 -0
  149. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s06_api/interface.py +0 -0
  150. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s06_api/providers.py +0 -0
  151. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s06_api/retry.py +0 -0
  152. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s06_api/stage.py +0 -0
  153. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s06_api/types.py +0 -0
  154. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s07_token/__init__.py +0 -0
  155. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s07_token/artifact/__init__.py +0 -0
  156. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s07_token/artifact/default/__init__.py +0 -0
  157. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s07_token/artifact/default/pricing.py +0 -0
  158. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s07_token/artifact/default/stage.py +0 -0
  159. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s07_token/artifact/default/trackers.py +0 -0
  160. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s07_token/interface.py +0 -0
  161. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s07_token/pricing.py +0 -0
  162. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s07_token/stage.py +0 -0
  163. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s07_token/trackers.py +0 -0
  164. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s08_think/__init__.py +0 -0
  165. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s08_think/artifact/default/__init__.py +0 -0
  166. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s08_think/artifact/default/processors.py +0 -0
  167. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s08_think/artifact/default/stage.py +0 -0
  168. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s08_think/interface.py +0 -0
  169. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s08_think/processors.py +0 -0
  170. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s08_think/stage.py +0 -0
  171. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s08_think/types.py +0 -0
  172. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s09_parse/__init__.py +0 -0
  173. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s09_parse/artifact/default/__init__.py +0 -0
  174. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s09_parse/artifact/default/parsers.py +0 -0
  175. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s09_parse/artifact/default/signals.py +0 -0
  176. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s09_parse/artifact/default/stage.py +0 -0
  177. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s09_parse/interface.py +0 -0
  178. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s09_parse/parsers.py +0 -0
  179. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s09_parse/signals.py +0 -0
  180. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s09_parse/stage.py +0 -0
  181. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s09_parse/types.py +0 -0
  182. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s10_tool/__init__.py +0 -0
  183. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s10_tool/artifact/__init__.py +0 -0
  184. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s10_tool/artifact/default/__init__.py +0 -0
  185. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s10_tool/artifact/default/executors.py +0 -0
  186. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s10_tool/artifact/default/routers.py +0 -0
  187. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s10_tool/artifact/default/stage.py +0 -0
  188. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s10_tool/executors.py +0 -0
  189. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s10_tool/interface.py +0 -0
  190. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s10_tool/routers.py +0 -0
  191. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s10_tool/stage.py +0 -0
  192. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s11_agent/__init__.py +0 -0
  193. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s11_agent/artifact/__init__.py +0 -0
  194. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s11_agent/artifact/default/__init__.py +0 -0
  195. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s11_agent/artifact/default/orchestrators.py +0 -0
  196. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s11_agent/artifact/default/stage.py +0 -0
  197. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s11_agent/interface.py +0 -0
  198. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s11_agent/orchestrators.py +0 -0
  199. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s11_agent/stage.py +0 -0
  200. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s11_agent/types.py +0 -0
  201. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s12_evaluate/__init__.py +0 -0
  202. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s12_evaluate/artifact/__init__.py +0 -0
  203. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s12_evaluate/artifact/adaptive/__init__.py +0 -0
  204. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s12_evaluate/artifact/adaptive/strategy.py +0 -0
  205. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s12_evaluate/artifact/default/__init__.py +0 -0
  206. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s12_evaluate/artifact/default/stage.py +0 -0
  207. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s12_evaluate/artifact/default/strategies.py +0 -0
  208. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s12_evaluate/interface.py +0 -0
  209. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s12_evaluate/stage.py +0 -0
  210. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s12_evaluate/strategies.py +0 -0
  211. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s12_evaluate/types.py +0 -0
  212. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s13_loop/__init__.py +0 -0
  213. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s13_loop/artifact/__init__.py +0 -0
  214. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s13_loop/artifact/default/__init__.py +0 -0
  215. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s13_loop/artifact/default/controllers.py +0 -0
  216. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s13_loop/artifact/default/stage.py +0 -0
  217. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s13_loop/controllers.py +0 -0
  218. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s13_loop/interface.py +0 -0
  219. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s13_loop/stage.py +0 -0
  220. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s14_emit/__init__.py +0 -0
  221. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s14_emit/artifact/__init__.py +0 -0
  222. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s14_emit/artifact/default/__init__.py +0 -0
  223. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s14_emit/artifact/default/emitters.py +0 -0
  224. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s14_emit/artifact/default/stage.py +0 -0
  225. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s14_emit/emitters.py +0 -0
  226. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s14_emit/interface.py +0 -0
  227. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s14_emit/stage.py +0 -0
  228. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s14_emit/types.py +0 -0
  229. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s15_memory/__init__.py +0 -0
  230. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s15_memory/artifact/__init__.py +0 -0
  231. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s15_memory/artifact/default/__init__.py +0 -0
  232. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s15_memory/artifact/default/persistence.py +0 -0
  233. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s15_memory/artifact/default/stage.py +0 -0
  234. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s15_memory/artifact/default/strategies.py +0 -0
  235. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s15_memory/interface.py +0 -0
  236. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s15_memory/persistence.py +0 -0
  237. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s15_memory/stage.py +0 -0
  238. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s15_memory/strategies.py +0 -0
  239. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s16_yield/__init__.py +0 -0
  240. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s16_yield/artifact/__init__.py +0 -0
  241. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s16_yield/artifact/default/__init__.py +0 -0
  242. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s16_yield/artifact/default/formatters.py +0 -0
  243. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s16_yield/artifact/default/stage.py +0 -0
  244. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s16_yield/formatters.py +0 -0
  245. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s16_yield/interface.py +0 -0
  246. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/stages/s16_yield/stage.py +0 -0
  247. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/tools/__init__.py +0 -0
  248. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/tools/adhoc.py +0 -0
  249. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/tools/base.py +0 -0
  250. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/tools/built_in/__init__.py +0 -0
  251. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/tools/built_in/_path_guard.py +0 -0
  252. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/tools/built_in/bash_tool.py +0 -0
  253. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/tools/built_in/edit_tool.py +0 -0
  254. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/tools/built_in/glob_tool.py +0 -0
  255. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/tools/built_in/grep_tool.py +0 -0
  256. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/tools/built_in/read_tool.py +0 -0
  257. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/tools/built_in/write_tool.py +0 -0
  258. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/tools/composer.py +0 -0
  259. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/tools/errors.py +0 -0
  260. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/tools/mcp/__init__.py +0 -0
  261. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/tools/mcp/adapter.py +0 -0
  262. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/tools/mcp/errors.py +0 -0
  263. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/tools/mcp/manager.py +0 -0
  264. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/tools/providers.py +0 -0
  265. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/tools/registry.py +0 -0
  266. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/tools/sandbox.py +0 -0
  267. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/tools/scope.py +0 -0
  268. {geny_executor-0.26.0 → geny_executor-0.26.2}/src/geny_executor/tools/stage_binding.py +0 -0
  269. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/__init__.py +0 -0
  270. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/completeness/__init__.py +0 -0
  271. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/completeness/conftest.py +0 -0
  272. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/completeness/fixtures/__init__.py +0 -0
  273. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/completeness/fixtures/adapter/__init__.py +0 -0
  274. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/completeness/fixtures/adapter/adapter.py +0 -0
  275. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/completeness/test_c1_six_layer_retrieval.py +0 -0
  276. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/completeness/test_c2_execution_recording.py +0 -0
  277. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/completeness/test_c3_reflection_and_promotion.py +0 -0
  278. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/completeness/test_c4_rest_coverage.py +0 -0
  279. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/completeness/test_c5_embedding_migration.py +0 -0
  280. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/completeness/test_c6_session_resume.py +0 -0
  281. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/completeness/test_c7_adapter_parity.py +0 -0
  282. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/completeness/test_spec_loads.py +0 -0
  283. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/contract/__init__.py +0 -0
  284. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/contract/memory_provider_contract.py +0 -0
  285. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/contract/test_embedding_clients.py +0 -0
  286. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/contract/test_memory_provider_composite.py +0 -0
  287. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/contract/test_memory_provider_composite_routing.py +0 -0
  288. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/contract/test_memory_provider_ephemeral.py +0 -0
  289. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/contract/test_memory_provider_factory.py +0 -0
  290. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/contract/test_memory_provider_file.py +0 -0
  291. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/contract/test_memory_provider_file_layout.py +0 -0
  292. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/contract/test_memory_provider_file_vector.py +0 -0
  293. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/contract/test_memory_provider_sql.py +0 -0
  294. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/contract/test_memory_provider_sql_dialect.py +0 -0
  295. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/contract/test_memory_provider_sql_schema.py +0 -0
  296. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/contract/test_memory_provider_sql_vector.py +0 -0
  297. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/contract/test_stage_uniformity.py +0 -0
  298. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/integration/test_integration.py +0 -0
  299. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/__init__.py +0 -0
  300. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/test_artifact_metadata.py +0 -0
  301. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/test_binary_classify_manifest.py +0 -0
  302. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/test_geny_memory.py +0 -0
  303. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/test_introspection.py +0 -0
  304. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/test_manifest_v2.py +0 -0
  305. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/test_mcp_lifecycle.py +0 -0
  306. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/test_mcp_namespace.py +0 -0
  307. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/test_multi_provider.py +0 -0
  308. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/test_phase1_foundation.py +0 -0
  309. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/test_phase1_pipeline.py +0 -0
  310. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/test_phase2_agent_loop.py +0 -0
  311. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/test_phase2_tools.py +0 -0
  312. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/test_phase3_context_memory.py +0 -0
  313. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/test_phase4_think_agent_evaluate.py +0 -0
  314. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/test_phase5_emit_presets_mcp.py +0 -0
  315. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/test_phase5_environment.py +0 -0
  316. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/test_phase6_history.py +0 -0
  317. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/test_phase6_integration.py +0 -0
  318. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/test_phase7_security.py +0 -0
  319. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/test_pipeline_attach_runtime.py +0 -0
  320. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/test_pipeline_from_manifest.py +0 -0
  321. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/test_tool_call_events.py +0 -0
  322. {geny_executor-0.26.0 → geny_executor-0.26.2}/tests/unit/test_tool_errors.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: geny-executor
3
- Version: 0.26.0
3
+ Version: 0.26.2
4
4
  Summary: Harness-engineered agent pipeline library with 16-stage dual-abstraction architecture, built on the Anthropic API
5
5
  Project-URL: Homepage, https://github.com/CocoRoF/geny-executor
6
6
  Project-URL: Repository, https://github.com/CocoRoF/geny-executor
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "geny-executor"
7
- version = "0.26.0"
7
+ version = "0.26.2"
8
8
  description = "Harness-engineered agent pipeline library with 16-stage dual-abstraction architecture, built on the Anthropic API"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -84,7 +84,7 @@ from geny_executor.memory import (
84
84
  GenyPresets,
85
85
  )
86
86
 
87
- __version__ = "0.26.0"
87
+ __version__ = "0.26.2"
88
88
 
89
89
  __all__ = [
90
90
  # Core
@@ -317,6 +317,33 @@ class Pipeline:
317
317
  _register_external_tools(manifest, registry, adhoc_providers)
318
318
  pipeline._tool_registry = registry
319
319
 
320
+ # Stages that hold a tool-registry reference are instantiated at
321
+ # line 287 *before* `_register_external_tools` populates the
322
+ # shared registry. Unless we rebind post-hoc, those stages keep
323
+ # their construction-time references (None for SystemStage; a
324
+ # freshly-allocated empty `ToolRegistry()` for ToolStage) and
325
+ # never see the populated tools at execute time.
326
+ #
327
+ # SystemStage (``_tool_registry``): builds ``state.tools`` from
328
+ # the registry; a stale reference leaves ``state.tools`` empty
329
+ # so the API stage sends ``tools=None`` to Anthropic.
330
+ # ToolStage (``_registry``): the router looks up tool instances
331
+ # here; a stale empty reference makes every tool call resolve
332
+ # to ``unknown_tool`` even though the LLM was shown the schema.
333
+ #
334
+ # Both are rebound to the shared ``registry``. Callers that
335
+ # wired their own registry explicitly are left alone: for
336
+ # SystemStage, a non-None existing reference wins; for
337
+ # ToolStage, if the stage already holds the same object as
338
+ # ``registry`` (as happens when the caller passed it via the
339
+ # outer ``tool_registry`` kwarg), no rebind is needed.
340
+ for stage in pipeline._stages.values():
341
+ if hasattr(stage, "_tool_registry") and getattr(stage, "_tool_registry", None) is None:
342
+ stage._tool_registry = registry
343
+ if getattr(stage, "name", None) == "tool" and hasattr(stage, "_registry"):
344
+ if getattr(stage, "_registry") is not registry:
345
+ stage._registry = registry
346
+
320
347
  return pipeline
321
348
 
322
349
  @classmethod
@@ -221,6 +221,53 @@ class TestFromManifestExternalProviders:
221
221
  Pipeline.from_manifest(manifest, adhoc_providers=[provider], tool_registry=registry)
222
222
  assert set(registry.list_names()) == {"builtin", "alpha"}
223
223
 
224
+ def test_system_stage_sees_populated_registry_after_from_manifest(self):
225
+ """Regression: a manifest with s03_system + external tools must
226
+ leave SystemStage._tool_registry pointing at the populated
227
+ registry, not at None. Otherwise state.tools stays empty, the
228
+ LLM never learns about the tools, and the model falls back to
229
+ emitting XML-style tool calls as plain text."""
230
+ from geny_executor.core.environment import StageManifestEntry
231
+
232
+ entries = [StageManifestEntry(order=3, name="system")]
233
+ manifest = EnvironmentManifest(
234
+ stages=[e.to_dict() for e in entries],
235
+ tools=ToolsSnapshot(external=["alpha"]),
236
+ )
237
+ provider = _DictProvider({"alpha": _NamedTool("alpha")})
238
+ pipeline = Pipeline.from_manifest(manifest, adhoc_providers=[provider])
239
+
240
+ system_stage = pipeline.get_stage(3)
241
+ assert system_stage is not None
242
+ assert system_stage._tool_registry is pipeline.tool_registry
243
+ assert system_stage._tool_registry.get("alpha") is not None
244
+
245
+ def test_tool_stage_sees_populated_registry_after_from_manifest(self):
246
+ """Regression: a manifest with s10_tool + external tools must
247
+ leave ToolStage._registry pointing at the same populated
248
+ registry the pipeline exposes. ToolStage's __init__ defaults
249
+ to a freshly-allocated empty ToolRegistry(); without post-hoc
250
+ rebinding, the router's lookup returns `unknown_tool` for
251
+ every LLM-emitted tool_use block — the call fails instantly
252
+ (0 ms) even though the schema was delivered to the model."""
253
+ from geny_executor.core.environment import StageManifestEntry
254
+
255
+ entries = [
256
+ StageManifestEntry(order=3, name="system"),
257
+ StageManifestEntry(order=10, name="tool"),
258
+ ]
259
+ manifest = EnvironmentManifest(
260
+ stages=[e.to_dict() for e in entries],
261
+ tools=ToolsSnapshot(external=["alpha"]),
262
+ )
263
+ provider = _DictProvider({"alpha": _NamedTool("alpha")})
264
+ pipeline = Pipeline.from_manifest(manifest, adhoc_providers=[provider])
265
+
266
+ tool_stage = pipeline.get_stage(10)
267
+ assert tool_stage is not None
268
+ assert tool_stage._registry is pipeline.tool_registry
269
+ assert tool_stage._registry.get("alpha") is not None
270
+
224
271
 
225
272
  # ══════════════════════════════════════════════════════════
226
273
  # Pipeline.from_manifest_async — external + MCP coexist
File without changes
File without changes