prompture 1.13.2.dev1__tar.gz → 1.13.3.dev1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (588) hide show
  1. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/PKG-INFO +1 -1
  2. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/_version.py +2 -2
  3. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/cli/cli.py +41 -5
  4. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/companion/coding_tools.py +105 -5
  5. prompture-1.13.3.dev1/prompture/companion/hook.py +75 -0
  6. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/companion/live.py +4 -2
  7. prompture-1.13.3.dev1/prompture/companion/router.py +589 -0
  8. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/companion/server.py +110 -3
  9. prompture-1.13.3.dev1/prompture/companion/tool_routing.py +377 -0
  10. prompture-1.13.3.dev1/prompture/infra/coding_agent_activity.py +340 -0
  11. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/coding_agent_readers.py +8 -0
  12. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture.egg-info/PKG-INFO +1 -1
  13. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture.egg-info/SOURCES.txt +4 -0
  14. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture.egg-info/scm_file_list.json +6 -0
  15. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.claude/skills/add-driver/SKILL.md +0 -0
  16. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.claude/skills/add-driver/references/driver-template.md +0 -0
  17. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.claude/skills/add-example/SKILL.md +0 -0
  18. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.claude/skills/add-field/SKILL.md +0 -0
  19. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.claude/skills/add-persona/SKILL.md +0 -0
  20. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.claude/skills/add-test/SKILL.md +0 -0
  21. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.claude/skills/add-tool/SKILL.md +0 -0
  22. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.claude/skills/create-pr/SKILL.md +0 -0
  23. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.claude/skills/run-tests/SKILL.md +0 -0
  24. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.claude/skills/scaffold-extraction/SKILL.md +0 -0
  25. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.claude/skills/update-pricing/SKILL.md +0 -0
  26. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.env.copy +0 -0
  27. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.github/FUNDING.yml +0 -0
  28. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  29. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.github/ISSUE_TEMPLATE/pricing_cost_mismatch.yml +0 -0
  30. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.github/ISSUE_TEMPLATE/provider_driver_bug.yml +0 -0
  31. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.github/ISSUE_TEMPLATE/schema_extraction_failure.yml +0 -0
  32. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.github/scripts/update_docs_version.py +0 -0
  33. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.github/scripts/update_wrapper_version.py +0 -0
  34. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.github/workflows/dev.yml +0 -0
  35. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.github/workflows/documentation.yml +0 -0
  36. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.github/workflows/pricing-freshness.yml +0 -0
  37. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.github/workflows/publish.yml +0 -0
  38. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.github/workflows/security.yml +0 -0
  39. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/.safety-project.ini +0 -0
  40. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/AGENTS.md +0 -0
  41. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/BREAKING_CHANGES.md +0 -0
  42. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/CLAUDE.md +0 -0
  43. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/CONTRIBUTING.md +0 -0
  44. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/LICENSE +0 -0
  45. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/MANIFEST.in +0 -0
  46. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/README.md +0 -0
  47. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/ROADMAP.md +0 -0
  48. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/SECURITY.md +0 -0
  49. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/VERSION +0 -0
  50. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/dev.ps1 +0 -0
  51. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/dev.sh +0 -0
  52. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/mypy_errors.txt +0 -0
  53. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/packages/README.md +0 -0
  54. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/packages/llm_to_json/README.md +0 -0
  55. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/packages/llm_to_json/llm_to_json/__init__.py +0 -0
  56. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/packages/llm_to_json/pyproject.toml +0 -0
  57. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/packages/llm_to_json/test.py +0 -0
  58. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/packages/llm_to_toon/README.md +0 -0
  59. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/packages/llm_to_toon/llm_to_toon/__init__.py +0 -0
  60. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/packages/llm_to_toon/pyproject.toml +0 -0
  61. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/packages/llm_to_toon/test.py +0 -0
  62. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/__init__.py +0 -0
  63. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/__main__.py +0 -0
  64. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/_internal/__init__.py +0 -0
  65. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/_internal/json_encoder.py +0 -0
  66. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/__init__.py +0 -0
  67. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/agent.py +0 -0
  68. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/assistant.py +0 -0
  69. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/async_agent.py +0 -0
  70. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/async_conversation.py +0 -0
  71. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/async_deep_agent.py +0 -0
  72. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/conversation.py +0 -0
  73. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/deep/__init__.py +0 -0
  74. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/deep/planner.py +0 -0
  75. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/deep/subagents.py +0 -0
  76. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/deep/summarizer.py +0 -0
  77. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/deep/vfs.py +0 -0
  78. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/deep_agent.py +0 -0
  79. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/deep_prompts.py +0 -0
  80. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/deep_state.py +0 -0
  81. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/live_events.py +0 -0
  82. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/persona.py +0 -0
  83. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/review_loop.py +0 -0
  84. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/simulated_tools.py +0 -0
  85. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/skill_miner.py +0 -0
  86. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/skills.py +0 -0
  87. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/tool_grammars.py +0 -0
  88. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/tools_schema.py +0 -0
  89. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/agents/types.py +0 -0
  90. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/aio/__init__.py +0 -0
  91. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/bridges/__init__.py +0 -0
  92. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/bridges/tukuy_backend.py +0 -0
  93. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/checkpoints/__init__.py +0 -0
  94. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/checkpoints/core.py +0 -0
  95. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/checkpoints/stores.py +0 -0
  96. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/checkpoints/types.py +0 -0
  97. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/citations/__init__.py +0 -0
  98. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/citations/core.py +0 -0
  99. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/citations/types.py +0 -0
  100. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/cli/__init__.py +0 -0
  101. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/cli/formatters.py +0 -0
  102. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/cli/runner.py +0 -0
  103. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/cli/server.py +0 -0
  104. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/companion/__init__.py +0 -0
  105. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/companion/automations.py +0 -0
  106. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/companion/local.py +0 -0
  107. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/companion/summary.py +0 -0
  108. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/dataset/__init__.py +0 -0
  109. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/dataset/dedup.py +0 -0
  110. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/dataset/evol.py +0 -0
  111. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/dataset/filters.py +0 -0
  112. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/dataset/formats.py +0 -0
  113. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/dataset/schemas.py +0 -0
  114. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/dataset/seed.py +0 -0
  115. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/dataset/synth.py +0 -0
  116. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/__init__.py +0 -0
  117. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/_media_usage.py +0 -0
  118. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/_openai_compat.py +0 -0
  119. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/_openai_compat_stream.py +0 -0
  120. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/_openai_responses.py +0 -0
  121. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/_prompt_cache.py +0 -0
  122. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/_prompted_tool_stream.py +0 -0
  123. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/_usage_reporting.py +0 -0
  124. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/aggregator_base.py +0 -0
  125. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/airllm_driver.py +0 -0
  126. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/assemblyai_stt_driver.py +0 -0
  127. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_aggregator_base.py +0 -0
  128. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_airllm_driver.py +0 -0
  129. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_assemblyai_stt_driver.py +0 -0
  130. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_azure_driver.py +0 -0
  131. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_base.py +0 -0
  132. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_bedrock_driver.py +0 -0
  133. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_bfl_img_gen_driver.py +0 -0
  134. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_cachibot_driver.py +0 -0
  135. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_cartesia_tts_driver.py +0 -0
  136. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_claude_driver.py +0 -0
  137. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_cohere_driver.py +0 -0
  138. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_cohere_embedding_driver.py +0 -0
  139. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_cohere_rerank_driver.py +0 -0
  140. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_deepgram_stt_driver.py +0 -0
  141. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_deepgram_tts_driver.py +0 -0
  142. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_deepseek_driver.py +0 -0
  143. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_elevenlabs_stt_driver.py +0 -0
  144. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_elevenlabs_tts_driver.py +0 -0
  145. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_embedding_base.py +0 -0
  146. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_fal_img_gen_driver.py +0 -0
  147. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_fal_video_gen_driver.py +0 -0
  148. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_google_driver.py +0 -0
  149. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_google_img_gen_driver.py +0 -0
  150. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_google_vertexai_driver.py +0 -0
  151. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_grok_driver.py +0 -0
  152. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_grok_img_gen_driver.py +0 -0
  153. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_grok_video_gen_driver.py +0 -0
  154. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_groq_driver.py +0 -0
  155. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_hugging_driver.py +0 -0
  156. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_ideogram_img_gen_driver.py +0 -0
  157. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_img_gen_base.py +0 -0
  158. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_jina_embedding_driver.py +0 -0
  159. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_jina_rerank_driver.py +0 -0
  160. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_kev_decision_driver.py +0 -0
  161. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_kling_img_gen_driver.py +0 -0
  162. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_kling_video_gen_driver.py +0 -0
  163. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_laya_decision_driver.py +0 -0
  164. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_lmstudio_driver.py +0 -0
  165. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_local_http_driver.py +0 -0
  166. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_luma_video_gen_driver.py +0 -0
  167. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_minimax_driver.py +0 -0
  168. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_minimax_video_gen_driver.py +0 -0
  169. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_mistral_driver.py +0 -0
  170. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_mistral_moderation_driver.py +0 -0
  171. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_modelscope_driver.py +0 -0
  172. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_moonshot_driver.py +0 -0
  173. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_muapi_aggregator_driver.py +0 -0
  174. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_mxbai_embedding_driver.py +0 -0
  175. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_mxbai_rerank_driver.py +0 -0
  176. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_nomic_embedding_driver.py +0 -0
  177. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_ollama_driver.py +0 -0
  178. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_ollama_embedding_driver.py +0 -0
  179. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_openai_compatible_driver.py +0 -0
  180. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_openai_driver.py +0 -0
  181. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_openai_embedding_driver.py +0 -0
  182. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_openai_img_gen_driver.py +0 -0
  183. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_openai_moderation_driver.py +0 -0
  184. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_openai_stt_driver.py +0 -0
  185. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_openai_tts_driver.py +0 -0
  186. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_openrouter_driver.py +0 -0
  187. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_pika_video_gen_driver.py +0 -0
  188. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_registry.py +0 -0
  189. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_runway_img_gen_driver.py +0 -0
  190. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_runway_tts_driver.py +0 -0
  191. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_runway_video_gen_driver.py +0 -0
  192. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_stability_img_gen_driver.py +0 -0
  193. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_stt_base.py +0 -0
  194. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_systemone_compatible_driver.py +0 -0
  195. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_tts_base.py +0 -0
  196. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_typesafe_decision_driver.py +0 -0
  197. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_video_gen_base.py +0 -0
  198. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_voyage_embedding_driver.py +0 -0
  199. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_voyage_rerank_driver.py +0 -0
  200. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/async_zai_driver.py +0 -0
  201. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/audio_registry.py +0 -0
  202. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/azure_config.py +0 -0
  203. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/azure_driver.py +0 -0
  204. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/base.py +0 -0
  205. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/bedrock_driver.py +0 -0
  206. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/bfl_img_gen_driver.py +0 -0
  207. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/cachibot_driver.py +0 -0
  208. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/cartesia_tts_driver.py +0 -0
  209. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/claude_driver.py +0 -0
  210. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/cohere_driver.py +0 -0
  211. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/cohere_embedding_driver.py +0 -0
  212. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/cohere_rerank_driver.py +0 -0
  213. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/decision_base.py +0 -0
  214. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/decision_registry.py +0 -0
  215. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/deepgram_stt_driver.py +0 -0
  216. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/deepgram_tts_driver.py +0 -0
  217. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/deepseek_driver.py +0 -0
  218. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/driver_registry.py +0 -0
  219. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/elevenlabs_stt_driver.py +0 -0
  220. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/elevenlabs_tts_driver.py +0 -0
  221. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/embedding_base.py +0 -0
  222. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/embedding_registry.py +0 -0
  223. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/fal_img_gen_driver.py +0 -0
  224. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/fal_video_gen_driver.py +0 -0
  225. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/google_driver.py +0 -0
  226. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/google_img_gen_driver.py +0 -0
  227. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/google_vertexai_driver.py +0 -0
  228. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/grok_driver.py +0 -0
  229. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/grok_img_gen_driver.py +0 -0
  230. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/grok_video_gen_driver.py +0 -0
  231. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/groq_driver.py +0 -0
  232. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/hugging_driver.py +0 -0
  233. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/ideogram_img_gen_driver.py +0 -0
  234. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/img_gen_base.py +0 -0
  235. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/img_gen_registry.py +0 -0
  236. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/jina_embedding_driver.py +0 -0
  237. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/jina_rerank_driver.py +0 -0
  238. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/job_runner.py +0 -0
  239. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/kev_decision_driver.py +0 -0
  240. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/kling_img_gen_driver.py +0 -0
  241. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/kling_video_gen_driver.py +0 -0
  242. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/laya_decision_driver.py +0 -0
  243. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/lipsync_base.py +0 -0
  244. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/lipsync_registry.py +0 -0
  245. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/lmstudio_driver.py +0 -0
  246. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/local_http_driver.py +0 -0
  247. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/luma_video_gen_driver.py +0 -0
  248. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/media_capabilities.py +0 -0
  249. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/minimax_driver.py +0 -0
  250. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/minimax_video_gen_driver.py +0 -0
  251. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/mistral_driver.py +0 -0
  252. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/mistral_moderation_driver.py +0 -0
  253. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/modelscope_driver.py +0 -0
  254. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/moderation_base.py +0 -0
  255. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/moderation_registry.py +0 -0
  256. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/moonshot_driver.py +0 -0
  257. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/muapi_aggregator_driver.py +0 -0
  258. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/music_base.py +0 -0
  259. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/music_registry.py +0 -0
  260. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/mxbai_embedding_driver.py +0 -0
  261. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/mxbai_rerank_driver.py +0 -0
  262. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/nomic_embedding_driver.py +0 -0
  263. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/ollama_driver.py +0 -0
  264. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/ollama_embedding_driver.py +0 -0
  265. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/openai_compatible_driver.py +0 -0
  266. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/openai_driver.py +0 -0
  267. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/openai_embedding_driver.py +0 -0
  268. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/openai_img_gen_driver.py +0 -0
  269. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/openai_moderation_driver.py +0 -0
  270. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/openai_stt_driver.py +0 -0
  271. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/openai_tts_driver.py +0 -0
  272. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/openrouter_driver.py +0 -0
  273. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/pika_video_gen_driver.py +0 -0
  274. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/provider_branding.py +0 -0
  275. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/provider_descriptors.py +0 -0
  276. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/registry.py +0 -0
  277. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/rerank_base.py +0 -0
  278. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/rerank_registry.py +0 -0
  279. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/runway_audio_transform_driver.py +0 -0
  280. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/runway_capabilities.py +0 -0
  281. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/runway_img_gen_driver.py +0 -0
  282. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/runway_tts_driver.py +0 -0
  283. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/runway_video_gen_driver.py +0 -0
  284. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/stability_img_gen_driver.py +0 -0
  285. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/stt_base.py +0 -0
  286. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/systemone_compatible_driver.py +0 -0
  287. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/tts_base.py +0 -0
  288. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/typesafe_decision_driver.py +0 -0
  289. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/vertex_img_gen_driver.py +0 -0
  290. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/video_gen_base.py +0 -0
  291. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/video_gen_registry.py +0 -0
  292. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/vision_helpers.py +0 -0
  293. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/voyage_embedding_driver.py +0 -0
  294. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/voyage_rerank_driver.py +0 -0
  295. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/drivers/zai_driver.py +0 -0
  296. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/eval/__init__.py +0 -0
  297. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/eval/base.py +0 -0
  298. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/eval/faithfulness.py +0 -0
  299. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/eval/judge.py +0 -0
  300. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/eval/pairwise.py +0 -0
  301. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/eval/self_consistency.py +0 -0
  302. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/exceptions.py +0 -0
  303. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/__init__.py +0 -0
  304. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/context.py +0 -0
  305. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/context_eval.py +0 -0
  306. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/data/document_qa_policies.json +0 -0
  307. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/data/extraction_contacts.json +0 -0
  308. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/data/tool_task_inventory.json +0 -0
  309. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/fixtures.py +0 -0
  310. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/gates.py +0 -0
  311. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/harness.py +0 -0
  312. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/improve/__init__.py +0 -0
  313. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/improve/candidates.py +0 -0
  314. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/improve/optimizer.py +0 -0
  315. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/improve/promotion.py +0 -0
  316. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/improve/scorecard.py +0 -0
  317. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/integration.py +0 -0
  318. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/outcomes.py +0 -0
  319. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/policy.py +0 -0
  320. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/sandbox.py +0 -0
  321. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/scoring.py +0 -0
  322. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/strategies/__init__.py +0 -0
  323. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/strategies/base.py +0 -0
  324. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/strategies/critique.py +0 -0
  325. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/strategies/direct.py +0 -0
  326. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/strategies/registry.py +0 -0
  327. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/strategies/retrieve.py +0 -0
  328. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/execution/types.py +0 -0
  329. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/__init__.py +0 -0
  330. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/_usage.py +0 -0
  331. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/async_core.py +0 -0
  332. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/code_extraction.py +0 -0
  333. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/core.py +0 -0
  334. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/few_shot.py +0 -0
  335. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/fields.py +0 -0
  336. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/reasoning.py +0 -0
  337. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/strategy.py +0 -0
  338. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/streaming.py +0 -0
  339. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/tools.py +0 -0
  340. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/tukuy_bridge.py +0 -0
  341. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/extraction/validator.py +0 -0
  342. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/gateway/__init__.py +0 -0
  343. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/gateway/anthropic_format.py +0 -0
  344. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/gateway/openai_format.py +0 -0
  345. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/gateway/reasoning_cache.py +0 -0
  346. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/gateway/responses_format.py +0 -0
  347. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/groups/__init__.py +0 -0
  348. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/groups/async_groups.py +0 -0
  349. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/groups/consensus.py +0 -0
  350. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/groups/debate.py +0 -0
  351. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/groups/fusion.py +0 -0
  352. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/groups/groups.py +0 -0
  353. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/groups/types.py +0 -0
  354. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/imaging/__init__.py +0 -0
  355. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/imaging/enhance.py +0 -0
  356. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/imaging/negative.py +0 -0
  357. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/imaging/set_planner.py +0 -0
  358. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/imaging/style_presets.py +0 -0
  359. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/__init__.py +0 -0
  360. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/accounts.py +0 -0
  361. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/billing.py +0 -0
  362. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/budget.py +0 -0
  363. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/cache.py +0 -0
  364. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/callbacks.py +0 -0
  365. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/capabilities.py +0 -0
  366. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/coding_agent_events.py +0 -0
  367. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/coding_agent_specs.py +0 -0
  368. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/coding_agent_usage.py +0 -0
  369. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/coding_agents.py +0 -0
  370. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/compression.py +0 -0
  371. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/cost_mixin.py +0 -0
  372. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/discovery.py +0 -0
  373. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/ledger.py +0 -0
  374. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/logging.py +0 -0
  375. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/media_pricing.py +0 -0
  376. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/media_rates.json +0 -0
  377. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/model_rates.py +0 -0
  378. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/otel.py +0 -0
  379. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/pricing.py +0 -0
  380. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/provider_env.py +0 -0
  381. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rate_limits.py +0 -0
  382. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/anthropic.json +0 -0
  383. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/azure.json +0 -0
  384. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/bedrock.json +0 -0
  385. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/cerebras.json +0 -0
  386. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/cohere.json +0 -0
  387. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/deepinfra.json +0 -0
  388. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/deepseek.json +0 -0
  389. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/fireworks.json +0 -0
  390. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/google.json +0 -0
  391. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/google_vertexai.json +0 -0
  392. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/groq.json +0 -0
  393. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/jina.json +0 -0
  394. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/kev.json +0 -0
  395. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/laya.json +0 -0
  396. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/mistral.json +0 -0
  397. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/mixedbread.json +0 -0
  398. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/moonshot.json +0 -0
  399. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/nomic.json +0 -0
  400. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/nvidia.json +0 -0
  401. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/openai.json +0 -0
  402. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/openrouter.json +0 -0
  403. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/perplexity.json +0 -0
  404. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/sambanova.json +0 -0
  405. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/siliconflow.json +0 -0
  406. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/together.json +0 -0
  407. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/typesafe.json +0 -0
  408. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/voyage.json +0 -0
  409. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/rates/xai.json +0 -0
  410. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/session.py +0 -0
  411. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/settings.py +0 -0
  412. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/token_counting.py +0 -0
  413. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/tracker.py +0 -0
  414. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/infra/tukuy_backend.py +0 -0
  415. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/ingestion/__init__.py +0 -0
  416. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/ingestion/chunking.py +0 -0
  417. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/ingestion/detect.py +0 -0
  418. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/ingestion/document.py +0 -0
  419. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/ingestion/parsers/__init__.py +0 -0
  420. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/ingestion/parsers/base.py +0 -0
  421. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/ingestion/parsers/csv_parser.py +0 -0
  422. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/ingestion/parsers/docx.py +0 -0
  423. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/ingestion/parsers/html.py +0 -0
  424. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/ingestion/parsers/markdown.py +0 -0
  425. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/ingestion/parsers/pdf.py +0 -0
  426. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/ingestion/parsers/xlsx.py +0 -0
  427. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/integrations/__init__.py +0 -0
  428. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/integrations/mcp_bridge.py +0 -0
  429. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/integrations/tukuy_bridge.py +0 -0
  430. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/jobs.py +0 -0
  431. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/kg/__init__.py +0 -0
  432. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/kg/core.py +0 -0
  433. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/kg/stores.py +0 -0
  434. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/kg/types.py +0 -0
  435. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/mcp/__init__.py +0 -0
  436. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/mcp/client.py +0 -0
  437. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/mcp/server.py +0 -0
  438. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/mcp/tools.py +0 -0
  439. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/media/__init__.py +0 -0
  440. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/media/agent_tools.py +0 -0
  441. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/media/audio.py +0 -0
  442. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/media/hosting.py +0 -0
  443. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/media/image.py +0 -0
  444. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/media/video.py +0 -0
  445. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/pages/01-why-prompture.md +0 -0
  446. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/pages/02-installation.md +0 -0
  447. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/pages/03-quickstart.md +0 -0
  448. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/pages/04-toon-input.md +0 -0
  449. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/pages/05-test-harness.md +0 -0
  450. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/pages/06-stability.md +0 -0
  451. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/pages/07-migration.md +0 -0
  452. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/persistence/__init__.py +0 -0
  453. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/persistence/history.py +0 -0
  454. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/persistence/serialization.py +0 -0
  455. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/persistence/store.py +0 -0
  456. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/pipeline/__init__.py +0 -0
  457. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/pipeline/pipeline.py +0 -0
  458. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/pipeline/resolver.py +0 -0
  459. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/pipeline/routing.py +0 -0
  460. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/__init__.py +0 -0
  461. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/base.py +0 -0
  462. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/__init__.py +0 -0
  463. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/_aliases.py +0 -0
  464. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/anthropic_plugin.py +0 -0
  465. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/audio_plugin.py +0 -0
  466. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/cloud_plugin.py +0 -0
  467. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/decision_plugin.py +0 -0
  468. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/embedding_rerank_plugin.py +0 -0
  469. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/extras_plugin.py +0 -0
  470. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/google_plugin.py +0 -0
  471. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/image_plugin.py +0 -0
  472. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/local_plugin.py +0 -0
  473. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/openai_compatible_plugin.py +0 -0
  474. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/openai_plugin.py +0 -0
  475. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/builtins/video_plugin.py +0 -0
  476. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/plugins/discovery.py +0 -0
  477. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/py.typed +0 -0
  478. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/__init__.py +0 -0
  479. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/chunkers/__init__.py +0 -0
  480. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/chunkers/base.py +0 -0
  481. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/chunkers/character.py +0 -0
  482. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/chunkers/chunker_registry.py +0 -0
  483. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/chunkers/contextual.py +0 -0
  484. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/chunkers/markdown.py +0 -0
  485. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/chunkers/recursive.py +0 -0
  486. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/chunkers/semantic.py +0 -0
  487. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/chunkers/token.py +0 -0
  488. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/documents.py +0 -0
  489. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/loader_registry.py +0 -0
  490. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/loaders/__init__.py +0 -0
  491. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/loaders/csv_loader.py +0 -0
  492. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/loaders/docx_loader.py +0 -0
  493. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/loaders/epub_loader.py +0 -0
  494. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/loaders/html_loader.py +0 -0
  495. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/loaders/json_loader.py +0 -0
  496. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/loaders/markdown_loader.py +0 -0
  497. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/loaders/pdf_loader.py +0 -0
  498. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/loaders/text_loader.py +0 -0
  499. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/loaders/xlsx_loader.py +0 -0
  500. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/pipeline.py +0 -0
  501. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/retrievers/__init__.py +0 -0
  502. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/retrievers/_fusion.py +0 -0
  503. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/retrievers/base.py +0 -0
  504. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/retrievers/hybrid.py +0 -0
  505. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/retrievers/hyde.py +0 -0
  506. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/retrievers/mmr.py +0 -0
  507. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/retrievers/multi_query.py +0 -0
  508. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/retrievers/retriever_registry.py +0 -0
  509. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/retrievers/similarity.py +0 -0
  510. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/retrievers/step_back.py +0 -0
  511. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/vectorstores/__init__.py +0 -0
  512. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/vectorstores/base.py +0 -0
  513. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/vectorstores/chroma.py +0 -0
  514. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/vectorstores/faiss.py +0 -0
  515. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/vectorstores/pgvector.py +0 -0
  516. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/vectorstores/pinecone.py +0 -0
  517. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/vectorstores/qdrant.py +0 -0
  518. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/vectorstores/vectorstore_registry.py +0 -0
  519. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/rag/vectorstores/weaviate.py +0 -0
  520. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/refusal/__init__.py +0 -0
  521. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/refusal/detector.py +0 -0
  522. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/refusal/evaluator.py +0 -0
  523. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/refusal/markers.py +0 -0
  524. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/resilience/__init__.py +0 -0
  525. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/resilience/async_driver.py +0 -0
  526. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/resilience/backoff.py +0 -0
  527. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/resilience/breaker.py +0 -0
  528. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/resilience/driver.py +0 -0
  529. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/resilience/errors.py +0 -0
  530. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/resilience/explain.py +0 -0
  531. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/resilience/headroom.py +0 -0
  532. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/resilience/keys.py +0 -0
  533. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/resilience/router.py +0 -0
  534. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/resilience/strategies.py +0 -0
  535. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/resilience/virtual.py +0 -0
  536. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/scaffold/__init__.py +0 -0
  537. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/scaffold/generator.py +0 -0
  538. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/scaffold/templates/Dockerfile.j2 +0 -0
  539. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/scaffold/templates/README.md.j2 +0 -0
  540. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/scaffold/templates/config.py.j2 +0 -0
  541. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/scaffold/templates/env.example.j2 +0 -0
  542. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/scaffold/templates/main.py.j2 +0 -0
  543. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/scaffold/templates/models.py.j2 +0 -0
  544. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/scaffold/templates/requirements.txt.j2 +0 -0
  545. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/security/__init__.py +0 -0
  546. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/security/injection.py +0 -0
  547. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/security/redaction.py +0 -0
  548. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/session_memory/__init__.py +0 -0
  549. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/session_memory/core.py +0 -0
  550. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/session_memory/stores.py +0 -0
  551. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/session_memory/types.py +0 -0
  552. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/swarm/__init__.py +0 -0
  553. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/swarm/environment.py +0 -0
  554. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/swarm/memory.py +0 -0
  555. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/swarm/scheduler.py +0 -0
  556. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/swarm/swarm.py +0 -0
  557. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/swarm/swarm_agent.py +0 -0
  558. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/swarm/types.py +0 -0
  559. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/testing/__init__.py +0 -0
  560. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/testing/driver_contract.py +0 -0
  561. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/tools/__init__.py +0 -0
  562. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/tools/code_exec.py +0 -0
  563. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/tools/web_search.py +0 -0
  564. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/workflow/__init__.py +0 -0
  565. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/workflow/architect.py +0 -0
  566. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/workflow/engine.py +0 -0
  567. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/workflow/errors.py +0 -0
  568. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/workflow/model.py +0 -0
  569. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/workflow/nodes.py +0 -0
  570. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/workflow/recovery.py +0 -0
  571. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/workflow/references.py +0 -0
  572. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/workflow/registry.py +0 -0
  573. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/workflow/scheduler.py +0 -0
  574. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture/workflow/state.py +0 -0
  575. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture.egg-info/dependency_links.txt +0 -0
  576. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture.egg-info/entry_points.txt +0 -0
  577. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture.egg-info/requires.txt +0 -0
  578. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture.egg-info/top_level.txt +0 -0
  579. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/prompture_cost_tracking.md +0 -0
  580. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/pyproject.toml +0 -0
  581. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/requirements.txt +0 -0
  582. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/scripts/check_pricing_freshness.py +0 -0
  583. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/setup.cfg +0 -0
  584. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/specs/basic_extraction.json +0 -0
  585. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/specs/schema_validation.json +0 -0
  586. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/specs/strategy_comparison.json +0 -0
  587. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/test.py +0 -0
  588. {prompture-1.13.2.dev1 → prompture-1.13.3.dev1}/test_version_diagnosis.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: prompture
