prompture 1.16.1.dev1__tar.gz → 1.16.2.dev1__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.
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/PKG-INFO +1 -1
- prompture-1.16.2.dev1/VERSION +1 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/_version.py +2 -2
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/agent.py +18 -2
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/async_agent.py +18 -2
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/async_conversation.py +47 -1
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/conversation.py +47 -1
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/_openai_compat_stream.py +28 -6
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/resilience/async_driver.py +6 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/resilience/errors.py +14 -1
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/resilience/router.py +22 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture.egg-info/PKG-INFO +1 -1
- prompture-1.16.1.dev1/VERSION +0 -1
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.claude/skills/add-driver/SKILL.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.claude/skills/add-driver/references/driver-template.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.claude/skills/add-example/SKILL.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.claude/skills/add-field/SKILL.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.claude/skills/add-persona/SKILL.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.claude/skills/add-test/SKILL.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.claude/skills/add-tool/SKILL.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.claude/skills/create-pr/SKILL.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.claude/skills/run-tests/SKILL.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.claude/skills/scaffold-extraction/SKILL.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.claude/skills/update-pricing/SKILL.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.env.copy +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.gitattributes +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.github/FUNDING.yml +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.github/ISSUE_TEMPLATE/pricing_cost_mismatch.yml +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.github/ISSUE_TEMPLATE/provider_driver_bug.yml +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.github/ISSUE_TEMPLATE/schema_extraction_failure.yml +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.github/scripts/update_docs_version.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.github/scripts/update_wrapper_version.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.github/workflows/dev.yml +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.github/workflows/documentation.yml +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.github/workflows/pricing-freshness.yml +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.github/workflows/publish.yml +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.github/workflows/security.yml +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.safety-project.ini +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/AGENTS.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/BREAKING_CHANGES.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/CLAUDE.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/CONTRIBUTING.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/LICENSE +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/MANIFEST.in +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/README.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/ROADMAP.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/SECURITY.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/dev.ps1 +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/dev.sh +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/llms.txt +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/mypy_errors.txt +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/packages/README.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/packages/llm_to_json/README.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/packages/llm_to_json/llm_to_json/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/packages/llm_to_json/pyproject.toml +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/packages/llm_to_json/test.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/packages/llm_to_toon/README.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/packages/llm_to_toon/llm_to_toon/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/packages/llm_to_toon/pyproject.toml +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/packages/llm_to_toon/test.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/__main__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/_internal/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/_internal/json_encoder.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/assistant.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/async_deep_agent.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/deep/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/deep/planner.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/deep/subagents.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/deep/summarizer.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/deep/vfs.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/deep_agent.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/deep_prompts.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/deep_state.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/live_events.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/persona.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/review_loop.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/simulated_tools.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/skill_miner.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/skills.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/tool_context.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/tool_grammars.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/tools_schema.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/agents/types.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/aio/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/bridges/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/bridges/tukuy_backend.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/capabilities/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/capabilities/backends.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/capabilities/builtin_checks.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/capabilities/challenge.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/capabilities/errors.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/capabilities/health.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/capabilities/http.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/capabilities/probe.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/capabilities/url_safety.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/checkpoints/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/checkpoints/core.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/checkpoints/stores.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/checkpoints/types.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/citations/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/citations/core.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/citations/types.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/cli/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/cli/cli.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/cli/delegate_cmd.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/cli/doctor_cmd.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/cli/formatters.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/cli/mcp_cmd.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/cli/research_cmd.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/cli/runner.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/cli/server.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/cli/setup_cmd.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/cli/skill_cmd.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/cli/transcribe_cmd.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/companion/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/companion/automations.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/companion/calls.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/companion/capacity.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/companion/coding_tools.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/companion/hook.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/companion/live.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/companion/local.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/companion/memory.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/companion/reuse.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/companion/router.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/companion/routing_policy.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/companion/server.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/companion/summary.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/companion/tool_routing.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/dataset/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/dataset/dedup.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/dataset/evol.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/dataset/filters.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/dataset/formats.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/dataset/schemas.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/dataset/seed.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/dataset/synth.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/doctor/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/doctor/core.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/doctor/providers.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/_effort.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/_google_genai.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/_media_usage.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/_ollama_options.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/_openai_compat.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/_openai_responses.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/_prompt_cache.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/_prompted_tool_stream.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/_usage_reporting.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/aggregator_base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/airllm_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/assemblyai_stt_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_aggregator_base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_airllm_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_assemblyai_stt_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_azure_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_bedrock_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_bfl_img_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_cachibot_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_cartesia_tts_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_claude_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_coding_agent_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_cohere_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_cohere_embedding_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_cohere_rerank_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_deepgram_stt_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_deepgram_tts_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_deepseek_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_elevenlabs_stt_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_elevenlabs_tts_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_embedding_base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_fal_img_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_fal_video_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_google_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_google_img_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_google_vertexai_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_grok_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_grok_img_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_grok_video_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_groq_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_hugging_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_ideogram_img_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_img_gen_base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_jina_embedding_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_jina_rerank_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_kev_decision_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_kling_img_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_kling_video_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_laya_decision_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_lmstudio_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_local_http_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_luma_video_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_minimax_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_minimax_video_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_mistral_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_mistral_moderation_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_modelscope_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_moonshot_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_muapi_aggregator_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_mxbai_embedding_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_mxbai_rerank_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_nomic_embedding_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_ollama_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_ollama_embedding_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_openai_compatible_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_openai_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_openai_embedding_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_openai_img_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_openai_moderation_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_openai_stt_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_openai_tts_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_openrouter_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_pika_video_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_registry.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_runway_img_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_runway_tts_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_runway_video_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_stability_img_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_stt_base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_systemone_compatible_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_tts_base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_typesafe_decision_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_video_gen_base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_voyage_embedding_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_voyage_rerank_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/async_zai_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/audio_registry.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/azure_config.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/azure_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/bedrock_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/bfl_img_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/cachibot_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/cartesia_tts_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/claude_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/coding_agent_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/cohere_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/cohere_embedding_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/cohere_rerank_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/decision_base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/decision_registry.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/deepgram_stt_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/deepgram_tts_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/deepseek_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/driver_registry.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/elevenlabs_stt_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/elevenlabs_tts_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/embedding_base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/embedding_registry.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/fal_img_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/fal_video_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/google_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/google_img_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/google_vertexai_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/grok_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/grok_img_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/grok_video_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/groq_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/hugging_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/ideogram_img_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/img_gen_base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/img_gen_registry.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/jina_embedding_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/jina_rerank_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/job_runner.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/kev_decision_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/kling_img_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/kling_video_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/laya_decision_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/lipsync_base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/lipsync_registry.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/lmstudio_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/local_http_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/luma_video_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/media_capabilities.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/minimax_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/minimax_video_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/mistral_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/mistral_moderation_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/modelscope_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/moderation_base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/moderation_registry.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/moonshot_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/muapi_aggregator_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/music_base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/music_registry.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/mxbai_embedding_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/mxbai_rerank_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/nomic_embedding_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/ollama_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/ollama_embedding_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/openai_compatible_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/openai_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/openai_embedding_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/openai_img_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/openai_moderation_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/openai_stt_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/openai_tts_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/openrouter_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/pika_video_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/provider_branding.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/provider_descriptors.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/registry.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/rerank_base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/rerank_registry.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/runway_audio_transform_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/runway_capabilities.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/runway_img_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/runway_tts_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/runway_video_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/stability_img_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/stt_base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/systemone_compatible_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/tts_base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/typesafe_decision_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/vertex_img_gen_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/video_gen_base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/video_gen_registry.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/vision_helpers.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/voyage_embedding_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/voyage_rerank_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/drivers/zai_driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/eval/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/eval/base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/eval/faithfulness.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/eval/judge.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/eval/pairwise.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/eval/self_consistency.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/exceptions.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/context.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/context_eval.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/data/document_qa_policies.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/data/extraction_contacts.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/data/tool_task_inventory.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/fixtures.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/gates.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/harness.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/improve/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/improve/candidates.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/improve/feedback.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/improve/optimizer.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/improve/promotion.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/improve/scorecard.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/integration.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/outcomes.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/policy.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/sandbox.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/scoring.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/strategies/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/strategies/base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/strategies/critique.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/strategies/direct.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/strategies/registry.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/strategies/retrieve.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/execution/types.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/extraction/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/extraction/_usage.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/extraction/async_core.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/extraction/code_extraction.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/extraction/core.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/extraction/few_shot.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/extraction/fields.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/extraction/reasoning.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/extraction/strategy.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/extraction/streaming.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/extraction/tools.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/extraction/tukuy_bridge.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/extraction/validator.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/games/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/games/base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/games/chess/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/games/chess/exchange.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/games/chess/fixtures.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/games/chess/harness.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/games/chess/motifs.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/games/chess/puzzles.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/games/chess/render.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/games/connect4.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/games/control.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/games/evaluation.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/games/fixtures.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/games/match.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/games/memory.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/games/othello.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/games/records.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/games/strategies.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/games/tournament.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/games/trace.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/gateway/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/gateway/anthropic_format.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/gateway/gemini_format.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/gateway/openai_format.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/gateway/reasoning_cache.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/gateway/responses_format.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/groups/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/groups/async_groups.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/groups/consensus.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/groups/debate.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/groups/fusion.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/groups/groups.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/groups/types.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/imaging/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/imaging/enhance.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/imaging/negative.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/imaging/set_planner.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/imaging/style_presets.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/accounts.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/billing.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/budget.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/cache.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/callbacks.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/capabilities.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/coding_agent_activity.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/coding_agent_events.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/coding_agent_failures.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/coding_agent_readers.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/coding_agent_specs.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/coding_agent_usage.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/coding_agents.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/compression.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/cost_mixin.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/credentials.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/discovery.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/environment.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/ledger.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/local_servers.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/logging.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/media_pricing.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/media_rates.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/model_rates.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/otel.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/pricing.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/provider_env.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/provider_keys.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rate_limits.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/anthropic.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/azure.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/bedrock.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/cerebras.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/cohere.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/deepinfra.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/deepseek.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/fireworks.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/google.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/google_vertexai.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/groq.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/jina.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/kev.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/laya.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/mistral.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/mixedbread.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/moonshot.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/nomic.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/nvidia.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/openai.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/openrouter.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/perplexity.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/sambanova.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/siliconflow.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/together.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/typesafe.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/voyage.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/rates/xai.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/session.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/settings.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/token_counting.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/tracker.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/tukuy_backend.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/infra/updates.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/ingestion/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/ingestion/chunking.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/ingestion/detect.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/ingestion/document.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/ingestion/parsers/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/ingestion/parsers/base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/ingestion/parsers/csv_parser.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/ingestion/parsers/docx.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/ingestion/parsers/html.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/ingestion/parsers/markdown.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/ingestion/parsers/pdf.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/ingestion/parsers/xlsx.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/integrations/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/integrations/mcp_bridge.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/integrations/tukuy_bridge.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/jobs.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/kg/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/kg/core.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/kg/stores.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/kg/types.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/marketing/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/marketing/claims.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/marketing/context.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/marketing/generate.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/marketing/models.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/mcp/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/mcp/client.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/mcp/health.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/mcp/hub.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/mcp/importers.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/mcp/server.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/mcp/tools.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/media/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/media/agent_tools.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/media/audio.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/media/hosting.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/media/image.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/media/understand/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/media/understand/errors.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/media/understand/ffmpeg.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/media/understand/groq_stt.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/media/understand/health.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/media/understand/sources.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/media/understand/summarize.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/media/understand/tools.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/media/understand/transcribe.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/media/video.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/pages/01-why-prompture.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/pages/02-installation.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/pages/03-quickstart.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/pages/04-toon-input.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/pages/05-test-harness.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/pages/06-stability.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/pages/07-migration.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/persistence/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/persistence/history.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/persistence/serialization.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/persistence/store.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/pipeline/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/pipeline/pipeline.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/pipeline/resolver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/pipeline/routing.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/plugins/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/plugins/base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/plugins/builtins/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/plugins/builtins/_aliases.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/plugins/builtins/anthropic_plugin.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/plugins/builtins/audio_plugin.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/plugins/builtins/cloud_plugin.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/plugins/builtins/coding_agent_plugin.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/plugins/builtins/decision_plugin.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/plugins/builtins/embedding_rerank_plugin.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/plugins/builtins/extras_plugin.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/plugins/builtins/google_plugin.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/plugins/builtins/image_plugin.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/plugins/builtins/local_plugin.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/plugins/builtins/openai_compatible_plugin.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/plugins/builtins/openai_plugin.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/plugins/builtins/video_plugin.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/plugins/discovery.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/py.typed +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/chunkers/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/chunkers/base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/chunkers/character.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/chunkers/chunker_registry.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/chunkers/contextual.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/chunkers/markdown.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/chunkers/recursive.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/chunkers/semantic.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/chunkers/token.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/documents.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/loader_registry.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/loaders/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/loaders/csv_loader.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/loaders/docx_loader.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/loaders/epub_loader.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/loaders/html_loader.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/loaders/json_loader.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/loaders/markdown_loader.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/loaders/pdf_loader.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/loaders/text_loader.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/loaders/xlsx_loader.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/pipeline.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/retrievers/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/retrievers/_fusion.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/retrievers/base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/retrievers/hybrid.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/retrievers/hyde.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/retrievers/mmr.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/retrievers/multi_query.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/retrievers/retriever_registry.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/retrievers/similarity.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/retrievers/step_back.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/vectorstores/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/vectorstores/base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/vectorstores/chroma.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/vectorstores/faiss.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/vectorstores/pgvector.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/vectorstores/pinecone.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/vectorstores/qdrant.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/vectorstores/vectorstore_registry.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/rag/vectorstores/weaviate.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/refusal/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/refusal/detector.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/refusal/evaluator.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/refusal/markers.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/research/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/research/agent.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/research/budget.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/research/events.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/research/planner.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/research/ranking.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/research/report.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/research/synthesis.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/research/tools.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/resilience/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/resilience/backoff.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/resilience/breaker.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/resilience/driver.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/resilience/explain.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/resilience/headroom.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/resilience/keys.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/resilience/strategies.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/resilience/virtual.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/scaffold/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/scaffold/generator.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/scaffold/templates/Dockerfile.j2 +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/scaffold/templates/README.md.j2 +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/scaffold/templates/config.py.j2 +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/scaffold/templates/env.example.j2 +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/scaffold/templates/main.py.j2 +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/scaffold/templates/models.py.j2 +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/scaffold/templates/requirements.txt.j2 +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/security/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/security/injection.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/security/redaction.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/session_memory/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/session_memory/core.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/session_memory/project.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/session_memory/stores.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/session_memory/types.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/skill/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/skill/data/SKILL.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/skill/data/references/dev.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/skill/data/references/finance.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/skill/data/references/mcp.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/skill/data/references/media.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/skill/data/references/models.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/skill/data/references/search.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/skill/data/references/web.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/swarm/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/swarm/environment.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/swarm/memory.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/swarm/scheduler.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/swarm/swarm.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/swarm/swarm_agent.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/swarm/types.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/testing/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/testing/driver_contract.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/cli/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/cli/adapter.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/cli/builtin.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/cli/config.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/cli/health.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/code_exec.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/named.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/packs.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/web/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/web/_common.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/web/_mcp_http.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/web/_types.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/web/cache.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/web/fetch.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/web/health.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/web/html2md.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/web/platform.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/web/readers/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/web/readers/_media.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/web/readers/anilist.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/web/readers/arxiv.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/web/readers/base.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/web/readers/feeds.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/web/readers/github.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/web/readers/hackernews.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/web/readers/podcasts.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/web/readers/wikipedia.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/web/readers/youtube.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/web/search.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/web/toolkit.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/tools/web_search.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/workflow/__init__.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/workflow/architect.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/workflow/engine.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/workflow/errors.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/workflow/model.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/workflow/nodes.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/workflow/recovery.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/workflow/references.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/workflow/registry.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/workflow/scheduler.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture/workflow/state.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture.egg-info/SOURCES.txt +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture.egg-info/dependency_links.txt +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture.egg-info/entry_points.txt +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture.egg-info/requires.txt +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture.egg-info/scm_file_list.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture.egg-info/top_level.txt +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/prompture_cost_tracking.md +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/pyproject.toml +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/requirements.txt +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/scripts/check_pricing_freshness.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/setup.cfg +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/specs/basic_extraction.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/specs/schema_validation.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/specs/strategy_comparison.json +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/test.py +0 -0
- {prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/test_version_diagnosis.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.16.1
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '1.16.
|
|
22
|
-
__version_tuple__ = version_tuple = (1, 16,
|
|
21
|
+
__version__ = version = '1.16.2.dev1'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 16, 2, 'dev1')
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -368,6 +368,7 @@ class Agent(Generic[DepsType]):
|
|
|
368
368
|
|
|
369
369
|
self._lifecycle = AgentState.idle
|
|
370
370
|
self._stop_requested = False
|
|
371
|
+
self._stop_final_answer = True
|
|
371
372
|
|
|
372
373
|
# ------------------------------------------------------------------
|
|
373
374
|
# Public API
|
|
@@ -394,7 +395,7 @@ class Agent(Generic[DepsType]):
|
|
|
394
395
|
"""Current lifecycle state of the agent."""
|
|
395
396
|
return self._lifecycle
|
|
396
397
|
|
|
397
|
-
def stop(self) -> None:
|
|
398
|
+
def stop(self, *, final_answer: bool = True) -> None:
|
|
398
399
|
"""Request graceful shutdown after the current iteration.
|
|
399
400
|
|
|
400
401
|
Sets the agent-level flag and forwards the request to the
|
|
@@ -405,11 +406,26 @@ class Agent(Generic[DepsType]):
|
|
|
405
406
|
of the run, so the flag is never merely decorative.
|
|
406
407
|
|
|
407
408
|
Safe to call from a tool, a callback, or another thread.
|
|
409
|
+
|
|
410
|
+
Args:
|
|
411
|
+
final_answer: With ``False`` the run ends right after the current
|
|
412
|
+
tool round, with no further model call. For a tool that hands
|
|
413
|
+
the turn back to a person (a question, a form, an approval):
|
|
414
|
+
the default would ask the model for one more answer, written
|
|
415
|
+
without the person's reply.
|
|
408
416
|
"""
|
|
409
417
|
self._stop_requested = True
|
|
418
|
+
self._stop_final_answer = final_answer
|
|
410
419
|
conv = self._active_conversation or self._conversation
|
|
411
420
|
if conv is not None:
|
|
421
|
+
self._forward_stop(conv)
|
|
422
|
+
|
|
423
|
+
def _forward_stop(self, conv: Any) -> None:
|
|
424
|
+
"""Pass a pending stop on to *conv*, keeping ``final_answer=False``."""
|
|
425
|
+
if self._stop_final_answer:
|
|
412
426
|
conv.request_stop()
|
|
427
|
+
else:
|
|
428
|
+
conv.request_stop(final_answer=False)
|
|
413
429
|
|
|
414
430
|
@property
|
|
415
431
|
def callbacks(self) -> AgentCallbacks:
|
|
@@ -1045,7 +1061,7 @@ class Agent(Generic[DepsType]):
|
|
|
1045
1061
|
"""
|
|
1046
1062
|
self._active_conversation = conv
|
|
1047
1063
|
if self._stop_requested:
|
|
1048
|
-
|
|
1064
|
+
self._forward_stop(conv)
|
|
1049
1065
|
return conv
|
|
1050
1066
|
|
|
1051
1067
|
def _execute(self, prompt: str, steps: list[AgentStep], deps: Any) -> AgentResult:
|
|
@@ -305,6 +305,7 @@ class AsyncAgent(Generic[DepsType]):
|
|
|
305
305
|
|
|
306
306
|
self._lifecycle = AgentState.idle
|
|
307
307
|
self._stop_requested = False
|
|
308
|
+
self._stop_final_answer = True
|
|
308
309
|
|
|
309
310
|
# ------------------------------------------------------------------
|
|
310
311
|
# Public API
|
|
@@ -328,7 +329,7 @@ class AsyncAgent(Generic[DepsType]):
|
|
|
328
329
|
"""Current lifecycle state of the agent."""
|
|
329
330
|
return self._lifecycle
|
|
330
331
|
|
|
331
|
-
def stop(self) -> None:
|
|
332
|
+
def stop(self, *, final_answer: bool = True) -> None:
|
|
332
333
|
"""Request graceful shutdown after the current iteration.
|
|
333
334
|
|
|
334
335
|
Sets the agent-level flag and forwards the request to the conversation
|
|
@@ -339,11 +340,26 @@ class AsyncAgent(Generic[DepsType]):
|
|
|
339
340
|
the flag is never merely decorative.
|
|
340
341
|
|
|
341
342
|
Safe to call from a tool, a callback, or another thread.
|
|
343
|
+
|
|
344
|
+
Args:
|
|
345
|
+
final_answer: With ``False`` the run ends right after the current
|
|
346
|
+
tool round, with no further model call. For a tool that hands
|
|
347
|
+
the turn back to a person (a question, a form, an approval):
|
|
348
|
+
the default would ask the model for one more answer, written
|
|
349
|
+
without the person's reply.
|
|
342
350
|
"""
|
|
343
351
|
self._stop_requested = True
|
|
352
|
+
self._stop_final_answer = final_answer
|
|
344
353
|
conv = self._active_conversation or self._conversation
|
|
345
354
|
if conv is not None:
|
|
355
|
+
self._forward_stop(conv)
|
|
356
|
+
|
|
357
|
+
def _forward_stop(self, conv: Any) -> None:
|
|
358
|
+
"""Pass a pending stop on to *conv*, keeping ``final_answer=False``."""
|
|
359
|
+
if self._stop_final_answer:
|
|
346
360
|
conv.request_stop()
|
|
361
|
+
else:
|
|
362
|
+
conv.request_stop(final_answer=False)
|
|
347
363
|
|
|
348
364
|
@property
|
|
349
365
|
def callbacks(self) -> AgentCallbacks:
|
|
@@ -1073,7 +1089,7 @@ class AsyncAgent(Generic[DepsType]):
|
|
|
1073
1089
|
"""
|
|
1074
1090
|
self._active_conversation = conv
|
|
1075
1091
|
if self._stop_requested:
|
|
1076
|
-
|
|
1092
|
+
self._forward_stop(conv)
|
|
1077
1093
|
return conv
|
|
1078
1094
|
|
|
1079
1095
|
async def _execute(
|
|
@@ -146,6 +146,7 @@ class AsyncConversation(ToolContextMixin):
|
|
|
146
146
|
|
|
147
147
|
# Cooperative stop (C2) and graceful max-rounds (C4) state.
|
|
148
148
|
self._stop_requested = False
|
|
149
|
+
self._stop_final_answer = True
|
|
149
150
|
self._max_rounds_reached = False
|
|
150
151
|
|
|
151
152
|
# Budget enforcement
|
|
@@ -231,13 +232,37 @@ class AsyncConversation(ToolContextMixin):
|
|
|
231
232
|
self._full_tool_results.clear()
|
|
232
233
|
self._reset_tool_context()
|
|
233
234
|
|
|
234
|
-
def request_stop(self) -> None:
|
|
235
|
+
def request_stop(self, *, final_answer: bool = True) -> None:
|
|
235
236
|
"""Request a cooperative stop of the tool loop.
|
|
236
237
|
|
|
237
238
|
The loop checks the flag between rounds; when set, it finishes
|
|
238
239
|
with one final no-tools answer instead of executing more tools.
|
|
240
|
+
|
|
241
|
+
Args:
|
|
242
|
+
final_answer: With ``False`` the turn ends right after the
|
|
243
|
+
current round, with no further model call: the reply is
|
|
244
|
+
the text the model wrote alongside its last tool calls.
|
|
245
|
+
For a tool that hands the turn back to a person (a
|
|
246
|
+
question, a form, an approval) and must not be followed
|
|
247
|
+
by an answer written without them.
|
|
239
248
|
"""
|
|
240
249
|
self._stop_requested = True
|
|
250
|
+
self._stop_final_answer = final_answer
|
|
251
|
+
|
|
252
|
+
def _text_on_stop(self) -> str:
|
|
253
|
+
"""The reply of a turn stopped with ``final_answer=False``.
|
|
254
|
+
|
|
255
|
+
The text of the last assistant message when it carried native tool
|
|
256
|
+
calls, else ``""`` (a simulated-tools round holds only the call).
|
|
257
|
+
"""
|
|
258
|
+
for msg in reversed(self._messages):
|
|
259
|
+
if msg.get("role") != "assistant":
|
|
260
|
+
continue
|
|
261
|
+
content = msg.get("content")
|
|
262
|
+
if msg.get("tool_calls") and isinstance(content, str):
|
|
263
|
+
return content
|
|
264
|
+
return ""
|
|
265
|
+
return ""
|
|
241
266
|
|
|
242
267
|
@property
|
|
243
268
|
def max_rounds_reached(self) -> bool:
|
|
@@ -673,6 +698,7 @@ class AsyncConversation(ToolContextMixin):
|
|
|
673
698
|
) -> str:
|
|
674
699
|
"""Async tool-use loop: send -> check tool_calls -> execute -> re-send."""
|
|
675
700
|
self._stop_requested = False
|
|
701
|
+
self._stop_final_answer = True
|
|
676
702
|
self._max_rounds_reached = False
|
|
677
703
|
merged = {**self._options, **(options or {})}
|
|
678
704
|
|
|
@@ -682,6 +708,9 @@ class AsyncConversation(ToolContextMixin):
|
|
|
682
708
|
|
|
683
709
|
for _round in range(self._max_tool_rounds):
|
|
684
710
|
if self._stop_requested:
|
|
711
|
+
if not self._stop_final_answer:
|
|
712
|
+
logger.info("Stop requested; ending the turn without a final answer")
|
|
713
|
+
return self._text_on_stop()
|
|
685
714
|
logger.info("Stop requested; finishing with a final answer (no more tool calls)")
|
|
686
715
|
return await self._final_answer_without_tools(msgs, merged)
|
|
687
716
|
self._check_budget()
|
|
@@ -776,6 +805,7 @@ class AsyncConversation(ToolContextMixin):
|
|
|
776
805
|
|
|
777
806
|
# Native tool calling with event emission
|
|
778
807
|
self._stop_requested = False
|
|
808
|
+
self._stop_final_answer = True
|
|
779
809
|
self._max_rounds_reached = False
|
|
780
810
|
merged = {**self._options, **(options or {})}
|
|
781
811
|
|
|
@@ -785,6 +815,9 @@ class AsyncConversation(ToolContextMixin):
|
|
|
785
815
|
|
|
786
816
|
for _round in range(self._max_tool_rounds):
|
|
787
817
|
if self._stop_requested:
|
|
818
|
+
if not self._stop_final_answer:
|
|
819
|
+
logger.info("Stop requested; ending the turn without a final answer")
|
|
820
|
+
return
|
|
788
821
|
logger.info("Stop requested; finishing with a final answer (no more tool calls)")
|
|
789
822
|
final_text = await self._final_answer_without_tools(msgs, merged)
|
|
790
823
|
yield {"type": "text_delta", "text": final_text}
|
|
@@ -926,6 +959,7 @@ class AsyncConversation(ToolContextMixin):
|
|
|
926
959
|
return
|
|
927
960
|
|
|
928
961
|
self._stop_requested = False
|
|
962
|
+
self._stop_final_answer = True
|
|
929
963
|
self._max_rounds_reached = False
|
|
930
964
|
merged = {**self._options, **(options or {})}
|
|
931
965
|
|
|
@@ -935,6 +969,10 @@ class AsyncConversation(ToolContextMixin):
|
|
|
935
969
|
|
|
936
970
|
for round_idx in range(self._max_tool_rounds):
|
|
937
971
|
if self._stop_requested:
|
|
972
|
+
if not self._stop_final_answer:
|
|
973
|
+
logger.info("Stop requested; ending the turn without a final answer")
|
|
974
|
+
yield TurnComplete(usage=dict(self._usage))
|
|
975
|
+
return
|
|
938
976
|
logger.info("Stop requested; finishing with a final answer (no more tool calls)")
|
|
939
977
|
final_text = await self._final_answer_without_tools(msgs, merged)
|
|
940
978
|
yield TextDelta(text=final_text)
|
|
@@ -1078,6 +1116,7 @@ class AsyncConversation(ToolContextMixin):
|
|
|
1078
1116
|
from .simulated_tools import format_tool_result, parse_simulated_response
|
|
1079
1117
|
|
|
1080
1118
|
self._stop_requested = False
|
|
1119
|
+
self._stop_final_answer = True
|
|
1081
1120
|
self._max_rounds_reached = False
|
|
1082
1121
|
merged = {**self._options, **(options or {})}
|
|
1083
1122
|
augmented_system = self._simulated_system_prompt()
|
|
@@ -1087,6 +1126,9 @@ class AsyncConversation(ToolContextMixin):
|
|
|
1087
1126
|
|
|
1088
1127
|
for _round in range(self._max_tool_rounds):
|
|
1089
1128
|
if self._stop_requested:
|
|
1129
|
+
if not self._stop_final_answer:
|
|
1130
|
+
logger.info("Stop requested; ending the turn without a final answer")
|
|
1131
|
+
return
|
|
1090
1132
|
logger.info("Stop requested; finishing with a final answer (no more tool calls)")
|
|
1091
1133
|
answer = await self._final_answer_simulated(augmented_system, merged)
|
|
1092
1134
|
yield {"type": "text_delta", "text": answer}
|
|
@@ -1160,6 +1202,7 @@ class AsyncConversation(ToolContextMixin):
|
|
|
1160
1202
|
from .simulated_tools import format_tool_result, parse_simulated_response
|
|
1161
1203
|
|
|
1162
1204
|
self._stop_requested = False
|
|
1205
|
+
self._stop_final_answer = True
|
|
1163
1206
|
self._max_rounds_reached = False
|
|
1164
1207
|
merged = {**self._options, **(options or {})}
|
|
1165
1208
|
augmented_system = self._simulated_system_prompt()
|
|
@@ -1170,6 +1213,9 @@ class AsyncConversation(ToolContextMixin):
|
|
|
1170
1213
|
|
|
1171
1214
|
for _round in range(self._max_tool_rounds):
|
|
1172
1215
|
if self._stop_requested:
|
|
1216
|
+
if not self._stop_final_answer:
|
|
1217
|
+
logger.info("Stop requested; ending the turn without a final answer")
|
|
1218
|
+
return self._text_on_stop()
|
|
1173
1219
|
logger.info("Stop requested; finishing with a final answer (no more tool calls)")
|
|
1174
1220
|
return await self._final_answer_simulated(augmented_system, merged)
|
|
1175
1221
|
self._check_budget()
|
|
@@ -148,6 +148,7 @@ class Conversation(ToolContextMixin):
|
|
|
148
148
|
|
|
149
149
|
# Cooperative stop (C2) and graceful max-rounds (C4) state.
|
|
150
150
|
self._stop_requested = False
|
|
151
|
+
self._stop_final_answer = True
|
|
151
152
|
self._max_rounds_reached = False
|
|
152
153
|
|
|
153
154
|
# Budget enforcement
|
|
@@ -233,13 +234,37 @@ class Conversation(ToolContextMixin):
|
|
|
233
234
|
self._full_tool_results.clear()
|
|
234
235
|
self._reset_tool_context()
|
|
235
236
|
|
|
236
|
-
def request_stop(self) -> None:
|
|
237
|
+
def request_stop(self, *, final_answer: bool = True) -> None:
|
|
237
238
|
"""Request a cooperative stop of the tool loop.
|
|
238
239
|
|
|
239
240
|
The loop checks the flag between rounds; when set, it finishes
|
|
240
241
|
with one final no-tools answer instead of executing more tools.
|
|
242
|
+
|
|
243
|
+
Args:
|
|
244
|
+
final_answer: With ``False`` the turn ends right after the
|
|
245
|
+
current round, with no further model call: the reply is
|
|
246
|
+
the text the model wrote alongside its last tool calls.
|
|
247
|
+
For a tool that hands the turn back to a person (a
|
|
248
|
+
question, a form, an approval) and must not be followed
|
|
249
|
+
by an answer written without them.
|
|
241
250
|
"""
|
|
242
251
|
self._stop_requested = True
|
|
252
|
+
self._stop_final_answer = final_answer
|
|
253
|
+
|
|
254
|
+
def _text_on_stop(self) -> str:
|
|
255
|
+
"""The reply of a turn stopped with ``final_answer=False``.
|
|
256
|
+
|
|
257
|
+
The text of the last assistant message when it carried native tool
|
|
258
|
+
calls, else ``""`` (a simulated-tools round holds only the call).
|
|
259
|
+
"""
|
|
260
|
+
for msg in reversed(self._messages):
|
|
261
|
+
if msg.get("role") != "assistant":
|
|
262
|
+
continue
|
|
263
|
+
content = msg.get("content")
|
|
264
|
+
if msg.get("tool_calls") and isinstance(content, str):
|
|
265
|
+
return content
|
|
266
|
+
return ""
|
|
267
|
+
return ""
|
|
243
268
|
|
|
244
269
|
@property
|
|
245
270
|
def max_rounds_reached(self) -> bool:
|
|
@@ -687,6 +712,7 @@ class Conversation(ToolContextMixin):
|
|
|
687
712
|
) -> str:
|
|
688
713
|
"""Execute the tool-use loop: send -> check tool_calls -> execute -> re-send."""
|
|
689
714
|
self._stop_requested = False
|
|
715
|
+
self._stop_final_answer = True
|
|
690
716
|
self._max_rounds_reached = False
|
|
691
717
|
merged = {**self._options, **(options or {})}
|
|
692
718
|
|
|
@@ -697,6 +723,9 @@ class Conversation(ToolContextMixin):
|
|
|
697
723
|
|
|
698
724
|
for _round in range(self._max_tool_rounds):
|
|
699
725
|
if self._stop_requested:
|
|
726
|
+
if not self._stop_final_answer:
|
|
727
|
+
logger.info("Stop requested; ending the turn without a final answer")
|
|
728
|
+
return self._text_on_stop()
|
|
700
729
|
logger.info("Stop requested; finishing with a final answer (no more tool calls)")
|
|
701
730
|
return self._final_answer_without_tools(msgs, merged)
|
|
702
731
|
self._check_budget()
|
|
@@ -801,6 +830,7 @@ class Conversation(ToolContextMixin):
|
|
|
801
830
|
|
|
802
831
|
# Native tool calling with event emission
|
|
803
832
|
self._stop_requested = False
|
|
833
|
+
self._stop_final_answer = True
|
|
804
834
|
self._max_rounds_reached = False
|
|
805
835
|
merged = {**self._options, **(options or {})}
|
|
806
836
|
|
|
@@ -810,6 +840,9 @@ class Conversation(ToolContextMixin):
|
|
|
810
840
|
|
|
811
841
|
for _round in range(self._max_tool_rounds):
|
|
812
842
|
if self._stop_requested:
|
|
843
|
+
if not self._stop_final_answer:
|
|
844
|
+
logger.info("Stop requested; ending the turn without a final answer")
|
|
845
|
+
return
|
|
813
846
|
logger.info("Stop requested; finishing with a final answer (no more tool calls)")
|
|
814
847
|
final_text = self._final_answer_without_tools(msgs, merged)
|
|
815
848
|
yield {"type": "text_delta", "text": final_text}
|
|
@@ -966,6 +999,7 @@ class Conversation(ToolContextMixin):
|
|
|
966
999
|
return
|
|
967
1000
|
|
|
968
1001
|
self._stop_requested = False
|
|
1002
|
+
self._stop_final_answer = True
|
|
969
1003
|
self._max_rounds_reached = False
|
|
970
1004
|
merged = {**self._options, **(options or {})}
|
|
971
1005
|
|
|
@@ -975,6 +1009,10 @@ class Conversation(ToolContextMixin):
|
|
|
975
1009
|
|
|
976
1010
|
for round_idx in range(self._max_tool_rounds):
|
|
977
1011
|
if self._stop_requested:
|
|
1012
|
+
if not self._stop_final_answer:
|
|
1013
|
+
logger.info("Stop requested; ending the turn without a final answer")
|
|
1014
|
+
yield TurnComplete(usage=dict(self._usage))
|
|
1015
|
+
return
|
|
978
1016
|
logger.info("Stop requested; finishing with a final answer (no more tool calls)")
|
|
979
1017
|
final_text = self._final_answer_without_tools(msgs, merged)
|
|
980
1018
|
yield TextDelta(text=final_text)
|
|
@@ -1124,6 +1162,7 @@ class Conversation(ToolContextMixin):
|
|
|
1124
1162
|
from .simulated_tools import format_tool_result, parse_simulated_response
|
|
1125
1163
|
|
|
1126
1164
|
self._stop_requested = False
|
|
1165
|
+
self._stop_final_answer = True
|
|
1127
1166
|
self._max_rounds_reached = False
|
|
1128
1167
|
merged = {**self._options, **(options or {})}
|
|
1129
1168
|
augmented_system = self._simulated_system_prompt()
|
|
@@ -1133,6 +1172,9 @@ class Conversation(ToolContextMixin):
|
|
|
1133
1172
|
|
|
1134
1173
|
for _round in range(self._max_tool_rounds):
|
|
1135
1174
|
if self._stop_requested:
|
|
1175
|
+
if not self._stop_final_answer:
|
|
1176
|
+
logger.info("Stop requested; ending the turn without a final answer")
|
|
1177
|
+
return
|
|
1136
1178
|
logger.info("Stop requested; finishing with a final answer (no more tool calls)")
|
|
1137
1179
|
answer = self._final_answer_simulated(augmented_system, merged)
|
|
1138
1180
|
yield {"type": "text_delta", "text": answer}
|
|
@@ -1202,6 +1244,7 @@ class Conversation(ToolContextMixin):
|
|
|
1202
1244
|
from .simulated_tools import format_tool_result, parse_simulated_response
|
|
1203
1245
|
|
|
1204
1246
|
self._stop_requested = False
|
|
1247
|
+
self._stop_final_answer = True
|
|
1205
1248
|
self._max_rounds_reached = False
|
|
1206
1249
|
merged = {**self._options, **(options or {})}
|
|
1207
1250
|
augmented_system = self._simulated_system_prompt()
|
|
@@ -1212,6 +1255,9 @@ class Conversation(ToolContextMixin):
|
|
|
1212
1255
|
|
|
1213
1256
|
for _round in range(self._max_tool_rounds):
|
|
1214
1257
|
if self._stop_requested:
|
|
1258
|
+
if not self._stop_final_answer:
|
|
1259
|
+
logger.info("Stop requested; ending the turn without a final answer")
|
|
1260
|
+
return self._text_on_stop()
|
|
1215
1261
|
logger.info("Stop requested; finishing with a final answer (no more tool calls)")
|
|
1216
1262
|
return self._final_answer_simulated(augmented_system, merged)
|
|
1217
1263
|
self._check_budget()
|
|
@@ -522,6 +522,28 @@ def _bearer_headers(api_key: str) -> dict[str, str]:
|
|
|
522
522
|
return {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
|
|
523
523
|
|
|
524
524
|
|
|
525
|
+
def _compat_url(driver: Any) -> str:
|
|
526
|
+
"""The driver's ``/chat/completions`` URL.
|
|
527
|
+
|
|
528
|
+
Raw-HTTP drivers name their base URL ``api_base`` or ``base_url``; both are
|
|
529
|
+
accepted so a driver can't break streaming tool calls by its naming.
|
|
530
|
+
"""
|
|
531
|
+
base = getattr(driver, "api_base", None) or getattr(driver, "base_url", None)
|
|
532
|
+
if not base:
|
|
533
|
+
raise AttributeError(f"{type(driver).__name__} has no api_base or base_url for streaming tool calls")
|
|
534
|
+
base = str(base).rstrip("/")
|
|
535
|
+
return base if base.endswith("/chat/completions") else f"{base}/chat/completions"
|
|
536
|
+
|
|
537
|
+
|
|
538
|
+
def _compat_headers(driver: Any) -> dict[str, str]:
|
|
539
|
+
"""The driver's own request headers when it keeps them (attribution
|
|
540
|
+
headers, provider extras), else a plain bearer header."""
|
|
541
|
+
own = getattr(driver, "headers", None)
|
|
542
|
+
if isinstance(own, dict) and own:
|
|
543
|
+
return {"Content-Type": "application/json", **own}
|
|
544
|
+
return _bearer_headers(driver.api_key)
|
|
545
|
+
|
|
546
|
+
|
|
525
547
|
def stream_raw_http_compat_tool_call(
|
|
526
548
|
driver: Any,
|
|
527
549
|
messages: list[dict[str, Any]],
|
|
@@ -541,8 +563,8 @@ def stream_raw_http_compat_tool_call(
|
|
|
541
563
|
of using the OpenAI SDK).
|
|
542
564
|
|
|
543
565
|
Defaults assume the driver exposes:
|
|
544
|
-
- ``self.api_base`` — base URL (no trailing ``/chat/completions``)
|
|
545
|
-
- ``self.
|
|
566
|
+
- ``self.api_base`` or ``self.base_url`` — base URL (no trailing ``/chat/completions``)
|
|
567
|
+
- ``self.headers`` (used as is) or ``self.api_key`` (``Authorization: Bearer <key>``)
|
|
546
568
|
|
|
547
569
|
Override *url* or *headers* if the driver uses a different shape.
|
|
548
570
|
Pass a complete *payload* (including streaming options) to preserve a
|
|
@@ -562,8 +584,8 @@ def stream_raw_http_compat_tool_call(
|
|
|
562
584
|
)
|
|
563
585
|
else:
|
|
564
586
|
model = payload["model"]
|
|
565
|
-
resolved_url = url or
|
|
566
|
-
resolved_headers = headers or
|
|
587
|
+
resolved_url = url or _compat_url(driver)
|
|
588
|
+
resolved_headers = headers or _compat_headers(driver)
|
|
567
589
|
|
|
568
590
|
state = _fresh_state()
|
|
569
591
|
with requests.post(
|
|
@@ -634,8 +656,8 @@ async def astream_raw_http_compat_tool_call(
|
|
|
634
656
|
)
|
|
635
657
|
else:
|
|
636
658
|
model = payload["model"]
|
|
637
|
-
resolved_url = url or
|
|
638
|
-
resolved_headers = headers or
|
|
659
|
+
resolved_url = url or _compat_url(driver)
|
|
660
|
+
resolved_headers = headers or _compat_headers(driver)
|
|
639
661
|
|
|
640
662
|
state = _fresh_state()
|
|
641
663
|
async with (
|
|
@@ -202,6 +202,12 @@ class AsyncResilientDriver(AsyncDriver):
|
|
|
202
202
|
self._plan.observe(target, event)
|
|
203
203
|
yield _attach_route_to_event(event, route)
|
|
204
204
|
except Exception as exc:
|
|
205
|
+
# Mid-stream failures do not fail over, on purpose. Events already
|
|
206
|
+
# reached the caller (text, tool calls), and replaying the request on
|
|
207
|
+
# another model would duplicate or contradict them. The target is
|
|
208
|
+
# penalized so the next request routes around it; the caller decides
|
|
209
|
+
# whether to retry the turn. Failures before the first event do fail
|
|
210
|
+
# over, because the opener runs inside ``_route``.
|
|
205
211
|
self._plan.penalize(target, classify_error(exc))
|
|
206
212
|
raise
|
|
207
213
|
|
|
@@ -51,6 +51,8 @@ class ErrorInfo:
|
|
|
51
51
|
retry_after: float | None = None
|
|
52
52
|
message: str = ""
|
|
53
53
|
provider: str | None = None
|
|
54
|
+
error_type: str | None = None
|
|
55
|
+
"""Class name of the exception that was classified (e.g. ``KeyError``)."""
|
|
54
56
|
|
|
55
57
|
def to_dict(self) -> dict[str, Any]:
|
|
56
58
|
return {
|
|
@@ -59,6 +61,7 @@ class ErrorInfo:
|
|
|
59
61
|
"status_code": self.status_code,
|
|
60
62
|
"retry_after": self.retry_after,
|
|
61
63
|
"message": self.message,
|
|
64
|
+
"error_type": self.error_type,
|
|
62
65
|
}
|
|
63
66
|
|
|
64
67
|
|
|
@@ -148,6 +151,16 @@ _DEFAULT_RULES: list[ErrorRule] = [
|
|
|
148
151
|
pattern=r"does not support|not supported|unsupported|does not have access|not enabled for",
|
|
149
152
|
priority=60,
|
|
150
153
|
),
|
|
154
|
+
# A valid OpenAI-schema request that one upstream validates against its own
|
|
155
|
+
# native schema (content block tags, part types). The next target is fine.
|
|
156
|
+
ErrorRule(
|
|
157
|
+
"provider_schema",
|
|
158
|
+
_A.FAILOVER,
|
|
159
|
+
pattern=r"does not match any of the expected tags|input tag .{0,80} found using|"
|
|
160
|
+
r"(?:invalid|unknown|unexpected|unrecognized) content (?:block|part|type)|"
|
|
161
|
+
r"content (?:block|part) type .{0,60} (?:is )?not (?:supported|allowed|permitted)",
|
|
162
|
+
priority=55,
|
|
163
|
+
),
|
|
151
164
|
ErrorRule("overloaded", _A.COOLDOWN, pattern=r"overloaded|at capacity|server is busy", priority=50),
|
|
152
165
|
ErrorRule("rate_limit", _A.COOLDOWN, pattern=r"rate[_ ]limit|too many requests", priority=40),
|
|
153
166
|
# Status-only rules.
|
|
@@ -355,7 +368,7 @@ def classify_error(exc: BaseException) -> ErrorInfo:
|
|
|
355
368
|
message = str(exc) or type(exc).__name__
|
|
356
369
|
|
|
357
370
|
def info(category: str, action: ErrorAction) -> ErrorInfo:
|
|
358
|
-
return ErrorInfo(action, category, status, retry_after, message, provider)
|
|
371
|
+
return ErrorInfo(action, category, status, retry_after, message, provider, type(exc).__name__)
|
|
359
372
|
|
|
360
373
|
# Local capability gaps and missing configuration never improve on retry.
|
|
361
374
|
# DriverError subclasses NotImplementedError for historical reasons, so
|
|
@@ -305,6 +305,25 @@ def should_retry_same(policy: RetryPolicy, info: ErrorInfo, attempt: int, is_las
|
|
|
305
305
|
return None
|
|
306
306
|
|
|
307
307
|
|
|
308
|
+
_REASON_MAX = 160
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
def _reason(err: dict[str, Any]) -> str:
|
|
312
|
+
"""The failure's own words, shortened to one line.
|
|
313
|
+
|
|
314
|
+
A status code says little on its own and an ``unknown`` category says
|
|
315
|
+
nothing, so the summary carries what the exception said (and, when there
|
|
316
|
+
is no HTTP status, its type) to make a failed route diagnosable.
|
|
317
|
+
"""
|
|
318
|
+
message = " ".join(str(err.get("message") or "").split())
|
|
319
|
+
error_type = err.get("error_type")
|
|
320
|
+
if error_type and not err.get("status_code") and error_type not in message:
|
|
321
|
+
message = f"{error_type}: {message}" if message else error_type
|
|
322
|
+
if len(message) > _REASON_MAX:
|
|
323
|
+
message = message[: _REASON_MAX - 3].rstrip() + "..."
|
|
324
|
+
return message
|
|
325
|
+
|
|
326
|
+
|
|
308
327
|
def failure_message(attempts: list[dict[str, Any]]) -> str:
|
|
309
328
|
if not attempts:
|
|
310
329
|
return "No route targets were available"
|
|
@@ -314,5 +333,8 @@ def failure_message(attempts: list[dict[str, Any]]) -> str:
|
|
|
314
333
|
detail = err.get("category") or a["outcome"]
|
|
315
334
|
if err.get("status_code"):
|
|
316
335
|
detail += f" {err['status_code']}"
|
|
336
|
+
reason = _reason(err) if err else ""
|
|
337
|
+
if reason and reason != err.get("category"):
|
|
338
|
+
detail += f" ({reason})"
|
|
317
339
|
parts.append(f"{a['model']}: {detail}")
|
|
318
340
|
return "All route targets failed (" + "; ".join(parts) + ")"
|
prompture-1.16.1.dev1/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.16.0
|
|
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
|
{prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.github/ISSUE_TEMPLATE/pricing_cost_mismatch.yml
RENAMED
|
File without changes
|
{prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.github/ISSUE_TEMPLATE/provider_driver_bug.yml
RENAMED
|
File without changes
|
{prompture-1.16.1.dev1 → prompture-1.16.2.dev1}/.github/ISSUE_TEMPLATE/schema_extraction_failure.yml
RENAMED
|
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
|