forgeoptimizer 1.0.4__tar.gz → 1.0.6__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 (320) hide show
  1. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/.github/workflows/ci.yml +4 -10
  2. forgeoptimizer-1.0.6/.github/workflows/test.yml +127 -0
  3. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/PKG-INFO +1 -1
  4. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/pyproject.toml +1 -1
  5. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/uv.lock +1 -1
  6. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/.gitignore +0 -0
  7. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/CHANGELOG.md +0 -0
  8. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/CONTRIBUTING.md +0 -0
  9. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/CREDITS.md +0 -0
  10. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/Forge.toml +0 -0
  11. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/LICENSE +0 -0
  12. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/MIGRATION.md +0 -0
  13. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/README.md +0 -0
  14. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/RELEASE_NOTES.md +0 -0
  15. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/SECURITY.md +0 -0
  16. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/SUPPORT.md +0 -0
  17. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/docs/commands.md +0 -0
  18. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/__init__.py +0 -0
  19. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/budget/__init__.py +0 -0
  20. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/budget/middleware.py +0 -0
  21. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/budget/planner.py +0 -0
  22. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/budget/window.py +0 -0
  23. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/build/__init__.py +0 -0
  24. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/build/apply.py +0 -0
  25. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/build/caveman_optimize.py +0 -0
  26. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/build/diff_extract.py +0 -0
  27. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/build/llm.py +0 -0
  28. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/build/optimize.py +0 -0
  29. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/build/patch_generator.py +0 -0
  30. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/build/pipeline.py +0 -0
  31. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/build/retrieval.py +0 -0
  32. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/build/summarize.py +0 -0
  33. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/build/test_run.py +0 -0
  34. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/builder/__init__.py +0 -0
  35. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/builder/builder.py +0 -0
  36. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/builder/editor.py +0 -0
  37. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/builder/formatter.py +0 -0
  38. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/cli/__init__.py +0 -0
  39. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/cli/bootstrap.py +0 -0
  40. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/cli/commands_auth.py +0 -0
  41. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/cli/commands_commit.py +0 -0
  42. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/cli/commands_diagnostics.py +0 -0
  43. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/cli/commands_graph.py +0 -0
  44. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/cli/commands_inspect.py +0 -0
  45. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/cli/commands_wrappers.py +0 -0
  46. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/cli/daemon.py +0 -0
  47. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/cli/daemon_utils.py +0 -0
  48. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/cli/main.py +0 -0
  49. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/cli/ui.py +0 -0
  50. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/config/__init__.py +0 -0
  51. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/config/loader.py +0 -0
  52. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/config/settings.py +0 -0
  53. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/config/writer.py +0 -0
  54. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/conversation/__init__.py +0 -0
  55. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/conversation/manager.py +0 -0
  56. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/conversation/session.py +0 -0
  57. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/core/__init__.py +0 -0
  58. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/core/container.py +0 -0
  59. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/core/context.py +0 -0
  60. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/core/credentials.py +0 -0
  61. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/core/errors.py +0 -0
  62. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/core/events.py +0 -0
  63. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/core/logging.py +0 -0
  64. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/core/models.py +0 -0
  65. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/core/plugins.py +0 -0
  66. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/core/service.py +0 -0
  67. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/docs/__init__.py +0 -0
  68. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/docs/generator.py +0 -0
  69. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/engine/__init__.py +0 -0
  70. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/engine/context.py +0 -0
  71. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/engine/defaults.py +0 -0
  72. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/engine/events.py +0 -0
  73. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/engine/execution.py +0 -0
  74. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/engine/plugins.py +0 -0
  75. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/engine/runner.py +0 -0
  76. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/engine/stages/__init__.py +0 -0
  77. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/engine/stages/caveman_optimizer.py +0 -0
  78. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/engine/stages/context_optimizer.py +0 -0
  79. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/engine/stages/execution_engine_stage.py +0 -0
  80. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/engine/stages/git_engine.py +0 -0
  81. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/engine/stages/intent_analyzer.py +0 -0
  82. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/engine/stages/model_router.py +0 -0
  83. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/engine/stages/planning_engine.py +0 -0
  84. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/engine/stages/repository_analyzer.py +0 -0
  85. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/engine/stages/validation_engine.py +0 -0
  86. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/git/__init__.py +0 -0
  87. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/git/repo.py +0 -0
  88. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/git/service.py +0 -0
  89. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/graph/__init__.py +0 -0
  90. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/graph/backend_forgegraph.py +0 -0
  91. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/graph/edge.py +0 -0
  92. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/graph/forgegraph.py +0 -0
  93. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/graph/graph.py +0 -0
  94. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/graph/indexer.py +0 -0
  95. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/graph/node.py +0 -0
  96. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/graph/repository.py +0 -0
  97. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/memory/__init__.py +0 -0
  98. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/memory/cache.py +0 -0
  99. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/memory/caching_middleware.py +0 -0
  100. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/memory/history.py +0 -0
  101. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/memory/memory_compression.py +0 -0
  102. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/memory/middleware.py +0 -0
  103. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/memory/store.py +0 -0
  104. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/middleware/__init__.py +0 -0
  105. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/middleware/base.py +0 -0
  106. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/middleware/builder.py +0 -0
  107. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/middleware/caveman_adapter.py +0 -0
  108. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/middleware/context.py +0 -0
  109. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/middleware/decorators.py +0 -0
  110. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/middleware/defaults.py +0 -0
  111. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/middleware/exceptions.py +0 -0
  112. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/middleware/executor.py +0 -0
  113. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/middleware/graphify_adapter.py +0 -0
  114. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/middleware/middleware_manager.py +0 -0
  115. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/middleware/pipeline.py +0 -0
  116. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/middleware/ponytail_adapter.py +0 -0
  117. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/middleware/registration.py +0 -0
  118. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/middleware/request.py +0 -0
  119. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/middleware/response.py +0 -0
  120. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/negotiator/__init__.py +0 -0
  121. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/negotiator/middleware.py +0 -0
  122. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/negotiator/negotiator.py +0 -0
  123. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/observability/__init__.py +0 -0
  124. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/observability/health.py +0 -0
  125. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/observability/metrics.py +0 -0
  126. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/observability/middleware.py +0 -0
  127. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/observability/tracing.py +0 -0
  128. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/__init__.py +0 -0
  129. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/adaptive_budget.py +0 -0
  130. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/ast_extractor.py +0 -0
  131. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/cache.py +0 -0
  132. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/caveman/__init__.py +0 -0
  133. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/caveman/cli.py +0 -0
  134. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/caveman/decorator.py +0 -0
  135. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/caveman/factory.py +0 -0
  136. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/caveman/ruleset.py +0 -0
  137. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/caveman/state.py +0 -0
  138. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/chunker.py +0 -0
  139. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/comment_stripper.py +0 -0
  140. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/compression.py +0 -0
  141. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/cost_estimator.py +0 -0
  142. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/embedding_cache.py +0 -0
  143. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/git_context.py +0 -0
  144. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/intelligent_retrieval.py +0 -0
  145. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/optimizer.py +0 -0
  146. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/orchestrator.py +0 -0
  147. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/output/__init__.py +0 -0
  148. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/output/optimizer.py +0 -0
  149. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/ponytail/__init__.py +0 -0
  150. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/ponytail/cli.py +0 -0
  151. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/ponytail/decorator.py +0 -0
  152. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/ponytail/factory.py +0 -0
  153. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/ponytail/ruleset.py +0 -0
  154. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/ponytail/state.py +0 -0
  155. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/prompt_optimizer.py +0 -0
  156. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/quality_validation.py +0 -0
  157. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/ranker.py +0 -0
  158. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/retrieval_cache.py +0 -0
  159. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/semantic_ranking.py +0 -0
  160. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/summarizer.py +0 -0
  161. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/optimizer/token_estimator.py +0 -0
  162. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/orchestrator/__init__.py +0 -0
  163. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/planner/__init__.py +0 -0
  164. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/planner/agent.py +0 -0
  165. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/planner/plan.py +0 -0
  166. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/planner/planner.py +0 -0
  167. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/planner/render.py +0 -0
  168. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/planner/serialize.py +0 -0
  169. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/planner/software.py +0 -0
  170. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/platform/__init__.py +0 -0
  171. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/platform/core.py +0 -0
  172. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/platform/deps.py +0 -0
  173. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/platform/paths.py +0 -0
  174. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/platform/shell.py +0 -0
  175. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/platform/update.py +0 -0
  176. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/plugins/__init__.py +0 -0
  177. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/plugins/hook.py +0 -0
  178. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/policy/__init__.py +0 -0
  179. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/policy/engine.py +0 -0
  180. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/policy/exceptions.py +0 -0
  181. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/policy/middleware.py +0 -0
  182. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/policy/rules.py +0 -0
  183. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/prompts/__init__.py +0 -0
  184. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/prompts/loader.py +0 -0
  185. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/prompts/registry.py +0 -0
  186. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/prompts/renderer.py +0 -0
  187. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/providers/__init__.py +0 -0
  188. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/providers/anthropic.py +0 -0
  189. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/providers/base.py +0 -0
  190. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/providers/builtin.py +0 -0
  191. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/providers/conversation.py +0 -0
  192. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/providers/exceptions.py +0 -0
  193. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/providers/google.py +0 -0
  194. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/providers/health.py +0 -0
  195. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/providers/http_base.py +0 -0
  196. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/providers/mock.py +0 -0
  197. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/providers/openai.py +0 -0
  198. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/providers/openai_compatible.py +0 -0
  199. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/providers/provider_capabilities.py +0 -0
  200. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/providers/provider_context.py +0 -0
  201. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/providers/provider_events.py +0 -0
  202. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/providers/provider_factory.py +0 -0
  203. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/providers/provider_manager.py +0 -0
  204. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/providers/provider_metadata.py +0 -0
  205. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/providers/provider_registry.py +0 -0
  206. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/providers/provider_router.py +0 -0
  207. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/providers/router.py +0 -0
  208. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/providers/router_state.py +0 -0
  209. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/registry/__init__.py +0 -0
  210. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/registry/model_registry.py +0 -0
  211. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/resilience/__init__.py +0 -0
  212. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/resilience/circuit_breaker.py +0 -0
  213. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/resilience/exceptions.py +0 -0
  214. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/resilience/middleware.py +0 -0
  215. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/resilience/retry.py +0 -0
  216. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/review/__init__.py +0 -0
  217. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/review/analyzer.py +0 -0
  218. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/review/analyzers/__init__.py +0 -0
  219. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/review/analyzers/architecture.py +0 -0
  220. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/review/analyzers/complexity.py +0 -0
  221. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/review/analyzers/dead_code.py +0 -0
  222. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/review/analyzers/duplicates.py +0 -0
  223. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/review/analyzers/performance.py +0 -0
  224. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/review/analyzers/security.py +0 -0
  225. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/review/finding.py +0 -0
  226. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/review/report.py +0 -0
  227. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/review/repository.py +0 -0
  228. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/review/suggestions.py +0 -0
  229. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/runtime/__init__.py +0 -0
  230. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/runtime/agents.py +0 -0
  231. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/runtime/cache_store.py +0 -0
  232. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/runtime/mcp_config.py +0 -0
  233. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/runtime/pipeline_runner.py +0 -0
  234. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/runtime/prepare.py +0 -0
  235. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/runtime/shared_extraction.py +0 -0
  236. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/runtime/wrappers.py +0 -0
  237. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/runtime_core/__init__.py +0 -0
  238. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/runtime_core/config_manager.py +0 -0
  239. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/runtime_core/container.py +0 -0
  240. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/runtime_core/context.py +0 -0
  241. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/runtime_core/errors.py +0 -0
  242. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/runtime_core/events.py +0 -0
  243. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/runtime_core/factory.py +0 -0
  244. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/runtime_core/interfaces.py +0 -0
  245. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/runtime_core/lifecycle.py +0 -0
  246. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/runtime_core/provider_registry.py +0 -0
  247. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/runtime_core/request.py +0 -0
  248. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/runtime_core/response.py +0 -0
  249. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/runtime_core/service_registry.py +0 -0
  250. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/scheduler/__init__.py +0 -0
  251. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/scheduler/scheduler.py +0 -0
  252. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/scheduler/task.py +0 -0
  253. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/scheduler/worker.py +0 -0
  254. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/streaming/__init__.py +0 -0
  255. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/streaming/events.py +0 -0
  256. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/streaming/middleware.py +0 -0
  257. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/templates/__init__.py +0 -0
  258. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/templates/engine.py +0 -0
  259. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/templates/registry.py +0 -0
  260. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/transport/__init__.py +0 -0
  261. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/transport/daemon.py +0 -0
  262. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/transport/http_server.py +0 -0
  263. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/transport/server.py +0 -0
  264. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/utils/__init__.py +0 -0
  265. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/utils/fs.py +0 -0
  266. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/utils/ids.py +0 -0
  267. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/utils/io.py +0 -0
  268. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/utils/paths.py +0 -0
  269. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/forgecli/utils/timing.py +0 -0
  270. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/packaging/scoop/forgecli.json +0 -0
  271. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/packaging/winget/forgecli.ForgeCli.yaml +0 -0
  272. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/__init__.py +0 -0
  273. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/conftest.py +0 -0
  274. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_auth.py +0 -0
  275. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_budget_context.py +0 -0
  276. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_build_pipeline.py +0 -0
  277. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_caching_observability.py +0 -0
  278. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_caveman_cli.py +0 -0
  279. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_caveman_ruleset.py +0 -0
  280. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_cli.py +0 -0
  281. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_commit.py +0 -0
  282. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_config.py +0 -0
  283. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_container.py +0 -0
  284. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_conversation_optimization.py +0 -0
  285. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_diagnostics.py +0 -0
  286. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_e2e.py +0 -0
  287. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_engine.py +0 -0
  288. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_forgegraph_client.py +0 -0
  289. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_graph.py +0 -0
  290. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_mcp_config.py +0 -0
  291. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_memory.py +0 -0
  292. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_middleware.py +0 -0
  293. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_negotiator.py +0 -0
  294. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_optimizer.py +0 -0
  295. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_orchestrator.py +0 -0
  296. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_output_optimization.py +0 -0
  297. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_planner.py +0 -0
  298. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_planner_render.py +0 -0
  299. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_platform.py +0 -0
  300. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_policy.py +0 -0
  301. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_ponytail_cli.py +0 -0
  302. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_ponytail_ruleset.py +0 -0
  303. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_prompts.py +0 -0
  304. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_provider.py +0 -0
  305. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_providers.py +0 -0
  306. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_providers_http.py +0 -0
  307. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_redesign_optimizers.py +0 -0
  308. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_repository_graph.py +0 -0
  309. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_resilience.py +0 -0
  310. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_review.py +0 -0
  311. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_router.py +0 -0
  312. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_runtime.py +0 -0
  313. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_runtime_core.py +0 -0
  314. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_runtime_core_phase2.py +0 -0
  315. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_scheduler_plugins.py +0 -0
  316. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_software_planner.py +0 -0
  317. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_streaming.py +0 -0
  318. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_token_optimizations.py +0 -0
  319. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_transport.py +0 -0
  320. {forgeoptimizer-1.0.4 → forgeoptimizer-1.0.6}/tests/test_utils.py +0 -0
