geny-executor 2.41.0__tar.gz → 2.42.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 (752) hide show
  1. {geny_executor-2.41.0 → geny_executor-2.42.0}/PKG-INFO +1 -1
  2. {geny_executor-2.41.0 → geny_executor-2.42.0}/pyproject.toml +1 -1
  3. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/core/environment.py +15 -0
  4. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/core/pipeline.py +95 -4
  5. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s03_system/artifact/default/stage.py +13 -3
  6. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s10_tool/artifact/default/stage.py +3 -0
  7. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/base.py +6 -0
  8. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/tool_search_tool.py +115 -44
  9. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/provider.py +11 -2
  10. geny_executor-2.42.0/src/geny_executor/tools/registry.py +225 -0
  11. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_adhoc_providers.py +15 -4
  12. geny_executor-2.42.0/tests/unit/test_core_deferred_tools.py +463 -0
  13. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_mcp_lifecycle.py +6 -3
  14. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_skill_tool.py +3 -1
  15. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_tool_provider.py +3 -2
  16. geny_executor-2.41.0/src/geny_executor/tools/registry.py +0 -101
  17. {geny_executor-2.41.0 → geny_executor-2.42.0}/.gitignore +0 -0
  18. {geny_executor-2.41.0 → geny_executor-2.42.0}/LICENSE +0 -0
  19. {geny_executor-2.41.0 → geny_executor-2.42.0}/NOTICE +0 -0
  20. {geny_executor-2.41.0 → geny_executor-2.42.0}/README.md +0 -0
  21. {geny_executor-2.41.0 → geny_executor-2.42.0}/README_ko.md +0 -0
  22. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/__init__.py +0 -0
  23. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/channels/__init__.py +0 -0
  24. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/channels/built_in.py +0 -0
  25. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/channels/factory.py +0 -0
  26. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/channels/send_message_channel.py +0 -0
  27. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/channels/user_file_channel.py +0 -0
  28. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/core/__init__.py +0 -0
  29. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/core/artifact.py +0 -0
  30. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/core/builder.py +0 -0
  31. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/core/compaction.py +0 -0
  32. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/core/config.py +0 -0
  33. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/core/diff.py +0 -0
  34. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/core/environment_control.py +0 -0
  35. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/core/errors.py +0 -0
  36. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/core/introspection.py +0 -0
  37. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/core/manifest_factory.py +0 -0
  38. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/core/mutation.py +0 -0
  39. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/core/presets.py +0 -0
  40. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/core/result.py +0 -0
  41. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/core/schema.py +0 -0
  42. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/core/shared_keys.py +0 -0
  43. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/core/slot.py +0 -0
  44. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/core/snapshot.py +0 -0
  45. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/core/stage.py +0 -0
  46. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/core/state.py +0 -0
  47. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/core/token_estimate.py +0 -0
  48. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/cron/__init__.py +0 -0
  49. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/cron/runner.py +0 -0
  50. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/cron/store_abc.py +0 -0
  51. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/cron/store_impl/__init__.py +0 -0
  52. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/cron/store_impl/file_backed.py +0 -0
  53. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/cron/store_impl/in_memory.py +0 -0
  54. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/cron/types.py +0 -0
  55. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/events/__init__.py +0 -0
  56. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/events/bus.py +0 -0
  57. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/events/catalog.py +0 -0
  58. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/events/types.py +0 -0
  59. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/gateway/__init__.py +0 -0
  60. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/gateway/adapter.py +0 -0
  61. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/gateway/discord.py +0 -0
  62. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/gateway/factory.py +0 -0
  63. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/gateway/runner.py +0 -0
  64. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/gateway/slack.py +0 -0
  65. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/gateway/telegram.py +0 -0
  66. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/gateway/types.py +0 -0
  67. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/gateway/ws_base.py +0 -0
  68. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/history/__init__.py +0 -0
  69. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/history/ab_test.py +0 -0
  70. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/history/cost.py +0 -0
  71. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/history/models.py +0 -0
  72. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/history/monitor.py +0 -0
  73. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/history/replay.py +0 -0
  74. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/history/service.py +0 -0
  75. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/hooks/__init__.py +0 -0
  76. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/hooks/config.py +0 -0
  77. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/hooks/events.py +0 -0
  78. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/hooks/runner.py +0 -0
  79. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/llm_client/__init__.py +0 -0
  80. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/llm_client/_cli_runtime.py +0 -0
  81. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/llm_client/anthropic.py +0 -0
  82. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/llm_client/base.py +0 -0
  83. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/llm_client/claude_code.py +0 -0
  84. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/llm_client/credentials.py +0 -0
  85. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/llm_client/google.py +0 -0
  86. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/llm_client/local_probe.py +0 -0
  87. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/llm_client/model_discovery.py +0 -0
  88. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/llm_client/openai.py +0 -0
  89. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/llm_client/openai_compatible.py +0 -0
  90. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/llm_client/profiles.py +0 -0
  91. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/llm_client/registry.py +0 -0
  92. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/llm_client/translators/__init__.py +0 -0
  93. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/llm_client/translators/_canonical.py +0 -0
  94. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/llm_client/translators/_cli.py +0 -0
  95. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/llm_client/types.py +0 -0
  96. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/llm_client/vllm.py +0 -0
  97. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/__init__.py +0 -0
  98. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/_locks.py +0 -0
  99. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/_progressive.py +0 -0
  100. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/composite/__init__.py +0 -0
  101. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/composite/handles.py +0 -0
  102. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/composite/provider.py +0 -0
  103. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/composite/routing.py +0 -0
  104. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/composite/snapshot.py +0 -0
  105. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/embedding/__init__.py +0 -0
  106. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/embedding/client.py +0 -0
  107. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/embedding/google.py +0 -0
  108. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/embedding/local.py +0 -0
  109. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/embedding/openai.py +0 -0
  110. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/embedding/registry.py +0 -0
  111. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/embedding/voyage.py +0 -0
  112. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/factory.py +0 -0
  113. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/graph_rank.py +0 -0
  114. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/presets.py +0 -0
  115. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/provider.py +0 -0
  116. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/__init__.py +0 -0
  117. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/ephemeral.py +0 -0
  118. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/file/__init__.py +0 -0
  119. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/file/config.py +0 -0
  120. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/file/frontmatter.py +0 -0
  121. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/file/graph_edges.py +0 -0
  122. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/file/index_store.py +0 -0
  123. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/file/layout.py +0 -0
  124. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/file/ltm_store.py +0 -0
  125. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/file/notes_store.py +0 -0
  126. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/file/provider.py +0 -0
  127. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/file/snapshot.py +0 -0
  128. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/file/stm_store.py +0 -0
  129. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/file/timezone.py +0 -0
  130. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/file/vector_store.py +0 -0
  131. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/sql/__init__.py +0 -0
  132. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/sql/config.py +0 -0
  133. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/sql/connection.py +0 -0
  134. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/sql/index_store.py +0 -0
  135. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/sql/ltm_store.py +0 -0
  136. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/sql/notes_store.py +0 -0
  137. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/sql/provider.py +0 -0
  138. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/sql/schema.py +0 -0
  139. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/sql/snapshot.py +0 -0
  140. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/sql/stm_store.py +0 -0
  141. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/providers/sql/vector_store.py +0 -0
  142. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/retriever.py +0 -0
  143. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/rollup.py +0 -0
  144. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/memory/strategy.py +0 -0
  145. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/notifications/__init__.py +0 -0
  146. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/notifications/registry.py +0 -0
  147. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/permission/__init__.py +0 -0
  148. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/permission/loader.py +0 -0
  149. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/permission/matrix.py +0 -0
  150. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/permission/types.py +0 -0
  151. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/py.typed +0 -0
  152. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/runtime/__init__.py +0 -0
  153. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/runtime/task_executors.py +0 -0
  154. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/runtime/task_runner.py +0 -0
  155. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/security/__init__.py +0 -0
  156. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/security/import_validator.py +0 -0
  157. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/security/script_sandbox.py +0 -0
  158. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/session/__init__.py +0 -0
  159. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/session/freshness.py +0 -0
  160. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/session/manager.py +0 -0
  161. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/session/persistence.py +0 -0
  162. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/session/session.py +0 -0
  163. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/settings/__init__.py +0 -0
  164. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/settings/loader.py +0 -0
  165. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/settings/section_registry.py +0 -0
  166. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/skills/__init__.py +0 -0
  167. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/skills/bundled/batch/SKILL.md +0 -0
  168. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/skills/bundled/debug/SKILL.md +0 -0
  169. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/skills/bundled/environment/REFERENCE.md +0 -0
  170. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/skills/bundled/environment/SKILL.md +0 -0
  171. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/skills/bundled/loop/SKILL.md +0 -0
  172. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/skills/bundled/lorem-ipsum/SKILL.md +0 -0
  173. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/skills/bundled/simplify/SKILL.md +0 -0
  174. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/skills/bundled/skillify/SKILL.md +0 -0
  175. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/skills/bundled/stuck/SKILL.md +0 -0
  176. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/skills/bundled/tool-builder/REFERENCE.md +0 -0
  177. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/skills/bundled/tool-builder/SKILL.md +0 -0
  178. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/skills/bundled/verify/SKILL.md +0 -0
  179. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/skills/bundled_skills.py +0 -0
  180. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/skills/fork.py +0 -0
  181. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/skills/frontmatter.py +0 -0
  182. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/skills/loader.py +0 -0
  183. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/skills/mcp_bridge.py +0 -0
  184. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/skills/path_match.py +0 -0
  185. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/skills/registry.py +0 -0
  186. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/skills/shell_blocks.py +0 -0
  187. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/skills/skill_tool.py +0 -0
  188. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/skills/types.py +0 -0
  189. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/skills/watcher.py +0 -0
  190. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/slash_commands/__init__.py +0 -0
  191. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/slash_commands/built_in/__init__.py +0 -0
  192. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/slash_commands/built_in/_helpers.py +0 -0
  193. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/slash_commands/built_in/cancel.py +0 -0
  194. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/slash_commands/built_in/clear.py +0 -0
  195. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/slash_commands/built_in/compact.py +0 -0
  196. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/slash_commands/built_in/config.py +0 -0
  197. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/slash_commands/built_in/context.py +0 -0
  198. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/slash_commands/built_in/cost.py +0 -0
  199. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/slash_commands/built_in/help.py +0 -0
  200. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/slash_commands/built_in/memory.py +0 -0
  201. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/slash_commands/built_in/model.py +0 -0
  202. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/slash_commands/built_in/preset_info.py +0 -0
  203. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/slash_commands/built_in/status.py +0 -0
  204. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/slash_commands/built_in/tasks.py +0 -0
  205. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/slash_commands/md_template.py +0 -0
  206. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/slash_commands/parser.py +0 -0
  207. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/slash_commands/registry.py +0 -0
  208. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/slash_commands/types.py +0 -0
  209. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/__init__.py +0 -0
  210. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s01_input/__init__.py +0 -0
  211. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s01_input/artifact/__init__.py +0 -0
  212. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s01_input/artifact/default/__init__.py +0 -0
  213. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s01_input/artifact/default/normalizers.py +0 -0
  214. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s01_input/artifact/default/stage.py +0 -0
  215. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s01_input/artifact/default/validators.py +0 -0
  216. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s01_input/interface.py +0 -0
  217. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s01_input/normalizers.py +0 -0
  218. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s01_input/stage.py +0 -0
  219. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s01_input/types.py +0 -0
  220. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s01_input/validators.py +0 -0
  221. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s02_context/__init__.py +0 -0
  222. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s02_context/artifact/__init__.py +0 -0
  223. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s02_context/artifact/default/__init__.py +0 -0
  224. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s02_context/artifact/default/compactors.py +0 -0
  225. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s02_context/artifact/default/retrievers.py +0 -0
  226. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s02_context/artifact/default/stage.py +0 -0
  227. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s02_context/artifact/default/strategies.py +0 -0
  228. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s02_context/compactors.py +0 -0
  229. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s02_context/interface.py +0 -0
  230. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s02_context/retrievers.py +0 -0
  231. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s02_context/stage.py +0 -0
  232. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s02_context/strategies.py +0 -0
  233. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s02_context/types.py +0 -0
  234. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s03_system/__init__.py +0 -0
  235. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s03_system/artifact/__init__.py +0 -0
  236. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s03_system/artifact/default/__init__.py +0 -0
  237. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s03_system/artifact/default/builders.py +0 -0
  238. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s03_system/builders.py +0 -0
  239. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s03_system/interface.py +0 -0
  240. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s03_system/persona/__init__.py +0 -0
  241. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s03_system/persona/builder.py +0 -0
  242. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s03_system/persona/provider.py +0 -0
  243. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s03_system/stage.py +0 -0
  244. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s04_guard/__init__.py +0 -0
  245. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s04_guard/artifact/__init__.py +0 -0
  246. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s04_guard/artifact/default/__init__.py +0 -0
  247. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s04_guard/artifact/default/guards.py +0 -0
  248. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s04_guard/artifact/default/stage.py +0 -0
  249. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s04_guard/guards.py +0 -0
  250. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s04_guard/interface.py +0 -0
  251. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s04_guard/stage.py +0 -0
  252. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s04_guard/types.py +0 -0
  253. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s05_cache/__init__.py +0 -0
  254. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s05_cache/artifact/__init__.py +0 -0
  255. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s05_cache/artifact/default/__init__.py +0 -0
  256. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s05_cache/artifact/default/stage.py +0 -0
  257. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s05_cache/artifact/default/strategies.py +0 -0
  258. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s05_cache/interface.py +0 -0
  259. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s05_cache/stage.py +0 -0
  260. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s05_cache/strategies.py +0 -0
  261. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s06_api/__init__.py +0 -0
  262. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s06_api/_translate.py +0 -0
  263. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s06_api/artifact/__init__.py +0 -0
  264. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s06_api/artifact/default/__init__.py +0 -0
  265. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s06_api/artifact/default/providers.py +0 -0
  266. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s06_api/artifact/default/retry.py +0 -0
  267. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s06_api/artifact/default/router.py +0 -0
  268. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s06_api/artifact/default/stage.py +0 -0
  269. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s06_api/artifact/default/tool_loop.py +0 -0
  270. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s06_api/artifact/google/__init__.py +0 -0
  271. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s06_api/artifact/google/providers.py +0 -0
  272. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s06_api/artifact/openai/__init__.py +0 -0
  273. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s06_api/artifact/openai/providers.py +0 -0
  274. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s06_api/interface.py +0 -0
  275. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s06_api/providers.py +0 -0
  276. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s06_api/retry.py +0 -0
  277. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s06_api/stage.py +0 -0
  278. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s06_api/types.py +0 -0
  279. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s07_token/__init__.py +0 -0
  280. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s07_token/artifact/__init__.py +0 -0
  281. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s07_token/artifact/default/__init__.py +0 -0
  282. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s07_token/artifact/default/pricing.py +0 -0
  283. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s07_token/artifact/default/stage.py +0 -0
  284. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s07_token/artifact/default/trackers.py +0 -0
  285. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s07_token/interface.py +0 -0
  286. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s07_token/pricing.py +0 -0
  287. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s07_token/stage.py +0 -0
  288. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s07_token/trackers.py +0 -0
  289. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s08_think/__init__.py +0 -0
  290. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s08_think/artifact/default/__init__.py +0 -0
  291. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s08_think/artifact/default/budget.py +0 -0
  292. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s08_think/artifact/default/processors.py +0 -0
  293. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s08_think/artifact/default/stage.py +0 -0
  294. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s08_think/interface.py +0 -0
  295. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s08_think/processors.py +0 -0
  296. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s08_think/stage.py +0 -0
  297. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s08_think/types.py +0 -0
  298. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s09_parse/__init__.py +0 -0
  299. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s09_parse/artifact/default/__init__.py +0 -0
  300. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s09_parse/artifact/default/parsers.py +0 -0
  301. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s09_parse/artifact/default/signals.py +0 -0
  302. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s09_parse/artifact/default/stage.py +0 -0
  303. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s09_parse/interface.py +0 -0
  304. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s09_parse/parsers.py +0 -0
  305. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s09_parse/signals.py +0 -0
  306. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s09_parse/stage.py +0 -0
  307. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s09_parse/types.py +0 -0
  308. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s10_tool/__init__.py +0 -0
  309. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s10_tool/artifact/__init__.py +0 -0
  310. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s10_tool/artifact/default/__init__.py +0 -0
  311. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s10_tool/artifact/default/executors.py +0 -0
  312. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s10_tool/artifact/default/routers.py +0 -0
  313. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s10_tool/dispatcher.py +0 -0
  314. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s10_tool/executors.py +0 -0
  315. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s10_tool/interface.py +0 -0
  316. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s10_tool/persistence.py +0 -0
  317. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s10_tool/routers.py +0 -0
  318. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s10_tool/stage.py +0 -0
  319. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s10_tool/state_mutation.py +0 -0
  320. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s10_tool/streaming.py +0 -0
  321. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s11_tool_review/__init__.py +0 -0
  322. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s11_tool_review/artifact/__init__.py +0 -0
  323. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s11_tool_review/artifact/default/__init__.py +0 -0
  324. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s11_tool_review/artifact/default/reviewers.py +0 -0
  325. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s11_tool_review/artifact/default/stage.py +0 -0
  326. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s11_tool_review/interface.py +0 -0
  327. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s12_agent/__init__.py +0 -0
  328. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s12_agent/artifact/__init__.py +0 -0
  329. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s12_agent/artifact/default/__init__.py +0 -0
  330. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s12_agent/artifact/default/orchestrators.py +0 -0
  331. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s12_agent/artifact/default/stage.py +0 -0
  332. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s12_agent/interface.py +0 -0
  333. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s12_agent/orchestrators.py +0 -0
  334. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s12_agent/persistent_subagent.py +0 -0
  335. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s12_agent/stage.py +0 -0
  336. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s12_agent/subagent_catalog.py +0 -0
  337. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s12_agent/subagent_type.py +0 -0
  338. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s12_agent/types.py +0 -0
  339. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s13_task_registry/__init__.py +0 -0
  340. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s13_task_registry/artifact/__init__.py +0 -0
  341. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s13_task_registry/artifact/default/__init__.py +0 -0
  342. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s13_task_registry/artifact/default/file_backed_registry.py +0 -0
  343. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s13_task_registry/artifact/default/policies.py +0 -0
  344. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s13_task_registry/artifact/default/registry.py +0 -0
  345. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s13_task_registry/artifact/default/stage.py +0 -0
  346. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s13_task_registry/interface.py +0 -0
  347. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s13_task_registry/types.py +0 -0
  348. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s14_evaluate/__init__.py +0 -0
  349. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s14_evaluate/artifact/__init__.py +0 -0
  350. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s14_evaluate/artifact/adaptive/__init__.py +0 -0
  351. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s14_evaluate/artifact/adaptive/strategy.py +0 -0
  352. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s14_evaluate/artifact/default/__init__.py +0 -0
  353. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s14_evaluate/artifact/default/stage.py +0 -0
  354. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s14_evaluate/artifact/default/strategies.py +0 -0
  355. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s14_evaluate/interface.py +0 -0
  356. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s14_evaluate/stage.py +0 -0
  357. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s14_evaluate/strategies.py +0 -0
  358. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s14_evaluate/types.py +0 -0
  359. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s15_hitl/__init__.py +0 -0
  360. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s15_hitl/artifact/__init__.py +0 -0
  361. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s15_hitl/artifact/default/__init__.py +0 -0
  362. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s15_hitl/artifact/default/requesters.py +0 -0
  363. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s15_hitl/artifact/default/stage.py +0 -0
  364. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s15_hitl/artifact/default/timeouts.py +0 -0
  365. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s15_hitl/interface.py +0 -0
  366. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s15_hitl/types.py +0 -0
  367. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s16_loop/__init__.py +0 -0
  368. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s16_loop/artifact/__init__.py +0 -0
  369. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s16_loop/artifact/default/__init__.py +0 -0
  370. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s16_loop/artifact/default/controllers.py +0 -0
  371. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s16_loop/artifact/default/stage.py +0 -0
  372. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s16_loop/controllers.py +0 -0
  373. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s16_loop/interface.py +0 -0
  374. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s16_loop/stage.py +0 -0
  375. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s17_emit/__init__.py +0 -0
  376. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s17_emit/artifact/__init__.py +0 -0
  377. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s17_emit/artifact/default/__init__.py +0 -0
  378. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s17_emit/artifact/default/emitters.py +0 -0
  379. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s17_emit/artifact/default/stage.py +0 -0
  380. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s17_emit/emitters.py +0 -0
  381. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s17_emit/interface.py +0 -0
  382. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s17_emit/stage.py +0 -0
  383. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s17_emit/types.py +0 -0
  384. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s18_memory/__init__.py +0 -0
  385. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s18_memory/_dehydrate.py +0 -0
  386. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s18_memory/artifact/__init__.py +0 -0
  387. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s18_memory/artifact/default/__init__.py +0 -0
  388. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s18_memory/artifact/default/persistence.py +0 -0
  389. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s18_memory/artifact/default/stage.py +0 -0
  390. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s18_memory/artifact/default/strategies.py +0 -0
  391. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s18_memory/insight.py +0 -0
  392. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s18_memory/interface.py +0 -0
  393. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s18_memory/persistence.py +0 -0
  394. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s18_memory/stage.py +0 -0
  395. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s18_memory/strategies.py +0 -0
  396. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s19_summarize/__init__.py +0 -0
  397. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s19_summarize/artifact/__init__.py +0 -0
  398. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s19_summarize/artifact/default/__init__.py +0 -0
  399. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s19_summarize/artifact/default/importance.py +0 -0
  400. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s19_summarize/artifact/default/stage.py +0 -0
  401. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s19_summarize/artifact/default/summarizers.py +0 -0
  402. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s19_summarize/frequency_policy.py +0 -0
  403. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s19_summarize/interface.py +0 -0
  404. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s19_summarize/types.py +0 -0
  405. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s20_persist/__init__.py +0 -0
  406. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s20_persist/artifact/__init__.py +0 -0
  407. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s20_persist/artifact/default/__init__.py +0 -0
  408. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s20_persist/artifact/default/frequencies.py +0 -0
  409. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s20_persist/artifact/default/persisters.py +0 -0
  410. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s20_persist/artifact/default/stage.py +0 -0
  411. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s20_persist/interface.py +0 -0
  412. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s20_persist/restore.py +0 -0
  413. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s20_persist/types.py +0 -0
  414. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s21_yield/__init__.py +0 -0
  415. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s21_yield/artifact/__init__.py +0 -0
  416. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s21_yield/artifact/default/__init__.py +0 -0
  417. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s21_yield/artifact/default/formatters.py +0 -0
  418. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s21_yield/artifact/default/multi_format.py +0 -0
  419. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s21_yield/artifact/default/stage.py +0 -0
  420. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s21_yield/formatters.py +0 -0
  421. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s21_yield/interface.py +0 -0
  422. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/stages/s21_yield/stage.py +0 -0
  423. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/__init__.py +0 -0
  424. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/_sandbox.py +0 -0
  425. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/adhoc.py +0 -0
  426. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/__init__.py +0 -0
  427. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/_path_guard.py +0 -0
  428. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/_web_search_backends.py +0 -0
  429. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/agent_tool.py +0 -0
  430. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/ask_user_question_tool.py +0 -0
  431. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/bash_tool.py +0 -0
  432. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/cron_tools.py +0 -0
  433. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/dev_tools.py +0 -0
  434. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/edit_tool.py +0 -0
  435. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/env_tools.py +0 -0
  436. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/glob_tool.py +0 -0
  437. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/google_tools.py +0 -0
  438. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/grep_tool.py +0 -0
  439. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/mcp_wrapper_tools.py +0 -0
  440. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/notebook_edit_tool.py +0 -0
  441. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/operator_tools.py +0 -0
  442. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/plan_mode_tools.py +0 -0
  443. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/push_notification_tool.py +0 -0
  444. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/read_tool.py +0 -0
  445. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/sandbox_exec_tool.py +0 -0
  446. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/send_message_tool.py +0 -0
  447. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/subagent_tools.py +0 -0
  448. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/task_tools.py +0 -0
  449. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/todo_write_tool.py +0 -0
  450. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/web_fetch_tool.py +0 -0
  451. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/web_search_tool.py +0 -0
  452. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/workspace_tools.py +0 -0
  453. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/worktree_tools.py +0 -0
  454. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/built_in/write_tool.py +0 -0
  455. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/composer.py +0 -0
  456. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/errors.py +0 -0
  457. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/mcp/__init__.py +0 -0
  458. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/mcp/adapter.py +0 -0
  459. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/mcp/credentials.py +0 -0
  460. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/mcp/errors.py +0 -0
  461. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/mcp/manager.py +0 -0
  462. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/mcp/oauth.py +0 -0
  463. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/mcp/state.py +0 -0
  464. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/mcp/uri.py +0 -0
  465. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/plugin.py +0 -0
  466. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/providers.py +0 -0
  467. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/sandbox.py +0 -0
  468. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/scope.py +0 -0
  469. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/tools/stage_binding.py +0 -0
  470. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/workspace/__init__.py +0 -0
  471. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/workspace/stack.py +0 -0
  472. {geny_executor-2.41.0 → geny_executor-2.42.0}/src/geny_executor/workspace/types.py +0 -0
  473. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/__init__.py +0 -0
  474. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/_fixtures/__init__.py +0 -0
  475. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/_fixtures/fake_claude.py +0 -0
  476. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/_fixtures/fake_echo_cli.py +0 -0
  477. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/_fixtures/geny_manifest_layout.json +0 -0
  478. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/_fixtures/manifest_entries.py +0 -0
  479. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/completeness/__init__.py +0 -0
  480. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/completeness/conftest.py +0 -0
  481. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/completeness/fixtures/__init__.py +0 -0
  482. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/completeness/fixtures/adapter/__init__.py +0 -0
  483. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/completeness/fixtures/adapter/adapter.py +0 -0
  484. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/completeness/test_c1_six_layer_retrieval.py +0 -0
  485. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/completeness/test_c2_execution_recording.py +0 -0
  486. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/completeness/test_c3_reflection_and_promotion.py +0 -0
  487. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/completeness/test_c4_rest_coverage.py +0 -0
  488. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/completeness/test_c5_embedding_migration.py +0 -0
  489. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/completeness/test_c6_session_resume.py +0 -0
  490. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/completeness/test_c7_adapter_parity.py +0 -0
  491. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/completeness/test_spec_loads.py +0 -0
  492. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/contract/__init__.py +0 -0
  493. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/contract/memory_provider_contract.py +0 -0
  494. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/contract/test_embedding_clients.py +0 -0
  495. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/contract/test_error_codes_stability.py +0 -0
  496. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/contract/test_memory_embedding_credentials.py +0 -0
  497. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/contract/test_memory_provider_auto_vector.py +0 -0
  498. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/contract/test_memory_provider_composite.py +0 -0
  499. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/contract/test_memory_provider_composite_routing.py +0 -0
  500. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/contract/test_memory_provider_curated_global.py +0 -0
  501. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/contract/test_memory_provider_ephemeral.py +0 -0
  502. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/contract/test_memory_provider_factory.py +0 -0
  503. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/contract/test_memory_provider_file.py +0 -0
  504. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/contract/test_memory_provider_file_layout.py +0 -0
  505. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/contract/test_memory_provider_file_vector.py +0 -0
  506. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/contract/test_memory_provider_sql.py +0 -0
  507. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/contract/test_memory_provider_sql_dialect.py +0 -0
  508. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/contract/test_memory_provider_sql_schema.py +0 -0
  509. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/contract/test_memory_provider_sql_vector.py +0 -0
  510. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/contract/test_memory_vector_breaker.py +0 -0
  511. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/contract/test_stage_uniformity.py +0 -0
  512. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/integration/test_cycle_ab_cross_import.py +0 -0
  513. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/integration/test_integration.py +0 -0
  514. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/__init__.py +0 -0
  515. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/conformance/__init__.py +0 -0
  516. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/conformance/harness.py +0 -0
  517. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/conformance/test_anthropic.py +0 -0
  518. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/conformance/test_claude_code_cli.py +0 -0
  519. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/conformance/test_google.py +0 -0
  520. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/conformance/test_local_providers.py +0 -0
  521. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/conformance/test_openai.py +0 -0
  522. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/conformance/test_vllm.py +0 -0
  523. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/golden/__init__.py +0 -0
  524. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/golden/cli-2.1.149-json.json +0 -0
  525. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/golden/cli-2.1.149-json.meta +0 -0
  526. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/golden/cli-2.1.149-stream.jsonl +0 -0
  527. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/golden/cli-2.1.149-stream.meta +0 -0
  528. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/golden/cli-2.1.162-stream.jsonl +0 -0
  529. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/golden/cli-2.1.162-stream.meta +0 -0
  530. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/golden/test_golden_replay.py +0 -0
  531. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/live/__init__.py +0 -0
  532. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/live/test_live_canaries.py +0 -0
  533. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/unit/__init__.py +0 -0
  534. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/unit/test_anthropic_build_kwargs.py +0 -0
  535. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/unit/test_anthropic_classify.py +0 -0
  536. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/unit/test_base_client.py +0 -0
  537. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/unit/test_claude_code.py +0 -0
  538. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/unit/test_cli_cancellation.py +0 -0
  539. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/unit/test_cli_event_forwarding.py +0 -0
  540. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/unit/test_cli_runtime.py +0 -0
  541. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/unit/test_container_runner.py +0 -0
  542. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/unit/test_credentials.py +0 -0
  543. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/unit/test_google_classify.py +0 -0
  544. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/unit/test_local_probe.py +0 -0
  545. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/unit/test_local_tool_repair.py +0 -0
  546. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/unit/test_openai_client.py +0 -0
  547. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/unit/test_profiles.py +0 -0
  548. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/llm_client/unit/test_translators_cli_claude_code.py +0 -0
  549. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/__init__.py +0 -0
  550. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_adaptive_model_router.py +0 -0
  551. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_adaptive_router_configure.py +0 -0
  552. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_adaptive_thinking_budget.py +0 -0
  553. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_agent_tool.py +0 -0
  554. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_api_timeout_kwarg.py +0 -0
  555. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_artifact_metadata.py +0 -0
  556. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_ask_user_question_tool.py +0 -0
  557. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_attach_llm_client_guard.py +0 -0
  558. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_binary_classify_manifest.py +0 -0
  559. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_budget_compaction_recovery.py +0 -0
  560. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_built_in_autoregister.py +0 -0
  561. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_builtin_capabilities.py +0 -0
  562. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_builtin_channels.py +0 -0
  563. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_builtin_features.py +0 -0
  564. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_cache_prefix_key.py +0 -0
  565. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_cancellation.py +0 -0
  566. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_claude_code_nonstream_prompt.py +0 -0
  567. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_cli_mcp_passthrough.py +0 -0
  568. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_composite_set_hooks.py +0 -0
  569. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_concurrent_runs.py +0 -0
  570. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_config_liveness.py +0 -0
  571. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_cron_runner.py +0 -0
  572. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_cron_store.py +0 -0
  573. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_cron_tools.py +0 -0
  574. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_dev_tools.py +0 -0
  575. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_diff_order_keyed.py +0 -0
  576. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_dynamic_persona_builder.py +0 -0
  577. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_embedding_error_classification.py +0 -0
  578. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_errors_categories.py +0 -0
  579. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_evaluation_chain.py +0 -0
  580. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_evaluation_chain_configure.py +0 -0
  581. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_event_catalog.py +0 -0
  582. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_event_channel_unification.py +0 -0
  583. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_event_correlation.py +0 -0
  584. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_external_tool_resolution.py +0 -0
  585. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_forge_tool.py +0 -0
  586. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_fork_multi_provider.py +0 -0
  587. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_from_manifest_strict_validation.py +0 -0
  588. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_gateway.py +0 -0
  589. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_gateway_ws.py +0 -0
  590. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_geny_prod_manifest_repro.py +0 -0
  591. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_graph_edges.py +0 -0
  592. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_graph_rank.py +0 -0
  593. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_guard_fail_fast.py +0 -0
  594. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_hierarchical_sidecars.py +0 -0
  595. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_hook_gate_split.py +0 -0
  596. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_hook_in_process.py +0 -0
  597. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_hook_runner.py +0 -0
  598. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_hook_taxonomy.py +0 -0
  599. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_hooks_and_shared_keys.py +0 -0
  600. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_host_selections_resolve.py +0 -0
  601. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_index_list_categories.py +0 -0
  602. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_index_render_vault_map.py +0 -0
  603. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_interaction_fields.py +0 -0
  604. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_internal_agentic_loop.py +0 -0
  605. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_introspection.py +0 -0
  606. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_llm_client_base.py +0 -0
  607. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_llm_client_capabilities.py +0 -0
  608. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_llm_client_registry.py +0 -0
  609. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_llm_client_request_types.py +0 -0
  610. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_llm_client_state.py +0 -0
  611. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_llm_compactor_selfwire.py +0 -0
  612. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_llm_summary_compactor.py +0 -0
  613. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_loop_agnostic_lock.py +0 -0
  614. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_manifest_factory.py +0 -0
  615. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_manifest_from_dict_hygiene.py +0 -0
  616. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_manifest_memory_wiring.py +0 -0
  617. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_manifest_provider_validation.py +0 -0
  618. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_manifest_subagents_memory_sections.py +0 -0
  619. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_manifest_v2.py +0 -0
  620. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_manifest_v3_migration.py +0 -0
  621. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_mcp_annotations_attach.py +0 -0
  622. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_mcp_credential_store.py +0 -0
  623. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_mcp_fsm.py +0 -0
  624. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_mcp_namespace.py +0 -0
  625. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_mcp_oauth.py +0 -0
  626. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_mcp_prompts_skills_bridge.py +0 -0
  627. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_mcp_resource_retriever.py +0 -0
  628. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_mcp_uri.py +0 -0
  629. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_mcp_wrapper_tools.py +0 -0
  630. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_memory_aware_retriever.py +0 -0
  631. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_memory_hooks_after_callbacks.py +0 -0
  632. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_memory_metadata_extension.py +0 -0
  633. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_memory_rollup.py +0 -0
  634. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_model_discovery.py +0 -0
  635. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_model_overrides.py +0 -0
  636. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_multi_dim_budget_configure.py +0 -0
  637. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_multi_dim_budget_controller.py +0 -0
  638. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_multi_format_yield.py +0 -0
  639. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_multi_provider.py +0 -0
  640. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_multimodal.py +0 -0
  641. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_note_graph_queries.py +0 -0
  642. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_notebook_edit_tool.py +0 -0
  643. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_notes_load_pinned.py +0 -0
  644. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_operator_tools.py +0 -0
  645. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_ordered_emitter_chain.py +0 -0
  646. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_permission_matrix.py +0 -0
  647. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_permission_mode_promotions.py +0 -0
  648. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_permission_posture.py +0 -0
  649. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_persistent_subagent.py +0 -0
  650. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_phase1_foundation.py +0 -0
  651. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_phase1_pipeline.py +0 -0
  652. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_phase2_agent_loop.py +0 -0
  653. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_phase2_tools.py +0 -0
  654. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_phase3_context_memory.py +0 -0
  655. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_phase4_think_agent_evaluate.py +0 -0
  656. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_phase5_emit_presets_mcp.py +0 -0
  657. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_phase5_environment.py +0 -0
  658. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_phase6_history.py +0 -0
  659. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_phase6_integration.py +0 -0
  660. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_phase7_security.py +0 -0
  661. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_phase9a_preset_regen.py +0 -0
  662. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_phase9a_scaffolding.py +0 -0
  663. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_pipeline_aclose.py +0 -0
  664. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_pipeline_attach_runtime.py +0 -0
  665. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_pipeline_events_tap.py +0 -0
  666. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_pipeline_from_manifest.py +0 -0
  667. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_pipeline_hook_lifecycle.py +0 -0
  668. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_pipeline_session_runtime.py +0 -0
  669. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_plan_mode_tools.py +0 -0
  670. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_primary_provider_and_build_reports.py +0 -0
  671. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_progressive_disclosure.py +0 -0
  672. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_provider_driven_strategy.py +0 -0
  673. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_push_notification_tool.py +0 -0
  674. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_refresh_backlinks_extension.py +0 -0
  675. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_refresh_runtime_and_run_lock.py +0 -0
  676. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_resolve_model_config.py +0 -0
  677. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_restore_bad_strategy_config.py +0 -0
  678. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_reviewer_policy_configure.py +0 -0
  679. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_runtime_task_runner.py +0 -0
  680. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_s06_chunk_forwarding.py +0 -0
  681. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_s06_provider_selection.py +0 -0
  682. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_s13_file_backed_registry.py +0 -0
  683. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_s13_task_registry_output.py +0 -0
  684. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_s19_frequency_policy.py +0 -0
  685. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_s9b1_tool_review.py +0 -0
  686. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_s9b2_task_registry.py +0 -0
  687. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_s9b3_hitl.py +0 -0
  688. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_s9b4_summarize.py +0 -0
  689. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_s9b5_persist.py +0 -0
  690. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_s9c1_pipeline_resume.py +0 -0
  691. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_s9c2_restore_state.py +0 -0
  692. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_sandbox_attach.py +0 -0
  693. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_sandbox_exec_tool.py +0 -0
  694. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_sandbox_tools.py +0 -0
  695. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_self_modifying_env.py +0 -0
  696. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_send_message_tool.py +0 -0
  697. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_settings_loader.py +0 -0
  698. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_skill_level3_resources.py +0 -0
  699. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_skill_phase_10_1.py +0 -0
  700. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_skill_phase_10_2.py +0 -0
  701. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_skill_phase_10_3.py +0 -0
  702. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_skill_phase_10_4_bundled.py +0 -0
  703. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_skill_phase_10_5_fork.py +0 -0
  704. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_skill_phase_10_6_killer.py +0 -0
  705. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_skill_phase_10_7_watcher.py +0 -0
  706. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_skill_richer_schema.py +0 -0
  707. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_skills_foundation.py +0 -0
  708. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_slash_built_in_control.py +0 -0
  709. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_slash_built_in_introspection.py +0 -0
  710. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_slash_commands.py +0 -0
  711. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_slash_md_template.py +0 -0
  712. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_stage10_ask_hitl.py +0 -0
  713. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_stage10_hook_wiring.py +0 -0
  714. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_stage10_partition_executor.py +0 -0
  715. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_stage10_permission_matrix.py +0 -0
  716. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_stage19_session_summary.py +0 -0
  717. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_state_mutation_wiring.py +0 -0
  718. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_state_shared_and_local.py +0 -0
  719. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_stm_append_event.py +0 -0
  720. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_strategy_config_roundtrip.py +0 -0
  721. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_streaming_tool_executor.py +0 -0
  722. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_structured_output_parser.py +0 -0
  723. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_structured_reflection.py +0 -0
  724. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_subagent_catalog.py +0 -0
  725. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_subagent_credential_propagation.py +0 -0
  726. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_subagent_descriptor.py +0 -0
  727. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_subagent_manifest_compile.py +0 -0
  728. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_subagent_orchestrator_zero_arg.py +0 -0
  729. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_subagent_parallel.py +0 -0
  730. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_subagent_pipeline_lifecycle.py +0 -0
  731. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_subagent_type_orchestrator.py +0 -0
  732. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_task_tools.py +0 -0
  733. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_todo_write_tool.py +0 -0
  734. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_tool_abc_uplift.py +0 -0
  735. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_tool_call_events.py +0 -0
  736. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_tool_errors.py +0 -0
  737. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_tool_lifecycle_hooks.py +0 -0
  738. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_tool_plugins.py +0 -0
  739. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_tool_result_persistence.py +0 -0
  740. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_tool_search_tool.py +0 -0
  741. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_tool_stage_max_concurrency.py +0 -0
  742. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_turn_boundary_state.py +0 -0
  743. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_validate_manifest.py +0 -0
  744. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_vault_map_drill.py +0 -0
  745. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_web_fetch_tool.py +0 -0
  746. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_web_search_backends.py +0 -0
  747. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_web_search_tool.py +0 -0
  748. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_workspace.py +0 -0
  749. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_workspace_propagation.py +0 -0
  750. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_workspace_tools.py +0 -0
  751. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_workspace_tools_integration.py +0 -0
  752. {geny_executor-2.41.0 → geny_executor-2.42.0}/tests/unit/test_worktree_tools.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: geny-executor
