prompture 1.13.4.dev1__tar.gz → 1.13.5.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.4.dev1 → prompture-1.13.5.dev1}/.env.copy +47 -4
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/PKG-INFO +170 -21
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/README.md +162 -19
- prompture-1.13.5.dev1/llms.txt +55 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/__init__.py +40 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/_version.py +2 -2
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/agents/agent.py +8 -3
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/agents/async_agent.py +8 -3
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/agents/deep_agent.py +3 -1
- prompture-1.13.5.dev1/prompture/capabilities/__init__.py +68 -0
- prompture-1.13.5.dev1/prompture/capabilities/backends.py +413 -0
- prompture-1.13.5.dev1/prompture/capabilities/builtin_checks.py +46 -0
- prompture-1.13.5.dev1/prompture/capabilities/challenge.py +75 -0
- prompture-1.13.5.dev1/prompture/capabilities/errors.py +93 -0
- prompture-1.13.5.dev1/prompture/capabilities/health.py +188 -0
- prompture-1.13.5.dev1/prompture/capabilities/http.py +196 -0
- prompture-1.13.5.dev1/prompture/capabilities/probe.py +215 -0
- prompture-1.13.5.dev1/prompture/capabilities/url_safety.py +208 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/cli/cli.py +46 -0
- prompture-1.13.5.dev1/prompture/cli/doctor_cmd.py +136 -0
- prompture-1.13.5.dev1/prompture/cli/mcp_cmd.py +365 -0
- prompture-1.13.5.dev1/prompture/cli/research_cmd.py +96 -0
- prompture-1.13.5.dev1/prompture/cli/setup_cmd.py +704 -0
- prompture-1.13.5.dev1/prompture/cli/skill_cmd.py +68 -0
- prompture-1.13.5.dev1/prompture/cli/transcribe_cmd.py +98 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/companion/router.py +28 -19
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/companion/routing_policy.py +2 -2
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/companion/server.py +13 -0
- prompture-1.13.5.dev1/prompture/doctor/__init__.py +48 -0
- prompture-1.13.5.dev1/prompture/doctor/core.py +302 -0
- prompture-1.13.5.dev1/prompture/doctor/providers.py +575 -0
- prompture-1.13.5.dev1/prompture/drivers/_ollama_options.py +28 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_ollama_driver.py +5 -18
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/base.py +3 -1
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/ollama_driver.py +5 -21
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/cost_mixin.py +20 -7
- prompture-1.13.5.dev1/prompture/infra/credentials.py +589 -0
- prompture-1.13.5.dev1/prompture/infra/environment.py +163 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/logging.py +19 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/settings.py +69 -3
- prompture-1.13.5.dev1/prompture/infra/updates.py +402 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/mcp/__init__.py +44 -1
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/mcp/client.py +78 -0
- prompture-1.13.5.dev1/prompture/mcp/health.py +150 -0
- prompture-1.13.5.dev1/prompture/mcp/hub.py +1492 -0
- prompture-1.13.5.dev1/prompture/mcp/importers.py +302 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/mcp/server.py +9 -4
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/media/__init__.py +36 -1
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/media/agent_tools.py +52 -2
- prompture-1.13.5.dev1/prompture/media/understand/__init__.py +76 -0
- prompture-1.13.5.dev1/prompture/media/understand/errors.py +63 -0
- prompture-1.13.5.dev1/prompture/media/understand/ffmpeg.py +232 -0
- prompture-1.13.5.dev1/prompture/media/understand/groq_stt.py +72 -0
- prompture-1.13.5.dev1/prompture/media/understand/health.py +130 -0
- prompture-1.13.5.dev1/prompture/media/understand/sources.py +343 -0
- prompture-1.13.5.dev1/prompture/media/understand/summarize.py +350 -0
- prompture-1.13.5.dev1/prompture/media/understand/tools.py +112 -0
- prompture-1.13.5.dev1/prompture/media/understand/transcribe.py +714 -0
- prompture-1.13.5.dev1/prompture/research/__init__.py +54 -0
- prompture-1.13.5.dev1/prompture/research/agent.py +937 -0
- prompture-1.13.5.dev1/prompture/research/budget.py +279 -0
- prompture-1.13.5.dev1/prompture/research/events.py +55 -0
- prompture-1.13.5.dev1/prompture/research/planner.py +267 -0
- prompture-1.13.5.dev1/prompture/research/ranking.py +274 -0
- prompture-1.13.5.dev1/prompture/research/report.py +218 -0
- prompture-1.13.5.dev1/prompture/research/synthesis.py +246 -0
- prompture-1.13.5.dev1/prompture/research/tools.py +122 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/security/__init__.py +4 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/security/redaction.py +86 -0
- prompture-1.13.5.dev1/prompture/skill/__init__.py +143 -0
- prompture-1.13.5.dev1/prompture/skill/data/SKILL.md +85 -0
- prompture-1.13.5.dev1/prompture/skill/data/references/dev.md +41 -0
- prompture-1.13.5.dev1/prompture/skill/data/references/finance.md +36 -0
- prompture-1.13.5.dev1/prompture/skill/data/references/mcp.md +46 -0
- prompture-1.13.5.dev1/prompture/skill/data/references/media.md +54 -0
- prompture-1.13.5.dev1/prompture/skill/data/references/models.md +63 -0
- prompture-1.13.5.dev1/prompture/skill/data/references/search.md +72 -0
- prompture-1.13.5.dev1/prompture/skill/data/references/web.md +57 -0
- prompture-1.13.5.dev1/prompture/tools/__init__.py +73 -0
- prompture-1.13.5.dev1/prompture/tools/cli/__init__.py +78 -0
- prompture-1.13.5.dev1/prompture/tools/cli/adapter.py +980 -0
- prompture-1.13.5.dev1/prompture/tools/cli/builtin.py +436 -0
- prompture-1.13.5.dev1/prompture/tools/cli/config.py +170 -0
- prompture-1.13.5.dev1/prompture/tools/cli/health.py +63 -0
- prompture-1.13.5.dev1/prompture/tools/named.py +93 -0
- prompture-1.13.5.dev1/prompture/tools/packs.py +730 -0
- prompture-1.13.5.dev1/prompture/tools/web/__init__.py +117 -0
- prompture-1.13.5.dev1/prompture/tools/web/_common.py +328 -0
- prompture-1.13.5.dev1/prompture/tools/web/_mcp_http.py +213 -0
- prompture-1.13.5.dev1/prompture/tools/web/_types.py +75 -0
- prompture-1.13.5.dev1/prompture/tools/web/fetch.py +336 -0
- prompture-1.13.5.dev1/prompture/tools/web/health.py +70 -0
- prompture-1.13.5.dev1/prompture/tools/web/html2md.py +410 -0
- prompture-1.13.5.dev1/prompture/tools/web/platform.py +297 -0
- prompture-1.13.5.dev1/prompture/tools/web/readers/__init__.py +266 -0
- prompture-1.13.5.dev1/prompture/tools/web/readers/_media.py +55 -0
- prompture-1.13.5.dev1/prompture/tools/web/readers/arxiv.py +140 -0
- prompture-1.13.5.dev1/prompture/tools/web/readers/base.py +218 -0
- prompture-1.13.5.dev1/prompture/tools/web/readers/feeds.py +270 -0
- prompture-1.13.5.dev1/prompture/tools/web/readers/github.py +409 -0
- prompture-1.13.5.dev1/prompture/tools/web/readers/hackernews.py +144 -0
- prompture-1.13.5.dev1/prompture/tools/web/readers/podcasts.py +308 -0
- prompture-1.13.5.dev1/prompture/tools/web/readers/wikipedia.py +109 -0
- prompture-1.13.5.dev1/prompture/tools/web/readers/youtube.py +352 -0
- prompture-1.13.5.dev1/prompture/tools/web/search.py +691 -0
- prompture-1.13.5.dev1/prompture/tools/web/toolkit.py +248 -0
- prompture-1.13.5.dev1/prompture/tools/web_search.py +271 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture.egg-info/PKG-INFO +170 -21
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture.egg-info/SOURCES.txt +80 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture.egg-info/requires.txt +9 -1
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture.egg-info/scm_file_list.json +99 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/pyproject.toml +7 -1
- prompture-1.13.4.dev1/prompture/tools/__init__.py +0 -27
- prompture-1.13.4.dev1/prompture/tools/web_search.py +0 -336
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.claude/skills/add-driver/SKILL.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.claude/skills/add-driver/references/driver-template.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.claude/skills/add-example/SKILL.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.claude/skills/add-field/SKILL.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.claude/skills/add-persona/SKILL.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.claude/skills/add-test/SKILL.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.claude/skills/add-tool/SKILL.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.claude/skills/create-pr/SKILL.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.claude/skills/run-tests/SKILL.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.claude/skills/scaffold-extraction/SKILL.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.claude/skills/update-pricing/SKILL.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.gitattributes +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.github/FUNDING.yml +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.github/ISSUE_TEMPLATE/pricing_cost_mismatch.yml +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.github/ISSUE_TEMPLATE/provider_driver_bug.yml +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.github/ISSUE_TEMPLATE/schema_extraction_failure.yml +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.github/scripts/update_docs_version.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.github/scripts/update_wrapper_version.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.github/workflows/dev.yml +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.github/workflows/documentation.yml +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.github/workflows/pricing-freshness.yml +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.github/workflows/publish.yml +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.github/workflows/security.yml +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/.safety-project.ini +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/AGENTS.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/BREAKING_CHANGES.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/CLAUDE.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/CONTRIBUTING.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/LICENSE +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/MANIFEST.in +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/ROADMAP.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/SECURITY.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/VERSION +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/dev.ps1 +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/dev.sh +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/mypy_errors.txt +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/packages/README.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/packages/llm_to_json/README.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/packages/llm_to_json/llm_to_json/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/packages/llm_to_json/pyproject.toml +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/packages/llm_to_json/test.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/packages/llm_to_toon/README.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/packages/llm_to_toon/llm_to_toon/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/packages/llm_to_toon/pyproject.toml +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/packages/llm_to_toon/test.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/__main__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/_internal/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/_internal/json_encoder.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/agents/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/agents/assistant.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/agents/async_conversation.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/agents/async_deep_agent.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/agents/conversation.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/agents/deep/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/agents/deep/planner.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/agents/deep/subagents.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/agents/deep/summarizer.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/agents/deep/vfs.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/agents/deep_prompts.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/agents/deep_state.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/agents/live_events.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/agents/persona.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/agents/review_loop.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/agents/simulated_tools.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/agents/skill_miner.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/agents/skills.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/agents/tool_grammars.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/agents/tools_schema.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/agents/types.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/aio/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/bridges/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/bridges/tukuy_backend.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/checkpoints/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/checkpoints/core.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/checkpoints/stores.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/checkpoints/types.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/citations/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/citations/core.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/citations/types.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/cli/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/cli/formatters.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/cli/runner.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/cli/server.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/companion/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/companion/automations.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/companion/calls.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/companion/capacity.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/companion/coding_tools.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/companion/hook.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/companion/live.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/companion/local.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/companion/memory.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/companion/reuse.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/companion/summary.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/companion/tool_routing.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/dataset/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/dataset/dedup.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/dataset/evol.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/dataset/filters.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/dataset/formats.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/dataset/schemas.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/dataset/seed.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/dataset/synth.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/_media_usage.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/_openai_compat.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/_openai_compat_stream.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/_openai_responses.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/_prompt_cache.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/_prompted_tool_stream.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/_usage_reporting.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/aggregator_base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/airllm_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/assemblyai_stt_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_aggregator_base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_airllm_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_assemblyai_stt_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_azure_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_bedrock_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_bfl_img_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_cachibot_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_cartesia_tts_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_claude_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_cohere_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_cohere_embedding_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_cohere_rerank_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_deepgram_stt_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_deepgram_tts_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_deepseek_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_elevenlabs_stt_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_elevenlabs_tts_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_embedding_base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_fal_img_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_fal_video_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_google_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_google_img_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_google_vertexai_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_grok_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_grok_img_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_grok_video_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_groq_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_hugging_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_ideogram_img_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_img_gen_base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_jina_embedding_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_jina_rerank_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_kev_decision_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_kling_img_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_kling_video_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_laya_decision_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_lmstudio_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_local_http_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_luma_video_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_minimax_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_minimax_video_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_mistral_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_mistral_moderation_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_modelscope_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_moonshot_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_muapi_aggregator_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_mxbai_embedding_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_mxbai_rerank_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_nomic_embedding_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_ollama_embedding_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_openai_compatible_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_openai_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_openai_embedding_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_openai_img_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_openai_moderation_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_openai_stt_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_openai_tts_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_openrouter_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_pika_video_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_registry.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_runway_img_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_runway_tts_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_runway_video_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_stability_img_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_stt_base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_systemone_compatible_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_tts_base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_typesafe_decision_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_video_gen_base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_voyage_embedding_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_voyage_rerank_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/async_zai_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/audio_registry.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/azure_config.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/azure_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/bedrock_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/bfl_img_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/cachibot_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/cartesia_tts_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/claude_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/cohere_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/cohere_embedding_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/cohere_rerank_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/decision_base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/decision_registry.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/deepgram_stt_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/deepgram_tts_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/deepseek_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/driver_registry.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/elevenlabs_stt_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/elevenlabs_tts_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/embedding_base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/embedding_registry.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/fal_img_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/fal_video_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/google_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/google_img_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/google_vertexai_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/grok_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/grok_img_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/grok_video_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/groq_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/hugging_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/ideogram_img_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/img_gen_base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/img_gen_registry.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/jina_embedding_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/jina_rerank_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/job_runner.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/kev_decision_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/kling_img_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/kling_video_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/laya_decision_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/lipsync_base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/lipsync_registry.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/lmstudio_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/local_http_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/luma_video_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/media_capabilities.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/minimax_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/minimax_video_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/mistral_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/mistral_moderation_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/modelscope_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/moderation_base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/moderation_registry.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/moonshot_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/muapi_aggregator_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/music_base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/music_registry.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/mxbai_embedding_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/mxbai_rerank_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/nomic_embedding_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/ollama_embedding_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/openai_compatible_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/openai_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/openai_embedding_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/openai_img_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/openai_moderation_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/openai_stt_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/openai_tts_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/openrouter_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/pika_video_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/provider_branding.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/provider_descriptors.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/registry.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/rerank_base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/rerank_registry.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/runway_audio_transform_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/runway_capabilities.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/runway_img_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/runway_tts_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/runway_video_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/stability_img_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/stt_base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/systemone_compatible_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/tts_base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/typesafe_decision_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/vertex_img_gen_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/video_gen_base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/video_gen_registry.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/vision_helpers.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/voyage_embedding_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/voyage_rerank_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/drivers/zai_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/eval/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/eval/base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/eval/faithfulness.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/eval/judge.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/eval/pairwise.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/eval/self_consistency.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/exceptions.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/context.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/context_eval.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/data/document_qa_policies.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/data/extraction_contacts.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/data/tool_task_inventory.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/fixtures.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/gates.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/harness.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/improve/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/improve/candidates.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/improve/optimizer.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/improve/promotion.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/improve/scorecard.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/integration.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/outcomes.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/policy.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/sandbox.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/scoring.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/strategies/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/strategies/base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/strategies/critique.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/strategies/direct.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/strategies/registry.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/strategies/retrieve.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/execution/types.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/extraction/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/extraction/_usage.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/extraction/async_core.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/extraction/code_extraction.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/extraction/core.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/extraction/few_shot.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/extraction/fields.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/extraction/reasoning.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/extraction/strategy.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/extraction/streaming.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/extraction/tools.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/extraction/tukuy_bridge.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/extraction/validator.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/gateway/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/gateway/anthropic_format.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/gateway/gemini_format.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/gateway/openai_format.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/gateway/reasoning_cache.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/gateway/responses_format.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/groups/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/groups/async_groups.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/groups/consensus.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/groups/debate.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/groups/fusion.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/groups/groups.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/groups/types.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/imaging/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/imaging/enhance.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/imaging/negative.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/imaging/set_planner.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/imaging/style_presets.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/accounts.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/billing.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/budget.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/cache.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/callbacks.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/capabilities.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/coding_agent_activity.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/coding_agent_events.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/coding_agent_readers.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/coding_agent_specs.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/coding_agent_usage.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/coding_agents.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/compression.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/discovery.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/ledger.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/media_pricing.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/media_rates.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/model_rates.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/otel.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/pricing.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/provider_env.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rate_limits.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/anthropic.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/azure.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/bedrock.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/cerebras.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/cohere.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/deepinfra.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/deepseek.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/fireworks.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/google.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/google_vertexai.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/groq.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/jina.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/kev.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/laya.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/mistral.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/mixedbread.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/moonshot.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/nomic.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/nvidia.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/openai.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/openrouter.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/perplexity.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/sambanova.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/siliconflow.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/together.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/typesafe.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/voyage.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/rates/xai.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/session.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/token_counting.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/tracker.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/infra/tukuy_backend.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/ingestion/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/ingestion/chunking.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/ingestion/detect.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/ingestion/document.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/ingestion/parsers/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/ingestion/parsers/base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/ingestion/parsers/csv_parser.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/ingestion/parsers/docx.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/ingestion/parsers/html.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/ingestion/parsers/markdown.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/ingestion/parsers/pdf.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/ingestion/parsers/xlsx.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/integrations/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/integrations/mcp_bridge.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/integrations/tukuy_bridge.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/jobs.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/kg/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/kg/core.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/kg/stores.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/kg/types.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/mcp/tools.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/media/audio.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/media/hosting.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/media/image.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/media/video.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/pages/01-why-prompture.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/pages/02-installation.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/pages/03-quickstart.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/pages/04-toon-input.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/pages/05-test-harness.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/pages/06-stability.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/pages/07-migration.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/persistence/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/persistence/history.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/persistence/serialization.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/persistence/store.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/pipeline/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/pipeline/pipeline.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/pipeline/resolver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/pipeline/routing.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/plugins/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/plugins/base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/plugins/builtins/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/plugins/builtins/_aliases.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/plugins/builtins/anthropic_plugin.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/plugins/builtins/audio_plugin.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/plugins/builtins/cloud_plugin.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/plugins/builtins/decision_plugin.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/plugins/builtins/embedding_rerank_plugin.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/plugins/builtins/extras_plugin.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/plugins/builtins/google_plugin.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/plugins/builtins/image_plugin.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/plugins/builtins/local_plugin.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/plugins/builtins/openai_compatible_plugin.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/plugins/builtins/openai_plugin.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/plugins/builtins/video_plugin.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/plugins/discovery.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/py.typed +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/chunkers/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/chunkers/base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/chunkers/character.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/chunkers/chunker_registry.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/chunkers/contextual.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/chunkers/markdown.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/chunkers/recursive.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/chunkers/semantic.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/chunkers/token.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/documents.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/loader_registry.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/loaders/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/loaders/csv_loader.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/loaders/docx_loader.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/loaders/epub_loader.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/loaders/html_loader.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/loaders/json_loader.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/loaders/markdown_loader.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/loaders/pdf_loader.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/loaders/text_loader.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/loaders/xlsx_loader.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/pipeline.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/retrievers/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/retrievers/_fusion.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/retrievers/base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/retrievers/hybrid.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/retrievers/hyde.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/retrievers/mmr.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/retrievers/multi_query.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/retrievers/retriever_registry.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/retrievers/similarity.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/retrievers/step_back.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/vectorstores/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/vectorstores/base.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/vectorstores/chroma.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/vectorstores/faiss.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/vectorstores/pgvector.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/vectorstores/pinecone.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/vectorstores/qdrant.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/vectorstores/vectorstore_registry.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/rag/vectorstores/weaviate.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/refusal/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/refusal/detector.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/refusal/evaluator.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/refusal/markers.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/resilience/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/resilience/async_driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/resilience/backoff.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/resilience/breaker.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/resilience/driver.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/resilience/errors.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/resilience/explain.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/resilience/headroom.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/resilience/keys.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/resilience/router.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/resilience/strategies.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/resilience/virtual.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/scaffold/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/scaffold/generator.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/scaffold/templates/Dockerfile.j2 +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/scaffold/templates/README.md.j2 +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/scaffold/templates/config.py.j2 +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/scaffold/templates/env.example.j2 +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/scaffold/templates/main.py.j2 +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/scaffold/templates/models.py.j2 +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/scaffold/templates/requirements.txt.j2 +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/security/injection.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/session_memory/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/session_memory/core.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/session_memory/project.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/session_memory/stores.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/session_memory/types.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/swarm/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/swarm/environment.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/swarm/memory.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/swarm/scheduler.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/swarm/swarm.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/swarm/swarm_agent.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/swarm/types.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/testing/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/testing/driver_contract.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/tools/code_exec.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/workflow/__init__.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/workflow/architect.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/workflow/engine.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/workflow/errors.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/workflow/model.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/workflow/nodes.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/workflow/recovery.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/workflow/references.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/workflow/registry.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/workflow/scheduler.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture/workflow/state.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture.egg-info/dependency_links.txt +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture.egg-info/entry_points.txt +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture.egg-info/top_level.txt +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/prompture_cost_tracking.md +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/requirements.txt +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/scripts/check_pricing_freshness.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/setup.cfg +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/specs/basic_extraction.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/specs/schema_validation.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/specs/strategy_comparison.json +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/test.py +0 -0
- {prompture-1.13.4.dev1 → prompture-1.13.5.dev1}/test_version_diagnosis.py +0 -0
|
@@ -228,19 +228,62 @@ MIXEDBREAD_API_KEY=
|
|
|
228
228
|
MXBAI_EMBEDDING_MODEL=mxbai-embed-large-v1
|
|
229
229
|
MXBAI_RERANK_MODEL=mxbai-rerank-large-v1
|
|
230
230
|
|
|
231
|
-
# GitHub
|
|
232
|
-
# profile=github_models
|
|
231
|
+
# GitHub Personal Access Token — GitHub Models (openai_compatible driver,
|
|
232
|
+
# profile=github_models) and the web GitHub reader/search (higher rate
|
|
233
|
+
# limits, discussions, code search).
|
|
233
234
|
GITHUB_TOKEN=
|
|
234
235
|
|
|
235
|
-
# ─── Web
|
|
236
|
-
#
|
|
236
|
+
# ─── Web tools (prompture.tools.web) ─────────────────────────────────────────
|
|
237
|
+
# Search, fetch and the URL readers work with no keys at all (keyless Exa MCP
|
|
238
|
+
# search, Jina reader + direct fetch). Keys raise quality and rate limits.
|
|
239
|
+
# Keyed search providers are tried first, the keyless one last.
|
|
237
240
|
TAVILY_API_KEY=
|
|
241
|
+
# Exa REST search with page contents.
|
|
242
|
+
EXA_API_KEY=
|
|
238
243
|
# Serper — Google Search API wrapper.
|
|
239
244
|
SERPER_API_KEY=
|
|
240
245
|
# Brave Search — independent index.
|
|
241
246
|
BRAVE_SEARCH_API_KEY=
|
|
242
247
|
# SearXNG — self-hosted metasearch engine (no key, set the base URL).
|
|
243
248
|
SEARXNG_ENDPOINT=
|
|
249
|
+
# JINA_API_KEY (above) also enables s.jina.ai search and raises r.jina.ai limits.
|
|
250
|
+
# Preferred order; backends not listed keep their place after these.
|
|
251
|
+
PROMPTURE_SEARCH_PROVIDERS=
|
|
252
|
+
PROMPTURE_FETCH_BACKENDS=
|
|
253
|
+
# Allow tools to reach private/loopback addresses (off by default).
|
|
254
|
+
PROMPTURE_WEB_ALLOW_PRIVATE=
|
|
255
|
+
|
|
256
|
+
# ─── Media understanding (transcripts / summaries) ───────────────────────────
|
|
257
|
+
# Uses the first configured STT key: GROQ_API_KEY ▸ OPENAI_API_KEY ▸
|
|
258
|
+
# ELEVENLABS_API_KEY. Audio never goes to a second provider unless you pass
|
|
259
|
+
# allow_provider_fallback=True. Optional reorder, e.g. "openai,groq".
|
|
260
|
+
PROMPTURE_STT_PROVIDERS=
|
|
261
|
+
GROQ_STT_ENDPOINT=
|
|
262
|
+
|
|
263
|
+
# ─── Domain tool packs (tools=["pack:<name>"]) ──────────────────────────────
|
|
264
|
+
# pack:finance quotes/news/search (crypto tools need no key)
|
|
265
|
+
FINNHUB_API_KEY=
|
|
266
|
+
# pack:news headlines/search
|
|
267
|
+
NEWSAPI_API_KEY=
|
|
268
|
+
# pack:places geocoding/places (country data needs no key)
|
|
269
|
+
GOOGLE_MAPS_API_KEY=
|
|
270
|
+
OPENCAGE_API_KEY=
|
|
271
|
+
|
|
272
|
+
# ─── MCP hub ─────────────────────────────────────────────────────────────────
|
|
273
|
+
# Override the user registry file (default ~/.prompture/mcp.json).
|
|
274
|
+
PROMPTURE_MCP_CONFIG=
|
|
275
|
+
|
|
276
|
+
# ─── Setup, profiles and proxies ─────────────────────────────────────────────
|
|
277
|
+
# `prompture setup` stores keys in ~/.prompture/credentials.yaml; env vars and
|
|
278
|
+
# this file always win over it. Pick a profile section of that file:
|
|
279
|
+
PROMPTURE_PROFILE=
|
|
280
|
+
# Default model written by `prompture setup` (provider/model).
|
|
281
|
+
PROMPTURE_DEFAULT_MODEL=
|
|
282
|
+
# Model for `prompture research` (defaults to the first configured provider).
|
|
283
|
+
PROMPTURE_RESEARCH_MODEL=
|
|
284
|
+
# Proxy for all capability backends, or per backend:
|
|
285
|
+
# PROMPTURE_<BACKEND>_PROXY, e.g. PROMPTURE_JINA_READER_PROXY.
|
|
286
|
+
PROMPTURE_PROXY=
|
|
244
287
|
|
|
245
288
|
# ─── Coding-agent CLI binaries (optional path overrides) ─────────────────────
|
|
246
289
|
# Set if a CLI isn't on PATH or you want to pin a specific install.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: prompture
|
|
3
|
-
Version: 1.13.
|
|
3
|
+
Version: 1.13.5.dev1
|
|
4
4
|
Summary: Ask LLMs to return structured JSON and run cross-model tests. API-first.
|
|
5
5
|
Author-email: Juan Denis <juan@vene.co>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -36,8 +36,14 @@ Provides-Extra: sandbox
|
|
|
36
36
|
Requires-Dist: tukuy>=0.0.30; extra == "sandbox"
|
|
37
37
|
Provides-Extra: mcp
|
|
38
38
|
Requires-Dist: mcp>=1.0; extra == "mcp"
|
|
39
|
+
Provides-Extra: web
|
|
40
|
+
Requires-Dist: feedparser>=6.0; extra == "web"
|
|
41
|
+
Requires-Dist: youtube-transcript-api>=1.0; extra == "web"
|
|
42
|
+
Requires-Dist: trafilatura>=1.8; extra == "web"
|
|
43
|
+
Provides-Extra: media
|
|
44
|
+
Requires-Dist: yt-dlp>=2024.8.6; extra == "media"
|
|
39
45
|
Provides-Extra: all
|
|
40
|
-
Requires-Dist: prompture[anthropic,google,groq,mcp,openai,pandas,sandbox,toon]; extra == "all"
|
|
46
|
+
Requires-Dist: prompture[anthropic,google,groq,mcp,media,openai,pandas,sandbox,toon,web]; extra == "all"
|
|
41
47
|
Provides-Extra: test
|
|
42
48
|
Requires-Dist: pytest>=7.0; extra == "test"
|
|
43
49
|
Requires-Dist: pytest-asyncio>=0.23.0; extra == "test"
|
|
@@ -188,7 +194,8 @@ No setup: Desk runs `prompture companion` (Prompture 1.13+) on localhost for you
|
|
|
188
194
|
**Agents, tools, RAG**
|
|
189
195
|
- Stateful conversations with sync + async support
|
|
190
196
|
- Function calling and streaming across providers, with prompt-based simulation for models without native tool use
|
|
191
|
-
- Drop-in tools: sandboxed `python_execute` (Tukuy), `web_search`
|
|
197
|
+
- Drop-in tools: sandboxed `python_execute` (Tukuy), keyless `web_search` / `web_fetch` / `read_url` (YouTube, GitHub, HN, arXiv, Wikipedia, feeds, podcasts) — see [Capabilities](#capabilities)
|
|
198
|
+
- Mount tools by name: `tools=["web:all", "mcp:exa", "pack:finance", "cli:gh"]`; `ResearchAgent` for cited multi-source research
|
|
192
199
|
- `DeepAgent` with planning, virtual filesystem, sub-agents, and auto-summarization — no LangChain
|
|
193
200
|
- Full RAG stack — loaders, chunkers, vector stores, hybrid dense+BM25 retrieval, end-to-end `RAGPipeline` — see [RAG](#rag)
|
|
194
201
|
|
|
@@ -198,6 +205,7 @@ No setup: Desk runs `prompture companion` (Prompture 1.13+) on localhost for you
|
|
|
198
205
|
- `generate_qa_dataset()` — synthetic JSONL datasets ready for Unsloth, Axolotl, TRL
|
|
199
206
|
|
|
200
207
|
**Ops**
|
|
208
|
+
- `prompture doctor` — what works on this machine (providers, tools, media, MCP servers, binaries), which backend is active, and the exact fix for anything that isn't
|
|
201
209
|
- Resilient routing — `resilient()` retries transient errors, honors `Retry-After`, rotates API keys, trips circuit breakers and fails over across models; every response records who served it — see [Resilient Routing](#resilient-routing)
|
|
202
210
|
- [Prompture Desk](#prompture-desk-usage-in-your-tray) — desktop tray app: usage per provider and project, rate limits and balances, live calls
|
|
203
211
|
- [prompture-hub](#prompture-hub-gateway--dashboard) — optional companion app: web dashboard, scoped per-app keys, spend caps and per-call metering (`pip install prompture[hub]`)
|
|
@@ -238,6 +246,9 @@ use.
|
|
|
238
246
|
| `airllm` | AirLLM local inference | `pip install prompture[airllm]` |
|
|
239
247
|
| `bedrock` | AWS Bedrock driver (`boto3`) | `pip install prompture[bedrock]` |
|
|
240
248
|
| `sandbox` | Sandboxed Python execution tool (`tukuy`) | `pip install prompture[sandbox]` |
|
|
249
|
+
| `web` | Feed reader, YouTube transcripts, article extraction for the [web tools](#web-tools-zero-keys-required) | `pip install prompture[web]` |
|
|
250
|
+
| `media` | `yt-dlp` for video/podcast [transcription](#media-understanding-transcripts-and-summaries) | `pip install prompture[media]` |
|
|
251
|
+
| `mcp` | [MCP hub](#mcp-hub) client and server | `pip install prompture[mcp]` |
|
|
241
252
|
|
|
242
253
|
### RAG — the easy path
|
|
243
254
|
|
|
@@ -1468,21 +1479,14 @@ Runnable example: `python examples/python_sandbox_example.py`.
|
|
|
1468
1479
|
|
|
1469
1480
|
### Web search
|
|
1470
1481
|
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
| Provider | Env var | Notes |
|
|
1475
|
-
|------------|------------------------|------------------------------------------|
|
|
1476
|
-
| `tavily` | `TAVILY_API_KEY` | Default. AI-friendly snippets + answer. |
|
|
1477
|
-
| `serper` | `SERPER_API_KEY` | Google Search API wrapper. |
|
|
1478
|
-
| `brave` | `BRAVE_SEARCH_API_KEY` | Independent index. |
|
|
1479
|
-
| `searxng` | `SEARXNG_ENDPOINT` | Self-hosted metasearch, no key required. |
|
|
1482
|
+
Web search works with no keys. See [Web tools](#web-tools-zero-keys-required)
|
|
1483
|
+
for the full set (fetch, URL readers, platform search) and the fallback order.
|
|
1480
1484
|
|
|
1481
1485
|
```python
|
|
1482
1486
|
from prompture import Agent, ToolRegistry, WebSearchTool
|
|
1483
1487
|
|
|
1484
1488
|
registry = ToolRegistry()
|
|
1485
|
-
WebSearchTool().register_on(registry) #
|
|
1489
|
+
WebSearchTool().register_on(registry) # keyed providers first, keyless Exa last
|
|
1486
1490
|
|
|
1487
1491
|
agent = Agent(
|
|
1488
1492
|
"openai/gpt-4o",
|
|
@@ -1492,12 +1496,9 @@ agent = Agent(
|
|
|
1492
1496
|
print(agent.run("What's new in LangChain this month?").output)
|
|
1493
1497
|
```
|
|
1494
1498
|
|
|
1495
|
-
|
|
1496
|
-
`brave
|
|
1497
|
-
|
|
1498
|
-
prepended.
|
|
1499
|
-
|
|
1500
|
-
Runnable example: `python examples/web_search_agent_example.py`.
|
|
1499
|
+
`WebSearchTool(provider="serper")` pins a single provider (`tavily`, `exa`,
|
|
1500
|
+
`serper`, `brave`, `jina`, `searxng`, `exa_mcp`). Runnable example:
|
|
1501
|
+
`python examples/web_search_agent_example.py`.
|
|
1501
1502
|
|
|
1502
1503
|
### Deep Agents
|
|
1503
1504
|
|
|
@@ -2052,13 +2053,161 @@ All extraction functions return a consistent structure:
|
|
|
2052
2053
|
}
|
|
2053
2054
|
```
|
|
2054
2055
|
|
|
2056
|
+
## Capabilities
|
|
2057
|
+
|
|
2058
|
+
Prompture also gives agents working capabilities — search, read, watch,
|
|
2059
|
+
listen, call external tools — and tells you what works on this machine. Each
|
|
2060
|
+
one works with nothing configured, improves as keys are added, fails over
|
|
2061
|
+
instead of failing, and reports its own health.
|
|
2062
|
+
|
|
2063
|
+
### Doctor
|
|
2064
|
+
|
|
2065
|
+
```bash
|
|
2066
|
+
prompture doctor # table: capability, status, active backend, message, fix
|
|
2067
|
+
prompture doctor --only providers -v # every provider, including unconfigured ones
|
|
2068
|
+
prompture doctor --live # cheap real calls (model lists), never a paid generation
|
|
2069
|
+
prompture doctor --json # stable "prompture.doctor/1" schema for agents
|
|
2070
|
+
```
|
|
2071
|
+
|
|
2072
|
+
Offline by default: no network, no writes. Binary checks actually run the
|
|
2073
|
+
binary, so a stale `yt-dlp` shim left by a Python upgrade shows as `broken`
|
|
2074
|
+
with a reinstall hint. Python: `from prompture.doctor import check_all`.
|
|
2075
|
+
|
|
2076
|
+
### Web tools (zero keys required)
|
|
2077
|
+
|
|
2078
|
+
```python
|
|
2079
|
+
from prompture import Agent
|
|
2080
|
+
from prompture.tools.web import web_search, web_fetch, read_url, search_platform
|
|
2081
|
+
|
|
2082
|
+
resp = web_search("latest CPython release", max_results=3)
|
|
2083
|
+
print(resp.to_markdown()) # ... served by exa_mcp
|
|
2084
|
+
page = web_fetch("https://example.com", max_chars=20000) # Jina reader, then direct; page with start=
|
|
2085
|
+
video = read_url("https://youtu.be/<id>") # transcript
|
|
2086
|
+
repos = search_platform("github", "web scraping", kind="repositories")
|
|
2087
|
+
|
|
2088
|
+
agent = Agent("openai/gpt-4o", tools=["web:all"])
|
|
2089
|
+
```
|
|
2090
|
+
|
|
2091
|
+
| Capability | Chain (first available wins, failures move on) |
|
|
2092
|
+
|---|---|
|
|
2093
|
+
| `web_search` | `tavily` ▸ `exa` ▸ `serper` ▸ `brave` ▸ `jina` ▸ `searxng` ▸ `exa_mcp` (keyless) |
|
|
2094
|
+
| `web_fetch` | `jina_reader` (keyless) ▸ `direct` (safe GET + HTML to Markdown) |
|
|
2095
|
+
| `read_url` | YouTube, GitHub, Hacker News, arXiv, Wikipedia, podcasts, RSS/Atom readers ▸ `web_fetch` |
|
|
2096
|
+
| `search_platform` | YouTube (`yt-dlp`), GitHub, Hacker News (Algolia), arXiv |
|
|
2097
|
+
|
|
2098
|
+
- Auth, quota and rate-limit errors fail over immediately; timeouts and 5xx
|
|
2099
|
+
retry once. Every result reports `route["served_by"]` and `route["fallback"]`.
|
|
2100
|
+
- Reorder with `PROMPTURE_SEARCH_PROVIDERS` / `PROMPTURE_FETCH_BACKENDS`
|
|
2101
|
+
(unknown names are ignored; unlisted backends keep their place).
|
|
2102
|
+
- Only public URLs: private, loopback, link-local and metadata addresses are
|
|
2103
|
+
refused, redirects are re-checked per hop, bodies are size-capped and
|
|
2104
|
+
challenge pages move to the next backend.
|
|
2105
|
+
|
|
2106
|
+
### Media understanding: transcripts and summaries
|
|
2107
|
+
|
|
2108
|
+
```python
|
|
2109
|
+
from prompture.media.understand import transcribe, summarize_media
|
|
2110
|
+
|
|
2111
|
+
t = transcribe("https://example.com/episode.mp3") # URL or local file
|
|
2112
|
+
print(t.to_markdown()) # [00:01:05] ...
|
|
2113
|
+
s = summarize_media(t, model="openai/gpt-4o-mini")
|
|
2114
|
+
```
|
|
2115
|
+
|
|
2116
|
+
`auto` uses the first configured STT key (Groq ▸ OpenAI ▸ ElevenLabs). Audio
|
|
2117
|
+
never goes to a second provider unless you pass
|
|
2118
|
+
`allow_provider_fallback=True`. Long media is downmixed and split into
|
|
2119
|
+
10-minute chunks with `ffmpeg`; video/podcast pages need `yt-dlp`. CLI:
|
|
2120
|
+
`prompture transcribe <url|file> [--summary] [--out x.json]`.
|
|
2121
|
+
|
|
2122
|
+
### Research agent
|
|
2123
|
+
|
|
2124
|
+
```bash
|
|
2125
|
+
prompture research "What changed in Python 3.13?" --depth quick --json
|
|
2126
|
+
```
|
|
2127
|
+
|
|
2128
|
+
```python
|
|
2129
|
+
from prompture.research import ResearchAgent, ResearchBudget
|
|
2130
|
+
report = ResearchAgent("openai/gpt-4o-mini", budget=ResearchBudget(max_fetches=6, max_cost=0.05)).run("...")
|
|
2131
|
+
print(report.to_markdown())
|
|
2132
|
+
```
|
|
2133
|
+
|
|
2134
|
+
Plans sub-questions, searches the web plus GitHub/HN/arXiv/YouTube in
|
|
2135
|
+
parallel, reads the top pages and writes an answer whose citations point only
|
|
2136
|
+
at pages it actually opened, with coverage gaps and conflicting claims.
|
|
2137
|
+
Fetch, token, cost and wall-clock budgets are enforced. Other agents can use
|
|
2138
|
+
it as a tool: `tools=[research_tool(depth="quick")]`.
|
|
2139
|
+
|
|
2140
|
+
### MCP hub
|
|
2141
|
+
|
|
2142
|
+
```bash
|
|
2143
|
+
prompture mcp add --preset exa # keyless web search server
|
|
2144
|
+
prompture mcp add search --url https://host/mcp --header 'Authorization=Bearer ${SEARCH_TOKEN}'
|
|
2145
|
+
prompture mcp list | test | remove | import --from cursor
|
|
2146
|
+
```
|
|
2147
|
+
|
|
2148
|
+
```python
|
|
2149
|
+
agent = Agent("openai/gpt-4o-mini", tools=["mcp:exa"])
|
|
2150
|
+
```
|
|
2151
|
+
|
|
2152
|
+
Servers live in `~/.prompture/mcp.json` and `./.prompture/mcp.json` (project
|
|
2153
|
+
wins). Secrets are stored only as `${ENV}` references. Sessions are pooled,
|
|
2154
|
+
tools are prefixed `<server>__<tool>`, and each call lands in the usage
|
|
2155
|
+
ledger.
|
|
2156
|
+
|
|
2157
|
+
### CLI tools and domain packs
|
|
2158
|
+
|
|
2159
|
+
```python
|
|
2160
|
+
agent = Agent("openai/gpt-4o", tools=["cli:gh", "pack:finance", "pack:dev"])
|
|
2161
|
+
```
|
|
2162
|
+
|
|
2163
|
+
- `cli:gh` (repo/issue/PR read + search, `gh api` GET-only), `cli:yt-dlp`, or
|
|
2164
|
+
your own read-only commands in `.prompture/tools.yaml`. No shell, only
|
|
2165
|
+
declared subcommands, flag-injection guards, timeouts and output caps.
|
|
2166
|
+
- Packs: `finance` (Finnhub, CoinGecko), `news` (NewsAPI, feeds), `dev`
|
|
2167
|
+
(GitHub, HN, arXiv, PyPI, npm), `places` (Google Maps, OpenCage, country
|
|
2168
|
+
data). Tools without their key are left out; doctor shows which env var to set.
|
|
2169
|
+
|
|
2170
|
+
### Setup and credentials
|
|
2171
|
+
|
|
2172
|
+
```bash
|
|
2173
|
+
prompture setup # wizard: providers, keys (validated live), default model, proxy
|
|
2174
|
+
prompture configure OPENAI_API_KEY # prompted, hidden
|
|
2175
|
+
prompture configure --list # names + masked values
|
|
2176
|
+
prompture reset --dry-run
|
|
2177
|
+
```
|
|
2178
|
+
|
|
2179
|
+
Keys live in `~/.prompture/credentials.yaml` (owner-only, created on first
|
|
2180
|
+
write); environment variables and `.env` always win. Profiles via
|
|
2181
|
+
`--profile` / `PROMPTURE_PROFILE`. Proxies: `PROMPTURE_PROXY` or
|
|
2182
|
+
`PROMPTURE_<BACKEND>_PROXY`. Every mutating command takes `--dry-run`.
|
|
2183
|
+
|
|
2184
|
+
### Agent skill and updates
|
|
2185
|
+
|
|
2186
|
+
```bash
|
|
2187
|
+
prompture skill install --target claude # or --target project / --target path --path DIR
|
|
2188
|
+
prompture check-update # one PyPI call, cached 24 h
|
|
2189
|
+
prompture watch # offline doctor + update check for cron (exit 1 = broken)
|
|
2190
|
+
```
|
|
2191
|
+
|
|
2192
|
+
The skill teaches coding agents the standing rules (run doctor first,
|
|
2193
|
+
announce the backend, follow the fallback chain) and routes them to
|
|
2194
|
+
per-capability references. For agents setting Prompture up from scratch, see
|
|
2195
|
+
[docs/agent-install.md](docs/agent-install.md); [llms.txt](llms.txt) maps
|
|
2196
|
+
the library for LLMs.
|
|
2197
|
+
|
|
2055
2198
|
## CLI
|
|
2056
2199
|
|
|
2057
2200
|
```bash
|
|
2058
|
-
prompture
|
|
2201
|
+
prompture doctor | setup | configure | reset # health and credentials
|
|
2202
|
+
prompture research | transcribe # capabilities
|
|
2203
|
+
prompture mcp add|list|test|remove|import # MCP hub
|
|
2204
|
+
prompture skill install | check-update | watch # agents and updates
|
|
2205
|
+
prompture serve | hub | companion # servers
|
|
2206
|
+
prompture run <spec-file> # spec-driven cross-model suites
|
|
2059
2207
|
```
|
|
2060
2208
|
|
|
2061
|
-
|
|
2209
|
+
`prompture --help` lists every command; `python -m prompture` works when the
|
|
2210
|
+
script isn't on PATH.
|
|
2062
2211
|
|
|
2063
2212
|
## OpenAI-Compatible Server
|
|
2064
2213
|
|
|
@@ -77,7 +77,8 @@ No setup: Desk runs `prompture companion` (Prompture 1.13+) on localhost for you
|
|
|
77
77
|
**Agents, tools, RAG**
|
|
78
78
|
- Stateful conversations with sync + async support
|
|
79
79
|
- Function calling and streaming across providers, with prompt-based simulation for models without native tool use
|
|
80
|
-
- Drop-in tools: sandboxed `python_execute` (Tukuy), `web_search`
|
|
80
|
+
- Drop-in tools: sandboxed `python_execute` (Tukuy), keyless `web_search` / `web_fetch` / `read_url` (YouTube, GitHub, HN, arXiv, Wikipedia, feeds, podcasts) — see [Capabilities](#capabilities)
|
|
81
|
+
- Mount tools by name: `tools=["web:all", "mcp:exa", "pack:finance", "cli:gh"]`; `ResearchAgent` for cited multi-source research
|
|
81
82
|
- `DeepAgent` with planning, virtual filesystem, sub-agents, and auto-summarization — no LangChain
|
|
82
83
|
- Full RAG stack — loaders, chunkers, vector stores, hybrid dense+BM25 retrieval, end-to-end `RAGPipeline` — see [RAG](#rag)
|
|
83
84
|
|
|
@@ -87,6 +88,7 @@ No setup: Desk runs `prompture companion` (Prompture 1.13+) on localhost for you
|
|
|
87
88
|
- `generate_qa_dataset()` — synthetic JSONL datasets ready for Unsloth, Axolotl, TRL
|
|
88
89
|
|
|
89
90
|
**Ops**
|
|
91
|
+
- `prompture doctor` — what works on this machine (providers, tools, media, MCP servers, binaries), which backend is active, and the exact fix for anything that isn't
|
|
90
92
|
- Resilient routing — `resilient()` retries transient errors, honors `Retry-After`, rotates API keys, trips circuit breakers and fails over across models; every response records who served it — see [Resilient Routing](#resilient-routing)
|
|
91
93
|
- [Prompture Desk](#prompture-desk-usage-in-your-tray) — desktop tray app: usage per provider and project, rate limits and balances, live calls
|
|
92
94
|
- [prompture-hub](#prompture-hub-gateway--dashboard) — optional companion app: web dashboard, scoped per-app keys, spend caps and per-call metering (`pip install prompture[hub]`)
|
|
@@ -127,6 +129,9 @@ use.
|
|
|
127
129
|
| `airllm` | AirLLM local inference | `pip install prompture[airllm]` |
|
|
128
130
|
| `bedrock` | AWS Bedrock driver (`boto3`) | `pip install prompture[bedrock]` |
|
|
129
131
|
| `sandbox` | Sandboxed Python execution tool (`tukuy`) | `pip install prompture[sandbox]` |
|
|
132
|
+
| `web` | Feed reader, YouTube transcripts, article extraction for the [web tools](#web-tools-zero-keys-required) | `pip install prompture[web]` |
|
|
133
|
+
| `media` | `yt-dlp` for video/podcast [transcription](#media-understanding-transcripts-and-summaries) | `pip install prompture[media]` |
|
|
134
|
+
| `mcp` | [MCP hub](#mcp-hub) client and server | `pip install prompture[mcp]` |
|
|
130
135
|
|
|
131
136
|
### RAG — the easy path
|
|
132
137
|
|
|
@@ -1357,21 +1362,14 @@ Runnable example: `python examples/python_sandbox_example.py`.
|
|
|
1357
1362
|
|
|
1358
1363
|
### Web search
|
|
1359
1364
|
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
| Provider | Env var | Notes |
|
|
1364
|
-
|------------|------------------------|------------------------------------------|
|
|
1365
|
-
| `tavily` | `TAVILY_API_KEY` | Default. AI-friendly snippets + answer. |
|
|
1366
|
-
| `serper` | `SERPER_API_KEY` | Google Search API wrapper. |
|
|
1367
|
-
| `brave` | `BRAVE_SEARCH_API_KEY` | Independent index. |
|
|
1368
|
-
| `searxng` | `SEARXNG_ENDPOINT` | Self-hosted metasearch, no key required. |
|
|
1365
|
+
Web search works with no keys. See [Web tools](#web-tools-zero-keys-required)
|
|
1366
|
+
for the full set (fetch, URL readers, platform search) and the fallback order.
|
|
1369
1367
|
|
|
1370
1368
|
```python
|
|
1371
1369
|
from prompture import Agent, ToolRegistry, WebSearchTool
|
|
1372
1370
|
|
|
1373
1371
|
registry = ToolRegistry()
|
|
1374
|
-
WebSearchTool().register_on(registry) #
|
|
1372
|
+
WebSearchTool().register_on(registry) # keyed providers first, keyless Exa last
|
|
1375
1373
|
|
|
1376
1374
|
agent = Agent(
|
|
1377
1375
|
"openai/gpt-4o",
|
|
@@ -1381,12 +1379,9 @@ agent = Agent(
|
|
|
1381
1379
|
print(agent.run("What's new in LangChain this month?").output)
|
|
1382
1380
|
```
|
|
1383
1381
|
|
|
1384
|
-
|
|
1385
|
-
`brave
|
|
1386
|
-
|
|
1387
|
-
prepended.
|
|
1388
|
-
|
|
1389
|
-
Runnable example: `python examples/web_search_agent_example.py`.
|
|
1382
|
+
`WebSearchTool(provider="serper")` pins a single provider (`tavily`, `exa`,
|
|
1383
|
+
`serper`, `brave`, `jina`, `searxng`, `exa_mcp`). Runnable example:
|
|
1384
|
+
`python examples/web_search_agent_example.py`.
|
|
1390
1385
|
|
|
1391
1386
|
### Deep Agents
|
|
1392
1387
|
|
|
@@ -1941,13 +1936,161 @@ All extraction functions return a consistent structure:
|
|
|
1941
1936
|
}
|
|
1942
1937
|
```
|
|
1943
1938
|
|
|
1939
|
+
## Capabilities
|
|
1940
|
+
|
|
1941
|
+
Prompture also gives agents working capabilities — search, read, watch,
|
|
1942
|
+
listen, call external tools — and tells you what works on this machine. Each
|
|
1943
|
+
one works with nothing configured, improves as keys are added, fails over
|
|
1944
|
+
instead of failing, and reports its own health.
|
|
1945
|
+
|
|
1946
|
+
### Doctor
|
|
1947
|
+
|
|
1948
|
+
```bash
|
|
1949
|
+
prompture doctor # table: capability, status, active backend, message, fix
|
|
1950
|
+
prompture doctor --only providers -v # every provider, including unconfigured ones
|
|
1951
|
+
prompture doctor --live # cheap real calls (model lists), never a paid generation
|
|
1952
|
+
prompture doctor --json # stable "prompture.doctor/1" schema for agents
|
|
1953
|
+
```
|
|
1954
|
+
|
|
1955
|
+
Offline by default: no network, no writes. Binary checks actually run the
|
|
1956
|
+
binary, so a stale `yt-dlp` shim left by a Python upgrade shows as `broken`
|
|
1957
|
+
with a reinstall hint. Python: `from prompture.doctor import check_all`.
|
|
1958
|
+
|
|
1959
|
+
### Web tools (zero keys required)
|
|
1960
|
+
|
|
1961
|
+
```python
|
|
1962
|
+
from prompture import Agent
|
|
1963
|
+
from prompture.tools.web import web_search, web_fetch, read_url, search_platform
|
|
1964
|
+
|
|
1965
|
+
resp = web_search("latest CPython release", max_results=3)
|
|
1966
|
+
print(resp.to_markdown()) # ... served by exa_mcp
|
|
1967
|
+
page = web_fetch("https://example.com", max_chars=20000) # Jina reader, then direct; page with start=
|
|
1968
|
+
video = read_url("https://youtu.be/<id>") # transcript
|
|
1969
|
+
repos = search_platform("github", "web scraping", kind="repositories")
|
|
1970
|
+
|
|
1971
|
+
agent = Agent("openai/gpt-4o", tools=["web:all"])
|
|
1972
|
+
```
|
|
1973
|
+
|
|
1974
|
+
| Capability | Chain (first available wins, failures move on) |
|
|
1975
|
+
|---|---|
|
|
1976
|
+
| `web_search` | `tavily` ▸ `exa` ▸ `serper` ▸ `brave` ▸ `jina` ▸ `searxng` ▸ `exa_mcp` (keyless) |
|
|
1977
|
+
| `web_fetch` | `jina_reader` (keyless) ▸ `direct` (safe GET + HTML to Markdown) |
|
|
1978
|
+
| `read_url` | YouTube, GitHub, Hacker News, arXiv, Wikipedia, podcasts, RSS/Atom readers ▸ `web_fetch` |
|
|
1979
|
+
| `search_platform` | YouTube (`yt-dlp`), GitHub, Hacker News (Algolia), arXiv |
|
|
1980
|
+
|
|
1981
|
+
- Auth, quota and rate-limit errors fail over immediately; timeouts and 5xx
|
|
1982
|
+
retry once. Every result reports `route["served_by"]` and `route["fallback"]`.
|
|
1983
|
+
- Reorder with `PROMPTURE_SEARCH_PROVIDERS` / `PROMPTURE_FETCH_BACKENDS`
|
|
1984
|
+
(unknown names are ignored; unlisted backends keep their place).
|
|
1985
|
+
- Only public URLs: private, loopback, link-local and metadata addresses are
|
|
1986
|
+
refused, redirects are re-checked per hop, bodies are size-capped and
|
|
1987
|
+
challenge pages move to the next backend.
|
|
1988
|
+
|
|
1989
|
+
### Media understanding: transcripts and summaries
|
|
1990
|
+
|
|
1991
|
+
```python
|
|
1992
|
+
from prompture.media.understand import transcribe, summarize_media
|
|
1993
|
+
|
|
1994
|
+
t = transcribe("https://example.com/episode.mp3") # URL or local file
|
|
1995
|
+
print(t.to_markdown()) # [00:01:05] ...
|
|
1996
|
+
s = summarize_media(t, model="openai/gpt-4o-mini")
|
|
1997
|
+
```
|
|
1998
|
+
|
|
1999
|
+
`auto` uses the first configured STT key (Groq ▸ OpenAI ▸ ElevenLabs). Audio
|
|
2000
|
+
never goes to a second provider unless you pass
|
|
2001
|
+
`allow_provider_fallback=True`. Long media is downmixed and split into
|
|
2002
|
+
10-minute chunks with `ffmpeg`; video/podcast pages need `yt-dlp`. CLI:
|
|
2003
|
+
`prompture transcribe <url|file> [--summary] [--out x.json]`.
|
|
2004
|
+
|
|
2005
|
+
### Research agent
|
|
2006
|
+
|
|
2007
|
+
```bash
|
|
2008
|
+
prompture research "What changed in Python 3.13?" --depth quick --json
|
|
2009
|
+
```
|
|
2010
|
+
|
|
2011
|
+
```python
|
|
2012
|
+
from prompture.research import ResearchAgent, ResearchBudget
|
|
2013
|
+
report = ResearchAgent("openai/gpt-4o-mini", budget=ResearchBudget(max_fetches=6, max_cost=0.05)).run("...")
|
|
2014
|
+
print(report.to_markdown())
|
|
2015
|
+
```
|
|
2016
|
+
|
|
2017
|
+
Plans sub-questions, searches the web plus GitHub/HN/arXiv/YouTube in
|
|
2018
|
+
parallel, reads the top pages and writes an answer whose citations point only
|
|
2019
|
+
at pages it actually opened, with coverage gaps and conflicting claims.
|
|
2020
|
+
Fetch, token, cost and wall-clock budgets are enforced. Other agents can use
|
|
2021
|
+
it as a tool: `tools=[research_tool(depth="quick")]`.
|
|
2022
|
+
|
|
2023
|
+
### MCP hub
|
|
2024
|
+
|
|
2025
|
+
```bash
|
|
2026
|
+
prompture mcp add --preset exa # keyless web search server
|
|
2027
|
+
prompture mcp add search --url https://host/mcp --header 'Authorization=Bearer ${SEARCH_TOKEN}'
|
|
2028
|
+
prompture mcp list | test | remove | import --from cursor
|
|
2029
|
+
```
|
|
2030
|
+
|
|
2031
|
+
```python
|
|
2032
|
+
agent = Agent("openai/gpt-4o-mini", tools=["mcp:exa"])
|
|
2033
|
+
```
|
|
2034
|
+
|
|
2035
|
+
Servers live in `~/.prompture/mcp.json` and `./.prompture/mcp.json` (project
|
|
2036
|
+
wins). Secrets are stored only as `${ENV}` references. Sessions are pooled,
|
|
2037
|
+
tools are prefixed `<server>__<tool>`, and each call lands in the usage
|
|
2038
|
+
ledger.
|
|
2039
|
+
|
|
2040
|
+
### CLI tools and domain packs
|
|
2041
|
+
|
|
2042
|
+
```python
|
|
2043
|
+
agent = Agent("openai/gpt-4o", tools=["cli:gh", "pack:finance", "pack:dev"])
|
|
2044
|
+
```
|
|
2045
|
+
|
|
2046
|
+
- `cli:gh` (repo/issue/PR read + search, `gh api` GET-only), `cli:yt-dlp`, or
|
|
2047
|
+
your own read-only commands in `.prompture/tools.yaml`. No shell, only
|
|
2048
|
+
declared subcommands, flag-injection guards, timeouts and output caps.
|
|
2049
|
+
- Packs: `finance` (Finnhub, CoinGecko), `news` (NewsAPI, feeds), `dev`
|
|
2050
|
+
(GitHub, HN, arXiv, PyPI, npm), `places` (Google Maps, OpenCage, country
|
|
2051
|
+
data). Tools without their key are left out; doctor shows which env var to set.
|
|
2052
|
+
|
|
2053
|
+
### Setup and credentials
|
|
2054
|
+
|
|
2055
|
+
```bash
|
|
2056
|
+
prompture setup # wizard: providers, keys (validated live), default model, proxy
|
|
2057
|
+
prompture configure OPENAI_API_KEY # prompted, hidden
|
|
2058
|
+
prompture configure --list # names + masked values
|
|
2059
|
+
prompture reset --dry-run
|
|
2060
|
+
```
|
|
2061
|
+
|
|
2062
|
+
Keys live in `~/.prompture/credentials.yaml` (owner-only, created on first
|
|
2063
|
+
write); environment variables and `.env` always win. Profiles via
|
|
2064
|
+
`--profile` / `PROMPTURE_PROFILE`. Proxies: `PROMPTURE_PROXY` or
|
|
2065
|
+
`PROMPTURE_<BACKEND>_PROXY`. Every mutating command takes `--dry-run`.
|
|
2066
|
+
|
|
2067
|
+
### Agent skill and updates
|
|
2068
|
+
|
|
2069
|
+
```bash
|
|
2070
|
+
prompture skill install --target claude # or --target project / --target path --path DIR
|
|
2071
|
+
prompture check-update # one PyPI call, cached 24 h
|
|
2072
|
+
prompture watch # offline doctor + update check for cron (exit 1 = broken)
|
|
2073
|
+
```
|
|
2074
|
+
|
|
2075
|
+
The skill teaches coding agents the standing rules (run doctor first,
|
|
2076
|
+
announce the backend, follow the fallback chain) and routes them to
|
|
2077
|
+
per-capability references. For agents setting Prompture up from scratch, see
|
|
2078
|
+
[docs/agent-install.md](docs/agent-install.md); [llms.txt](llms.txt) maps
|
|
2079
|
+
the library for LLMs.
|
|
2080
|
+
|
|
1944
2081
|
## CLI
|
|
1945
2082
|
|
|
1946
2083
|
```bash
|
|
1947
|
-
prompture
|
|
2084
|
+
prompture doctor | setup | configure | reset # health and credentials
|
|
2085
|
+
prompture research | transcribe # capabilities
|
|
2086
|
+
prompture mcp add|list|test|remove|import # MCP hub
|
|
2087
|
+
prompture skill install | check-update | watch # agents and updates
|
|
2088
|
+
prompture serve | hub | companion # servers
|
|
2089
|
+
prompture run <spec-file> # spec-driven cross-model suites
|
|
1948
2090
|
```
|
|
1949
2091
|
|
|
1950
|
-
|
|
2092
|
+
`prompture --help` lists every command; `python -m prompture` works when the
|
|
2093
|
+
script isn't on PATH.
|
|
1951
2094
|
|
|
1952
2095
|
## OpenAI-Compatible Server
|
|
1953
2096
|
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Prompture
|
|
2
|
+
|
|
3
|
+
> Python library and CLI that gives agents working capabilities: call and compare LLMs with structured (JSON / Pydantic) output, search and read the web with zero keys, transcribe and summarize video/audio, research with citations, mount MCP servers and CLI tools, and report exactly what works on this machine and how to fix what doesn't. Install with `pip install prompture`.
|
|
4
|
+
|
|
5
|
+
Model strings are `provider/model` (e.g. `openai/gpt-4o-mini`, `claude/claude-haiku-4-5`, `ollama/llama3.1:8b`). Every capability has a keyless default, fails over across backends, and reports which backend served it (`route["served_by"]`, `route["fallback"]`). Agents accept tool specs such as `tools=["web:all", "mcp:exa", "pack:finance", "cli:gh"]`.
|
|
6
|
+
|
|
7
|
+
## Start here
|
|
8
|
+
|
|
9
|
+
- [Agent install guide](docs/agent-install.md): install, run doctor, offer extras, configure only what the user picks
|
|
10
|
+
- [Agent update guide](docs/agent-update.md): check-update, upgrade, re-run doctor
|
|
11
|
+
- [Agent skill](prompture/skill/data/SKILL.md): standing rules and routing table (`prompture skill install`)
|
|
12
|
+
- [README](README.md): full feature tour
|
|
13
|
+
|
|
14
|
+
## CLI
|
|
15
|
+
|
|
16
|
+
- `prompture doctor [--live] [--json] [--only providers|tools|media|mcp|binaries]`: health, active backend and exact fix per capability (schema `prompture.doctor/1`)
|
|
17
|
+
- `prompture research "question" [--depth quick|standard|deep] [--json]`: cited multi-source report
|
|
18
|
+
- `prompture transcribe <url|file> [--summary] [--out file]`: timestamped transcript
|
|
19
|
+
- `prompture mcp add|list|remove|test|import|enable|disable`: named MCP servers
|
|
20
|
+
- `prompture setup`, `prompture configure KEY [VALUE]`, `prompture reset`: credentials and profiles (all take `--dry-run`)
|
|
21
|
+
- `prompture check-update`, `prompture watch`: update awareness and scheduled health
|
|
22
|
+
- `prompture skill install|uninstall|show`: the bundled agent skill
|
|
23
|
+
- `prompture serve`: OpenAI-compatible server
|
|
24
|
+
|
|
25
|
+
## Capability references
|
|
26
|
+
|
|
27
|
+
- [Web search and research](prompture/skill/data/references/search.md): `web_search`, `search_platform`, `ResearchAgent`
|
|
28
|
+
- [Reading URLs](prompture/skill/data/references/web.md): `read_url` readers, `web_fetch`, URL safety
|
|
29
|
+
- [Media](prompture/skill/data/references/media.md): `transcribe`, `summarize_media`, STT provider privacy
|
|
30
|
+
- [Models](prompture/skill/data/references/models.md): `extract_with_model`, `Agent`, `Conversation`, `resilient`
|
|
31
|
+
- [MCP](prompture/skill/data/references/mcp.md): presets, registry, `${ENV}` secrets
|
|
32
|
+
- [Finance, news, places packs](prompture/skill/data/references/finance.md)
|
|
33
|
+
- [Developer sources and CLI tools](prompture/skill/data/references/dev.md): GitHub, HN, arXiv, PyPI, npm, `gh`, `yt-dlp`
|
|
34
|
+
|
|
35
|
+
## Modules
|
|
36
|
+
|
|
37
|
+
- `prompture.extraction`: `ask_for_json`, `extract_and_jsonify`, `extract_with_model`, `stepwise_extract_with_model`
|
|
38
|
+
- `prompture.agents`: `Agent`, `Conversation`, `DeepAgent`, `ToolRegistry`
|
|
39
|
+
- `prompture.drivers`: one driver per provider; `get_driver_for_model("provider/model")`
|
|
40
|
+
- `prompture.resilience`: `resilient()`, `classify_error`, combos and virtual models
|
|
41
|
+
- `prompture.capabilities`: `BackendChain`, `probe_command`, `HealthStatus`, `safe_get`, `normalize_public_http_url`
|
|
42
|
+
- `prompture.tools.web`: `web_search`, `web_fetch`, `read_url`, `search_platform`, `WebToolkit`
|
|
43
|
+
- `prompture.media.understand`: `transcribe`, `summarize_media`
|
|
44
|
+
- `prompture.mcp`: MCP client/server and `hub` (`MCPHub`, `resolve_mcp_tools`)
|
|
45
|
+
- `prompture.tools.cli`, `prompture.tools.packs`: `CLITool`, domain packs
|
|
46
|
+
- `prompture.research`: `ResearchAgent`, `research_tool`
|
|
47
|
+
- `prompture.doctor`: `check_all()` → `DoctorReport`
|
|
48
|
+
- `prompture.infra`: settings, credentials store, environment detection, updates, discovery
|
|
49
|
+
- `prompture.gateway`: OpenAI / Anthropic / Responses wire formats
|
|
50
|
+
|
|
51
|
+
## Optional
|
|
52
|
+
|
|
53
|
+
- [Multimodal drivers](docs/MULTIMODAL.md): image, video, TTS, STT, embeddings
|
|
54
|
+
- [Integrations](docs/INTEGRATIONS.md)
|
|
55
|
+
- [Breaking changes](BREAKING_CHANGES.md)
|