@@ -3,11 +3,8 @@ env:
3
3
  PYTHONUTF8: "1"
4
4
  on:
5
5
  push:
6
- branches: [main]
7
6
  tags:
8
7
  - "v*"
9
- pull_request:
10
- branches: [main]
11
8
  workflow_dispatch:
12
9
 
13
10
  jobs:
@@ -128,10 +125,8 @@ jobs:
128
125
  forge codex --help
129
126
  forge cursor --help
130
127
 
131
-
132
128
  publish-testpypi:
133
129
  name: publish to TestPyPI (on tag or manual)
134
- if: startsWith(github.ref, 'refs/tags/v') || github.event_name == 'workflow_dispatch'
135
130
  needs: [test, build, uv-install]
136
131
  runs-on: ubuntu-latest
137
132
  environment: testpypi
@@ -140,7 +135,8 @@ jobs:
140
135
  contents: read
141
136
  steps:
142
137
  - uses: actions/checkout@v4
143
- - uses: actions/setup-python@v5
138
+ - name: Set up Python
139
+ uses: actions/setup-python@v5
144
140
  with:
145
141
  python-version: "3.12"
146
142
  - name: Rename package to match TestPyPI Trusted Publisher
@@ -163,7 +159,6 @@ jobs:
163
159
 
164
160
  publish-pypi:
165
161
  name: publish to PyPI (on tag or manual)
166
- if: startsWith(github.ref, 'refs/tags/v') || github.event_name == 'workflow_dispatch'
167
162
  needs: [test, build, uv-install]
168
163
  runs-on: ubuntu-latest
169
164
  environment: pypi
@@ -172,7 +167,8 @@ jobs:
172
167
  contents: read
173
168
  steps:
174
169
  - uses: actions/checkout@v4
175
- - uses: actions/setup-python@v5
170
+ - name: Set up Python
171
+ uses: actions/setup-python@v5
176
172
  with:
177
173
  python-version: "3.12"
178
174
  - name: Rename package to match PyPI Trusted Publisher
@@ -191,5 +187,3 @@ jobs:
191
187
  uses: pypa/gh-action-pypi-publish@release/v1
192
188
  with:
193
189
  skip-existing: true
194
-
195
-
@@ -0,0 +1,127 @@
1
+ name: test
2
+ env:
3
+ PYTHONUTF8: "1"
4
+ on:
5
+ push:
6
+ branches: [main]
7
+ pull_request:
8
+ branches: [main]
9
+ workflow_dispatch:
10
+
11
+ jobs:
12
+ test:
13
+ name: test (${{ matrix.os }} / py${{ matrix.python-version }})
14
+ runs-on: ${{ matrix.os }}
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ os: [ubuntu-latest, macos-latest, windows-latest]
19
+ python-version: ["3.12"]
20
+
21
+ steps:
22
+ - name: Check out
23
+ uses: actions/checkout@v4
24
+
25
+ - name: Set up Python ${{ matrix.python-version }}
26
+ uses: actions/setup-python@v5
27
+ with:
28
+ python-version: ${{ matrix.python-version }}
29
+ cache: pip
30
+
31
+ - name: Install
32
+ run: |
33
+ python -m pip install --upgrade pip
34
+ python -m pip install -e ".[dev]"
35
+
36
+ - name: Smoke test CLI
37
+ run: |
38
+ forge --version
39
+ forge --help
40
+ forge graph --help
41
+
42
+ - name: Lint
43
+ run: python -m ruff check forgecli tests
44
+
45
+ - name: Tests
46
+ run: python -m pytest -q
47
+
48
+ - name: Cross-platform shell smoke
49
+ if: runner.os != 'Windows'
50
+ shell: bash
51
+ run: |
52
+ python -c "from forgecli.platform import run; r = run(['echo', 'cross-platform']); print('OK' if r.ok else 'FAIL')"
53
+
54
+ - name: Cross-platform shell smoke (Windows)
55
+ if: runner.os == 'Windows'
56
+ shell: pwsh
57
+ run: |
58
+ python -c "from forgecli.platform import run; r = run(['cmd.exe', '/c', 'echo cross-platform']); print('OK' if r.ok else 'FAIL')"
59
+
60
+ build:
61
+ name: build sdist + wheel
62
+ runs-on: ubuntu-latest
63
+ steps:
64
+ - uses: actions/checkout@v4
65
+ - uses: actions/setup-python@v5
66
+ with:
67
+ python-version: "3.12"
68
+ - name: Install build
69
+ run: python -m pip install --upgrade build twine
70
+ - name: Build
71
+ run: python -m build
72
+ - name: Verify package metadata
73
+ run: |
74
+ twine check dist/*
75
+ python - <<'PY'
76
+ import zipfile
77
+ from pathlib import Path
78
+ wheel = next(Path("dist").glob("*.whl"))
79
+ with zipfile.ZipFile(wheel) as zf:
80
+ names = zf.namelist()
81
+ assert any(n.startswith("forgecli/") for n in names), "missing forgecli package"
82
+ print(f"OK: {wheel.name}")
83
+ PY
84
+ - name: Upload artifacts
85
+ uses: actions/upload-artifact@v4
86
+ with:
87
+ name: dist
88
+ path: dist/
89
+
90
+ uv-install:
91
+ name: uv tool install (${{ matrix.os }})
92
+ needs: build
93
+ runs-on: ${{ matrix.os }}
94
+ strategy:
95
+ fail-fast: false
96
+ matrix:
97
+ os: [ubuntu-latest, macos-latest, windows-latest]
98
+ steps:
99
+ - name: Check out
100
+ uses: actions/checkout@v4
101
+
102
+ - name: Set up Python
103
+ uses: actions/setup-python@v5
104
+ with:
105
+ python-version: "3.12"
106
+
107
+ - name: Install uv
108
+ uses: astral-sh/setup-uv@v6
109
+
110
+ - uses: actions/download-artifact@v4
111
+ with:
112
+ name: dist
113
+ path: dist/
114
+
115
+ - name: Install forgectx via uv tool
116
+ shell: bash
117
+ run: |
118
+ uv tool install dist/*.whl
119
+
120
+ - name: Verify forge --help
121
+ run: forge --help
122
+
123
+ - name: Verify wrapper commands are registered
124
+ run: |
125
+ forge claude --help
126
+ forge codex --help
127
+ forge cursor --help
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: forgeoptimizer
3
- Version: 1.0.4
3
+ Version: 1.0.6
4
4
  Summary: Forge — AI optimization runtime for Claude Code, Codex, Cursor, Antigravity
5
5
  Project-URL: Homepage, https://github.com/mdshzb04/Forge
6
6
  Project-URL: Repository, https://github.com/mdshzb04/Forge
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "forgeoptimizer"
7
- version = "1.0.4"
7
+ version = "1.0.6"
8
8
  description = "Forge — AI optimization runtime for Claude Code, Codex, Cursor, Antigravity"
9
9
  readme = "README.md"
10
10
  license = { text = "MIT" }
@@ -406,7 +406,7 @@ wheels = [
406
406
 
407
407
  [[package]]
408
408
  name = "forgectx"
409
- version = "1.0.4"
409
+ version = "1.0.6"
410
410
  source = { editable = "." }
411
411
  dependencies = [
412
412
  { name = "aiofiles" },
File without changes
File without changes