3
- Version: 2.41.0
3
+ Version: 2.42.0
4
4
  Summary: Harness-engineered agent pipeline library with 21-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 = "2.41.0"
7
+ version = "2.42.0"
8
8
  description = "Harness-engineered agent pipeline library with 21-stage dual-abstraction architecture, built on the Anthropic API"
9
9
  readme = "README.md"
10
10
  license = "Apache-2.0"
@@ -80,6 +80,16 @@ class ToolsSnapshot:
80
80
  manifest only records *which provider-backed names are active* for
81
81
  this environment. The pipeline resolves each name against the
82
82
  ``adhoc_providers`` passed to :meth:`Pipeline.from_manifest`.
83
+
84
+ ``core_overrides`` (2.42.0) flips individual tools between *core*
85
+ (schema shipped to the LLM on every request) and *deferred*
86
+ (registered + dispatchable, but only discoverable at runtime via
87
+ the ``ToolSearch`` built-in). Defaults when a name is absent:
88
+ framework built-ins are core, everything else (external / provider
89
+ / MCP tools) is deferred. Keys are exact tool names; a trailing
90
+ ``*`` matches by prefix (e.g. ``"mcp__github__*": true`` promotes a
91
+ whole MCP server whose tool names are only known after discovery).
92
+ Exact keys win over wildcard keys.
83
93
  """
84
94
 
85
95
  built_in: List[str] = field(default_factory=list)
@@ -87,6 +97,7 @@ class ToolsSnapshot:
87
97
  mcp_servers: List[Dict[str, Any]] = field(default_factory=list)
88
98
  external: List[str] = field(default_factory=list)
89
99
  scope: Dict[str, Any] = field(default_factory=dict)
100
+ core_overrides: Dict[str, bool] = field(default_factory=dict)
90
101
 
91
102
  def to_dict(self) -> Dict[str, Any]:
92
103
  return {
@@ -95,6 +106,7 @@ class ToolsSnapshot:
95
106
  "mcp_servers": list(self.mcp_servers),
96
107
  "external": list(self.external),
97
108
  "scope": dict(self.scope),
109
+ "core_overrides": dict(self.core_overrides),
98
110
  }
99
111
 
100
112
  @classmethod
@@ -105,6 +117,9 @@ class ToolsSnapshot:
105
117
  mcp_servers=data.get("mcp_servers", []),
106
118
  external=data.get("external", []),
107
119
  scope=data.get("scope", {}),
120
+ core_overrides={
121
+ str(k): bool(v) for k, v in (data.get("core_overrides") or {}).items()
122
+ },
108
123
  )
109
124
 
110
125
 
@@ -444,6 +444,64 @@ class DroppedStage:
444
444
  error: str
445
445
 
446
446
 
447
+ def _resolve_core_flag(
448
+ name: str,
449
+ overrides: Mapping[str, bool],
450
+ default: bool,
451
+ ) -> bool:
452
+ """Resolve a tool's core/deferred exposure from ``manifest.tools.core_overrides``.
453
+
454
+ Exact-name keys win; otherwise the longest matching trailing-``*``
455
+ prefix key applies (``"mcp__github__*"`` — MCP tool names are only
456
+ known after discovery, so per-server toggles need the wildcard);
457
+ otherwise *default* (built-ins: core, everything else: deferred).
458
+ """
459
+ if name in overrides:
460
+ return bool(overrides[name])
461
+ best_len = -1
462
+ best_val = default
463
+ for key, val in overrides.items():
464
+ if key.endswith("*") and name.startswith(key[:-1]) and len(key) > best_len:
465
+ best_len = len(key)
466
+ best_val = bool(val)
467
+ return best_val
468
+
469
+
470
+ def _core_overrides_from_manifest(manifest: "EnvironmentManifest") -> Dict[str, bool]:
471
+ """Read ``manifest.tools.core_overrides`` defensively (old manifests lack it)."""
472
+ raw = getattr(manifest.tools, "core_overrides", None) or {}
473
+ return {str(k): bool(v) for k, v in raw.items()} if isinstance(raw, Mapping) else {}
474
+
475
+
476
+ def _ensure_tool_search_reachable(registry: "ToolRegistry") -> None:
477
+ """Guarantee deferred tools stay discoverable.
478
+
479
+ A registry that holds deferred (non-core) tools without an exposed
480
+ ``ToolSearch`` would strand them — the LLM could never learn they
481
+ exist. Auto-register the built-in ``ToolSearch`` as core in that
482
+ case, and force it back to core if a manifest override demoted it
483
+ while deferred tools remain.
484
+ """
485
+ if not registry.list_deferred():
486
+ return
487
+ existing = registry.get("ToolSearch")
488
+ if existing is None:
489
+ from geny_executor.tools.built_in.tool_search_tool import ToolSearchTool
490
+
491
+ registry.register(ToolSearchTool(), core=True)
492
+ logger.info(
493
+ "ToolSearch auto-registered (core): %d deferred tool(s) need a discovery path",
494
+ len(registry.list_deferred()),
495
+ )
496
+ elif not registry.is_core("ToolSearch"):
497
+ registry.set_core("ToolSearch", True)
498
+ logger.warning(
499
+ "ToolSearch forced back to core — %d deferred tool(s) would be "
500
+ "unreachable with it deferred/demoted",
501
+ len(registry.list_deferred()),
502
+ )
503
+
504
+
447
505
  def _register_built_in_tools(
448
506
  manifest: "EnvironmentManifest",
449
507
  registry: "ToolRegistry",
@@ -484,6 +542,8 @@ def _register_built_in_tools(
484
542
  if names == ["*"]:
485
543
  names = list(BUILT_IN_TOOL_CLASSES.keys())
486
544
 
545
+ core_overrides = _core_overrides_from_manifest(manifest)
546
+
487
547
  for name in names:
488
548
  cls = BUILT_IN_TOOL_CLASSES.get(name)
489
549
  if cls is None:
@@ -499,7 +559,9 @@ def _register_built_in_tools(
499
559
  if report is not None:
500
560
  report.shadowed.append(name)
501
561
  continue
502
- registry.register(cls())
562
+ # Framework built-ins are core (upfront schema) by default;
563
+ # manifest.tools.core_overrides can defer individual names.
564
+ registry.register(cls(), core=_resolve_core_flag(name, core_overrides, True))
503
565
  if report is not None:
504
566
  report.resolved.append(name)
505
567
 
@@ -541,6 +603,8 @@ def _register_external_tools(
541
603
  if not raw_entries:
542
604
  return
543
605
 
606
+ core_overrides = _core_overrides_from_manifest(manifest)
607
+
544
608
  # Normalize entries → (name, required). Malformed entries warn and
545
609
  # count as unresolved-but-unnamed; they cannot be required because
546
610
  # we cannot even tell what the author wanted.
@@ -627,7 +691,13 @@ def _register_external_tools(
627
691
  # intentionally hardened by the host).
628
692
  report.shadowed.append(name)
629
693
  report.resolved.append(name)
630
- registry.register(tool)
694
+ # Host-supplied (external) tools are deferred by default — the
695
+ # LLM discovers them via ToolSearch. core_overrides opts a name
696
+ # into upfront exposure; an external entry shadowing a framework
697
+ # built-in keeps the built-in's core default so the replacement
698
+ # is invisible to the model.
699
+ default_core = registry.is_core(name) if registry.get(name) is not None else False
700
+ registry.register(tool, core=_resolve_core_flag(name, core_overrides, default_core))
631
701
 
632
702
 
633
703
  def _gate_unconfigured_tools(
@@ -1248,6 +1318,9 @@ class Pipeline:
1248
1318
  # (no-op when satisfied_config is None). Runs after both registration
1249
1319
  # passes so it sees the full built-in + external surface.
1250
1320
  _gate_unconfigured_tools(registry, satisfied_config, resolution_report)
1321
+ # Deferred tools need a live discovery path; from_manifest_async
1322
+ # re-checks after providers + MCP land more registrations.
1323
+ _ensure_tool_search_reachable(registry)
1251
1324
  pipeline.tool_resolution_report = resolution_report
1252
1325
  pipeline._tool_registry = registry
1253
1326
  # Retain the adhoc providers so the self-modifying-environment controller
@@ -1430,9 +1503,16 @@ class Pipeline:
1430
1503
  # MCP adapters arrive. Name collisions at this layer are logged
1431
1504
  # by ``register_providers``; MCP registrations would still fail
1432
1505
  # cleanly via the registry's own dedupe if they conflicted.
1506
+ # Provider-shipped tools are deferred by default (ToolSearch
1507
+ # discovery); manifest.tools.core_overrides opts names in.
1508
+ core_overrides = _core_overrides_from_manifest(manifest)
1433
1509
  started_providers: List["ToolProvider"] = []
1434
1510
  if tool_providers:
1435
- started_providers = await register_providers(list(tool_providers), registry)
1511
+ started_providers = await register_providers(
1512
+ list(tool_providers),
1513
+ registry,
1514
+ core_resolver=lambda name: _resolve_core_flag(name, core_overrides, False),
1515
+ )
1436
1516
 
1437
1517
  manager = MCPManager()
1438
1518
 
@@ -1481,8 +1561,15 @@ class Pipeline:
1481
1561
  try:
1482
1562
  await manager.connect_all(configs)
1483
1563
  adapters = await manager.discover_all()
1564
+ # MCP tools are deferred by default (ToolSearch
1565
+ # discovery); core_overrides opts names in — the
1566
+ # trailing-* form covers whole servers whose tool
1567
+ # names are only known after discovery.
1484
1568
  for adapter in adapters:
1485
- registry.register(adapter)
1569
+ registry.register(
1570
+ adapter,
1571
+ core=_resolve_core_flag(adapter.name, core_overrides, False),
1572
+ )
1486
1573
  except BaseException:
1487
1574
  # Unwind providers if MCP bring-up fails mid-flight so no
1488
1575
  # half-started resources leak out.
@@ -1492,6 +1579,10 @@ class Pipeline:
1492
1579
  await manager.disconnect_all()
1493
1580
  raise
1494
1581
 
1582
+ # Providers + MCP may have added deferred tools after the sync
1583
+ # from_manifest pass — re-check the discovery path.
1584
+ _ensure_tool_search_reachable(registry)
1585
+
1495
1586
  pipeline._mcp_manager = manager
1496
1587
  pipeline._tool_registry = registry
1497
1588
  pipeline._tool_providers = started_providers
@@ -164,14 +164,24 @@ class SystemStage(Stage[Any, Any]):
164
164
  # Register tools in state if registry provided. Snapshotted on the first
165
165
  # turn, then rebuilt only when the live registry's version moves — so a
166
166
  # tool/skill enabled/disabled/created mid-session (self-modifying
167
- # environment), or an MCP re-seed, takes effect on the next turn. The
168
- # version guard keeps the steady-state cost at one int compare per turn.
167
+ # environment), an MCP re-seed, or a ToolSearch activation takes effect
168
+ # on the next iteration. The version guard keeps the steady-state cost
169
+ # at one int compare per turn.
170
+ #
171
+ # Only *exposed* tools ship to the model: core tools plus deferred
172
+ # tools a ToolSearch hit activated. Deferred tools stay registered
173
+ # (Stage 10 can still dispatch them) but their schemas stay out of
174
+ # the request payload until discovered — that's the token contract.
169
175
  if self._tool_registry is not None:
170
176
  reg_version = getattr(self._tool_registry, "version", None)
171
177
  if not state.tools or (
172
178
  reg_version is not None and reg_version != state.tools_version
173
179
  ):
174
- state.tools = self._tool_registry.to_api_format()
180
+ try:
181
+ state.tools = self._tool_registry.to_api_format(exposed_only=True)
182
+ except TypeError:
183
+ # Host passed a registry-alike without exposure support.
184
+ state.tools = self._tool_registry.to_api_format()
175
185
  if reg_version is not None:
176
186
  state.tools_version = reg_version
177
187
 
@@ -208,6 +208,9 @@ class ToolStage(Stage[Any, Any]):
208
208
  # can see the live tool descriptors + shared state. Tools
209
209
  # MUST NOT mutate — use state_mutations / state_apply instead.
210
210
  state_view=state,
211
+ # The live registry — ToolSearch searches the FULL catalogue
212
+ # through it (deferred tools included) and activates matches.
213
+ tool_registry=self._registry,
211
214
  # Phase 5: propagate the host-attached HookRunner so the
212
215
  # router can fire PRE_TOOL_USE / POST_TOOL_USE / POST_TOOL_
213
216
  # FAILURE around dispatch. ``None`` is the default no-op.
@@ -157,6 +157,12 @@ class ToolContext:
157
157
  # means the host did not enable self-modification. Typed ``Any`` to avoid a
158
158
  # core import cycle.
159
159
  environment: Optional[Any] = None
160
+ # The live ToolRegistry backing this session (set by Stage 10). ToolSearch
161
+ # reads the FULL catalogue from it — including deferred tools whose schemas
162
+ # are not in ``state.tools`` — and promotes matches via ``activate()``.
163
+ # ``None`` (default) preserves the state_view/built-in fallback path.
164
+ # Typed ``Any`` to avoid importing the registry from this base module.
165
+ tool_registry: Optional[Any] = None
160
166
  extras: Dict[str, Any] = field(default_factory=dict)
161
167
 
162
168
 
@@ -1,23 +1,35 @@
1
- """ToolSearch — discovery helper for the tools available this turn.
1
+ """ToolSearch — deferred-tool discovery + activation.
2
2
 
3
3
  Cycle 20260424 executor uplift — Phase 3 Week 6.
4
-
5
- When a pipeline has dozens of tools wired up (executor built-ins + MCP
6
- servers + skill bundles + host-specific custom tools) the LLM often
7
- needs help finding the right one. ``ToolSearch`` is a lightweight
8
- introspection tool pass it a query, get back a ranked list of
9
- matching tool names + their one-line descriptions.
10
-
11
- Source of truth:
12
-
13
- 1. If ``ToolContext.state_view`` is set (the usual Stage 10 path), we
14
- read ``state_view.tools`` the live list of API-format tool
15
- descriptors the LLM already sees. This includes MCP tools, custom
16
- host tools, everything.
17
- 2. Otherwise (e.g. a test harness running a bare executor without a
18
- Stage), we fall back to the built-in catalogue
19
- (``BUILT_IN_TOOL_CLASSES``) so the tool still produces useful
20
- output in isolation.
4
+ 2.42.0 — upgraded from a list-introspection helper to the discovery
5
+ half of the core/deferred tool contract.
6
+
7
+ The pipeline no longer ships every tool schema to the LLM upfront.
8
+ *Core* tools (framework built-ins by default, plus anything the
9
+ manifest's ``tools.core_overrides`` promotes) are always in the
10
+ request payload; everything else — host/external tools, provider
11
+ bundles, MCP adapters — is registered but *deferred*: dispatchable,
12
+ yet invisible to the model until discovered here.
13
+
14
+ ``ToolSearch`` is that discovery path. Pass it a keyword query and it:
15
+
16
+ 1. Searches the FULL catalogue via ``ToolContext.tool_registry``
17
+ (Stage 10 binds the live :class:`ToolRegistry`), deferred tools
18
+ included.
19
+ 2. Ranks matches (name > description > schema, see :func:`_rank`).
20
+ 3. **Activates** every deferred match — ``registry.activate(name)``
21
+ bumps the registry version, so Stage 3 rebuilds ``state.tools`` on
22
+ the next loop iteration and the activated schemas reach the model
23
+ on its very next step within the same turn.
24
+
25
+ Fallback sources when no registry handle is bound (bare harnesses,
26
+ older hosts):
27
+
28
+ 1. ``ToolContext.state_view.tools`` — the live API-format descriptors
29
+ the LLM already sees (pre-2.42 behaviour; search only, nothing to
30
+ activate).
31
+ 2. The built-in catalogue (``BUILT_IN_TOOL_CLASSES``) so the tool
32
+ still produces useful output in isolation.
21
33
 
22
34
  Ranking is simple: a hit on the tool ``name`` beats a hit on the
23
35
  ``description``; exact name match beats substring; case-insensitive
@@ -34,16 +46,16 @@ from typing import Any, Dict, List, Optional, Tuple
34
46
 
35
47
  from geny_executor.tools.base import Tool, ToolCapabilities, ToolContext, ToolResult
36
48
 
37
- _DEFAULT_LIMIT = 20
49
+ _DEFAULT_LIMIT = 10
38
50
  _HARD_LIMIT = 100
39
51
 
40
52
 
41
53
  def _fallback_descriptors() -> List[Dict[str, Any]]:
42
54
  """Build descriptors from the built-in catalogue.
