multi-forge 0.9.3__tar.gz → 0.9.4__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 (441) hide show
  1. {multi_forge-0.9.3 → multi_forge-0.9.4}/PKG-INFO +2 -2
  2. {multi_forge-0.9.3 → multi_forge-0.9.4}/README.md +1 -1
  3. {multi_forge-0.9.3 → multi_forge-0.9.4}/pyproject.toml +2 -1
  4. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/extensions.py +315 -49
  5. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/ops/session_adopt.py +63 -12
  6. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/runtime_vocab.py +10 -2
  7. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/install/__init__.py +2 -0
  8. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/install/codex_hooks.py +147 -11
  9. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/install/exceptions.py +18 -0
  10. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/install/hook_dispatcher.py +3 -4
  11. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/install/hook_migration.py +46 -22
  12. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/install/installer.py +231 -265
  13. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/install/models.py +71 -10
  14. multi_forge-0.9.4/src/forge/install/module_planning.py +125 -0
  15. multi_forge-0.9.4/src/forge/install/ownership.py +170 -0
  16. multi_forge-0.9.4/src/forge/install/runtime_removal.py +634 -0
  17. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/install/settings_merge.py +47 -5
  18. multi_forge-0.9.4/src/forge/install/settings_rollback.py +78 -0
  19. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/install/skill_planning.py +1 -3
  20. multi_forge-0.9.4/src/forge/install/tracking.py +785 -0
  21. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/resources/checklist/17-info.md +1 -1
  22. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/resources/checklist/18-disable.md +25 -11
  23. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/resources/checklist/2-extension.md +18 -16
  24. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/resources/checklist/6-hook.md +9 -3
  25. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/resources/checklist.md +17 -15
  26. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/walkthrough/resources/checklist.md +1 -1
  27. multi_forge-0.9.3/src/forge/install/tracking.py +0 -394
  28. {multi_forge-0.9.3 → multi_forge-0.9.4}/.gitignore +0 -0
  29. {multi_forge-0.9.3 → multi_forge-0.9.4}/LICENSE +0 -0
  30. {multi_forge-0.9.3 → multi_forge-0.9.4}/NOTICE +0 -0
  31. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/agents/.gitkeep +0 -0
  32. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/commands/.gitkeep +0 -0
  33. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/__init__.py +0 -0
  34. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/backend/__init__.py +0 -0
  35. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/backend/adapters/__init__.py +0 -0
  36. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/backend/adapters/litellm.py +0 -0
  37. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/backend/creation.py +0 -0
  38. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/backend/registry.py +0 -0
  39. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/backend/remote/__init__.py +0 -0
  40. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/backend/remote/base.py +0 -0
  41. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/backend/remote/openrouter.py +0 -0
  42. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/backend/sources.py +0 -0
  43. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/__init__.py +0 -0
  44. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/activity.py +0 -0
  45. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/auth.py +0 -0
  46. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/backend.py +0 -0
  47. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/claude.py +0 -0
  48. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/codex.py +0 -0
  49. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/config_cmd.py +0 -0
  50. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/consumer_lane_freeze.py +0 -0
  51. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/editor.py +0 -0
  52. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/gc.py +0 -0
  53. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/guards.py +0 -0
  54. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/hooks/__init__.py +0 -0
  55. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/hooks/_group.py +0 -0
  56. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/hooks/_helpers.py +0 -0
  57. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/hooks/codex_patch.py +0 -0
  58. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/hooks/codex_policy.py +0 -0
  59. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/hooks/codex_transfer.py +0 -0
  60. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/hooks/commands.py +0 -0
  61. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/hooks/direct_commands.py +0 -0
  62. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/hooks/policy.py +0 -0
  63. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/hooks/protocols.py +0 -0
  64. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/hooks/read_hygiene.py +0 -0
  65. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/hooks/verification.py +0 -0
  66. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/logs.py +0 -0
  67. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/main.py +0 -0
  68. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/memory.py +0 -0
  69. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/memory_report.py +0 -0
  70. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/memory_writer.py +0 -0
  71. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/model.py +0 -0
  72. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/output.py +0 -0
  73. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/policy.py +0 -0
  74. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/proxy.py +0 -0
  75. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/proxy_audit.py +0 -0
  76. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/proxy_costs.py +0 -0
  77. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/runtime.py +0 -0
  78. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/search.py +0 -0
  79. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/session.py +0 -0
  80. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/session_adopt.py +0 -0
  81. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/session_codex.py +0 -0
  82. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/session_fork.py +0 -0
  83. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/session_lane.py +0 -0
  84. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/session_lifecycle.py +0 -0
  85. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/session_manage.py +0 -0
  86. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/session_memory.py +0 -0
  87. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/session_model_pin.py +0 -0
  88. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/session_resume_modes.py +0 -0
  89. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/session_rewind.py +0 -0
  90. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/session_routing.py +0 -0
  91. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/session_supervisor_options.py +0 -0
  92. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/status_line.py +0 -0
  93. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/statusline/__init__.py +0 -0
  94. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/statusline/context.py +0 -0
  95. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/statusline/names.py +0 -0
  96. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/statusline/palette.py +0 -0
  97. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/statusline/registry.py +0 -0
  98. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/statusline/throttle.py +0 -0
  99. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/telemetry.py +0 -0
  100. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/trace.py +0 -0
  101. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/transfer.py +0 -0
  102. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/cli/workflow.py +0 -0
  103. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/__init__.py +0 -0
  104. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/dataclass_utils.py +0 -0
  105. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/__init__.py +0 -0
  106. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/backends/__init__.py +0 -0
  107. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/backends/litellm.yaml +0 -0
  108. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/templates/__init__.py +0 -0
  109. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/templates/anthropic-passthrough.yaml +0 -0
  110. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/templates/codex-responses-local.yaml +0 -0
  111. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/templates/litellm-anthropic-local.yaml +0 -0
  112. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/templates/litellm-anthropic.yaml +0 -0
  113. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/templates/litellm-gemini-flash-local.yaml +0 -0
  114. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/templates/litellm-gemini-local.yaml +0 -0
  115. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/templates/litellm-gemini-test.yaml +0 -0
  116. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/templates/litellm-gemini.yaml +0 -0
  117. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/templates/litellm-openai-codex-local.yaml +0 -0
  118. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/templates/litellm-openai-local.yaml +0 -0
  119. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/templates/litellm-openai.yaml +0 -0
  120. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/templates/openrouter-anthropic.yaml +0 -0
  121. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/templates/openrouter-deepseek.yaml +0 -0
  122. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/templates/openrouter-gemini-flash.yaml +0 -0
  123. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/templates/openrouter-gemini.yaml +0 -0
  124. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/templates/openrouter-glm.yaml +0 -0
  125. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/templates/openrouter-kimi.yaml +0 -0
  126. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/templates/openrouter-minimax.yaml +0 -0
  127. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/templates/openrouter-openai-codex.yaml +0 -0
  128. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/templates/openrouter-openai.yaml +0 -0
  129. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/defaults/templates/openrouter-qwen.yaml +0 -0
  130. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/loader.py +0 -0
  131. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/config/schema.py +0 -0
  132. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/__init__.py +0 -0
  133. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/auth/__init__.py +0 -0
  134. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/auth/capabilities.py +0 -0
  135. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/auth/credentials_file.py +0 -0
  136. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/auth/protocols.py +0 -0
  137. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/auth/secrets.py +0 -0
  138. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/auth/template_secrets.py +0 -0
  139. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/backend_dependency.py +0 -0
  140. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/credential_registry.py +0 -0
  141. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/data/__init__.py +0 -0
  142. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/data/model_catalog.yaml +0 -0
  143. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/data/system_prompt_addendums/__init__.py +0 -0
  144. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/data/system_prompt_addendums/gemini.md +0 -0
  145. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/data/system_prompt_addendums/openai.md +0 -0
  146. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/effort.py +0 -0
  147. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/invoker/__init__.py +0 -0
  148. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/invoker/_lifecycle.py +0 -0
  149. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/invoker/claude.py +0 -0
  150. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/invoker/codex.py +0 -0
  151. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/invoker/codex_stream.py +0 -0
  152. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/invoker/types.py +0 -0
  153. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/lanes.py +0 -0
  154. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/llm/__init__.py +0 -0
  155. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/llm/clients/__init__.py +0 -0
  156. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/llm/clients/base.py +0 -0
  157. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/llm/clients/litellm.py +0 -0
  158. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/llm/clients/openai_compat.py +0 -0
  159. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/llm/clients/openrouter.py +0 -0
  160. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/llm/credentials.py +0 -0
  161. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/llm/detection.py +0 -0
  162. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/llm/errors.py +0 -0
  163. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/llm/protocols.py +0 -0
  164. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/llm/types.py +0 -0
  165. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/logging.py +0 -0
  166. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/models/__init__.py +0 -0
  167. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/models/catalog.py +0 -0
  168. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/models/direct_model.py +0 -0
  169. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/models/types.py +0 -0
  170. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/naming.py +0 -0
  171. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/ops/__init__.py +0 -0
  172. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/ops/backend_reconcile.py +0 -0
  173. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/ops/claude_session.py +0 -0
  174. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/ops/codex_adopt.py +0 -0
  175. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/ops/codex_bridge.py +0 -0
  176. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/ops/codex_enrollment.py +0 -0
  177. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/ops/codex_interactive.py +0 -0
  178. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/ops/codex_session.py +0 -0
  179. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/ops/context.py +0 -0
  180. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/ops/gc.py +0 -0
  181. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/ops/policy.py +0 -0
  182. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/ops/provider_trace.py +0 -0
  183. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/ops/proxy.py +0 -0
  184. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/ops/resolution.py +0 -0
  185. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/ops/session.py +0 -0
  186. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/ops/session_context.py +0 -0
  187. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/ops/transfer.py +0 -0
  188. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/ops/usage_summary.py +0 -0
  189. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/paths.py +0 -0
  190. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/process.py +0 -0
  191. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/provider_types.py +0 -0
  192. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/reactive/__init__.py +0 -0
  193. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/reactive/cost_tracking.py +0 -0
  194. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/reactive/env.py +0 -0
  195. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/reactive/headless_json.py +0 -0
  196. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/reactive/llm_call.py +0 -0
  197. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/reactive/proxy.py +0 -0
  198. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/reactive/routing.py +0 -0
  199. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/reactive/session_runner.py +0 -0
  200. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/reactive/structured_output.py +0 -0
  201. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/reactive/tagger.py +0 -0
  202. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/reactive/throttle.py +0 -0
  203. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/run_id.py +0 -0
  204. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/runtime/__init__.py +0 -0
  205. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/runtime/codex_preflight.py +0 -0
  206. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/runtime/codex_preflight_cache.py +0 -0
  207. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/runtime/codex_rollouts.py +0 -0
  208. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/runtime/registry.py +0 -0
  209. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/state/__init__.py +0 -0
  210. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/state/exceptions.py +0 -0
  211. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/state/io.py +0 -0
  212. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/state/lock.py +0 -0
  213. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/state/retention.py +0 -0
  214. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/state/timestamps.py +0 -0
  215. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/state/versioned_store.py +0 -0
  216. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/telemetry/__init__.py +0 -0
  217. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/telemetry/caps.py +0 -0
  218. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/telemetry/downstream.py +0 -0
  219. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/telemetry/jsonl_io.py +0 -0
  220. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/telemetry/upstream.py +0 -0
  221. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/telemetry/vocabulary.py +0 -0
  222. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/tiers.py +0 -0
  223. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/transcript.py +0 -0
  224. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/typing_helpers.py +0 -0
  225. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/usage/__init__.py +0 -0
  226. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/usage/billing.py +0 -0
  227. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/usage/correlation.py +0 -0
  228. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/usage/emit.py +0 -0
  229. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/usage/ledger.py +0 -0
  230. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/usage/measurement.py +0 -0
  231. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/usage/vocabulary.py +0 -0
  232. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/workqueue/__init__.py +0 -0
  233. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/workqueue/queue.py +0 -0
  234. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/core/workqueue/types.py +0 -0
  235. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/install/cli.py +0 -0
  236. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/install/doctor.py +0 -0
  237. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/install/hooks.py +0 -0
  238. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/install/preset.py +0 -0
  239. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/install/project_compat.py +0 -0
  240. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/install/project_registry.py +0 -0
  241. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/install/skill_cache.py +0 -0
  242. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/install/skill_compiler.py +0 -0
  243. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/install/skill_validation.py +0 -0
  244. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/install/unmanaged.py +0 -0
  245. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/install/version.py +0 -0
  246. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/__init__.py +0 -0
  247. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/deterministic/__init__.py +0 -0
  248. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/deterministic/base.py +0 -0
  249. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/deterministic/coding_standards.py +0 -0
  250. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/deterministic/registry.py +0 -0
  251. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/deterministic/tdd.py +0 -0
  252. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/engine.py +0 -0
  253. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/protocols.py +0 -0
  254. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/queries.py +0 -0
  255. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/semantic/__init__.py +0 -0
  256. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/semantic/plan_check.py +0 -0
  257. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/semantic/shadow.py +0 -0
  258. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/semantic/shadow_runner.py +0 -0
  259. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/semantic/supervisor.py +0 -0
  260. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/semantic/verdict.py +0 -0
  261. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/store.py +0 -0
  262. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/supervisor_lane_degrade.py +0 -0
  263. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/team/__init__.py +0 -0
  264. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/team/config.py +0 -0
  265. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/team/handlers.py +0 -0
  266. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/team/prompts.py +0 -0
  267. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/types.py +0 -0
  268. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/workflow/__init__.py +0 -0
  269. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/workflow/branches.py +0 -0
  270. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/workflow/config.py +0 -0
  271. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/workflow/divergence.py +0 -0
  272. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/workflow/policy.py +0 -0
  273. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/policy/workflow/stages.py +0 -0
  274. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/__init__.py +0 -0
  275. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/audit_logger.py +0 -0
  276. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/base_client.py +0 -0
  277. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/client_adapter.py +0 -0
  278. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/client_factory.py +0 -0
  279. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/converters.py +0 -0
  280. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/cost_logger.py +0 -0
  281. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/cost_tracker.py +0 -0
  282. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/data_models.py +0 -0
  283. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/error_hints.py +0 -0
  284. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/intercept.py +0 -0
  285. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/metrics.py +0 -0
  286. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/model_spec.py +0 -0
  287. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/passthrough.py +0 -0
  288. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/ports.py +0 -0
  289. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/provider_trace_logger.py +0 -0
  290. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/proxies.py +0 -0
  291. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/proxy_identity.py +0 -0
  292. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/proxy_orchestrator.py +0 -0
  293. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/proxy_startup.py +0 -0
  294. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/reasoning.py +0 -0
  295. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/responses_ingress.py +0 -0
  296. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/responses_passthrough.py +0 -0
  297. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/server.py +0 -0
  298. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/stream_relay.py +0 -0
  299. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/proxy/utils.py +0 -0
  300. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/review/__init__.py +0 -0
  301. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/review/adversarial.py +0 -0
  302. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/review/consensus.py +0 -0
  303. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/review/engine.py +0 -0
  304. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/review/models.py +0 -0
  305. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/review/resources/__init__.py +0 -0
  306. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/review/resources/code_consensus_evaluation.md +0 -0
  307. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/review/resources/code_debate_evaluation.md +0 -0
  308. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/review/resources/codereview-performance.md +0 -0
  309. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/review/resources/codereview-quick.md +0 -0
  310. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/review/resources/codereview-security.md +0 -0
  311. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/review/resources/codereview.md +0 -0
  312. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/review/resources/consensus_evaluation.md +0 -0
  313. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/review/resources/debate_evaluation.md +0 -0
  314. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/review/resources/docreview-quick.md +0 -0
  315. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/review/resources/docreview.md +0 -0
  316. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/review/resources/thinkdeep.md +0 -0
  317. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/review/routing.py +0 -0
  318. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/review/synthesis.py +0 -0
  319. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/runtime_config.py +0 -0
  320. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/search/__init__.py +0 -0
  321. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/search/bm25_store.py +0 -0
  322. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/search/content_store.py +0 -0
  323. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/search/engine.py +0 -0
  324. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/search/exceptions.py +0 -0
  325. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/search/extractor.py +0 -0
  326. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/search/index_state.py +0 -0
  327. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/search/store.py +0 -0
  328. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/search/tokenizer.py +0 -0
  329. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/__init__.py +0 -0
  330. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/active.py +0 -0
  331. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/addendum.py +0 -0
  332. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/artifacts.py +0 -0
  333. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/claude/__init__.py +0 -0
  334. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/claude/cleanup.py +0 -0
  335. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/claude/invoke.py +0 -0
  336. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/claude/paths.py +0 -0
  337. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/claude/relocate.py +0 -0
  338. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/cleanup.py +0 -0
  339. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/codex_handoff.py +0 -0
  340. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/codex_invoke.py +0 -0
  341. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/config.py +0 -0
  342. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/consumer_lanes.py +0 -0
  343. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/context_limit.py +0 -0
  344. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/effective.py +0 -0
  345. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/exceptions.py +0 -0
  346. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/hooks/__init__.py +0 -0
  347. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/hooks/models.py +0 -0
  348. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/hooks/session_start.py +0 -0
  349. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/identity.py +0 -0
  350. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/index.py +0 -0
  351. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/launch.py +0 -0
  352. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/launch_confirmation.py +0 -0
  353. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/manager.py +0 -0
  354. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/memory_inheritance.py +0 -0
  355. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/memory_writer.py +0 -0
  356. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/model_pin.py +0 -0
  357. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/models.py +0 -0
  358. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/overrides.py +0 -0
  359. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/passport.py +0 -0
  360. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/plan_resolution.py +0 -0
  361. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/prev_sessions.py +0 -0
  362. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/project_memory.py +0 -0
  363. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/rewind.py +0 -0
  364. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/shadow_curation.py +0 -0
  365. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/store.py +0 -0
  366. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/transfer.py +0 -0
  367. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/validation.py +0 -0
  368. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/worktree/__init__.py +0 -0
  369. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/worktree/cleanup.py +0 -0
  370. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/worktree/config_copy.py +0 -0
  371. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/session/worktree/create.py +0 -0
  372. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/sidecar/__init__.py +0 -0
  373. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/sidecar/container.py +0 -0
  374. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/forge/sidecar/docker.py +0 -0
  375. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/analyze/content.md +0 -0
  376. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/analyze/forge-skill.yaml +0 -0
  377. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/challenge/content.md +0 -0
  378. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/challenge/forge-skill.yaml +0 -0
  379. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/consensus/content.md +0 -0
  380. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/consensus/forge-skill.yaml +0 -0
  381. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/consensus/resources/synthesis.md +0 -0
  382. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/debate/content.md +0 -0
  383. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/debate/forge-skill.yaml +0 -0
  384. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/panel/content.md +0 -0
  385. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/panel/forge-skill.yaml +0 -0
  386. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/panel/resources/synthesis.md +0 -0
  387. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/SKILL.md +0 -0
  388. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/resources/checklist/0-enable.md +0 -0
  389. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/resources/checklist/1-preflight.md +0 -0
  390. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/resources/checklist/10-resume.md +0 -0
  391. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/resources/checklist/11-config.md +0 -0
  392. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/resources/checklist/12-search.md +0 -0
  393. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/resources/checklist/13-policy.md +0 -0
  394. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/resources/checklist/14-workflow.md +0 -0
  395. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/resources/checklist/15-skills.md +0 -0
  396. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/resources/checklist/16-memory.md +0 -0
  397. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/resources/checklist/19-uninstall.md +0 -0
  398. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/resources/checklist/20-cleanup.md +0 -0
  399. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/resources/checklist/3-authentication.md +0 -0
  400. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/resources/checklist/4-proxy.md +0 -0
  401. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/resources/checklist/5-session.md +0 -0
  402. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/resources/checklist/7-costs.md +0 -0
  403. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/resources/checklist/8-status-line.md +0 -0
  404. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/resources/checklist/9-direct-commands.md +0 -0
  405. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/resources/report-template.md +0 -0
  406. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/scripts/start-container.sh +0 -0
  407. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/qa/scripts/walkthrough-state.py +0 -0
  408. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/review/content.md +0 -0
  409. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/review/forge-skill.yaml +0 -0
  410. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/review/references/claude-4.6.md +0 -0
  411. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/review/references/claude-4.8.md +0 -0
  412. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/review/references/gemini-3.1.md +0 -0
  413. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/review/references/gpt-5.5.md +0 -0
  414. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/review/references/skills-writing-guide.md +0 -0
  415. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/review/resources/code-anthropic.md +0 -0
  416. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/review/resources/code-gemini.md +0 -0
  417. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/review/resources/code-openai.md +0 -0
  418. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/review/resources/code.md +0 -0
  419. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/review-docs/content.md +0 -0
  420. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/review-docs/forge-skill.yaml +0 -0
  421. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/review-docs/resources/docs-anthropic.md +0 -0
  422. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/review-docs/resources/docs-gemini.md +0 -0
  423. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/review-docs/resources/docs-openai.md +0 -0
  424. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/review-docs/resources/docs.md +0 -0
  425. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/smoke-test/content.md +0 -0
  426. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/smoke-test/forge-skill.yaml +0 -0
  427. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/smoke-test/scripts/smoke-test.sh +0 -0
  428. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/understand/content.md +0 -0
  429. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/understand/forge-skill.yaml +0 -0
  430. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/understand/resources/code-anthropic.md +0 -0
  431. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/understand/resources/code-gemini.md +0 -0
  432. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/understand/resources/code-openai.md +0 -0
  433. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/understand/resources/code.md +0 -0
  434. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/understand/resources/docs-anthropic.md +0 -0
  435. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/understand/resources/docs-gemini.md +0 -0
  436. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/understand/resources/docs-openai.md +0 -0
  437. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/understand/resources/docs.md +0 -0
  438. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/walkthrough/SKILL.md +0 -0
  439. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/walkthrough/scripts/run-in-repo.sh +0 -0
  440. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/walkthrough/scripts/setup-test-repo.sh +0 -0
  441. {multi_forge-0.9.3 → multi_forge-0.9.4}/src/skills/walkthrough/scripts/walkthrough-state.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: multi-forge
