reactifact 0.11.0__tar.gz → 0.11.1__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 (243) hide show
  1. {reactifact-0.11.0/reactifact.egg-info → reactifact-0.11.1}/PKG-INFO +1 -1
  2. {reactifact-0.11.0 → reactifact-0.11.1}/pyproject.toml +1 -1
  3. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/__init__.py +1 -1
  4. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/web.py +5 -1
  5. {reactifact-0.11.0 → reactifact-0.11.1/reactifact.egg-info}/PKG-INFO +1 -1
  6. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_tracing.py +17 -0
  7. {reactifact-0.11.0 → reactifact-0.11.1}/LICENSE +0 -0
  8. {reactifact-0.11.0 → reactifact-0.11.1}/README.md +0 -0
  9. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/__main__.py +0 -0
  10. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/_extras.py +0 -0
  11. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/_httpx.py +0 -0
  12. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/agent_tool.py +0 -0
  13. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/agents.py +0 -0
  14. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/artifacts.py +0 -0
  15. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/audit.py +0 -0
  16. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/branching.py +0 -0
  17. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/budget.py +0 -0
  18. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/chat.py +0 -0
  19. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/checkpoints.py +0 -0
  20. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/cli/__init__.py +0 -0
  21. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/cli/branch.py +0 -0
  22. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/cli/common.py +0 -0
  23. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/cli/context.py +0 -0
  24. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/cli/graph.py +0 -0
  25. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/cli/replay.py +0 -0
  26. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/cli/scenario.py +0 -0
  27. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/cli/trace.py +0 -0
  28. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/commit.py +0 -0
  29. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/commit_log.py +0 -0
  30. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/consume.py +0 -0
  31. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/context.py +0 -0
  32. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/context_builder.py +0 -0
  33. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/effects.py +0 -0
  34. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/eval.py +0 -0
  35. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/events.py +0 -0
  36. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/interrupt.py +0 -0
  37. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/llm_agent.py +0 -0
  38. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/mcp/__init__.py +0 -0
  39. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/mcp/client.py +0 -0
  40. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/mcp/oauth.py +0 -0
  41. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/mcp/server.py +0 -0
  42. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/native_tool_use.py +0 -0
  43. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/operations.py +0 -0
  44. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/patches.py +0 -0
  45. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/produce.py +0 -0
  46. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/prompts.py +0 -0
  47. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/__init__.py +0 -0
  48. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/_retry.py +0 -0
  49. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/anthropic.py +0 -0
  50. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/azure.py +0 -0
  51. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/cerebras.py +0 -0
  52. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/chat.py +0 -0
  53. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/contracts.py +0 -0
  54. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/deepseek.py +0 -0
  55. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/fake.py +0 -0
  56. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/fireworks.py +0 -0
  57. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/gemini.py +0 -0
  58. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/github_models.py +0 -0
  59. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/groq.py +0 -0
  60. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/image.py +0 -0
  61. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/mistral.py +0 -0
  62. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/nvidia.py +0 -0
  63. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/ollama.py +0 -0
  64. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/openai.py +0 -0
  65. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/openrouter.py +0 -0
  66. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/perplexity.py +0 -0
  67. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/qwen.py +0 -0
  68. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/speech.py +0 -0
  69. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/together.py +0 -0
  70. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/video.py +0 -0
  71. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/xai.py +0 -0
  72. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/zai.py +0 -0
  73. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/py.typed +0 -0
  74. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/quick/__init__.py +0 -0
  75. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/quick/_shared.py +0 -0
  76. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/quick/agent.py +0 -0
  77. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/quick/chat.py +0 -0
  78. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/quick/models.py +0 -0
  79. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/quick/rag.py +0 -0
  80. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/quick/tools_agent.py +0 -0
  81. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/__init__.py +0 -0
  82. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/cleanup.py +0 -0
  83. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/identity.py +0 -0
  84. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/inputs.py +0 -0
  85. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/memory.py +0 -0
  86. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/plan_execute.py +0 -0
  87. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/reflection.py +0 -0
  88. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/resolve.py +0 -0
  89. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/rollback.py +0 -0
  90. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/search.py +0 -0
  91. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/skills.py +0 -0
  92. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/status.py +0 -0
  93. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/supervisor.py +0 -0
  94. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/text.py +0 -0
  95. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/tool_loop.py +0 -0
  96. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/redaction.py +0 -0
  97. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/relations.py +0 -0
  98. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/replay.py +0 -0
  99. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/request.py +0 -0
  100. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/resources.py +0 -0
  101. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/runtime.py +0 -0
  102. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/scheduler.py +0 -0
  103. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/session.py +0 -0
  104. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/sources.py +0 -0
  105. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/streaming.py +0 -0
  106. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/structured.py +0 -0
  107. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/testing/__init__.py +0 -0
  108. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/testing/assertions.py +0 -0
  109. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/testing/exceptions.py +0 -0
  110. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/testing/fault.py +0 -0
  111. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/testing/golden.py +0 -0
  112. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/testing/lab.py +0 -0
  113. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/testing/mock.py +0 -0
  114. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/testing/record.py +0 -0
  115. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/testing/registry.py +0 -0
  116. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tool_use.py +0 -0
  117. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tools.py +0 -0
  118. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/__init__.py +0 -0
  119. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/_otlp.py +0 -0
  120. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/langfuse.py +0 -0
  121. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/models.py +0 -0
  122. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/otlp.py +0 -0
  123. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/postgres.py +0 -0
  124. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/store.py +0 -0
  125. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/templates/app.css +0 -0
  126. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/templates/sessions.html +0 -0
  127. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/templates/ui.html +0 -0
  128. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/templates/ui_run.html +0 -0
  129. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/tracer.py +0 -0
  130. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/triggers.py +0 -0
  131. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/verify.py +0 -0
  132. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/viz.py +0 -0
  133. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/web.py +0 -0
  134. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact.egg-info/SOURCES.txt +0 -0
  135. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact.egg-info/dependency_links.txt +0 -0
  136. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact.egg-info/entry_points.txt +0 -0
  137. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact.egg-info/requires.txt +0 -0
  138. {reactifact-0.11.0 → reactifact-0.11.1}/reactifact.egg-info/top_level.txt +0 -0
  139. {reactifact-0.11.0 → reactifact-0.11.1}/setup.cfg +0 -0
  140. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_absent_consume.py +0 -0
  141. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_adaptive.py +0 -0
  142. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_agent_tool.py +0 -0
  143. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_anthropic_provider.py +0 -0
  144. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_artifacts.py +0 -0
  145. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_audit.py +0 -0
  146. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_backbone.py +0 -0
  147. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_branching.py +0 -0
  148. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_budget.py +0 -0
  149. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_canonical_ports.py +0 -0
  150. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_chat_web.py +0 -0
  151. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_checkpoint.py +0 -0
  152. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_checkpoints_concurrency.py +0 -0
  153. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_cli.py +0 -0
  154. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_cli_scenario.py +0 -0
  155. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_commit_log.py +0 -0
  156. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_concurrency.py +0 -0
  157. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_consumes_produces.py +0 -0
  158. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_context_builder.py +0 -0
  159. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_correlated_consume.py +0 -0
  160. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_debounce.py +0 -0
  161. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_determinism.py +0 -0
  162. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_devops.py +0 -0
  163. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_devops_web.py +0 -0
  164. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_effects.py +0 -0
  165. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_eval.py +0 -0
  166. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_fintech_audit.py +0 -0
  167. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_forklab.py +0 -0
  168. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_forklab_web.py +0 -0
  169. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_friendly_api.py +0 -0
  170. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_gemini_provider.py +0 -0
  171. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_golden.py +0 -0
  172. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_hitl.py +0 -0
  173. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_image_provider.py +0 -0
  174. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_incident_commander.py +0 -0
  175. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_invalidation.py +0 -0
  176. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_join_consume.py +0 -0
  177. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_knowledge.py +0 -0
  178. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_knowledge_web.py +0 -0
  179. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_llm_ladder.py +0 -0
  180. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_loop_bound_client.py +0 -0
  181. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_mcp.py +0 -0
  182. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_medic_lab.py +0 -0
  183. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_medic_lab_web.py +0 -0
  184. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_multisource.py +0 -0
  185. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_native_tool_use.py +0 -0
  186. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_openai_provider.py +0 -0
  187. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_patches.py +0 -0
  188. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_ports.py +0 -0
  189. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_produce_styles.py +0 -0
  190. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_produce_trigger.py +0 -0
  191. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_prompts.py +0 -0
  192. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_provider_auth.py +0 -0
  193. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_provider_retry.py +0 -0
  194. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_providers_integration.py +0 -0
  195. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_quick.py +0 -0
  196. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_reacts_to.py +0 -0
  197. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_recipe_plan_execute.py +0 -0
  198. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_recipe_reflection.py +0 -0
  199. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_recipe_supervisor.py +0 -0
  200. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_recipe_tool_loop.py +0 -0
  201. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_recipes.py +0 -0
  202. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_recipes_inputs.py +0 -0
  203. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_recipes_memory.py +0 -0
  204. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_recipes_skills.py +0 -0
  205. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_redaction.py +0 -0
  206. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_relation_graph.py +0 -0
  207. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_relations.py +0 -0
  208. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_repair.py +0 -0
  209. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_repair_web.py +0 -0
  210. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_replay.py +0 -0
  211. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_repo_agent.py +0 -0
  212. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_request.py +0 -0
  213. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_research.py +0 -0
  214. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_resources.py +0 -0
  215. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_retry.py +0 -0
  216. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_runtime.py +0 -0
  217. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_runtime_errors.py +0 -0
  218. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_scheduler_semantics.py +0 -0
  219. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_sessions.py +0 -0
  220. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_sources.py +0 -0
  221. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_sources_search.py +0 -0
  222. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_sources_vector.py +0 -0
  223. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_speech_provider.py +0 -0
  224. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_starter_app.py +0 -0
  225. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_streaming.py +0 -0
  226. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_structured.py +0 -0
  227. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_support_copilot.py +0 -0
  228. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_testing_assertions.py +0 -0
  229. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_testing_lab.py +0 -0
  230. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_testing_mock.py +0 -0
  231. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_testing_registry.py +0 -0
  232. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_tools.py +0 -0
  233. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_trace_tags.py +0 -0
  234. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_vendor_factories.py +0 -0
  235. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_vendor_multimodal_factories.py +0 -0
  236. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_verify.py +0 -0
  237. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_video_provider.py +0 -0
  238. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_view.py +0 -0
  239. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_viz.py +0 -0
  240. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_web_source.py +0 -0
  241. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_workspace.py +0 -0
  242. {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_workspace_with_sources.py +0 -0
  243. {reactifact-0.11.0 → reactifact-0.11.1}/tests/tests_checkpoints_sqlite.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: reactifact
3
- Version: 0.11.0
3
+ Version: 0.11.1
4
4
  Summary: Reactive, artifact-driven agent runtime: agents transform versioned, typed, provenance-aware artifacts inside an evolving context
5
5
  License-Expression: MIT
6
6
  Project-URL: Homepage, https://github.com/bzdvdn/reactifact
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "reactifact"
7
- version = "0.11.0"
7
+ version = "0.11.1"
8
8
  description = "Reactive, artifact-driven agent runtime: agents transform versioned, typed, provenance-aware artifacts inside an evolving context"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -49,7 +49,7 @@ from .session import Session, SessionStore
49
49
  from .tools import FunctionTool, Tool, ToolOutput, tool
50
50
  from .triggers import Trigger
51
51
 
52
- __version__ = "0.11.0"
52
+ __version__ = "0.11.1"
53
53
 
54
54
  __all__ = [
55
55
  "Agent",
@@ -141,7 +141,11 @@ def create_trace_router(
141
141
  offset=offset,
142
142
  )
143
143
 
144
- @router.get("/api/traces/export")
144
+ # ``response_model=None`` is required: the module uses ``from __future__
145
+ # import annotations`` and imports fastapi lazily here, so the ``->
146
+ # JSONResponse`` return annotation stays an unresolvable forward ref and
147
+ # FastAPI would fail to build ``/openapi.json``.
148
+ @router.get("/api/traces/export", response_model=None)
145
149
  async def export_traces(
146
150
  session_id: str | None = Query(default=None),
147
151
  outcome: str | None = Query(default=None),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: reactifact
3
- Version: 0.11.0
3
+ Version: 0.11.1
4
4
  Summary: Reactive, artifact-driven agent runtime: agents transform versioned, typed, provenance-aware artifacts inside an evolving context
5
5
  License-Expression: MIT
6
6
  Project-URL: Homepage, https://github.com/bzdvdn/reactifact
@@ -576,6 +576,23 @@ def test_trace_router_open_without_auth(tmp_path):
576
576
  assert client.get("/api/traces").status_code == 200
577
577
 
578
578
 
579
+ def test_trace_router_openapi_schema_builds(tmp_path):
580
+ from fastapi import FastAPI
581
+ from fastapi.testclient import TestClient
582
+ from reactifact.tracing.web import create_trace_router
583
+
584
+ store = TraceStore(str(tmp_path / "schema.db"))
585
+ app = FastAPI()
586
+ app.include_router(create_trace_router(store))
587
+ client = TestClient(app)
588
+
589
+ # regression: the ``-> JSONResponse`` export handler used to make schema
590
+ # generation raise on an unresolvable forward ref (no module-level import)
591
+ spec = client.get("/openapi.json")
592
+ assert spec.status_code == 200
593
+ assert "/api/traces/export" in spec.json()["paths"]
594
+
595
+
579
596
  def test_trace_run_page_embeds_mermaid_diagram(tmp_path):
580
597
  from fastapi import FastAPI
581
598
  from fastapi.testclient import TestClient
File without changes
File without changes
File without changes