43
55
 
44
- Only used when ``state_view`` is absent. Mirrors the shape of the
45
- Anthropic API tool descriptor so rank logic can treat both sources
46
- the same.
56
+ Only used when neither ``tool_registry`` nor ``state_view`` is
57
+ available. Mirrors the shape of the Anthropic API tool descriptor
58
+ so rank logic can treat every source the same.
47
59
  """
48
60
  # Local import to avoid the package-init circular dependency.
49
61
  from geny_executor.tools.built_in import BUILT_IN_TOOL_CLASSES
@@ -120,17 +132,19 @@ def _rank(descriptor: Dict[str, Any], query: str) -> int:
120
132
 
121
133
 
122
134
  class ToolSearchTool(Tool):
123
- """Find tools matching a keyword query.
135
+ """Discover tools from the full catalogue — and activate deferred ones.
124
136
 
125
- Usage: the LLM calls ``ToolSearch({"query": "grep files"})`` and
137
+ Usage: the LLM calls ``ToolSearch({"query": "spreadsheet"})`` and
126
138
  gets back something like::
127
139
 
128
- Matching 2 tools for 'grep files':
129
- 1. GrepSearch file contents with ripgrep regex syntax.
130
- 2. GlobMatch file paths with shell globbing.
140
+ Matching 2 tool(s) for 'spreadsheet':
141
+ 1. xlsx_editEdit XLSX workbooks in place. [activated]
142
+ 2. ReadRead a file from the filesystem. [available]
143
+ Activated tool schemas become available on your next step.
131
144
 
132
- The host decides which tools to include by deciding what to put on
133
- ``state.tools`` each turn this tool just surfaces that list.
145
+ Matches already exposed to the model are tagged ``[available]``;
146
+ deferred matches are tagged ``[activated]`` their full schemas
147
+ enter the tool list on the next loop iteration.
134
148
  """