3
- Version: 0.9.3
3
+ Version: 0.9.4
4
4
  Summary: Multi-runtime agent toolkit: proxy routing, cost control, session management, policy enforcement, and workflow orchestration
5
5
  Project-URL: Homepage, https://github.com/hapa1i/multi-forge
6
6
  Project-URL: Repository, https://github.com/hapa1i/multi-forge
@@ -165,7 +165,7 @@ export PATH="$(uv tool dir --bin):$PATH"
165
165
  forge extension doctor
166
166
 
167
167
  # Register runtime hooks once, at user scope
168
- forge extension enable --scope user --profile minimal --with hooks,codex-hooks --without commands
168
+ forge extension enable --scope user --profile minimal --with hooks --without commands
169
169
 
170
170
  # Then, inside a project: install project-owned assets and settings
171
171
  forge extension enable
@@ -124,7 +124,7 @@ export PATH="$(uv tool dir --bin):$PATH"
124
124
  forge extension doctor
125
125
 
126
126
  # Register runtime hooks once, at user scope
127
- forge extension enable --scope user --profile minimal --with hooks,codex-hooks --without commands
127
+ forge extension enable --scope user --profile minimal --with hooks --without commands
128
128
 
129
129
  # Then, inside a project: install project-owned assets and settings
130
130
  forge extension enable
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "multi-forge"
3
- version = "0.9.3"
3
+ version = "0.9.4"
4
4
  description = "Multi-runtime agent toolkit: proxy routing, cost control, session management, policy enforcement, and workflow orchestration"
5
5
  readme = "README.md"
6
6
  license = "Apache-2.0"
@@ -132,6 +132,7 @@ constraint-dependencies = [
132
132
  "Pygments>=2.20.0",
133
133
  "PyJWT>=2.13.0",
134
134
  "starlette>=1.3.1",
135
+ "pyasn1>=0.6.4",
135
136
  ]
136
137
  # litellm proxy extras can pin vulnerable transitive dependencies before
137
138
  # upstream metadata catches up. Forge doesn't use these directly; override to