prompture 1.11.2.dev3__tar.gz → 1.12.1.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.
Files changed (552) hide show
  1. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.env.copy +16 -0
  2. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.github/workflows/documentation.yml +4 -2
  3. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/PKG-INFO +61 -1
  4. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/README.md +58 -0
  5. prompture-1.12.1.dev1/VERSION +1 -0
  6. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/__init__.py +31 -2
  7. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/_version.py +2 -2
  8. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/__init__.py +77 -0
  9. prompture-1.12.1.dev1/prompture/drivers/async_kev_decision_driver.py +19 -0
  10. prompture-1.12.1.dev1/prompture/drivers/async_laya_decision_driver.py +48 -0
  11. prompture-1.12.1.dev1/prompture/drivers/async_systemone_compatible_driver.py +58 -0
  12. prompture-1.12.1.dev1/prompture/drivers/async_typesafe_decision_driver.py +19 -0
  13. prompture-1.12.1.dev1/prompture/drivers/decision_base.py +572 -0
  14. prompture-1.12.1.dev1/prompture/drivers/decision_registry.py +55 -0
  15. prompture-1.12.1.dev1/prompture/drivers/kev_decision_driver.py +37 -0
  16. prompture-1.12.1.dev1/prompture/drivers/laya_decision_driver.py +194 -0
  17. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/provider_descriptors.py +8 -1
  18. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/registry.py +77 -0
  19. prompture-1.12.1.dev1/prompture/drivers/systemone_compatible_driver.py +199 -0
  20. prompture-1.12.1.dev1/prompture/drivers/typesafe_decision_driver.py +34 -0
  21. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/__init__.py +2 -0
  22. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/discovery.py +38 -0
  23. prompture-1.12.1.dev1/prompture/infra/rates/kev.json +53 -0
  24. prompture-1.12.1.dev1/prompture/infra/rates/laya.json +60 -0
  25. prompture-1.12.1.dev1/prompture/infra/rates/typesafe.json +43 -0
  26. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/settings.py +14 -0
  27. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/plugins/builtins/__init__.py +3 -0
  28. prompture-1.12.1.dev1/prompture/plugins/builtins/decision_plugin.py +88 -0
  29. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture.egg-info/PKG-INFO +61 -1
  30. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture.egg-info/SOURCES.txt +14 -0
  31. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture.egg-info/requires.txt +3 -0
  32. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/pyproject.toml +4 -0
  33. prompture-1.11.2.dev3/VERSION +0 -1
  34. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.claude/skills/add-driver/SKILL.md +0 -0
  35. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.claude/skills/add-driver/references/driver-template.md +0 -0
  36. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.claude/skills/add-example/SKILL.md +0 -0
  37. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.claude/skills/add-field/SKILL.md +0 -0
  38. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.claude/skills/add-persona/SKILL.md +0 -0
  39. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.claude/skills/add-test/SKILL.md +0 -0
  40. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.claude/skills/add-tool/SKILL.md +0 -0
  41. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.claude/skills/create-pr/SKILL.md +0 -0
  42. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.claude/skills/run-tests/SKILL.md +0 -0
  43. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.claude/skills/scaffold-extraction/SKILL.md +0 -0
  44. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.claude/skills/update-pricing/SKILL.md +0 -0
  45. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.github/FUNDING.yml +0 -0
  46. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  47. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.github/ISSUE_TEMPLATE/pricing_cost_mismatch.yml +0 -0
  48. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.github/ISSUE_TEMPLATE/provider_driver_bug.yml +0 -0
  49. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.github/ISSUE_TEMPLATE/schema_extraction_failure.yml +0 -0
  50. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.github/scripts/update_docs_version.py +0 -0
  51. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.github/scripts/update_wrapper_version.py +0 -0
  52. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.github/workflows/dev.yml +0 -0
  53. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.github/workflows/pricing-freshness.yml +0 -0
  54. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.github/workflows/publish.yml +0 -0
  55. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.github/workflows/security.yml +0 -0
  56. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/.safety-project.ini +0 -0
  57. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/AGENTS.md +0 -0
  58. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/BREAKING_CHANGES.md +0 -0
  59. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/CLAUDE.md +0 -0
  60. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/CONTRIBUTING.md +0 -0
  61. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/LICENSE +0 -0
  62. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/MANIFEST.in +0 -0
  63. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/ROADMAP.md +0 -0
  64. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/SECURITY.md +0 -0
  65. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/dev.ps1 +0 -0
  66. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/dev.sh +0 -0
  67. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/mypy_errors.txt +0 -0
  68. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/packages/README.md +0 -0
  69. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/packages/llm_to_json/README.md +0 -0
  70. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/packages/llm_to_json/llm_to_json/__init__.py +0 -0
  71. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/packages/llm_to_json/pyproject.toml +0 -0
  72. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/packages/llm_to_json/test.py +0 -0
  73. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/packages/llm_to_toon/README.md +0 -0
  74. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/packages/llm_to_toon/llm_to_toon/__init__.py +0 -0
  75. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/packages/llm_to_toon/pyproject.toml +0 -0
  76. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/packages/llm_to_toon/test.py +0 -0
  77. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/_internal/__init__.py +0 -0
  78. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/_internal/json_encoder.py +0 -0
  79. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/agents/__init__.py +0 -0
  80. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/agents/agent.py +0 -0
  81. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/agents/assistant.py +0 -0
  82. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/agents/async_agent.py +0 -0
  83. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/agents/async_conversation.py +0 -0
  84. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/agents/async_deep_agent.py +0 -0
  85. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/agents/conversation.py +0 -0
  86. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/agents/deep/__init__.py +0 -0
  87. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/agents/deep/planner.py +0 -0
  88. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/agents/deep/subagents.py +0 -0
  89. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/agents/deep/summarizer.py +0 -0
  90. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/agents/deep/vfs.py +0 -0
  91. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/agents/deep_agent.py +0 -0
  92. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/agents/deep_prompts.py +0 -0
  93. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/agents/deep_state.py +0 -0
  94. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/agents/live_events.py +0 -0
  95. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/agents/persona.py +0 -0
  96. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/agents/review_loop.py +0 -0
  97. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/agents/simulated_tools.py +0 -0
  98. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/agents/skill_miner.py +0 -0
  99. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/agents/skills.py +0 -0
  100. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/agents/tool_grammars.py +0 -0
  101. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/agents/tools_schema.py +0 -0
  102. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/agents/types.py +0 -0
  103. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/aio/__init__.py +0 -0
  104. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/bridges/__init__.py +0 -0
  105. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/bridges/tukuy_backend.py +0 -0
  106. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/checkpoints/__init__.py +0 -0
  107. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/checkpoints/core.py +0 -0
  108. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/checkpoints/stores.py +0 -0
  109. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/checkpoints/types.py +0 -0
  110. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/citations/__init__.py +0 -0
  111. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/citations/core.py +0 -0
  112. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/citations/types.py +0 -0
  113. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/cli/__init__.py +0 -0
  114. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/cli/cli.py +0 -0
  115. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/cli/formatters.py +0 -0
  116. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/cli/runner.py +0 -0
  117. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/cli/server.py +0 -0
  118. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/dataset/__init__.py +0 -0
  119. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/dataset/dedup.py +0 -0
  120. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/dataset/evol.py +0 -0
  121. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/dataset/filters.py +0 -0
  122. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/dataset/formats.py +0 -0
  123. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/dataset/schemas.py +0 -0
  124. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/dataset/seed.py +0 -0
  125. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/dataset/synth.py +0 -0
  126. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/_media_usage.py +0 -0
  127. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/_openai_compat.py +0 -0
  128. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/_openai_compat_stream.py +0 -0
  129. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/_openai_responses.py +0 -0
  130. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/_prompt_cache.py +0 -0
  131. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/_prompted_tool_stream.py +0 -0
  132. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/_usage_reporting.py +0 -0
  133. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/aggregator_base.py +0 -0
  134. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/airllm_driver.py +0 -0
  135. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/assemblyai_stt_driver.py +0 -0
  136. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_aggregator_base.py +0 -0
  137. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_airllm_driver.py +0 -0
  138. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_assemblyai_stt_driver.py +0 -0
  139. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_azure_driver.py +0 -0
  140. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_base.py +0 -0
  141. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_bedrock_driver.py +0 -0
  142. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_bfl_img_gen_driver.py +0 -0
  143. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_cachibot_driver.py +0 -0
  144. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_cartesia_tts_driver.py +0 -0
  145. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_claude_driver.py +0 -0
  146. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_cohere_driver.py +0 -0
  147. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_cohere_embedding_driver.py +0 -0
  148. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_cohere_rerank_driver.py +0 -0
  149. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_deepgram_stt_driver.py +0 -0
  150. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_deepgram_tts_driver.py +0 -0
  151. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_deepseek_driver.py +0 -0
  152. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_elevenlabs_stt_driver.py +0 -0
  153. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_elevenlabs_tts_driver.py +0 -0
  154. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_embedding_base.py +0 -0
  155. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_fal_img_gen_driver.py +0 -0
  156. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_fal_video_gen_driver.py +0 -0
  157. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_google_driver.py +0 -0
  158. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_google_img_gen_driver.py +0 -0
  159. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_google_vertexai_driver.py +0 -0
  160. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_grok_driver.py +0 -0
  161. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_grok_img_gen_driver.py +0 -0
  162. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_grok_video_gen_driver.py +0 -0
  163. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_groq_driver.py +0 -0
  164. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_hugging_driver.py +0 -0
  165. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_ideogram_img_gen_driver.py +0 -0
  166. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_img_gen_base.py +0 -0
  167. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_jina_embedding_driver.py +0 -0
  168. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_jina_rerank_driver.py +0 -0
  169. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_kling_img_gen_driver.py +0 -0
  170. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_kling_video_gen_driver.py +0 -0
  171. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_lmstudio_driver.py +0 -0
  172. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_local_http_driver.py +0 -0
  173. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_luma_video_gen_driver.py +0 -0
  174. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_minimax_driver.py +0 -0
  175. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_minimax_video_gen_driver.py +0 -0
  176. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_mistral_driver.py +0 -0
  177. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_mistral_moderation_driver.py +0 -0
  178. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_modelscope_driver.py +0 -0
  179. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_moonshot_driver.py +0 -0
  180. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_muapi_aggregator_driver.py +0 -0
  181. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_mxbai_embedding_driver.py +0 -0
  182. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_mxbai_rerank_driver.py +0 -0
  183. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_nomic_embedding_driver.py +0 -0
  184. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_ollama_driver.py +0 -0
  185. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_ollama_embedding_driver.py +0 -0
  186. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_openai_compatible_driver.py +0 -0
  187. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_openai_driver.py +0 -0
  188. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_openai_embedding_driver.py +0 -0
  189. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_openai_img_gen_driver.py +0 -0
  190. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_openai_moderation_driver.py +0 -0
  191. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_openai_stt_driver.py +0 -0
  192. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_openai_tts_driver.py +0 -0
  193. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_openrouter_driver.py +0 -0
  194. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_pika_video_gen_driver.py +0 -0
  195. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_registry.py +0 -0
  196. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_runway_img_gen_driver.py +0 -0
  197. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_runway_tts_driver.py +0 -0
  198. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_runway_video_gen_driver.py +0 -0
  199. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_stability_img_gen_driver.py +0 -0
  200. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_stt_base.py +0 -0
  201. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_tts_base.py +0 -0
  202. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_video_gen_base.py +0 -0
  203. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_voyage_embedding_driver.py +0 -0
  204. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_voyage_rerank_driver.py +0 -0
  205. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/async_zai_driver.py +0 -0
  206. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/audio_registry.py +0 -0
  207. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/azure_config.py +0 -0
  208. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/azure_driver.py +0 -0
  209. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/base.py +0 -0
  210. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/bedrock_driver.py +0 -0
  211. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/bfl_img_gen_driver.py +0 -0
  212. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/cachibot_driver.py +0 -0
  213. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/cartesia_tts_driver.py +0 -0
  214. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/claude_driver.py +0 -0
  215. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/cohere_driver.py +0 -0
  216. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/cohere_embedding_driver.py +0 -0
  217. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/cohere_rerank_driver.py +0 -0
  218. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/deepgram_stt_driver.py +0 -0
  219. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/deepgram_tts_driver.py +0 -0
  220. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/deepseek_driver.py +0 -0
  221. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/driver_registry.py +0 -0
  222. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/elevenlabs_stt_driver.py +0 -0
  223. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/elevenlabs_tts_driver.py +0 -0
  224. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/embedding_base.py +0 -0
  225. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/embedding_registry.py +0 -0
  226. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/fal_img_gen_driver.py +0 -0
  227. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/fal_video_gen_driver.py +0 -0
  228. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/google_driver.py +0 -0
  229. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/google_img_gen_driver.py +0 -0
  230. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/google_vertexai_driver.py +0 -0
  231. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/grok_driver.py +0 -0
  232. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/grok_img_gen_driver.py +0 -0
  233. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/grok_video_gen_driver.py +0 -0
  234. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/groq_driver.py +0 -0
  235. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/hugging_driver.py +0 -0
  236. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/ideogram_img_gen_driver.py +0 -0
  237. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/img_gen_base.py +0 -0
  238. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/img_gen_registry.py +0 -0
  239. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/jina_embedding_driver.py +0 -0
  240. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/jina_rerank_driver.py +0 -0
  241. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/job_runner.py +0 -0
  242. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/kling_img_gen_driver.py +0 -0
  243. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/kling_video_gen_driver.py +0 -0
  244. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/lipsync_base.py +0 -0
  245. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/lipsync_registry.py +0 -0
  246. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/lmstudio_driver.py +0 -0
  247. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/local_http_driver.py +0 -0
  248. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/luma_video_gen_driver.py +0 -0
  249. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/media_capabilities.py +0 -0
  250. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/minimax_driver.py +0 -0
  251. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/minimax_video_gen_driver.py +0 -0
  252. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/mistral_driver.py +0 -0
  253. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/mistral_moderation_driver.py +0 -0
  254. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/modelscope_driver.py +0 -0
  255. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/moderation_base.py +0 -0
  256. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/moderation_registry.py +0 -0
  257. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/moonshot_driver.py +0 -0
  258. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/muapi_aggregator_driver.py +0 -0
  259. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/music_base.py +0 -0
  260. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/music_registry.py +0 -0
  261. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/mxbai_embedding_driver.py +0 -0
  262. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/mxbai_rerank_driver.py +0 -0
  263. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/nomic_embedding_driver.py +0 -0
  264. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/ollama_driver.py +0 -0
  265. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/ollama_embedding_driver.py +0 -0
  266. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/openai_compatible_driver.py +0 -0
  267. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/openai_driver.py +0 -0
  268. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/openai_embedding_driver.py +0 -0
  269. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/openai_img_gen_driver.py +0 -0
  270. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/openai_moderation_driver.py +0 -0
  271. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/openai_stt_driver.py +0 -0
  272. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/openai_tts_driver.py +0 -0
  273. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/openrouter_driver.py +0 -0
  274. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/pika_video_gen_driver.py +0 -0
  275. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/provider_branding.py +0 -0
  276. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/rerank_base.py +0 -0
  277. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/rerank_registry.py +0 -0
  278. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/runway_audio_transform_driver.py +0 -0
  279. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/runway_capabilities.py +0 -0
  280. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/runway_img_gen_driver.py +0 -0
  281. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/runway_tts_driver.py +0 -0
  282. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/runway_video_gen_driver.py +0 -0
  283. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/stability_img_gen_driver.py +0 -0
  284. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/stt_base.py +0 -0
  285. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/tts_base.py +0 -0
  286. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/vertex_img_gen_driver.py +0 -0
  287. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/video_gen_base.py +0 -0
  288. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/video_gen_registry.py +0 -0
  289. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/vision_helpers.py +0 -0
  290. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/voyage_embedding_driver.py +0 -0
  291. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/voyage_rerank_driver.py +0 -0
  292. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/drivers/zai_driver.py +0 -0
  293. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/eval/__init__.py +0 -0
  294. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/eval/base.py +0 -0
  295. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/eval/faithfulness.py +0 -0
  296. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/eval/judge.py +0 -0
  297. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/eval/pairwise.py +0 -0
  298. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/eval/self_consistency.py +0 -0
  299. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/exceptions.py +0 -0
  300. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/__init__.py +0 -0
  301. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/context.py +0 -0
  302. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/context_eval.py +0 -0
  303. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/data/document_qa_policies.json +0 -0
  304. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/data/extraction_contacts.json +0 -0
  305. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/data/tool_task_inventory.json +0 -0
  306. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/fixtures.py +0 -0
  307. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/gates.py +0 -0
  308. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/harness.py +0 -0
  309. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/improve/__init__.py +0 -0
  310. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/improve/candidates.py +0 -0
  311. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/improve/optimizer.py +0 -0
  312. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/improve/promotion.py +0 -0
  313. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/improve/scorecard.py +0 -0
  314. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/integration.py +0 -0
  315. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/outcomes.py +0 -0
  316. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/policy.py +0 -0
  317. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/sandbox.py +0 -0
  318. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/scoring.py +0 -0
  319. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/strategies/__init__.py +0 -0
  320. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/strategies/base.py +0 -0
  321. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/strategies/critique.py +0 -0
  322. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/strategies/direct.py +0 -0
  323. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/strategies/registry.py +0 -0
  324. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/strategies/retrieve.py +0 -0
  325. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/execution/types.py +0 -0
  326. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/extraction/__init__.py +0 -0
  327. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/extraction/_usage.py +0 -0
  328. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/extraction/async_core.py +0 -0
  329. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/extraction/code_extraction.py +0 -0
  330. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/extraction/core.py +0 -0
  331. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/extraction/few_shot.py +0 -0
  332. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/extraction/fields.py +0 -0
  333. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/extraction/reasoning.py +0 -0
  334. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/extraction/strategy.py +0 -0
  335. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/extraction/streaming.py +0 -0
  336. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/extraction/tools.py +0 -0
  337. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/extraction/tukuy_bridge.py +0 -0
  338. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/extraction/validator.py +0 -0
  339. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/groups/__init__.py +0 -0
  340. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/groups/async_groups.py +0 -0
  341. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/groups/consensus.py +0 -0
  342. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/groups/debate.py +0 -0
  343. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/groups/groups.py +0 -0
  344. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/groups/types.py +0 -0
  345. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/imaging/__init__.py +0 -0
  346. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/imaging/enhance.py +0 -0
  347. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/imaging/negative.py +0 -0
  348. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/imaging/set_planner.py +0 -0
  349. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/imaging/style_presets.py +0 -0
  350. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/billing.py +0 -0
  351. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/budget.py +0 -0
  352. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/cache.py +0 -0
  353. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/callbacks.py +0 -0
  354. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/capabilities.py +0 -0
  355. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/coding_agent_events.py +0 -0
  356. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/coding_agent_specs.py +0 -0
  357. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/coding_agents.py +0 -0
  358. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/cost_mixin.py +0 -0
  359. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/ledger.py +0 -0
  360. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/logging.py +0 -0
  361. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/media_pricing.py +0 -0
  362. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/media_rates.json +0 -0
  363. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/model_rates.py +0 -0
  364. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/pricing.py +0 -0
  365. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/provider_env.py +0 -0
  366. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/anthropic.json +0 -0
  367. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/azure.json +0 -0
  368. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/bedrock.json +0 -0
  369. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/cerebras.json +0 -0
  370. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/cohere.json +0 -0
  371. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/deepinfra.json +0 -0
  372. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/deepseek.json +0 -0
  373. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/fireworks.json +0 -0
  374. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/google.json +0 -0
  375. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/google_vertexai.json +0 -0
  376. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/groq.json +0 -0
  377. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/jina.json +0 -0
  378. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/mistral.json +0 -0
  379. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/mixedbread.json +0 -0
  380. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/moonshot.json +0 -0
  381. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/nomic.json +0 -0
  382. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/nvidia.json +0 -0
  383. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/openai.json +0 -0
  384. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/openrouter.json +0 -0
  385. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/perplexity.json +0 -0
  386. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/sambanova.json +0 -0
  387. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/siliconflow.json +0 -0
  388. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/together.json +0 -0
  389. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/voyage.json +0 -0
  390. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/rates/xai.json +0 -0
  391. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/session.py +0 -0
  392. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/token_counting.py +0 -0
  393. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/tracker.py +0 -0
  394. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/infra/tukuy_backend.py +0 -0
  395. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/ingestion/__init__.py +0 -0
  396. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/ingestion/chunking.py +0 -0
  397. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/ingestion/detect.py +0 -0
  398. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/ingestion/document.py +0 -0
  399. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/ingestion/parsers/__init__.py +0 -0
  400. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/ingestion/parsers/base.py +0 -0
  401. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/ingestion/parsers/csv_parser.py +0 -0
  402. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/ingestion/parsers/docx.py +0 -0
  403. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/ingestion/parsers/html.py +0 -0
  404. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/ingestion/parsers/markdown.py +0 -0
  405. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/ingestion/parsers/pdf.py +0 -0
  406. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/ingestion/parsers/xlsx.py +0 -0
  407. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/integrations/__init__.py +0 -0
  408. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/integrations/mcp_bridge.py +0 -0
  409. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/integrations/tukuy_bridge.py +0 -0
  410. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/jobs.py +0 -0
  411. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/kg/__init__.py +0 -0
  412. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/kg/core.py +0 -0
  413. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/kg/stores.py +0 -0
  414. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/kg/types.py +0 -0
  415. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/mcp/__init__.py +0 -0
  416. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/mcp/client.py +0 -0
  417. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/mcp/server.py +0 -0
  418. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/mcp/tools.py +0 -0
  419. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/media/__init__.py +0 -0
  420. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/media/agent_tools.py +0 -0
  421. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/media/audio.py +0 -0
  422. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/media/hosting.py +0 -0
  423. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/media/image.py +0 -0
  424. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/media/video.py +0 -0
  425. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/pages/01-why-prompture.md +0 -0
  426. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/pages/02-installation.md +0 -0
  427. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/pages/03-quickstart.md +0 -0
  428. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/pages/04-toon-input.md +0 -0
  429. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/pages/05-test-harness.md +0 -0
  430. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/pages/06-stability.md +0 -0
  431. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/pages/07-migration.md +0 -0
  432. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/persistence/__init__.py +0 -0
  433. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/persistence/history.py +0 -0
  434. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/persistence/serialization.py +0 -0
  435. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/persistence/store.py +0 -0
  436. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/pipeline/__init__.py +0 -0
  437. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/pipeline/pipeline.py +0 -0
  438. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/pipeline/resolver.py +0 -0
  439. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/pipeline/routing.py +0 -0
  440. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/plugins/__init__.py +0 -0
  441. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/plugins/base.py +0 -0
  442. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/plugins/builtins/_aliases.py +0 -0
  443. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/plugins/builtins/anthropic_plugin.py +0 -0
  444. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/plugins/builtins/audio_plugin.py +0 -0
  445. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/plugins/builtins/cloud_plugin.py +0 -0
  446. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/plugins/builtins/embedding_rerank_plugin.py +0 -0
  447. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/plugins/builtins/extras_plugin.py +0 -0
  448. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/plugins/builtins/google_plugin.py +0 -0
  449. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/plugins/builtins/image_plugin.py +0 -0
  450. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/plugins/builtins/local_plugin.py +0 -0
  451. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/plugins/builtins/openai_compatible_plugin.py +0 -0
  452. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/plugins/builtins/openai_plugin.py +0 -0
  453. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/plugins/builtins/video_plugin.py +0 -0
  454. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/plugins/discovery.py +0 -0
  455. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/py.typed +0 -0
  456. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/__init__.py +0 -0
  457. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/chunkers/__init__.py +0 -0
  458. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/chunkers/base.py +0 -0
  459. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/chunkers/character.py +0 -0
  460. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/chunkers/chunker_registry.py +0 -0
  461. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/chunkers/contextual.py +0 -0
  462. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/chunkers/markdown.py +0 -0
  463. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/chunkers/recursive.py +0 -0
  464. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/chunkers/semantic.py +0 -0
  465. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/chunkers/token.py +0 -0
  466. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/documents.py +0 -0
  467. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/loader_registry.py +0 -0
  468. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/loaders/__init__.py +0 -0
  469. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/loaders/csv_loader.py +0 -0
  470. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/loaders/docx_loader.py +0 -0
  471. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/loaders/epub_loader.py +0 -0
  472. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/loaders/html_loader.py +0 -0
  473. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/loaders/json_loader.py +0 -0
  474. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/loaders/markdown_loader.py +0 -0
  475. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/loaders/pdf_loader.py +0 -0
  476. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/loaders/text_loader.py +0 -0
  477. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/loaders/xlsx_loader.py +0 -0
  478. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/pipeline.py +0 -0
  479. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/retrievers/__init__.py +0 -0
  480. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/retrievers/_fusion.py +0 -0
  481. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/retrievers/base.py +0 -0
  482. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/retrievers/hybrid.py +0 -0
  483. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/retrievers/hyde.py +0 -0
  484. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/retrievers/mmr.py +0 -0
  485. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/retrievers/multi_query.py +0 -0
  486. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/retrievers/retriever_registry.py +0 -0
  487. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/retrievers/similarity.py +0 -0
  488. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/retrievers/step_back.py +0 -0
  489. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/vectorstores/__init__.py +0 -0
  490. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/vectorstores/base.py +0 -0
  491. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/vectorstores/chroma.py +0 -0
  492. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/vectorstores/faiss.py +0 -0
  493. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/vectorstores/pgvector.py +0 -0
  494. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/vectorstores/pinecone.py +0 -0
  495. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/vectorstores/qdrant.py +0 -0
  496. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/vectorstores/vectorstore_registry.py +0 -0
  497. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/rag/vectorstores/weaviate.py +0 -0
  498. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/refusal/__init__.py +0 -0
  499. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/refusal/detector.py +0 -0
  500. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/refusal/evaluator.py +0 -0
  501. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/refusal/markers.py +0 -0
  502. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/scaffold/__init__.py +0 -0
  503. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/scaffold/generator.py +0 -0
  504. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/scaffold/templates/Dockerfile.j2 +0 -0
  505. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/scaffold/templates/README.md.j2 +0 -0
  506. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/scaffold/templates/config.py.j2 +0 -0
  507. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/scaffold/templates/env.example.j2 +0 -0
  508. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/scaffold/templates/main.py.j2 +0 -0
  509. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/scaffold/templates/models.py.j2 +0 -0
  510. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/scaffold/templates/requirements.txt.j2 +0 -0
  511. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/security/__init__.py +0 -0
  512. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/security/injection.py +0 -0
  513. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/security/redaction.py +0 -0
  514. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/session_memory/__init__.py +0 -0
  515. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/session_memory/core.py +0 -0
  516. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/session_memory/stores.py +0 -0
  517. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/session_memory/types.py +0 -0
  518. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/swarm/__init__.py +0 -0
  519. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/swarm/environment.py +0 -0
  520. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/swarm/memory.py +0 -0
  521. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/swarm/scheduler.py +0 -0
  522. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/swarm/swarm.py +0 -0
  523. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/swarm/swarm_agent.py +0 -0
  524. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/swarm/types.py +0 -0
  525. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/testing/__init__.py +0 -0
  526. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/testing/driver_contract.py +0 -0
  527. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/tools/__init__.py +0 -0
  528. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/tools/code_exec.py +0 -0
  529. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/tools/web_search.py +0 -0
  530. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/workflow/__init__.py +0 -0
  531. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/workflow/architect.py +0 -0
  532. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/workflow/engine.py +0 -0
  533. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/workflow/errors.py +0 -0
  534. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/workflow/model.py +0 -0
  535. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/workflow/nodes.py +0 -0
  536. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/workflow/recovery.py +0 -0
  537. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/workflow/references.py +0 -0
  538. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/workflow/registry.py +0 -0
  539. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/workflow/scheduler.py +0 -0
  540. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture/workflow/state.py +0 -0
  541. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture.egg-info/dependency_links.txt +0 -0
  542. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture.egg-info/entry_points.txt +0 -0
  543. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture.egg-info/top_level.txt +0 -0
  544. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/prompture_cost_tracking.md +0 -0
  545. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/requirements.txt +0 -0
  546. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/scripts/check_pricing_freshness.py +0 -0
  547. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/setup.cfg +0 -0
  548. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/specs/basic_extraction.json +0 -0
  549. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/specs/schema_validation.json +0 -0
  550. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/specs/strategy_comparison.json +0 -0
  551. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/test.py +0 -0
  552. {prompture-1.11.2.dev3 → prompture-1.12.1.dev1}/test_version_diagnosis.py +0 -0