135
149
 
136
150
  @property
@@ -140,9 +154,11 @@ class ToolSearchTool(Tool):
140
154
  @property
141
155
  def description(self) -> str:
142
156
  return (
143
- "Find tools available this turn by keyword. Returns ranked "
144
- "matches with name + description. Useful when unsure which "
145
- "tool to call for a task."
157
+ "Search the full tool catalog by keyword it contains more "
158
+ "tools than your current tool list. Matching tools that are "
159
+ "not yet in your tool list are activated automatically and "
160
+ "become callable on your next step. Use this whenever no "
161
+ "visible tool fits the task."
146
162
  )
147
163
 
148
164
  @property
@@ -155,15 +171,18 @@ class ToolSearchTool(Tool):
155
171
  "description": (
156
172
  "Keyword query. Multi-word queries require every "
157
173
  "token to match somewhere (name / description / "
158
- "input schema)."
174
+ "input schema). An exact tool name is the most "
175
+ "precise query."
159
176
  ),
160
177
  "minLength": 1,
161
178
  },
162
179
  "limit": {
163
180
  "type": "integer",
164
181
  "description": (
165
- f"Maximum number of matches to return. Default "
166
- f"{_DEFAULT_LIMIT}, hard cap {_HARD_LIMIT}."
182
+ f"Maximum number of matches to return (and thus to "
183
+ f"activate). Default {_DEFAULT_LIMIT}, hard cap "
184
+ f"{_HARD_LIMIT}. Keep it small to avoid bloating "
185
+ f"your tool list."
167
186
  ),
168
187
  "exclusiveMinimum": 0,
169
188
  },
