prompture 1.13.2.dev1__tar.gz → 1.13.3.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.13.2.dev1 → prompture-1.13.3.dev1}/PKG-INFO +1 -1
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/_version.py +2 -2
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/cli/cli.py +41 -5
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/companion/coding_tools.py +105 -5
- prompture-1.13.3.dev1/prompture/companion/hook.py +75 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/companion/live.py +4 -2
- prompture-1.13.3.dev1/prompture/companion/router.py +589 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/companion/server.py +110 -3
- prompture-1.13.3.dev1/prompture/companion/tool_routing.py +377 -0
- prompture-1.13.3.dev1/prompture/infra/coding_agent_activity.py +340 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/coding_agent_readers.py +8 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture.egg-info/PKG-INFO +1 -1
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture.egg-info/SOURCES.txt +4 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture.egg-info/scm_file_list.json +6 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.claude/skills/add-driver/SKILL.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.claude/skills/add-driver/references/driver-template.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.claude/skills/add-example/SKILL.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.claude/skills/add-field/SKILL.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.claude/skills/add-persona/SKILL.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.claude/skills/add-test/SKILL.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.claude/skills/add-tool/SKILL.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.claude/skills/create-pr/SKILL.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.claude/skills/run-tests/SKILL.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.claude/skills/scaffold-extraction/SKILL.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.claude/skills/update-pricing/SKILL.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.env.copy +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.github/FUNDING.yml +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.github/ISSUE_TEMPLATE/pricing_cost_mismatch.yml +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.github/ISSUE_TEMPLATE/provider_driver_bug.yml +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.github/ISSUE_TEMPLATE/schema_extraction_failure.yml +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.github/scripts/update_docs_version.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.github/scripts/update_wrapper_version.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.github/workflows/dev.yml +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.github/workflows/documentation.yml +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.github/workflows/pricing-freshness.yml +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.github/workflows/publish.yml +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.github/workflows/security.yml +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.safety-project.ini +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/AGENTS.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/BREAKING_CHANGES.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/CLAUDE.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/CONTRIBUTING.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/LICENSE +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/MANIFEST.in +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/README.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/ROADMAP.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/SECURITY.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/VERSION +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/dev.ps1 +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/dev.sh +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/mypy_errors.txt +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/packages/README.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/packages/llm_to_json/README.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/packages/llm_to_json/llm_to_json/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/packages/llm_to_json/pyproject.toml +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/packages/llm_to_json/test.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/packages/llm_to_toon/README.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/packages/llm_to_toon/llm_to_toon/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/packages/llm_to_toon/pyproject.toml +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/packages/llm_to_toon/test.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/__main__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/_internal/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/_internal/json_encoder.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/agent.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/assistant.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/async_agent.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/async_conversation.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/async_deep_agent.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/conversation.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/deep/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/deep/planner.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/deep/subagents.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/deep/summarizer.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/deep/vfs.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/deep_agent.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/deep_prompts.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/deep_state.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/live_events.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/persona.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/review_loop.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/simulated_tools.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/skill_miner.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/skills.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/tool_grammars.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/tools_schema.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/types.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/aio/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/bridges/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/bridges/tukuy_backend.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/checkpoints/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/checkpoints/core.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/checkpoints/stores.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/checkpoints/types.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/citations/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/citations/core.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/citations/types.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/cli/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/cli/formatters.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/cli/runner.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/cli/server.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/companion/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/companion/automations.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/companion/local.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/companion/summary.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/dataset/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/dataset/dedup.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/dataset/evol.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/dataset/filters.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/dataset/formats.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/dataset/schemas.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/dataset/seed.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/dataset/synth.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/_media_usage.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/_openai_compat.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/_openai_compat_stream.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/_openai_responses.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/_prompt_cache.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/_prompted_tool_stream.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/_usage_reporting.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/aggregator_base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/airllm_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/assemblyai_stt_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_aggregator_base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_airllm_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_assemblyai_stt_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_azure_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_bedrock_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_bfl_img_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_cachibot_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_cartesia_tts_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_claude_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_cohere_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_cohere_embedding_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_cohere_rerank_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_deepgram_stt_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_deepgram_tts_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_deepseek_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_elevenlabs_stt_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_elevenlabs_tts_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_embedding_base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_fal_img_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_fal_video_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_google_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_google_img_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_google_vertexai_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_grok_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_grok_img_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_grok_video_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_groq_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_hugging_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_ideogram_img_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_img_gen_base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_jina_embedding_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_jina_rerank_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_kev_decision_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_kling_img_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_kling_video_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_laya_decision_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_lmstudio_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_local_http_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_luma_video_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_minimax_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_minimax_video_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_mistral_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_mistral_moderation_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_modelscope_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_moonshot_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_muapi_aggregator_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_mxbai_embedding_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_mxbai_rerank_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_nomic_embedding_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_ollama_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_ollama_embedding_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_openai_compatible_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_openai_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_openai_embedding_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_openai_img_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_openai_moderation_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_openai_stt_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_openai_tts_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_openrouter_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_pika_video_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_registry.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_runway_img_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_runway_tts_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_runway_video_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_stability_img_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_stt_base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_systemone_compatible_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_tts_base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_typesafe_decision_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_video_gen_base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_voyage_embedding_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_voyage_rerank_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_zai_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/audio_registry.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/azure_config.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/azure_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/bedrock_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/bfl_img_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/cachibot_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/cartesia_tts_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/claude_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/cohere_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/cohere_embedding_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/cohere_rerank_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/decision_base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/decision_registry.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/deepgram_stt_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/deepgram_tts_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/deepseek_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/driver_registry.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/elevenlabs_stt_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/elevenlabs_tts_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/embedding_base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/embedding_registry.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/fal_img_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/fal_video_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/google_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/google_img_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/google_vertexai_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/grok_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/grok_img_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/grok_video_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/groq_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/hugging_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/ideogram_img_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/img_gen_base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/img_gen_registry.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/jina_embedding_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/jina_rerank_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/job_runner.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/kev_decision_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/kling_img_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/kling_video_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/laya_decision_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/lipsync_base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/lipsync_registry.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/lmstudio_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/local_http_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/luma_video_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/media_capabilities.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/minimax_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/minimax_video_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/mistral_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/mistral_moderation_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/modelscope_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/moderation_base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/moderation_registry.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/moonshot_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/muapi_aggregator_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/music_base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/music_registry.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/mxbai_embedding_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/mxbai_rerank_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/nomic_embedding_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/ollama_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/ollama_embedding_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/openai_compatible_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/openai_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/openai_embedding_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/openai_img_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/openai_moderation_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/openai_stt_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/openai_tts_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/openrouter_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/pika_video_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/provider_branding.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/provider_descriptors.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/registry.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/rerank_base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/rerank_registry.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/runway_audio_transform_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/runway_capabilities.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/runway_img_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/runway_tts_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/runway_video_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/stability_img_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/stt_base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/systemone_compatible_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/tts_base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/typesafe_decision_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/vertex_img_gen_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/video_gen_base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/video_gen_registry.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/vision_helpers.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/voyage_embedding_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/voyage_rerank_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/zai_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/eval/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/eval/base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/eval/faithfulness.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/eval/judge.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/eval/pairwise.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/eval/self_consistency.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/exceptions.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/context.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/context_eval.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/data/document_qa_policies.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/data/extraction_contacts.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/data/tool_task_inventory.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/fixtures.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/gates.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/harness.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/improve/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/improve/candidates.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/improve/optimizer.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/improve/promotion.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/improve/scorecard.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/integration.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/outcomes.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/policy.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/sandbox.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/scoring.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/strategies/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/strategies/base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/strategies/critique.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/strategies/direct.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/strategies/registry.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/strategies/retrieve.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/types.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/_usage.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/async_core.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/code_extraction.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/core.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/few_shot.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/fields.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/reasoning.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/strategy.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/streaming.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/tools.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/tukuy_bridge.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/validator.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/gateway/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/gateway/anthropic_format.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/gateway/openai_format.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/gateway/reasoning_cache.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/gateway/responses_format.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/groups/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/groups/async_groups.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/groups/consensus.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/groups/debate.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/groups/fusion.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/groups/groups.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/groups/types.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/imaging/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/imaging/enhance.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/imaging/negative.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/imaging/set_planner.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/imaging/style_presets.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/accounts.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/billing.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/budget.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/cache.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/callbacks.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/capabilities.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/coding_agent_events.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/coding_agent_specs.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/coding_agent_usage.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/coding_agents.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/compression.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/cost_mixin.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/discovery.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/ledger.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/logging.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/media_pricing.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/media_rates.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/model_rates.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/otel.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/pricing.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/provider_env.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rate_limits.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/anthropic.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/azure.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/bedrock.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/cerebras.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/cohere.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/deepinfra.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/deepseek.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/fireworks.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/google.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/google_vertexai.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/groq.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/jina.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/kev.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/laya.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/mistral.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/mixedbread.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/moonshot.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/nomic.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/nvidia.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/openai.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/openrouter.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/perplexity.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/sambanova.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/siliconflow.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/together.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/typesafe.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/voyage.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/xai.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/session.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/settings.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/token_counting.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/tracker.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/tukuy_backend.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/ingestion/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/ingestion/chunking.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/ingestion/detect.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/ingestion/document.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/ingestion/parsers/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/ingestion/parsers/base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/ingestion/parsers/csv_parser.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/ingestion/parsers/docx.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/ingestion/parsers/html.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/ingestion/parsers/markdown.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/ingestion/parsers/pdf.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/ingestion/parsers/xlsx.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/integrations/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/integrations/mcp_bridge.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/integrations/tukuy_bridge.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/jobs.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/kg/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/kg/core.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/kg/stores.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/kg/types.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/mcp/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/mcp/client.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/mcp/server.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/mcp/tools.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/media/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/media/agent_tools.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/media/audio.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/media/hosting.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/media/image.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/media/video.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/pages/01-why-prompture.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/pages/02-installation.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/pages/03-quickstart.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/pages/04-toon-input.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/pages/05-test-harness.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/pages/06-stability.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/pages/07-migration.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/persistence/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/persistence/history.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/persistence/serialization.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/persistence/store.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/pipeline/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/pipeline/pipeline.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/pipeline/resolver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/pipeline/routing.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/_aliases.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/anthropic_plugin.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/audio_plugin.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/cloud_plugin.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/decision_plugin.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/embedding_rerank_plugin.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/extras_plugin.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/google_plugin.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/image_plugin.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/local_plugin.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/openai_compatible_plugin.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/openai_plugin.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/video_plugin.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/discovery.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/py.typed +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/chunkers/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/chunkers/base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/chunkers/character.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/chunkers/chunker_registry.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/chunkers/contextual.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/chunkers/markdown.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/chunkers/recursive.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/chunkers/semantic.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/chunkers/token.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/documents.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/loader_registry.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/loaders/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/loaders/csv_loader.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/loaders/docx_loader.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/loaders/epub_loader.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/loaders/html_loader.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/loaders/json_loader.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/loaders/markdown_loader.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/loaders/pdf_loader.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/loaders/text_loader.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/loaders/xlsx_loader.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/pipeline.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/retrievers/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/retrievers/_fusion.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/retrievers/base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/retrievers/hybrid.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/retrievers/hyde.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/retrievers/mmr.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/retrievers/multi_query.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/retrievers/retriever_registry.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/retrievers/similarity.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/retrievers/step_back.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/vectorstores/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/vectorstores/base.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/vectorstores/chroma.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/vectorstores/faiss.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/vectorstores/pgvector.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/vectorstores/pinecone.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/vectorstores/qdrant.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/vectorstores/vectorstore_registry.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/vectorstores/weaviate.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/refusal/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/refusal/detector.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/refusal/evaluator.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/refusal/markers.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/resilience/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/resilience/async_driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/resilience/backoff.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/resilience/breaker.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/resilience/driver.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/resilience/errors.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/resilience/explain.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/resilience/headroom.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/resilience/keys.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/resilience/router.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/resilience/strategies.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/resilience/virtual.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/scaffold/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/scaffold/generator.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/scaffold/templates/Dockerfile.j2 +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/scaffold/templates/README.md.j2 +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/scaffold/templates/config.py.j2 +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/scaffold/templates/env.example.j2 +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/scaffold/templates/main.py.j2 +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/scaffold/templates/models.py.j2 +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/scaffold/templates/requirements.txt.j2 +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/security/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/security/injection.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/security/redaction.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/session_memory/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/session_memory/core.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/session_memory/stores.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/session_memory/types.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/swarm/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/swarm/environment.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/swarm/memory.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/swarm/scheduler.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/swarm/swarm.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/swarm/swarm_agent.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/swarm/types.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/testing/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/testing/driver_contract.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/tools/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/tools/code_exec.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/tools/web_search.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/workflow/__init__.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/workflow/architect.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/workflow/engine.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/workflow/errors.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/workflow/model.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/workflow/nodes.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/workflow/recovery.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/workflow/references.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/workflow/registry.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/workflow/scheduler.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/workflow/state.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture.egg-info/dependency_links.txt +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture.egg-info/entry_points.txt +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture.egg-info/requires.txt +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture.egg-info/top_level.txt +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture_cost_tracking.md +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/pyproject.toml +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/requirements.txt +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/scripts/check_pricing_freshness.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/setup.cfg +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/specs/basic_extraction.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/specs/schema_validation.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/specs/strategy_comparison.json +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/test.py +0 -0
- {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/test_version_diagnosis.py +0 -0
|
@@ -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.13.
|
|
22
|
-
__version_tuple__ = version_tuple = (1, 13,
|
|
21
|
+
__version__ = version = '1.13.3.dev1'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 13, 3, 'dev1')
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -202,7 +202,12 @@ def test_suite(specfile: str, providers: str | None, models: str | None, fmt: st
|
|
|
202
202
|
|
|
203
203
|
|
|
204
204
|
@cli.command()
|
|
205
|
-
@click.option(
|
|
205
|
+
@click.option(
|
|
206
|
+
"--port",
|
|
207
|
+
default=None,
|
|
208
|
+
type=int,
|
|
209
|
+
help="Port on 127.0.0.1 (default: 47811 when free, else one the OS picks). 0 = always let the OS pick.",
|
|
210
|
+
)
|
|
206
211
|
@click.option(
|
|
207
212
|
"--db", "db_path", default=None, type=click.Path(), help="Usage ledger (default ~/.prompture/usage/usage.db)."
|
|
208
213
|
)
|
|
@@ -222,7 +227,19 @@ def test_suite(specfile: str, providers: str | None, models: str | None, fmt: st
|
|
|
222
227
|
default=True,
|
|
223
228
|
help="Run queued coding-agent steps one after another for companion apps (default: on).",
|
|
224
229
|
)
|
|
225
|
-
|
|
230
|
+
@click.option(
|
|
231
|
+
"--router/--no-router",
|
|
232
|
+
default=True,
|
|
233
|
+
help="Let companion apps route Claude Code and Codex through this companion (default: on).",
|
|
234
|
+
)
|
|
235
|
+
def companion(
|
|
236
|
+
port: int | None,
|
|
237
|
+
db_path: str | None,
|
|
238
|
+
exit_with_pid: int | None,
|
|
239
|
+
coding_tools: bool,
|
|
240
|
+
automations: bool,
|
|
241
|
+
router: bool,
|
|
242
|
+
) -> None:
|
|
226
243
|
"""Serve this machine's Prompture usage to desktop companions (no hub needed).
|
|
227
244
|
|
|
228
245
|
Reads the usage ledger every Prompture call writes to, plus rate-limit
|
|
@@ -230,16 +247,35 @@ def companion(port: int, db_path: str | None, exit_with_pid: int | None, coding_
|
|
|
230
247
|
the same companion API as prompture-hub. The address and a bearer token are
|
|
231
248
|
written to ~/.prompture/companion.json. If a companion is already running,
|
|
232
249
|
this prints its address and exits.
|
|
250
|
+
|
|
251
|
+
With the router on, a companion app can point Claude Code and Codex at it
|
|
252
|
+
(their model traffic then passes through, or goes to any Prompture model),
|
|
253
|
+
so the companion prefers the same port each time: 47811.
|
|
233
254
|
"""
|
|
234
255
|
from ..companion import Automations, CodingToolSource, CompanionServer, LedgerSource, running_instance
|
|
256
|
+
from ..companion.server import DEFAULT_PORT
|
|
257
|
+
from ..companion.tool_routing import ToolRouting
|
|
235
258
|
|
|
236
259
|
existing = running_instance()
|
|
237
260
|
if existing:
|
|
238
261
|
click.echo(f"Prompture companion already running at {existing['url']} (pid {existing.get('pid')}).")
|
|
239
262
|
return
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
263
|
+
|
|
264
|
+
def make(on_port: int) -> CompanionServer:
|
|
265
|
+
return CompanionServer(
|
|
266
|
+
LedgerSource(db_path),
|
|
267
|
+
port=on_port,
|
|
268
|
+
coding_tools=CodingToolSource() if coding_tools else None,
|
|
269
|
+
tool_routing=ToolRouting() if router else None,
|
|
270
|
+
)
|
|
271
|
+
|
|
272
|
+
if port is None:
|
|
273
|
+
try:
|
|
274
|
+
server = make(DEFAULT_PORT)
|
|
275
|
+
except OSError: # taken: any free port works, routing follows it
|
|
276
|
+
server = make(0)
|
|
277
|
+
else:
|
|
278
|
+
server = make(port)
|
|
243
279
|
if automations:
|
|
244
280
|
server.automations = Automations(bus=server.bus, limits=server.rate_limits)
|
|
245
281
|
click.echo(f"Prompture companion on {server.url} - ledger {server.ledger.db_path}")
|
|
@@ -11,7 +11,14 @@ adapts it to the companion API:
|
|
|
11
11
|
- plan windows (Codex from its logs; Claude Code only when opted in) join
|
|
12
12
|
``/v1/limits`` as ``source: "plan"`` targets;
|
|
13
13
|
- ``/v1/tools`` lists every agent: installed, runnable by Prompture, and its
|
|
14
|
-
usage for the period
|
|
14
|
+
usage for the period;
|
|
15
|
+
- a Claude Code or Codex turn in progress shows as a running call: a
|
|
16
|
+
``request.started`` event when it starts (id ``agent:<agent>:<session>``),
|
|
17
|
+
``request.activity`` when its model or state changes, and ``request.ended``
|
|
18
|
+
when it's over (see :mod:`prompture.infra.coding_agent_activity`). Its usage
|
|
19
|
+
still arrives as ``request.finished`` events for the calls it made. With
|
|
20
|
+
Claude Code's hooks installed (:mod:`.hook`), a turn stuck on a permission
|
|
21
|
+
prompt shows ``state: "waiting"``.
|
|
15
22
|
|
|
16
23
|
Costs are what the same tokens would cost on the API; subscriptions don't
|
|
17
24
|
bill per token. Only token counts, model names, times and folder names are
|
|
@@ -29,6 +36,7 @@ from datetime import datetime, timedelta, timezone
|
|
|
29
36
|
from pathlib import Path
|
|
30
37
|
from typing import Any
|
|
31
38
|
|
|
39
|
+
from ..infra.coding_agent_activity import ActiveTurn, AgentActivity
|
|
32
40
|
from ..infra.coding_agent_usage import AgentCall, CodingAgentUsage, UsageReader, coding_agents_overview
|
|
33
41
|
from .live import LiveBus
|
|
34
42
|
from .summary import UsageRow, window_start
|
|
@@ -39,6 +47,10 @@ logger = logging.getLogger("prompture.companion")
|
|
|
39
47
|
OVERVIEW_TTL = 60.0
|
|
40
48
|
#: How far back calls are kept: a year of activity, plus a week of slack.
|
|
41
49
|
RETENTION = timedelta(days=372)
|
|
50
|
+
#: How long a turn waiting on the user stays listed after its log went quiet.
|
|
51
|
+
WAITING_TTL = 6 * 3600.0
|
|
52
|
+
#: Hook events that mean the agent is working again (a prompt, a tool starting or done).
|
|
53
|
+
WORKING_HOOKS = {"UserPromptSubmit", "PreToolUse", "PostToolUse", "SubagentStop"}
|
|
42
54
|
#: Companion choices that outlive a restart (today: whether Claude plan windows are fetched).
|
|
43
55
|
PREFS_FILE = Path.home() / ".prompture" / "companion-prefs.json"
|
|
44
56
|
|
|
@@ -51,6 +63,22 @@ def _load_prefs(path: Path) -> dict[str, Any]:
|
|
|
51
63
|
return data if isinstance(data, dict) else {}
|
|
52
64
|
|
|
53
65
|
|
|
66
|
+
def turn_event(turn: ActiveTurn, name: str, state: str = "working") -> dict[str, Any]:
|
|
67
|
+
"""A ``request.started`` payload for an agent turn in progress."""
|
|
68
|
+
return {
|
|
69
|
+
"request_id": turn.request_id,
|
|
70
|
+
"ts": turn.since.isoformat(),
|
|
71
|
+
"key_id": None,
|
|
72
|
+
"key_name": name,
|
|
73
|
+
"model": turn.model or turn.agent,
|
|
74
|
+
"project": turn.project,
|
|
75
|
+
"endpoint": "coding-agent",
|
|
76
|
+
"stream": True,
|
|
77
|
+
"state": state,
|
|
78
|
+
"tool": turn.agent,
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
|
|
54
82
|
def call_event(call: AgentCall, name: str) -> dict[str, Any]:
|
|
55
83
|
"""A ``request.finished`` payload for an agent call, shaped like the ledger's."""
|
|
56
84
|
return {
|
|
@@ -91,6 +119,7 @@ class CodingToolSource:
|
|
|
91
119
|
cache_dir: str | Path | None = None,
|
|
92
120
|
readers: list[UsageReader] | None = None,
|
|
93
121
|
prefs_file: str | Path | None = PREFS_FILE,
|
|
122
|
+
activity: AgentActivity | None = None,
|
|
94
123
|
) -> None:
|
|
95
124
|
from ..infra.coding_agent_readers import ClaudeCodeReader, CodexReader
|
|
96
125
|
from ..infra.coding_agent_usage import USAGE_READERS
|
|
@@ -110,6 +139,16 @@ class CodingToolSource:
|
|
|
110
139
|
readers = [claude, codex, *others]
|
|
111
140
|
self.usage = CodingAgentUsage(readers, retention=RETENTION)
|
|
112
141
|
self.names = {r.agent: r.display_name for r in readers}
|
|
142
|
+
if activity is None:
|
|
143
|
+
roots = {r.agent: getattr(r, "root", None) for r in readers}
|
|
144
|
+
if "claude" in roots or "codex" in roots:
|
|
145
|
+
activity = AgentActivity(roots.get("claude"), roots.get("codex"))
|
|
146
|
+
self.activity = activity
|
|
147
|
+
self._turns: dict[str, ActiveTurn] = {}
|
|
148
|
+
self._states: dict[str, str] = {}
|
|
149
|
+
#: State reported by an agent's hooks, per turn: ``(state, monotonic time)``.
|
|
150
|
+
self._hooked: dict[str, tuple[str, float]] = {}
|
|
151
|
+
self._turn_lock = threading.Lock()
|
|
113
152
|
self._overview: tuple[float, list[dict[str, Any]]] | None = None
|
|
114
153
|
|
|
115
154
|
@property
|
|
@@ -176,10 +215,71 @@ class CodingToolSource:
|
|
|
176
215
|
"""``request.finished`` payloads for calls at or after ``since``, newest last."""
|
|
177
216
|
return [self.event(c) for c in self.usage.calls(since)[-limit:]]
|
|
178
217
|
|
|
179
|
-
def
|
|
180
|
-
"""Publish
|
|
181
|
-
self.
|
|
182
|
-
|
|
218
|
+
def publish_turns(self, bus: LiveBus) -> None:
|
|
219
|
+
"""Publish how the agents' running turns changed since the last call."""
|
|
220
|
+
if self.activity is None:
|
|
221
|
+
return
|
|
222
|
+
with self._turn_lock:
|
|
223
|
+
turns = {t.request_id: t for t in self.activity.scan()}
|
|
224
|
+
now = time.monotonic()
|
|
225
|
+
for rid, (state, at) in self._hooked.items():
|
|
226
|
+
# A permission prompt writes nothing to the log; the turn is still on.
|
|
227
|
+
if state == "waiting" and rid not in turns and rid in self._turns and now - at < WAITING_TTL:
|
|
228
|
+
turns[rid] = self._turns[rid]
|
|
229
|
+
for rid, turn in turns.items():
|
|
230
|
+
before = self._turns.get(rid)
|
|
231
|
+
state = self._hooked.get(rid, ("working", 0.0))[0]
|
|
232
|
+
if before is None:
|
|
233
|
+
bus.publish("request.started", turn_event(turn, self.names.get(turn.agent, turn.agent), state))
|
|
234
|
+
elif (before.model != turn.model and turn.model) or self._states.get(rid) != state:
|
|
235
|
+
bus.publish(
|
|
236
|
+
"request.activity", {"request_id": rid, "model": turn.model or turn.agent, "state": state}
|
|
237
|
+
)
|
|
238
|
+
self._states[rid] = state
|
|
239
|
+
for rid in self._turns.keys() - turns.keys():
|
|
240
|
+
gone = self._turns[rid]
|
|
241
|
+
self._states.pop(rid, None)
|
|
242
|
+
self._hooked.pop(rid, None)
|
|
243
|
+
bus.publish(
|
|
244
|
+
"request.ended", {"request_id": rid, "tool": gone.agent, "key_name": self.names.get(gone.agent)}
|
|
245
|
+
)
|
|
246
|
+
self._turns = turns
|
|
247
|
+
|
|
248
|
+
def hook_event(self, bus: LiveBus, agent: str, event: str, session: str) -> None:
|
|
249
|
+
"""Apply one event an agent's hooks reported (see :mod:`.hook`), then publish what changed.
|
|
250
|
+
|
|
251
|
+
``Notification`` during a turn means it waits on the user (a permission
|
|
252
|
+
prompt); a prompt or a tool starting or finishing means it works again;
|
|
253
|
+
``Stop`` / ``SessionEnd`` end it.
|
|
254
|
+
"""
|
|
255
|
+
rid = f"agent:{agent}:{session}"
|
|
256
|
+
with self._turn_lock:
|
|
257
|
+
if event in ("Stop", "SessionEnd"):
|
|
258
|
+
self._hooked.pop(rid, None)
|
|
259
|
+
elif event == "Notification":
|
|
260
|
+
if rid in self._turns:
|
|
261
|
+
self._hooked[rid] = ("waiting", time.monotonic())
|
|
262
|
+
elif event in WORKING_HOOKS:
|
|
263
|
+
self._hooked[rid] = ("working", time.monotonic())
|
|
264
|
+
self.publish_turns(bus)
|
|
265
|
+
|
|
266
|
+
def tail(self, bus: LiveBus, stop: threading.Event, interval: float = 2.0) -> None:
|
|
267
|
+
"""Publish agent calls as they're logged, and agent turns as they start and end."""
|
|
268
|
+
first = True
|
|
269
|
+
while True:
|
|
270
|
+
try:
|
|
271
|
+
self.publish_turns(bus)
|
|
272
|
+
except Exception:
|
|
273
|
+
logger.debug("coding agent activity scan failed", exc_info=True)
|
|
274
|
+
if first:
|
|
275
|
+
# The first read takes in the whole history (seconds); turns in progress show before it.
|
|
276
|
+
first = False
|
|
277
|
+
try:
|
|
278
|
+
self.refresh(force=True)
|
|
279
|
+
except Exception:
|
|
280
|
+
logger.debug("coding tool scan failed", exc_info=True)
|
|
281
|
+
if stop.wait(interval):
|
|
282
|
+
break
|
|
183
283
|
try:
|
|
184
284
|
for call in sorted(self.refresh(force=True), key=lambda c: c.ts):
|
|
185
285
|
if datetime.now(timezone.utc) - call.ts < timedelta(minutes=30):
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"""Coding-agent hook: tells the local companion what an agent is doing, the moment it happens.
|
|
2
|
+
|
|
3
|
+
Claude Code runs ``python -m prompture.companion.hook claude`` on the events
|
|
4
|
+
:mod:`.tool_routing` installs (a prompt, tools starting and finishing,
|
|
5
|
+
notifications, the end of a turn) and passes the event as JSON on stdin. This
|
|
6
|
+
forwards the event's name and session id — nothing else — to the companion
|
|
7
|
+
named in ``~/.prompture/companion.json``, which turns them into live state:
|
|
8
|
+
``Notification`` mid-turn is a permission prompt waiting on the user.
|
|
9
|
+
|
|
10
|
+
It always exits 0 without output, quickly, whether or not a companion runs, so
|
|
11
|
+
it never gets in the agent's way.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
|
|
16
|
+
import json
|
|
17
|
+
import sys
|
|
18
|
+
import urllib.request
|
|
19
|
+
from pathlib import Path
|
|
20
|
+
from typing import Any
|
|
21
|
+
|
|
22
|
+
STATE_FILE = Path.home() / ".prompture" / "companion.json"
|
|
23
|
+
TIMEOUT = 1.5
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def payload(agent: str, raw: str) -> dict[str, Any] | None:
|
|
27
|
+
"""What is sent for one hook event: the agent, the event name and the session id."""
|
|
28
|
+
try:
|
|
29
|
+
data = json.loads(raw or "{}")
|
|
30
|
+
except ValueError:
|
|
31
|
+
return None
|
|
32
|
+
if not isinstance(data, dict):
|
|
33
|
+
return None
|
|
34
|
+
event, session = data.get("hook_event_name"), data.get("session_id")
|
|
35
|
+
if not isinstance(event, str) or not isinstance(session, str) or not session:
|
|
36
|
+
return None
|
|
37
|
+
return {"agent": agent, "event": event, "session": session}
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def send(body: dict[str, Any], state_file: Path = STATE_FILE) -> bool:
|
|
41
|
+
"""Post *body* to the running companion; ``False`` when there is none."""
|
|
42
|
+
try:
|
|
43
|
+
state = json.loads(state_file.read_text(encoding="utf-8"))
|
|
44
|
+
url, token = str(state["url"]), str(state["token"])
|
|
45
|
+
except (OSError, ValueError, KeyError, TypeError):
|
|
46
|
+
return False
|
|
47
|
+
if not url.startswith(("http://127.0.0.1:", "http://localhost:")):
|
|
48
|
+
return False # only ever talk to this machine
|
|
49
|
+
request = urllib.request.Request(
|
|
50
|
+
f"{url}/v1/hooks",
|
|
51
|
+
data=json.dumps(body).encode(),
|
|
52
|
+
headers={"Authorization": f"Bearer {token}", "Content-Type": "application/json"},
|
|
53
|
+
method="POST",
|
|
54
|
+
)
|
|
55
|
+
try:
|
|
56
|
+
with urllib.request.urlopen(request, timeout=TIMEOUT): # nosec B310 - loopback http only, checked above
|
|
57
|
+
return True
|
|
58
|
+
except OSError:
|
|
59
|
+
return False
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def main(argv: list[str] | None = None) -> int:
|
|
63
|
+
args = sys.argv[1:] if argv is None else argv
|
|
64
|
+
agent = args[0] if args else "claude"
|
|
65
|
+
try:
|
|
66
|
+
body = payload(agent, sys.stdin.read())
|
|
67
|
+
if body:
|
|
68
|
+
send(body)
|
|
69
|
+
except Exception: # a hook must never fail the agent
|
|
70
|
+
pass
|
|
71
|
+
return 0
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
if __name__ == "__main__":
|
|
75
|
+
sys.exit(main())
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"""In-process live event bus behind a companion's ``GET /v1/live``.
|
|
2
2
|
|
|
3
3
|
Producers publish an event when a call starts, produces its first token,
|
|
4
|
-
changes activity and finishes.
|
|
4
|
+
changes activity and finishes. ``request.ended`` closes a running entry that
|
|
5
|
+
has no ``request.finished`` of its own (a coding agent's turn, whose calls are
|
|
6
|
+
reported separately). Events carry metadata only: ids, model,
|
|
5
7
|
project, status, tokens, cost, timings — never prompt or completion text.
|
|
6
8
|
|
|
7
9
|
The bus keeps the last :data:`RING_SIZE` events, so a client that reconnects
|
|
@@ -59,7 +61,7 @@ class LiveBus:
|
|
|
59
61
|
self.in_flight[request_id] = {**event, "_mono": time.monotonic()}
|
|
60
62
|
elif request_id in self.in_flight and type_ in ("request.first_token", "request.activity"):
|
|
61
63
|
self.in_flight[request_id].update({k: v for k, v in data.items() if k != "request_id"})
|
|
62
|
-
elif type_
|
|
64
|
+
elif type_ in ("request.finished", "request.ended") and request_id:
|
|
63
65
|
self.in_flight.pop(request_id, None)
|
|
64
66
|
subscribers = list(self._subscribers)
|
|
65
67
|
for sub in subscribers:
|