@@ -162,6 +162,22 @@ COHERE_EMBEDDING_MODEL=embed-v4.0
162
162
  VOYAGE_EMBEDDING_MODEL=voyage-3.5
163
163
  JINA_EMBEDDING_MODEL=jina-embeddings-v3
164
164
 
165
+ # ─── Decision models ("System One": typed decisions, not text) ──────────────
166
+ # TypeSafe (hosted Jev) — key from https://console.typesafe.ai/
167
+ TYPESAFE_API_KEY=
168
+ TYPESAFE_BASE_URL=https://api.typesafe.ai
169
+ TYPESAFE_DECISION_MODEL=jev-latest
170
+
171
+ # Kev — self-hosted, serves the same /v1/systemone contract. No key needed.
172
+ # uv run --extra serve python -m kev.serve --run jaredpalmer/kev-4b --port 8009
173
+ KEV_BASE_URL=http://127.0.0.1:8009
174
+ KEV_API_KEY=
175
+ KEV_DECISION_MODEL=kev-latest
176
+
177
+ # Laya — in-process open weights, no endpoint. Install: pip install prompture[laya]
178
+ LAYA_DECISION_MODEL=router
179
+ LAYA_DEVICE=
180
+
165
181
  # ─── Phase 4: AWS Bedrock ───────────────────────────────────────────────────