@@ -186,7 +205,8 @@ class ToolSearchTool(Tool):
186
205
  limit = int(input.get("limit", _DEFAULT_LIMIT))
187
206
  limit = max(1, min(_HARD_LIMIT, limit))
188
207
 
189
- descriptors = self._collect_descriptors(context)
208
+ registry = getattr(context, "tool_registry", None)
209
+ descriptors = self._collect_descriptors(context, registry)
190
210
  ranked: List[Tuple[int, Dict[str, Any]]] = []
191
211
  for desc in descriptors:
192
212
  score = _rank(desc, query)
@@ -206,13 +226,31 @@ class ToolSearchTool(Tool):
206
226
  },
207
227
  )
208
228
 
229
+ # Promote deferred matches: activate() bumps the registry
230
+ # version, Stage 3 rebuilds state.tools next iteration, and the
231
+ # schemas reach the model on its next step within this turn.
232
+ activated: List[str] = []
233
+ if registry is not None:
234
+ for _, desc in top:
235
+ name = str(desc.get("name", ""))
236
+ if desc.get("_deferred") and self._activate(registry, name):
237
+ activated.append(name)
238
+
209
239
  lines = [f"Matching {len(top)} tool(s) for {query!r}:"]
210
240
  for i, (score, desc) in enumerate(top, 1):