3
- Version: 1.13.2.dev1
3
+ Version: 1.13.3.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
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '1.13.2.dev1'
22
- __version_tuple__ = version_tuple = (1, 13, 2, 'dev1')
21
+ __version__ = version = '1.13.3.dev1'
22
+ __version_tuple__ = version_tuple = (1, 13, 3, 'dev1')
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -202,7 +202,12 @@ def test_suite(specfile: str, providers: str | None, models: str | None, fmt: st
202
202
 
203
203
 
204
204
  @cli.command()
205
- @click.option("--port", default=0, type=int, help="Port on 127.0.0.1 (default: a free one the OS picks).")
205
+ @click.option(
206
+ "--port",
207
+ default=None,
208
+ type=int,
209
+ help="Port on 127.0.0.1 (default: 47811 when free, else one the OS picks). 0 = always let the OS pick.",
210
+ )
206
211
  @click.option(
207
212
  "--db", "db_path", default=None, type=click.Path(), help="Usage ledger (default ~/.prompture/usage/usage.db)."
208
213
  )
@@ -222,7 +227,19 @@ def test_suite(specfile: str, providers: str | None, models: str | None, fmt: st
222
227
  default=True,
223
228
  help="Run queued coding-agent steps one after another for companion apps (default: on).",
224
229
  )
225
- def companion(port: int, db_path: str | None, exit_with_pid: int | None, coding_tools: bool, automations: bool) -> None:
230
+ @click.option(
231
+ "--router/--no-router",
232
+ default=True,
233
+ help="Let companion apps route Claude Code and Codex through this companion (default: on).",
234
+ )
235
+ def companion(
236
+ port: int | None,
237
+ db_path: str | None,
238
+ exit_with_pid: int | None,
239
+ coding_tools: bool,
240
+ automations: bool,
241
+ router: bool,
242
+ ) -> None:
226
243
  """Serve this machine's Prompture usage to desktop companions (no hub needed).
227
244
 
228
245
  Reads the usage ledger every Prompture call writes to, plus rate-limit
@@ -230,16 +247,35 @@ def companion(port: int, db_path: str | None, exit_with_pid: int | None, coding_
230
247
  the same companion API as prompture-hub. The address and a bearer token are
231
248
  written to ~/.prompture/companion.json. If a companion is already running,
232
249
  this prints its address and exits.
250
+
251
+ With the router on, a companion app can point Claude Code and Codex at it
252
+ (their model traffic then passes through, or goes to any Prompture model),
253
+ so the companion prefers the same port each time: 47811.
233
254
  """
234
255
  from ..companion import Automations, CodingToolSource, CompanionServer, LedgerSource, running_instance
256
+ from ..companion.server import DEFAULT_PORT
257
+ from ..companion.tool_routing import ToolRouting
235
258
 
236
259
  existing = running_instance()
237
260
  if existing:
238
261
  click.echo(f"Prompture companion already running at {existing['url']} (pid {existing.get('pid')}).")
239
262
  return
240
- server = CompanionServer(
241
- LedgerSource(db_path), port=port, coding_tools=CodingToolSource() if coding_tools else None
242
- )
263
+
264
+ def make(on_port: int) -> CompanionServer:
265
+ return CompanionServer(
266
+ LedgerSource(db_path),
267
+ port=on_port,
268
+ coding_tools=CodingToolSource() if coding_tools else None,
269
+ tool_routing=ToolRouting() if router else None,
270
+ )
271
+
272
+ if port is None:
273
+ try:
274
+ server = make(DEFAULT_PORT)
275
+ except OSError: # taken: any free port works, routing follows it
276
+ server = make(0)
277
+ else:
278
+ server = make(port)
243
279
  if automations:
244
280
  server.automations = Automations(bus=server.bus, limits=server.rate_limits)
245
281
  click.echo(f"Prompture companion on {server.url} - ledger {server.ledger.db_path}")
@@ -11,7 +11,14 @@ adapts it to the companion API:
11
11
  - plan windows (Codex from its logs; Claude Code only when opted in) join
12
12
  ``/v1/limits`` as ``source: "plan"`` targets;
13
13
  - ``/v1/tools`` lists every agent: installed, runnable by Prompture, and its
14
- usage for the period.
14
+ usage for the period;
15
+ - a Claude Code or Codex turn in progress shows as a running call: a
16
+ ``request.started`` event when it starts (id ``agent:<agent>:<session>``),
17
+ ``request.activity`` when its model or state changes, and ``request.ended``
18
+ when it's over (see :mod:`prompture.infra.coding_agent_activity`). Its usage
19
+ still arrives as ``request.finished`` events for the calls it made. With
20
+ Claude Code's hooks installed (:mod:`.hook`), a turn stuck on a permission
21
+ prompt shows ``state: "waiting"``.
15
22
 
16
23
  Costs are what the same tokens would cost on the API; subscriptions don't
17
24
  bill per token. Only token counts, model names, times and folder names are
@@ -29,6 +36,7 @@ from datetime import datetime, timedelta, timezone
29
36
  from pathlib import Path
30
37
  from typing import Any
31
38
 
39
+ from ..infra.coding_agent_activity import ActiveTurn, AgentActivity
32
40
  from ..infra.coding_agent_usage import AgentCall, CodingAgentUsage, UsageReader, coding_agents_overview
33
41
  from .live import LiveBus
34
42
  from .summary import UsageRow, window_start
@@ -39,6 +47,10 @@ logger = logging.getLogger("prompture.companion")
39
47
  OVERVIEW_TTL = 60.0
40
48
  #: How far back calls are kept: a year of activity, plus a week of slack.
41
49
  RETENTION = timedelta(days=372)
50
+ #: How long a turn waiting on the user stays listed after its log went quiet.
51
+ WAITING_TTL = 6 * 3600.0
52
+ #: Hook events that mean the agent is working again (a prompt, a tool starting or done).
53
+ WORKING_HOOKS = {"UserPromptSubmit", "PreToolUse", "PostToolUse", "SubagentStop"}
42
54
  #: Companion choices that outlive a restart (today: whether Claude plan windows are fetched).
43
55
  PREFS_FILE = Path.home() / ".prompture" / "companion-prefs.json"
44
56
 
@@ -51,6 +63,22 @@ def _load_prefs(path: Path) -> dict[str, Any]:
51
63
  return data if isinstance(data, dict) else {}
52
64
 
53
65
 
66
+ def turn_event(turn: ActiveTurn, name: str, state: str = "working") -> dict[str, Any]:
67
+ """A ``request.started`` payload for an agent turn in progress."""
68
+ return {
69
+ "request_id": turn.request_id,
70
+ "ts": turn.since.isoformat(),
71
+ "key_id": None,
72
+ "key_name": name,
73
+ "model": turn.model or turn.agent,
74
+ "project": turn.project,
75
+ "endpoint": "coding-agent",
76
+ "stream": True,
77
+ "state": state,
78
+ "tool": turn.agent,
79
+ }
80
+
81
+
54
82
  def call_event(call: AgentCall, name: str) -> dict[str, Any]:
55
83
  """A ``request.finished`` payload for an agent call, shaped like the ledger's."""
56
84
  return {
@@ -91,6 +119,7 @@ class CodingToolSource:
91
119
  cache_dir: str | Path | None = None,
92
120
  readers: list[UsageReader] | None = None,
93
121
  prefs_file: str | Path | None = PREFS_FILE,
122
+ activity: AgentActivity | None = None,
94
123
  ) -> None:
95
124
  from ..infra.coding_agent_readers import ClaudeCodeReader, CodexReader
96
125
  from ..infra.coding_agent_usage import USAGE_READERS
@@ -110,6 +139,16 @@ class CodingToolSource:
110
139
  readers = [claude, codex, *others]
111
140
  self.usage = CodingAgentUsage(readers, retention=RETENTION)
112
141
  self.names = {r.agent: r.display_name for r in readers}
142
+ if activity is None:
143
+ roots = {r.agent: getattr(r, "root", None) for r in readers}
144
+ if "claude" in roots or "codex" in roots:
145
+ activity = AgentActivity(roots.get("claude"), roots.get("codex"))
146
+ self.activity = activity
147
+ self._turns: dict[str, ActiveTurn] = {}
148
+ self._states: dict[str, str] = {}
149
+ #: State reported by an agent's hooks, per turn: ``(state, monotonic time)``.
150
+ self._hooked: dict[str, tuple[str, float]] = {}
151
+ self._turn_lock = threading.Lock()
113
152
  self._overview: tuple[float, list[dict[str, Any]]] | None = None
114
153
 
115
154
  @property
@@ -176,10 +215,71 @@ class CodingToolSource:
176
215
  """``request.finished`` payloads for calls at or after ``since``, newest last."""
177
216
  return [self.event(c) for c in self.usage.calls(since)[-limit:]]
178
217
 
179
- def tail(self, bus: LiveBus, stop: threading.Event, interval: float = 3.0) -> None:
180
- """Publish a ``request.finished`` event for every call logged from now on."""
181
- self.refresh(force=True)
182
- while not stop.wait(interval):
218
+ def publish_turns(self, bus: LiveBus) -> None:
219
+ """Publish how the agents' running turns changed since the last call."""
220
+ if self.activity is None:
221
+ return
222
+ with self._turn_lock:
223
+ turns = {t.request_id: t for t in self.activity.scan()}
224
+ now = time.monotonic()
225
+ for rid, (state, at) in self._hooked.items():
226
+ # A permission prompt writes nothing to the log; the turn is still on.
227
+ if state == "waiting" and rid not in turns and rid in self._turns and now - at < WAITING_TTL:
228
+ turns[rid] = self._turns[rid]
229
+ for rid, turn in turns.items():
230
+ before = self._turns.get(rid)
231
+ state = self._hooked.get(rid, ("working", 0.0))[0]
232
+ if before is None:
233
+ bus.publish("request.started", turn_event(turn, self.names.get(turn.agent, turn.agent), state))
234
+ elif (before.model != turn.model and turn.model) or self._states.get(rid) != state:
235
+ bus.publish(
236
+ "request.activity", {"request_id": rid, "model": turn.model or turn.agent, "state": state}
237
+ )
238
+ self._states[rid] = state
239
+ for rid in self._turns.keys() - turns.keys():
240
+ gone = self._turns[rid]
241
+ self._states.pop(rid, None)
242
+ self._hooked.pop(rid, None)
243
+ bus.publish(
244
+ "request.ended", {"request_id": rid, "tool": gone.agent, "key_name": self.names.get(gone.agent)}
245
+ )
246
+ self._turns = turns
247
+
248
+ def hook_event(self, bus: LiveBus, agent: str, event: str, session: str) -> None:
249
+ """Apply one event an agent's hooks reported (see :mod:`.hook`), then publish what changed.
250
+
251
+ ``Notification`` during a turn means it waits on the user (a permission
252
+ prompt); a prompt or a tool starting or finishing means it works again;
253
+ ``Stop`` / ``SessionEnd`` end it.
254
+ """
255
+ rid = f"agent:{agent}:{session}"
256
+ with self._turn_lock:
257
+ if event in ("Stop", "SessionEnd"):
258
+ self._hooked.pop(rid, None)
259
+ elif event == "Notification":
260
+ if rid in self._turns:
261
+ self._hooked[rid] = ("waiting", time.monotonic())
262
+ elif event in WORKING_HOOKS:
263
+ self._hooked[rid] = ("working", time.monotonic())
264
+ self.publish_turns(bus)
265
+
266
+ def tail(self, bus: LiveBus, stop: threading.Event, interval: float = 2.0) -> None:
267
+ """Publish agent calls as they're logged, and agent turns as they start and end."""
268
+ first = True
269
+ while True:
270
+ try:
271
+ self.publish_turns(bus)
272
+ except Exception:
273
+ logger.debug("coding agent activity scan failed", exc_info=True)
274
+ if first:
275
+ # The first read takes in the whole history (seconds); turns in progress show before it.
276
+ first = False
277
+ try:
278
+ self.refresh(force=True)
279
+ except Exception:
280
+ logger.debug("coding tool scan failed", exc_info=True)
281
+ if stop.wait(interval):
282
+ break
183
283
  try:
184
284
  for call in sorted(self.refresh(force=True), key=lambda c: c.ts):
185
285
  if datetime.now(timezone.utc) - call.ts < timedelta(minutes=30):
@@ -0,0 +1,75 @@
1
+ """Coding-agent hook: tells the local companion what an agent is doing, the moment it happens.
2
+
3
+ Claude Code runs ``python -m prompture.companion.hook claude`` on the events
4
+ :mod:`.tool_routing` installs (a prompt, tools starting and finishing,
5
+ notifications, the end of a turn) and passes the event as JSON on stdin. This
6
+ forwards the event's name and session id — nothing else — to the companion
7
+ named in ``~/.prompture/companion.json``, which turns them into live state:
8
+ ``Notification`` mid-turn is a permission prompt waiting on the user.
9
+
10
+ It always exits 0 without output, quickly, whether or not a companion runs, so
11
+ it never gets in the agent's way.
12
+ """
13
+
14
+ from __future__ import annotations
15
+
16
+ import json
17
+ import sys
18
+ import urllib.request
19
+ from pathlib import Path
20
+ from typing import Any
21
+
22
+ STATE_FILE = Path.home() / ".prompture" / "companion.json"
23
+ TIMEOUT = 1.5
24
+
25
+
26
+ def payload(agent: str, raw: str) -> dict[str, Any] | None:
27
+ """What is sent for one hook event: the agent, the event name and the session id."""
28
+ try:
29
+ data = json.loads(raw or "{}")
30
+ except ValueError:
31
+ return None
32
+ if not isinstance(data, dict):
33
+ return None
34
+ event, session = data.get("hook_event_name"), data.get("session_id")
35
+ if not isinstance(event, str) or not isinstance(session, str) or not session:
36
+ return None
37
+ return {"agent": agent, "event": event, "session": session}
38
+
39
+
40
+ def send(body: dict[str, Any], state_file: Path = STATE_FILE) -> bool:
41
+ """Post *body* to the running companion; ``False`` when there is none."""
42
+ try:
43
+ state = json.loads(state_file.read_text(encoding="utf-8"))
44
+ url, token = str(state["url"]), str(state["token"])
45
+ except (OSError, ValueError, KeyError, TypeError):
46
+ return False
47
+ if not url.startswith(("http://127.0.0.1:", "http://localhost:")):
48
+ return False # only ever talk to this machine
49
+ request = urllib.request.Request(
50
+ f"{url}/v1/hooks",
51
+ data=json.dumps(body).encode(),
52
+ headers={"Authorization": f"Bearer {token}", "Content-Type": "application/json"},
53
+ method="POST",
54
+ )
55
+ try:
56
+ with urllib.request.urlopen(request, timeout=TIMEOUT): # nosec B310 - loopback http only, checked above
57
+ return True
58
+ except OSError:
59
+ return False
60
+
61
+
62
+ def main(argv: list[str] | None = None) -> int:
63
+ args = sys.argv[1:] if argv is None else argv
64
+ agent = args[0] if args else "claude"
65
+ try:
66
+ body = payload(agent, sys.stdin.read())
67
+ if body:
68
+ send(body)
69
+ except Exception: # a hook must never fail the agent
70
+ pass
71
+ return 0
72
+
73
+
74
+ if __name__ == "__main__":
75
+ sys.exit(main())
@@ -1,7 +1,9 @@
1
1
  """In-process live event bus behind a companion's ``GET /v1/live``.
2
2
 
3
3
  Producers publish an event when a call starts, produces its first token,
4
- changes activity and finishes. Events carry metadata only: ids, model,
4
+ changes activity and finishes. ``request.ended`` closes a running entry that
5
+ has no ``request.finished`` of its own (a coding agent's turn, whose calls are
6
+ reported separately). Events carry metadata only: ids, model,
5
7
  project, status, tokens, cost, timings — never prompt or completion text.
6
8
 
7
9
  The bus keeps the last :data:`RING_SIZE` events, so a client that reconnects
@@ -59,7 +61,7 @@ class LiveBus:
59
61
  self.in_flight[request_id] = {**event, "_mono": time.monotonic()}
60
62
  elif request_id in self.in_flight and type_ in ("request.first_token", "request.activity"):
61
63
  self.in_flight[request_id].update({k: v for k, v in data.items() if k != "request_id"})
62
- elif type_ == "request.finished" and request_id:
64
+ elif type_ in ("request.finished", "request.ended") and request_id:
63
65
  self.in_flight.pop(request_id, None)
64
66
  subscribers = list(self._subscribers)
65
67
  for sub in subscribers: