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.
- {reactifact-0.11.0/reactifact.egg-info → reactifact-0.11.1}/PKG-INFO +1 -1
- {reactifact-0.11.0 → reactifact-0.11.1}/pyproject.toml +1 -1
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/__init__.py +1 -1
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/web.py +5 -1
- {reactifact-0.11.0 → reactifact-0.11.1/reactifact.egg-info}/PKG-INFO +1 -1
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_tracing.py +17 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/LICENSE +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/README.md +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/__main__.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/_extras.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/_httpx.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/agent_tool.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/agents.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/artifacts.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/audit.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/branching.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/budget.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/chat.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/checkpoints.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/cli/__init__.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/cli/branch.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/cli/common.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/cli/context.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/cli/graph.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/cli/replay.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/cli/scenario.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/cli/trace.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/commit.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/commit_log.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/consume.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/context.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/context_builder.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/effects.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/eval.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/events.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/interrupt.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/llm_agent.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/mcp/__init__.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/mcp/client.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/mcp/oauth.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/mcp/server.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/native_tool_use.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/operations.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/patches.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/produce.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/prompts.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/__init__.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/_retry.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/anthropic.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/azure.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/cerebras.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/chat.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/contracts.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/deepseek.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/fake.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/fireworks.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/gemini.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/github_models.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/groq.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/image.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/mistral.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/nvidia.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/ollama.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/openai.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/openrouter.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/perplexity.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/qwen.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/speech.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/together.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/video.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/xai.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/providers/zai.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/py.typed +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/quick/__init__.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/quick/_shared.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/quick/agent.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/quick/chat.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/quick/models.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/quick/rag.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/quick/tools_agent.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/__init__.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/cleanup.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/identity.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/inputs.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/memory.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/plan_execute.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/reflection.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/resolve.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/rollback.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/search.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/skills.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/status.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/supervisor.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/text.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/recipes/tool_loop.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/redaction.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/relations.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/replay.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/request.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/resources.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/runtime.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/scheduler.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/session.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/sources.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/streaming.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/structured.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/testing/__init__.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/testing/assertions.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/testing/exceptions.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/testing/fault.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/testing/golden.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/testing/lab.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/testing/mock.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/testing/record.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/testing/registry.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tool_use.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tools.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/__init__.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/_otlp.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/langfuse.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/models.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/otlp.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/postgres.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/store.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/templates/app.css +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/templates/sessions.html +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/templates/ui.html +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/templates/ui_run.html +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/tracing/tracer.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/triggers.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/verify.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/viz.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact/web.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact.egg-info/SOURCES.txt +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact.egg-info/dependency_links.txt +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact.egg-info/entry_points.txt +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact.egg-info/requires.txt +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/reactifact.egg-info/top_level.txt +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/setup.cfg +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_absent_consume.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_adaptive.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_agent_tool.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_anthropic_provider.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_artifacts.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_audit.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_backbone.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_branching.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_budget.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_canonical_ports.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_chat_web.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_checkpoint.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_checkpoints_concurrency.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_cli.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_cli_scenario.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_commit_log.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_concurrency.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_consumes_produces.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_context_builder.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_correlated_consume.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_debounce.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_determinism.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_devops.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_devops_web.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_effects.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_eval.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_fintech_audit.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_forklab.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_forklab_web.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_friendly_api.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_gemini_provider.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_golden.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_hitl.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_image_provider.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_incident_commander.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_invalidation.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_join_consume.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_knowledge.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_knowledge_web.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_llm_ladder.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_loop_bound_client.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_mcp.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_medic_lab.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_medic_lab_web.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_multisource.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_native_tool_use.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_openai_provider.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_patches.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_ports.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_produce_styles.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_produce_trigger.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_prompts.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_provider_auth.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_provider_retry.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_providers_integration.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_quick.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_reacts_to.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_recipe_plan_execute.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_recipe_reflection.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_recipe_supervisor.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_recipe_tool_loop.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_recipes.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_recipes_inputs.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_recipes_memory.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_recipes_skills.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_redaction.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_relation_graph.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_relations.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_repair.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_repair_web.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_replay.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_repo_agent.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_request.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_research.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_resources.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_retry.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_runtime.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_runtime_errors.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_scheduler_semantics.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_sessions.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_sources.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_sources_search.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_sources_vector.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_speech_provider.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_starter_app.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_streaming.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_structured.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_support_copilot.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_testing_assertions.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_testing_lab.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_testing_mock.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_testing_registry.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_tools.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_trace_tags.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_vendor_factories.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_vendor_multimodal_factories.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_verify.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_video_provider.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_view.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_viz.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_web_source.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_workspace.py +0 -0
- {reactifact-0.11.0 → reactifact-0.11.1}/tests/test_workspace_with_sources.py +0 -0
- {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.
|
|
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.
|
|
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"
|
|
@@ -141,7 +141,11 @@ def create_trace_router(
|
|
|
141
141
|
offset=offset,
|
|
142
142
|
)
|
|
143
143
|
|
|
144
|
-
|
|
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.
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|