211
241
  name = desc.get("name", "?")
212
242
  d = str(desc.get("description", "")).strip()
213
243
  # Keep descriptions on one line for easy scanning.
214
244
  one_liner = d.splitlines()[0] if d else "(no description)"
215
- lines.append(f"{i}. {name} — {one_liner}")
245
+ tag = ""
246
+ if registry is not None:
247
+ tag = " [activated]" if name in activated else " [available]"
248
+ lines.append(f"{i}. {name} — {one_liner}{tag}")
249
+ if activated:
250
+ lines.append(
251
+ "Activated tool schemas become available on your next step — "
252
+ "call them then."
253
+ )
216
254
 
217
255
  return ToolResult(
218
256
  content="\n".join(lines),
@@ -223,18 +261,51 @@ class ToolSearchTool(Tool):
223
261
  {"name": d.get("name"), "score": s, "description": d.get("description")}
224
262
  for s, d in top
225
263
  ],
264
+ "activated": activated,
226
265
  "searched": len(descriptors),
227
266
  },
228
267
  )
229
268
 
230
- def _collect_descriptors(self, context: ToolContext) -> List[Dict[str, Any]]:
231
- """Prefer live pipeline tools (via ``state_view``), fall back to built-ins.
232
-
233
- The ``state_view`` path is what Stage 10 configures at runtime —
234
- it reflects MCP servers, custom tools, skills, everything. The
235
- fallback is just a graceful default for test harnesses that run
236
- executors without a Stage wrapper.
269
+ @staticmethod
270
+ def _activate(registry: Any, name: str) -> bool:
271
+ """Best-effort ``registry.activate(name)`` — never breaks the search."""
272
+ activate = getattr(registry, "activate", None)
273
+ if not callable(activate):
274
+ return False
275
+ try:
276
+ return bool(activate(name))
277
+ except Exception:
278
+ return False
279
+
280
+ def _collect_descriptors(
281
+ self, context: ToolContext, registry: Optional[Any]
282
+ ) -> List[Dict[str, Any]]:
283
+ """Prefer the live registry (full catalogue), then ``state_view``, then built-ins.
284
+
285
+ The registry path is what Stage 10 configures at runtime — it
286
+ covers MCP tools, custom host tools, skills, everything,
287
+ *including deferred tools whose schemas the model has not seen*.
288
+ Each descriptor is annotated with a private ``_deferred`` flag
289
+ so ``execute`` knows which matches need activation. The
290
+ ``state_view`` path is the pre-2.42 behaviour (exposed tools
291
+ only); the built-in catalogue is a graceful default for test
292
+ harnesses running executors without a Stage wrapper.
237
293
  """
294
+ if registry is not None:
295
+ try:
296
+ out: List[Dict[str, Any]] = []
297
+ for tool in registry.list_all():
298
+ desc = tool.to_api_format()
299
+ if isinstance(desc, dict):
300
+ is_exposed = getattr(registry, "is_exposed", None)
301
+ desc["_deferred"] = (
302
+ not bool(is_exposed(tool.name)) if callable(is_exposed) else False
303
+ )
304
+ out.append(desc)
305
+ if out:
306
+ return out
307
+ except Exception:
308
+ pass # fall through to the view/built-in sources
238
309
  view: Optional[Any] = getattr(context, "state_view", None)
239
310
  if view is not None:
240
311
  tools = getattr(view, "tools", None)
@@ -38,7 +38,7 @@ from __future__ import annotations
38
38
 
39
39
  import logging
40
40
  from abc import ABC, abstractmethod
41
- from typing import Iterable, List, Optional
41
+ from typing import Callable, Iterable, List, Optional
42
42
 
43
43
  from geny_executor.tools.base import Tool
44
44
 
@@ -151,6 +151,8 @@ class BuiltInToolProvider(ToolProvider):
151
151
  async def register_providers(
152
152
  providers: List[ToolProvider],
153
153
  registry: "ToolRegistry", # type: ignore[name-defined] # noqa: F821
154
+ *,
155
+ core_resolver: Optional[Callable[[str], bool]] = None,
154
156
  ) -> List[ToolProvider]:
155
157
  """Start each provider and register its tools into ``registry``.
156
158
 
@@ -165,6 +167,12 @@ async def register_providers(
165
167
  is logged at WARNING but not rejected. This keeps a partial
166
168
  build usable instead of failing the whole pipeline.
167
169
 
170
+ ``core_resolver`` maps a tool name to its core flag (upfront schema
171
+ exposure vs ToolSearch-deferred). ``None`` keeps the pre-2.42
172
+ behaviour: everything registers as core. The manifest build path
173
+ passes a resolver that defaults provider tools to deferred and
174
+ applies ``manifest.tools.core_overrides``.
175
+
168
176
  Returns the list of providers that were successfully started, in
169
177
  the order they were registered — callers can pass this to
170
178
  :func:`shutdown_providers` to unwind cleanly.
@@ -196,7 +204,8 @@ async def register_providers(
196
204
  tool.name,
197
205
  )
198
206
  continue
199
- registry.register(tool)
207
+ core = True if core_resolver is None else bool(core_resolver(tool.name))
208
+ registry.register(tool, core=core)
200
209
  except BaseException:
201
210
  await shutdown_providers(started)
202
211
  raise