166
182
  # boto3's standard credential chain is also honoured (IAM role, ~/.aws/credentials).
167
183
  # Install: pip install prompture[bedrock]
@@ -1,6 +1,7 @@
1
1
  name: documentation
2
2
 
3
3
  on:
4
+ workflow_dispatch:
4
5
  workflow_run:
5
6
  workflows: ["Publish to PyPI and GitHub Release"]
6
7
  types: [completed]
@@ -11,7 +12,7 @@ permissions:
11
12
  jobs:
12
13
  docs:
13
14
  runs-on: ubuntu-latest
14
- if: ${{ github.event.workflow_run.conclusion == 'success' }}
15
+ if: ${{ github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success' }}
15
16
  steps:
16
17
  - uses: actions/checkout@v4
17
18
  with:
@@ -26,8 +27,9 @@ jobs:
26
27
  run: |
27
28
  cacaodocs build ./prompture -o ./docs-cacao -c ./cacao.yaml
28
29
  - name: Export static site
30
+ working-directory: docs-cacao
29
31
  run: |
30
- cacao build ./docs-cacao/app.py -o ./_build
32
+ cacao build app.py -o ../_build
31
33
  - name: Deploy to GitHub Pages
32
34
  uses: peaceiris/actions-gh-pages@v3
33
35
  with:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: prompture
3
- Version: 1.11.2.dev3
3
+ Version: 1.12.1.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
@@ -49,6 +49,8 @@ Requires-Dist: ruff>=0.8.0; extra == "dev"
49
49
  Requires-Dist: prompture[all]; extra == "dev"
50
50
  Provides-Extra: airllm
51
51
  Requires-Dist: airllm>=2.8.0; extra == "airllm"
52
+ Provides-Extra: laya
53
+ Requires-Dist: laya>=0.3.6; extra == "laya"
52
54
  Provides-Extra: bedrock
53
55
  Requires-Dist: boto3>=1.34.0; extra == "bedrock"
54
56
  Provides-Extra: ingest
@@ -159,6 +161,7 @@ print(person.name) # Maria
159
161
  **Providers & modalities**
160
162
  - 36+ providers under a unified `provider/model` string — see [Providers](#providers)
161
163
  - Multi-modal drivers for embeddings, rerank, moderation, image, video, TTS, STT, and audio transforms — see [Multi-Modal](#multi-modal)
164
+ - **Decision models** ("System One") — typed `noul`/`choice`/`score` answers with calibrated probabilities instead of generated text. Hosted (TypeSafe Jev), self-hosted (Kev), or in-process (Laya) behind one interface — see [Decision](#decision)
162
165
  - TOON input conversion for 45–60% token savings on structured input ([python-toon](https://github.com/jhd3197/python-toon))
163
166
 
164
167
  **Agents, tools, RAG**
@@ -339,6 +342,9 @@ Model strings use `"provider/model"` format. The provider prefix routes to the c
339
342
  | `jina` | `jina/jina-embeddings-v3` (embedding), `jina/jina-reranker-v2-base-multilingual` (rerank) | Automatic |
340
343
  | `nomic` | `nomic/nomic-embed-text-v1.5` (embedding) | Automatic |
341
344
  | `mixedbread` | `mixedbread/mxbai-embed-large-v1` (embedding), `mixedbread/mxbai-rerank-large-v1` (rerank) | Automatic |
345
+ | `typesafe` | `typesafe/jev-latest` (decision) | Automatic |
346
+ | `kev` | `kev/kev-4b` (decision, self-hosted) | Free |
347
+ | `laya` | `laya/router` (decision, in-process) | Free (local) |
342
348
  | `openai_compatible` | `openai_compatible/<profile>/<model>` — 9 curated profiles: `fireworks`, `together`, `cerebras`, `sambanova`, `perplexity`, `nvidia`, `deepinfra`, `siliconflow`, `github_models` (or pass an explicit `endpoint=` for anything else) | Automatic where pricing is known |
343
349
 
344
350
  </details>
@@ -380,6 +386,7 @@ Beyond text LLMs, Prompture exposes drivers for adjacent modalities under the sa
380
386
  - **Embeddings** — OpenAI (`text-embedding-3-*`), Cohere (`embed-v4.0`), Voyage AI (`voyage-3.5`, `voyage-3-large`), Jina AI (`jina-embeddings-v3`), Nomic (`nomic-embed-text-v1.5`), Mixedbread (`mxbai-embed-large-v1`, `mxbai-embed-2d-large-v1`), and Ollama (`nomic-embed-text`)
381
387
  - **Rerank** — Cohere (`rerank-v3.5`), Voyage AI (`rerank-2.5`), Jina AI (`jina-reranker-v2-base-multilingual`), Mixedbread (`mxbai-rerank-large-v1`, `mxbai-rerank-base-v1`, `mxbai-rerank-xsmall-v1`)
382
388
  - **Moderation** — OpenAI (`omni-moderation-latest` — free multimodal), Mistral (`mistral-moderation-latest`)
389
+ - **Decision** ("System One" typed decisions) — TypeSafe (`jev-latest` — hosted), Kev (`kev-0.8b`/`kev-4b`/`kev-9b` — self-hosted, same endpoint), Laya (`router`, `english`, `multilingual`, `typed-decisions` — in-process)
383
390
  - **Image generation** — OpenAI DALL-E + GPT image, Google Imagen, Grok, Stability AI, Runway (`gen4_image`, `gen4_image_turbo`, `gpt_image_2`, `gemini_image3_pro`, `gemini_2.5_flash`), Kling AI, Fal.ai, Ideogram (v3 — strong typography), Black Forest Labs / Flux (`flux-pro-1.1`, `flux-pro-1.1-ultra`, `flux-dev`, `flux-schnell`, `flux-kontext-pro`/`max` for editing)
384
391
  - **Video generation** — Grok Imagine Video; Runway text/image/video → video (`gen4.5`, `gen4_turbo`, `gen3a_turbo`, `gen4_aleph`, `veo3`, `veo3.1`, `veo3.1_fast`); MiniMax / Hailuo; Kling AI; Luma AI Dream Machine (`ray-2`, `ray-flash-2`, `ray-1-6`); Pika Labs (`pika-2.2`, `pika-2.1`, `pika-1.5`); Fal.ai
385
392
  - **Text-to-speech** — OpenAI (`tts-1`), ElevenLabs, Cartesia (`sonic-2`), Deepgram (`aura-2-thalia-en`), Runway (`eleven_multilingual_v2`)
@@ -463,6 +470,59 @@ for r in results:
463
470
 
464
471
  OpenAI moderation is free of charge (`cost == 0`, `pricing_unknown == False`). Mistral moderation is billed at ~$0.10 per million input tokens. Discover configured moderation models with `get_available_moderation_models()`. The async factory is `get_async_moderation_driver_for_model()`.
465
472
 
473
+ ### Decision
474
+
475
+ Decision models ("System One") answer typed questions about a state instead of generating text. You send a `state` plus a map of questions; you get back one typed answer per question with calibrated probabilities — nothing to parse, nothing to hallucinate.
476
+
477
+ Three primitives: `Noul` (yes/no → probability), `Choice` (pick one → winner + distribution + confidence), and `Score` (ordinal rubric → weighted value + confidence).
478
+
479
+ ```python
480
+ from prompture.drivers.decision_base import Choice, Noul, Score
481
+ from prompture.drivers.decision_registry import get_decision_driver_for_model
482
+
483
+ driver = get_decision_driver_for_model("typesafe/jev-latest")
484
+ result = driver.decide(
485
+ state={"subject": "Duplicate charge", "body": "We were billed twice. Refund today or we cancel."},
486
+ questions={
487
+ "department": Choice(
488
+ "Which team should handle this?",
489
+ criteria={"billing": "invoices, refunds", "technical": "bugs, outages", "sales": None},
490
+ ),
491
+ "urgency": Score("How urgent is this?", criteria=["not urgent", "this week", "blocking"]),
492
+ "churn_risk": Noul("Does the sender threaten to cancel?"),
493
+ },
494
+ )
495
+
496
+ print(result["department"].choice, result["department"].confidence) # billing 0.81
497
+ print(result["urgency"].score, result["urgency"].nearest_level) # 1.05 this week
498
+ print(result["churn_risk"].noul) # 0.95
499
+ print(driver.last_usage["cost"])
500
+ ```
501
+
502
+ All questions in one call share a single reading of the state, so batching beats looping. Because the probabilities are calibrated, the common use is a confidence gate in front of an expensive model:
503
+
504
+ ```python
505
+ answer = result["department"]
506
+ if answer.confidence >= 0.85:
507
+ route_automatically(answer.choice) # no LLM call at all
508
+ else:
509
+ escalate_to_llm(state)
510
+ ```
511
+
512
+ The same question map works across every provider — only the model string changes:
513
+
514
+ | Model string | Where it runs | Cost | Setup |
515
+ | --- | --- | --- | --- |
516
+ | `typesafe/jev-latest` | hosted | $0.042 / 1M input tokens, output free | `TYPESAFE_API_KEY` |
517
+ | `kev/kev-4b` | your own server, same `/v1/systemone` contract | free | `KEV_BASE_URL` (no key) |
518
+ | `laya/router` | in-process weights | free | `pip install prompture[laya]` |
519
+
520
+ The open checkpoints trade accuracy for cost and both degrade on high-cardinality choices (50+ options), so benchmark on your own labels before switching a workload off the hosted model.
521
+
522
+ Discover configured decision models with `get_available_decision_models()` — TypeSafe appears when its key is set, Kev when `KEV_BASE_URL` points at a server, Laya when the package is installed. The async factory is `get_async_decision_driver_for_model()`.
523
+
524
+ Runnable example: `python examples/decision_model_example.py`.
525
+
466
526
  ### Runway
467
527
 
468
528
  Runway is a single API surface covering image, video, and audio. One key (`RUNWAY_API_KEY`, or `RUNWAYML_API_SECRET`) unlocks all of it:
@@ -54,6 +54,7 @@ print(person.name) # Maria
54
54
  **Providers & modalities**
55
55
  - 36+ providers under a unified `provider/model` string — see [Providers](#providers)
56
56
  - Multi-modal drivers for embeddings, rerank, moderation, image, video, TTS, STT, and audio transforms — see [Multi-Modal](#multi-modal)
57
+ - **Decision models** ("System One") — typed `noul`/`choice`/`score` answers with calibrated probabilities instead of generated text. Hosted (TypeSafe Jev), self-hosted (Kev), or in-process (Laya) behind one interface — see [Decision](#decision)
57
58
  - TOON input conversion for 45–60% token savings on structured input ([python-toon](https://github.com/jhd3197/python-toon))
58
59
 
59
60
  **Agents, tools, RAG**
@@ -234,6 +235,9 @@ Model strings use `"provider/model"` format. The provider prefix routes to the c
234
235
  | `jina` | `jina/jina-embeddings-v3` (embedding), `jina/jina-reranker-v2-base-multilingual` (rerank) | Automatic |
235
236
  | `nomic` | `nomic/nomic-embed-text-v1.5` (embedding) | Automatic |
236
237
  | `mixedbread` | `mixedbread/mxbai-embed-large-v1` (embedding), `mixedbread/mxbai-rerank-large-v1` (rerank) | Automatic |
238
+ | `typesafe` | `typesafe/jev-latest` (decision) | Automatic |
239
+ | `kev` | `kev/kev-4b` (decision, self-hosted) | Free |
240
+ | `laya` | `laya/router` (decision, in-process) | Free (local) |
237
241
  | `openai_compatible` | `openai_compatible/<profile>/<model>` — 9 curated profiles: `fireworks`, `together`, `cerebras`, `sambanova`, `perplexity`, `nvidia`, `deepinfra`, `siliconflow`, `github_models` (or pass an explicit `endpoint=` for anything else) | Automatic where pricing is known |
238
242
 
239
243
  </details>
@@ -275,6 +279,7 @@ Beyond text LLMs, Prompture exposes drivers for adjacent modalities under the sa
275
279
  - **Embeddings** — OpenAI (`text-embedding-3-*`), Cohere (`embed-v4.0`), Voyage AI (`voyage-3.5`, `voyage-3-large`), Jina AI (`jina-embeddings-v3`), Nomic (`nomic-embed-text-v1.5`), Mixedbread (`mxbai-embed-large-v1`, `mxbai-embed-2d-large-v1`), and Ollama (`nomic-embed-text`)
276
280
  - **Rerank** — Cohere (`rerank-v3.5`), Voyage AI (`rerank-2.5`), Jina AI (`jina-reranker-v2-base-multilingual`), Mixedbread (`mxbai-rerank-large-v1`, `mxbai-rerank-base-v1`, `mxbai-rerank-xsmall-v1`)
277
281
  - **Moderation** — OpenAI (`omni-moderation-latest` — free multimodal), Mistral (`mistral-moderation-latest`)
282
+ - **Decision** ("System One" typed decisions) — TypeSafe (`jev-latest` — hosted), Kev (`kev-0.8b`/`kev-4b`/`kev-9b` — self-hosted, same endpoint), Laya (`router`, `english`, `multilingual`, `typed-decisions` — in-process)
278
283
  - **Image generation** — OpenAI DALL-E + GPT image, Google Imagen, Grok, Stability AI, Runway (`gen4_image`, `gen4_image_turbo`, `gpt_image_2`, `gemini_image3_pro`, `gemini_2.5_flash`), Kling AI, Fal.ai, Ideogram (v3 — strong typography), Black Forest Labs / Flux (`flux-pro-1.1`, `flux-pro-1.1-ultra`, `flux-dev`, `flux-schnell`, `flux-kontext-pro`/`max` for editing)
279
284
  - **Video generation** — Grok Imagine Video; Runway text/image/video → video (`gen4.5`, `gen4_turbo`, `gen3a_turbo`, `gen4_aleph`, `veo3`, `veo3.1`, `veo3.1_fast`); MiniMax / Hailuo; Kling AI; Luma AI Dream Machine (`ray-2`, `ray-flash-2`, `ray-1-6`); Pika Labs (`pika-2.2`, `pika-2.1`, `pika-1.5`); Fal.ai
280
285
  - **Text-to-speech** — OpenAI (`tts-1`), ElevenLabs, Cartesia (`sonic-2`), Deepgram (`aura-2-thalia-en`), Runway (`eleven_multilingual_v2`)
@@ -358,6 +363,59 @@ for r in results:
358
363
 
359
364
  OpenAI moderation is free of charge (`cost == 0`, `pricing_unknown == False`). Mistral moderation is billed at ~$0.10 per million input tokens. Discover configured moderation models with `get_available_moderation_models()`. The async factory is `get_async_moderation_driver_for_model()`.
360
365
 
366
+ ### Decision
367
+
368
+ Decision models ("System One") answer typed questions about a state instead of generating text. You send a `state` plus a map of questions; you get back one typed answer per question with calibrated probabilities — nothing to parse, nothing to hallucinate.
369
+
370
+ Three primitives: `Noul` (yes/no → probability), `Choice` (pick one → winner + distribution + confidence), and `Score` (ordinal rubric → weighted value + confidence).
371
+
372
+ ```python
373
+ from prompture.drivers.decision_base import Choice, Noul, Score
374
+ from prompture.drivers.decision_registry import get_decision_driver_for_model
375
+
376
+ driver = get_decision_driver_for_model("typesafe/jev-latest")
377
+ result = driver.decide(
378
+ state={"subject": "Duplicate charge", "body": "We were billed twice. Refund today or we cancel."},
379
+ questions={
380
+ "department": Choice(
381
+ "Which team should handle this?",
382
+ criteria={"billing": "invoices, refunds", "technical": "bugs, outages", "sales": None},
383
+ ),
384
+ "urgency": Score("How urgent is this?", criteria=["not urgent", "this week", "blocking"]),
385
+ "churn_risk": Noul("Does the sender threaten to cancel?"),
386
+ },
387
+ )
388
+
389
+ print(result["department"].choice, result["department"].confidence) # billing 0.81
390
+ print(result["urgency"].score, result["urgency"].nearest_level) # 1.05 this week
391
+ print(result["churn_risk"].noul) # 0.95
392
+ print(driver.last_usage["cost"])
393
+ ```
394
+
395
+ All questions in one call share a single reading of the state, so batching beats looping. Because the probabilities are calibrated, the common use is a confidence gate in front of an expensive model:
396
+
397
+ ```python
398
+ answer = result["department"]
399
+ if answer.confidence >= 0.85:
400
+ route_automatically(answer.choice) # no LLM call at all
401
+ else:
402
+ escalate_to_llm(state)
403
+ ```
404
+
405
+ The same question map works across every provider — only the model string changes:
406
+
407
+ | Model string | Where it runs | Cost | Setup |
408
+ | --- | --- | --- | --- |
409
+ | `typesafe/jev-latest` | hosted | $0.042 / 1M input tokens, output free | `TYPESAFE_API_KEY` |
410
+ | `kev/kev-4b` | your own server, same `/v1/systemone` contract | free | `KEV_BASE_URL` (no key) |
411
+ | `laya/router` | in-process weights | free | `pip install prompture[laya]` |
412
+
413
+ The open checkpoints trade accuracy for cost and both degrade on high-cardinality choices (50+ options), so benchmark on your own labels before switching a workload off the hosted model.
414
+
415
+ Discover configured decision models with `get_available_decision_models()` — TypeSafe appears when its key is set, Kev when `KEV_BASE_URL` points at a server, Laya when the package is installed. The async factory is `get_async_decision_driver_for_model()`.
416
+
417
+ Runnable example: `python examples/decision_model_example.py`.
418
+
361
419
  ### Runway
362
420
 
363
421
  Runway is a single API surface covering image, video, and audio. One key (`RUNWAY_API_KEY`, or `RUNWAYML_API_SECRET`) unlocks all of it:
@@ -0,0 +1 @@
1
+ 1.12.0
@@ -1,6 +1,8 @@
1
1
  """prompture - API package to convert LLM outputs into JSON + test harness."""
2
2
 
3
- from dotenv import load_dotenv
3
+ import os as _os
4
+
5
+ from dotenv import dotenv_values, find_dotenv
4
6
 
5
7
  from .agents import *
6
8
 
@@ -231,8 +233,35 @@ try:
231
233
  except ImportError:
232
234
  pass
233
235
 
236
+
237
+ def _load_dotenv_skipping_blanks(path: str | None = None) -> None:
238
+ """Load ``.env`` into ``os.environ``, ignoring keys with a blank value.
239
+
240
+ A placeholder line like ``HF_ENDPOINT=`` means "not configured", but
241
+ exporting it makes the variable *set-but-empty*, which is not the same
242
+ thing to the rest of the process. Libraries that resolve their default
243
+ with ``os.getenv(KEY, default)`` — huggingface_hub's endpoint is one —
244
+ take the empty string over their default and break, even though the
245
+ caller never configured anything. Since ``.env`` values never override
246
+ real environment variables here, a blank placeholder can only ever
247
+ create such a variable, so there is nothing to lose by skipping it.
248
+
249
+ Args:
250
+ path: Explicit ``.env`` to read. When omitted, the file is located
251
+ the same way :func:`dotenv.load_dotenv` would — by walking up
252
+ from this module.
253
+ """
254
+ path = path or find_dotenv()
255
+ if not path:
256
+ return
257
+ for key, value in dotenv_values(path).items():
258
+ if value is None or not value.strip():
259
+ continue
260
+ _os.environ.setdefault(key, value)
261
+
262
+
234
263
  # Load environment variables from .env file
235
- load_dotenv()
264
+ _load_dotenv_skipping_blanks()
236
265
 
237
266
  # Auto-configure cache from settings if enabled
238
267
  from .infra.settings import settings as _settings
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '1.11.2.dev3'
22
- __version_tuple__ = version_tuple = (1, 11, 2, 'dev3')
21
+ __version__ = version = '1.12.1.dev1'
22
+ __version_tuple__ = version_tuple = (1, 12, 1, 'dev1')
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -47,6 +47,8 @@ from .async_groq_driver import AsyncGroqDriver
47
47
  from .async_hugging_driver import AsyncHuggingFaceDriver
48
48
  from .async_img_gen_base import AsyncImageGenDriver
49
49
  from .async_jina_rerank_driver import AsyncJinaRerankDriver
50
+ from .async_kev_decision_driver import AsyncKevDecisionDriver
51
+ from .async_laya_decision_driver import AsyncLayaDecisionDriver
50
52
  from .async_lmstudio_driver import AsyncLMStudioDriver
51
53
  from .async_local_http_driver import AsyncLocalHTTPDriver
52
54
  from .async_mistral_moderation_driver import AsyncMistralModerationDriver
@@ -66,7 +68,9 @@ from .async_runway_tts_driver import AsyncRunwayTTSDriver
66
68
  from .async_runway_video_gen_driver import AsyncRunwayVideoGenDriver
67
69
  from .async_stability_img_gen_driver import AsyncStabilityImageGenDriver
68
70
  from .async_stt_base import AsyncSTTDriver
71
+ from .async_systemone_compatible_driver import AsyncSystemOneCompatibleDriver
69
72
  from .async_tts_base import AsyncTTSDriver
73
+ from .async_typesafe_decision_driver import AsyncTypeSafeDecisionDriver
70
74
  from .async_video_gen_base import AsyncVideoGenDriver
71
75
  from .async_voyage_rerank_driver import AsyncVoyageRerankDriver
72
76
  from .async_zai_driver import AsyncZaiDriver
@@ -80,6 +84,28 @@ from .azure_driver import AzureDriver
80
84
  from .cachibot_driver import CachiBotDriver
81
85
  from .claude_driver import ClaudeDriver
82
86
  from .cohere_rerank_driver import CohereRerankDriver
87
+ from .decision_base import (
88
+ QUESTION_TYPES,
89
+ Answer,
90
+ AsyncDecisionDriver,
91
+ Choice,
92
+ ChoiceAnswer,
93
+ DecisionDriver,
94
+ DecisionResponse,
95
+ Noul,
96
+ NoulAnswer,
97
+ Question,
98
+ Score,
99
+ ScoreAnswer,
100
+ calculate_decision_cost,
101
+ normalize_questions,
102
+ )
103
+ from .decision_registry import (
104
+ ASYNC_DECISION_DRIVER_REGISTRY,
105
+ DECISION_DRIVER_REGISTRY,
106
+ get_async_decision_driver_for_model,
107
+ get_decision_driver_for_model,
108
+ )
83
109
  from .elevenlabs_stt_driver import ElevenLabsSTTDriver
84
110
  from .elevenlabs_tts_driver import ElevenLabsTTSDriver
85
111
  from .embedding_base import EMBEDDING_MODEL_DIMENSIONS, EmbeddingDriver
@@ -92,6 +118,8 @@ from .groq_driver import GroqDriver
92
118
  from .hugging_driver import HuggingFaceDriver
93
119
  from .img_gen_base import ImageGenDriver
94
120
  from .jina_rerank_driver import JinaRerankDriver
121
+ from .kev_decision_driver import KevDecisionDriver
122
+ from .laya_decision_driver import LayaDecisionDriver
95
123
  from .lmstudio_driver import LMStudioDriver
96
124
  from .local_http_driver import LocalHTTPDriver
97
125
  from .mistral_moderation_driver import MistralModerationDriver
@@ -121,6 +149,7 @@ from .provider_descriptors import (
121
149
  )
122
150
  from .registry import (
123
151
  _get_sync_registry,
152
+ get_async_decision_driver_factory,
124
153
  get_async_driver_factory,
125
154
  get_async_embedding_driver_factory,
126
155
  get_async_img_gen_driver_factory,
@@ -129,6 +158,7 @@ from .registry import (
129
158
  get_async_stt_driver_factory,
130
159
  get_async_tts_driver_factory,
131
160
  get_async_video_gen_driver_factory,
161
+ get_decision_driver_factory,
132
162
  get_driver_factory,
133
163
  get_embedding_driver_factory,
134
164
  get_img_gen_driver_factory,
@@ -137,6 +167,7 @@ from .registry import (
137
167
  get_stt_driver_factory,
138
168
  get_tts_driver_factory,
139
169
  get_video_gen_driver_factory,
170
+ is_async_decision_driver_registered,
140
171
  is_async_driver_registered,
141
172
  is_async_embedding_driver_registered,
142
173
  is_async_img_gen_driver_registered,
@@ -145,6 +176,7 @@ from .registry import (
145
176
  is_async_stt_driver_registered,
146
177
  is_async_tts_driver_registered,
147
178
  is_async_video_gen_driver_registered,
179
+ is_decision_driver_registered,
148
180
  is_driver_registered,
149
181
  is_embedding_driver_registered,
150
182
  is_img_gen_driver_registered,
@@ -153,6 +185,7 @@ from .registry import (
153
185
  is_stt_driver_registered,
154
186
  is_tts_driver_registered,
155
187
  is_video_gen_driver_registered,
188
+ list_registered_async_decision_drivers,
156
189
  list_registered_async_drivers,
157
190
  list_registered_async_embedding_drivers,
158
191
  list_registered_async_img_gen_drivers,
@@ -161,6 +194,7 @@ from .registry import (
161
194
  list_registered_async_stt_drivers,
162
195
  list_registered_async_tts_drivers,
163
196
  list_registered_async_video_gen_drivers,
197
+ list_registered_decision_drivers,
164
198
  list_registered_drivers,
165
199
  list_registered_embedding_drivers,
166
200
  list_registered_img_gen_drivers,
@@ -170,6 +204,7 @@ from .registry import (
170
204
  list_registered_tts_drivers,
171
205
  list_registered_video_gen_drivers,
172
206
  load_entry_point_drivers,
207
+ register_async_decision_driver,
173
208
  register_async_driver,
174
209
  register_async_embedding_driver,
175
210
  register_async_img_gen_driver,
@@ -178,6 +213,7 @@ from .registry import (
178
213
  register_async_stt_driver,
179
214
  register_async_tts_driver,
180
215
  register_async_video_gen_driver,
216
+ register_decision_driver,
181
217
  register_driver,
182
218
  register_embedding_driver,
183
219
  register_img_gen_driver,
@@ -186,6 +222,7 @@ from .registry import (
186
222
  register_stt_driver,
187
223
  register_tts_driver,
188
224
  register_video_gen_driver,
225
+ unregister_async_decision_driver,
189
226
  unregister_async_driver,
190
227
  unregister_async_embedding_driver,
191
228
  unregister_async_img_gen_driver,
@@ -194,6 +231,7 @@ from .registry import (
194
231
  unregister_async_stt_driver,
195
232
  unregister_async_tts_driver,
196
233
  unregister_async_video_gen_driver,
234
+ unregister_decision_driver,
197
235
  unregister_driver,
198
236
  unregister_embedding_driver,
199
237
  unregister_img_gen_driver,
@@ -222,7 +260,9 @@ from .runway_tts_driver import RunwayTTSDriver
222
260
  from .runway_video_gen_driver import RunwayVideoGenDriver
223
261
  from .stability_img_gen_driver import StabilityImageGenDriver
224
262
  from .stt_base import STTDriver
263
+ from .systemone_compatible_driver import SystemOneCompatibleDriver
225
264
  from .tts_base import TTSDriver
265
+ from .typesafe_decision_driver import TypeSafeDecisionDriver
226
266
  from .video_gen_base import VideoGenDriver
227
267
  from .voyage_rerank_driver import VoyageRerankDriver
228
268
  from .zai_driver import ZaiDriver
@@ -511,11 +551,13 @@ def provider_for_model(model_str: str, *, canonical: bool = False) -> str:
511
551
 
512
552
 
513
553
  __all__ = [
554
+ "ASYNC_DECISION_DRIVER_REGISTRY",
514
555
  "ASYNC_DRIVER_REGISTRY",
515
556
  "ASYNC_MODERATION_DRIVER_REGISTRY",
516
557
  # Provider driver maps (for explicit-credential construction)
517
558
  "ASYNC_PROVIDER_DRIVER_MAP",
518
559
  "ASYNC_RERANK_DRIVER_REGISTRY",
560
+ "DECISION_DRIVER_REGISTRY",
519
561
  # Legacy registry dicts (for backwards compatibility)
520
562
  "DRIVER_REGISTRY",
521
563
  # Embedding model dimension metadata
@@ -529,12 +571,15 @@ __all__ = [
529
571
  "PROVIDER_DRIVER_MAP",
530
572
  # Provider name mapping
531
573
  "PROVIDER_NAME_MAP",
574
+ "QUESTION_TYPES",
532
575
  "RERANK_DRIVER_REGISTRY",
533
576
  "RUNWAY_ALL_MODALITIES",
534
577
  "RUNWAY_ALL_OPERATIONS",
535
578
  "RUNWAY_MODEL_INFO",
536
579
  # Sync LLM drivers
537
580
  "AirLLMDriver",
581
+ # Decision base + question/answer types
582
+ "Answer",
538
583
  # Async LLM drivers
539
584
  "AsyncAirLLMDriver",
540
585
  "AsyncAzureDriver",
@@ -542,6 +587,7 @@ __all__ = [
542
587
  "AsyncClaudeDriver",
543
588
  # Async rerank drivers
544
589
  "AsyncCohereRerankDriver",
590
+ "AsyncDecisionDriver",
545
591
  # Async base classes
546
592
  "AsyncDriver",
547
593
  # Async audio drivers
@@ -559,7 +605,9 @@ __all__ = [
559
605
  "AsyncHuggingFaceDriver",
560
606
  "AsyncImageGenDriver",
561
607
  "AsyncJinaRerankDriver",
608
+ "AsyncKevDecisionDriver",
562
609
  "AsyncLMStudioDriver",
610
+ "AsyncLayaDecisionDriver",
563
611
  "AsyncLocalHTTPDriver",
564
612
  "AsyncMistralModerationDriver",
565
613
  "AsyncModelScopeDriver",
@@ -580,16 +628,22 @@ __all__ = [
580
628
  "AsyncRunwayVideoGenDriver",
581
629
  "AsyncSTTDriver",
582
630
  "AsyncStabilityImageGenDriver",
631
+ "AsyncSystemOneCompatibleDriver",
583
632
  "AsyncTTSDriver",
633
+ "AsyncTypeSafeDecisionDriver",
584
634
  "AsyncVideoGenDriver",
585
635
  "AsyncVoyageRerankDriver",
586
636
  "AsyncZaiDriver",
587
637
  # Sync LLM drivers
588
638
  "AzureDriver",
589
639
  "CachiBotDriver",
640
+ "Choice",
641
+ "ChoiceAnswer",
590
642
  "ClaudeDriver",
591
643
  # Sync rerank drivers
592
644
  "CohereRerankDriver",
645
+ "DecisionDriver",
646
+ "DecisionResponse",
593
647
  # Sync audio drivers
594
648
  "ElevenLabsSTTDriver",
595
649
  "ElevenLabsTTSDriver",
@@ -606,7 +660,9 @@ __all__ = [
606
660
  # Image gen base class
607
661
  "ImageGenDriver",
608
662
  "JinaRerankDriver",
663
+ "KevDecisionDriver",
609
664
  "LMStudioDriver",
665
+ "LayaDecisionDriver",
610
666
  "LocalHTTPDriver",
611
667
  "MistralModerationDriver",
612
668
  "ModelScopeDriver",
@@ -614,6 +670,8 @@ __all__ = [
614
670
  "ModerationDriver",
615
671
  "ModerationResult",
616
672
  "MoonshotDriver",
673
+ "Noul",
674
+ "NoulAnswer",
617
675
  "OllamaDriver",
618
676
  "OllamaEmbeddingDriver",
619
677
  "OpenAIDriver",
@@ -625,6 +683,7 @@ __all__ = [
625
683
  "OpenRouterDriver",
626
684
  # Branding (display metadata)
627
685
  "ProviderBrand",
686
+ "Question",
628
687
  # Rerank base + result types
629
688
  "RerankDriver",
630
689
  "RerankResult",
@@ -634,13 +693,20 @@ __all__ = [
634
693
  "RunwayVideoGenDriver",
635
694
  # STT/TTS base classes
636
695
  "STTDriver",
696
+ "Score",
697
+ "ScoreAnswer",
637
698
  "StabilityImageGenDriver",
699
+ "SystemOneCompatibleDriver",
638
700
  "TTSDriver",
701
+ "TypeSafeDecisionDriver",
639
702
  "VideoGenDriver",
640
703
  "VoyageRerankDriver",
641
704
  "ZaiDriver",
705
+ "calculate_decision_cost",
642
706
  # Azure config API
643
707
  "clear_azure_configs",
708
+ "get_async_decision_driver_factory",
709
+ "get_async_decision_driver_for_model",
644
710
  "get_async_driver",
645
711
  "get_async_driver_for_model",
646
712
  # Embedding registry query functions
@@ -672,6 +738,8 @@ __all__ = [
672
738
  # Video gen factory functions
673
739
  "get_async_video_gen_driver_for_model",
674
740
  # LLM factory functions
741
+ "get_decision_driver_factory",
742
+ "get_decision_driver_for_model",
675
743
  "get_driver",
676
744
  "get_driver_for_model",
677
745
  "get_embedding_driver_factory",
@@ -696,6 +764,7 @@ __all__ = [
696
764
  "get_video_gen_driver_for_model",
697
765
  "icon_url",
698
766
  # Other registry query functions
767
+ "is_async_decision_driver_registered",
699
768
  "is_async_driver_registered",
700
769
  "is_async_embedding_driver_registered",
701
770
  "is_async_img_gen_driver_registered",
@@ -704,6 +773,7 @@ __all__ = [
704
773
  "is_async_stt_driver_registered",
705
774
  "is_async_tts_driver_registered",
706
775
  "is_async_video_gen_driver_registered",
776
+ "is_decision_driver_registered",
707
777
  "is_driver_registered",
708
778
  "is_embedding_driver_registered",
709
779
  "is_img_gen_driver_registered",
@@ -712,6 +782,7 @@ __all__ = [
712
782
  "is_stt_driver_registered",
713
783
  "is_tts_driver_registered",
714
784
  "is_video_gen_driver_registered",
785
+ "list_registered_async_decision_drivers",
715
786
  "list_registered_async_drivers",
716
787
  "list_registered_async_embedding_drivers",
717
788
  "list_registered_async_img_gen_drivers",
@@ -720,6 +791,7 @@ __all__ = [
720
791
  "list_registered_async_stt_drivers",
721
792
  "list_registered_async_tts_drivers",
722
793
  "list_registered_async_video_gen_drivers",
794
+ "list_registered_decision_drivers",
723
795
  "list_registered_drivers",
724
796
  "list_registered_embedding_drivers",
725
797
  "list_registered_img_gen_drivers",
@@ -729,9 +801,11 @@ __all__ = [
729
801
  "list_registered_tts_drivers",
730
802
  "list_registered_video_gen_drivers",
731
803
  "load_entry_point_drivers",
804
+ "normalize_questions",
732
805
  "parse_model_string",
733
806
  "provider_for_model",
734
807
  "register_all_builtin_drivers",
808
+ "register_async_decision_driver",
735
809
  "register_async_driver",
736
810
  "register_async_embedding_driver",
737
811
  "register_async_img_gen_driver",
@@ -742,6 +816,7 @@ __all__ = [
742
816
  "register_async_video_gen_driver",
743
817
  "register_azure_config",
744
818
  # Registry functions (public API)
819
+ "register_decision_driver",
745
820
  "register_driver",
746
821
  "register_embedding_driver",
747
822
  "register_img_gen_driver",
@@ -751,6 +826,7 @@ __all__ = [
751
826
  "register_tts_driver",
752
827
  "register_video_gen_driver",
753
828
  "set_azure_config_resolver",
829
+ "unregister_async_decision_driver",
754
830
  "unregister_async_driver",
755
831
  "unregister_async_embedding_driver",
756
832
  "unregister_async_img_gen_driver",
@@ -760,6 +836,7 @@ __all__ = [
760
836
  "unregister_async_tts_driver",
761
837
  "unregister_async_video_gen_driver",
762
838
  "unregister_azure_config",
839
+ "unregister_decision_driver",
763
840
  "unregister_driver",
764
841
  "unregister_embedding_driver",
765
842
  "unregister_img_gen_driver",
@@ -0,0 +1,19 @@
1
+ """Async Kev decision driver — self-hosted Jev-compatible decision models."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from .async_systemone_compatible_driver import AsyncSystemOneCompatibleDriver
6
+ from .kev_decision_driver import KevDecisionDriver
7
+
8
+
9
+ class AsyncKevDecisionDriver(AsyncSystemOneCompatibleDriver):
10
+ """Async self-hosted Kev decision driver."""
11
+
12
+ PROVIDER = KevDecisionDriver.PROVIDER
13
+ DEFAULT_BASE_URL = KevDecisionDriver.DEFAULT_BASE_URL
14
+ DEFAULT_MODEL = KevDecisionDriver.DEFAULT_MODEL
15
+ ENV_KEY = KevDecisionDriver.ENV_KEY
16
+ ENV_BASE_URL = KevDecisionDriver.ENV_BASE_URL
17
+ REQUIRES_API_KEY = False
18
+
19
+ KNOWN_MODELS: tuple[str, ...] = KevDecisionDriver.KNOWN_MODELS