specsmith 0.3.13.dev216__tar.gz → 0.3.13.dev220__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 (192) hide show
  1. {specsmith-0.3.13.dev216/src/specsmith.egg-info → specsmith-0.3.13.dev220}/PKG-INFO +37 -1
  2. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/README.md +36 -0
  3. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/pyproject.toml +10 -1
  4. specsmith-0.3.13.dev220/src/specsmith/agent/__init__.py +0 -0
  5. specsmith-0.3.13.dev220/src/specsmith/agent/broker.py +608 -0
  6. specsmith-0.3.13.dev220/src/specsmith/agent/cleanup.py +312 -0
  7. specsmith-0.3.13.dev220/src/specsmith/agent/indexer.py +72 -0
  8. specsmith-0.3.13.dev220/src/specsmith/agent/orchestrator.py +280 -0
  9. specsmith-0.3.13.dev220/src/specsmith/agent/repl.py +152 -0
  10. specsmith-0.3.13.dev220/src/specsmith/agent/safety.py +109 -0
  11. specsmith-0.3.13.dev220/src/specsmith/agent/tools.py +189 -0
  12. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/auditor.py +8 -8
  13. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/cli.py +648 -48
  14. specsmith-0.3.13.dev220/src/specsmith/console_utils.py +62 -0
  15. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/epistemic/recovery.py +1 -3
  16. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/epistemic/stress_tester.py +4 -6
  17. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/exporter.py +2 -2
  18. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/importer.py +5 -5
  19. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/integrations/warp.py +1 -1
  20. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/phase.py +8 -8
  21. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/requirements.py +2 -2
  22. specsmith-0.3.13.dev220/src/specsmith/requirements_parser.py +89 -0
  23. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/retrieval.py +1 -1
  24. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/scaffolder.py +1 -1
  25. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/agents.md.j2 +256 -249
  26. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/community/contributing.md.j2 +1 -1
  27. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/community/pull_request_template.md.j2 +1 -1
  28. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/governance/context-budget.md.j2 +1 -1
  29. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/governance/epistemic-axioms.md.j2 +1 -1
  30. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/governance/lifecycle.md.j2 +3 -3
  31. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/upgrader.py +2 -2
  32. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220/src/specsmith.egg-info}/PKG-INFO +37 -1
  33. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith.egg-info/SOURCES.txt +10 -29
  34. specsmith-0.3.13.dev220/tests/test_CMD_001.py +4 -0
  35. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/tests/test_auditor.py +2 -2
  36. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/tests/test_importer.py +1 -1
  37. specsmith-0.3.13.dev220/tests/test_nexus.py +1381 -0
  38. specsmith-0.3.13.dev216/src/specsmith/agent/__init__.py +0 -44
  39. specsmith-0.3.13.dev216/src/specsmith/agent/core.py +0 -213
  40. specsmith-0.3.13.dev216/src/specsmith/agent/hooks.py +0 -232
  41. specsmith-0.3.13.dev216/src/specsmith/agent/optimizer.py +0 -902
  42. specsmith-0.3.13.dev216/src/specsmith/agent/profiles/epistemic-auditor.md +0 -95
  43. specsmith-0.3.13.dev216/src/specsmith/agent/profiles/planner.md +0 -50
  44. specsmith-0.3.13.dev216/src/specsmith/agent/profiles/verifier.md +0 -51
  45. specsmith-0.3.13.dev216/src/specsmith/agent/providers/__init__.py +0 -155
  46. specsmith-0.3.13.dev216/src/specsmith/agent/providers/anthropic.py +0 -174
  47. specsmith-0.3.13.dev216/src/specsmith/agent/providers/gemini.py +0 -246
  48. specsmith-0.3.13.dev216/src/specsmith/agent/providers/mistral.py +0 -175
  49. specsmith-0.3.13.dev216/src/specsmith/agent/providers/ollama.py +0 -327
  50. specsmith-0.3.13.dev216/src/specsmith/agent/providers/openai.py +0 -154
  51. specsmith-0.3.13.dev216/src/specsmith/agent/runner.py +0 -1093
  52. specsmith-0.3.13.dev216/src/specsmith/agent/skills.py +0 -192
  53. specsmith-0.3.13.dev216/src/specsmith/agent/tools.py +0 -716
  54. specsmith-0.3.13.dev216/src/specsmith/agents/__init__.py +0 -7
  55. specsmith-0.3.13.dev216/src/specsmith/agents/cli.py +0 -233
  56. specsmith-0.3.13.dev216/src/specsmith/agents/config.py +0 -74
  57. specsmith-0.3.13.dev216/src/specsmith/agents/reports.py +0 -77
  58. specsmith-0.3.13.dev216/src/specsmith/agents/roles.py +0 -208
  59. specsmith-0.3.13.dev216/src/specsmith/agents/tools/__init__.py +0 -34
  60. specsmith-0.3.13.dev216/src/specsmith/agents/tools/filesystem.py +0 -187
  61. specsmith-0.3.13.dev216/src/specsmith/agents/tools/git.py +0 -70
  62. specsmith-0.3.13.dev216/src/specsmith/agents/tools/shell.py +0 -69
  63. specsmith-0.3.13.dev216/src/specsmith/agents/tools/tests.py +0 -59
  64. specsmith-0.3.13.dev216/src/specsmith/agents/workflows/__init__.py +0 -3
  65. specsmith-0.3.13.dev216/src/specsmith/agents/workflows/improve.py +0 -179
  66. specsmith-0.3.13.dev216/src/specsmith/ollama_cmds.py +0 -407
  67. specsmith-0.3.13.dev216/tests/test_agent.py +0 -293
  68. specsmith-0.3.13.dev216/tests/test_optimizer.py +0 -511
  69. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/LICENSE +0 -0
  70. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/setup.cfg +0 -0
  71. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/epistemic/__init__.py +0 -0
  72. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/epistemic/belief.py +0 -0
  73. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/epistemic/certainty.py +0 -0
  74. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/epistemic/failure_graph.py +0 -0
  75. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/epistemic/py.typed +0 -0
  76. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/epistemic/recovery.py +0 -0
  77. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/epistemic/session.py +0 -0
  78. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/epistemic/stress_tester.py +0 -0
  79. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/epistemic/trace.py +0 -0
  80. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/__init__.py +0 -0
  81. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/__main__.py +0 -0
  82. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/architect.py +0 -0
  83. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/auth.py +0 -0
  84. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/commands/__init__.py +0 -0
  85. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/compressor.py +0 -0
  86. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/config.py +0 -0
  87. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/credit_analyzer.py +0 -0
  88. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/credits.py +0 -0
  89. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/differ.py +0 -0
  90. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/doctor.py +0 -0
  91. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/epistemic/__init__.py +0 -0
  92. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/epistemic/belief.py +0 -0
  93. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/epistemic/certainty.py +0 -0
  94. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/epistemic/failure_graph.py +0 -0
  95. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/executor.py +0 -0
  96. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/__init__.py +0 -0
  97. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/app.py +0 -0
  98. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/main_window.py +0 -0
  99. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/session_tab.py +0 -0
  100. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/theme.py +0 -0
  101. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/widgets/__init__.py +0 -0
  102. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/widgets/chat_view.py +0 -0
  103. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/widgets/input_bar.py +0 -0
  104. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/widgets/provider_bar.py +0 -0
  105. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/widgets/token_meter.py +0 -0
  106. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/widgets/tool_panel.py +0 -0
  107. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/widgets/update_checker.py +0 -0
  108. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/worker.py +0 -0
  109. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/integrations/__init__.py +0 -0
  110. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/integrations/aider.py +0 -0
  111. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/integrations/base.py +0 -0
  112. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/integrations/claude_code.py +0 -0
  113. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/integrations/copilot.py +0 -0
  114. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/integrations/cursor.py +0 -0
  115. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/integrations/gemini.py +0 -0
  116. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/integrations/windsurf.py +0 -0
  117. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/languages.py +0 -0
  118. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/ledger.py +0 -0
  119. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/patent.py +0 -0
  120. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/plugins.py +0 -0
  121. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/profiles.py +0 -0
  122. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/rate_limits.py +0 -0
  123. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/releaser.py +0 -0
  124. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/serve.py +0 -0
  125. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/session.py +0 -0
  126. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/community/bug_report.md.j2 +0 -0
  127. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/community/code_of_conduct.md.j2 +0 -0
  128. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/community/feature_request.md.j2 +0 -0
  129. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/community/license-Apache-2.0.j2 +0 -0
  130. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/community/license-MIT.j2 +0 -0
  131. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/community/security.md.j2 +0 -0
  132. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/docs/architecture.md.j2 +0 -0
  133. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/docs/mkdocs.yml.j2 +0 -0
  134. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/docs/readthedocs.yaml.j2 +0 -0
  135. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/docs/requirements.md.j2 +0 -0
  136. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/docs/test-spec.md.j2 +0 -0
  137. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/editorconfig.j2 +0 -0
  138. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/gitattributes.j2 +0 -0
  139. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/gitignore.j2 +0 -0
  140. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/go/go.mod.j2 +0 -0
  141. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/go/main.go.j2 +0 -0
  142. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/governance/belief-registry.md.j2 +0 -0
  143. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/governance/drift-metrics.md.j2 +0 -0
  144. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/governance/failure-modes.md.j2 +0 -0
  145. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/governance/roles.md.j2 +0 -0
  146. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/governance/rules.md.j2 +0 -0
  147. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/governance/session-protocol.md.j2 +0 -0
  148. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/governance/uncertainty-map.md.j2 +0 -0
  149. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/governance/verification.md.j2 +0 -0
  150. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/js/package.json.j2 +0 -0
  151. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/ledger.md.j2 +0 -0
  152. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/python/cli.py.j2 +0 -0
  153. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/python/init.py.j2 +0 -0
  154. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/python/pyproject.toml.j2 +0 -0
  155. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/readme.md.j2 +0 -0
  156. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/rust/Cargo.toml.j2 +0 -0
  157. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/rust/main.rs.j2 +0 -0
  158. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/scripts/exec.cmd.j2 +0 -0
  159. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/scripts/exec.sh.j2 +0 -0
  160. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/scripts/run.cmd.j2 +0 -0
  161. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/scripts/run.sh.j2 +0 -0
  162. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/scripts/setup.cmd.j2 +0 -0
  163. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/scripts/setup.sh.j2 +0 -0
  164. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/workflows/release.yml.j2 +0 -0
  165. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/tool_installer.py +0 -0
  166. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/toolrules.py +0 -0
  167. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/tools.py +0 -0
  168. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/trace.py +0 -0
  169. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/updater.py +0 -0
  170. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/validator.py +0 -0
  171. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/vcs/__init__.py +0 -0
  172. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/vcs/base.py +0 -0
  173. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/vcs/bitbucket.py +0 -0
  174. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/vcs/github.py +0 -0
  175. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/vcs/gitlab.py +0 -0
  176. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/vcs_commands.py +0 -0
  177. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/wireframes.py +0 -0
  178. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/workspace.py +0 -0
  179. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith.egg-info/dependency_links.txt +0 -0
  180. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith.egg-info/entry_points.txt +0 -0
  181. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith.egg-info/requires.txt +0 -0
  182. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith.egg-info/top_level.txt +0 -0
  183. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/tests/test_cli.py +0 -0
  184. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/tests/test_compressor.py +0 -0
  185. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/tests/test_epistemic.py +0 -0
  186. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/tests/test_integrations.py +0 -0
  187. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/tests/test_rate_limits.py +0 -0
  188. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/tests/test_scaffolder.py +0 -0
  189. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/tests/test_smoke.py +0 -0
  190. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/tests/test_tools.py +0 -0
  191. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/tests/test_validator.py +0 -0
  192. {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/tests/test_vcs.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specsmith
3
- Version: 0.3.13.dev216
3
+ Version: 0.3.13.dev220
4
4
  Summary: Applied Epistemic Engineering toolkit — AEE agent sessions, execution profiles, FPGA/HDL governance, tool installer, 50+ CLI commands.
5
5
  Author: BitConcepts
6
6
  License-Expression: MIT
@@ -227,6 +227,42 @@ Project Settings → Agent tab.
227
227
 
228
228
  ---
229
229
 
230
+ ## Nexus — Plain-English Governance, Local-First
231
+
232
+ **Nexus** is the local-first Nexus runtime that turns plain English into Specsmith-governed
233
+ work. You speak in your own words; Specsmith stays the sole authority on what counts as a
234
+ requirement, a test, or a work item — Nexus just brokers the conversation and runs the work.
235
+
236
+ ```bash
237
+ # Classify a natural-language utterance under Specsmith governance
238
+ specsmith preflight "fix the cleanup dry-run regression" --json
239
+
240
+ # Or drop into the Nexus REPL
241
+ specsmith run
242
+ nexus> what does the cleanup module do? # read-only ask -> answered
243
+ nexus> fix the cleanup dry-run regression # change -> Specsmith approves, runs
244
+ nexus> delete the entire dist directory # destructive -> needs clarification
245
+ nexus> /why # toggle governance details on/off
246
+ ```
247
+
248
+ **How it works.** A natural-language **broker** classifies intent, infers scope from
249
+ your requirements, and asks Specsmith to **preflight** the request. Only when the
250
+ preflight decision is `accepted` does Nexus drive the AG2 orchestrator — and it does so
251
+ through a **bounded-retry harness** so you can never accidentally run away. By default,
252
+ Nexus speaks plain English; toggle `/why` in the REPL to surface the underlying
253
+ requirement, test, and work-item identifiers Specsmith assigned.
254
+
255
+ **Pieces in this repo.**
256
+ - `specsmith preflight` — CLI subcommand emitting a deterministic governance JSON payload
257
+ (`decision`, `requirement_ids`, `test_case_ids`, `confidence_target`, `instruction`).
258
+ - `src/specsmith/agent/broker.py` — natural-language broker (intent + scope + narration).
259
+ - `src/specsmith/agent/repl.py` — Nexus REPL with the `/why` toggle and execution gate.
260
+ - `docker-compose.yml` — pinned vLLM `l1-nexus` model server with the Hermes tool-call parser.
261
+ - `scripts/nexus_smoke.py` — opt-in live smoke test (`NEXUS_LIVE=1` to run against
262
+ a running container).
263
+
264
+ ---
265
+
230
266
  ## VS Code Extension
231
267
 
232
268
  The **specsmith AEE Workbench** VS Code extension is the flagship client:
@@ -160,6 +160,42 @@ Project Settings → Agent tab.
160
160
 
161
161
  ---
162
162
 
163
+ ## Nexus — Plain-English Governance, Local-First
164
+
165
+ **Nexus** is the local-first Nexus runtime that turns plain English into Specsmith-governed
166
+ work. You speak in your own words; Specsmith stays the sole authority on what counts as a
167
+ requirement, a test, or a work item — Nexus just brokers the conversation and runs the work.
168
+
169
+ ```bash
170
+ # Classify a natural-language utterance under Specsmith governance
171
+ specsmith preflight "fix the cleanup dry-run regression" --json
172
+
173
+ # Or drop into the Nexus REPL
174
+ specsmith run
175
+ nexus> what does the cleanup module do? # read-only ask -> answered
176
+ nexus> fix the cleanup dry-run regression # change -> Specsmith approves, runs
177
+ nexus> delete the entire dist directory # destructive -> needs clarification
178
+ nexus> /why # toggle governance details on/off
179
+ ```
180
+
181
+ **How it works.** A natural-language **broker** classifies intent, infers scope from
182
+ your requirements, and asks Specsmith to **preflight** the request. Only when the
183
+ preflight decision is `accepted` does Nexus drive the AG2 orchestrator — and it does so
184
+ through a **bounded-retry harness** so you can never accidentally run away. By default,
185
+ Nexus speaks plain English; toggle `/why` in the REPL to surface the underlying
186
+ requirement, test, and work-item identifiers Specsmith assigned.
187
+
188
+ **Pieces in this repo.**
189
+ - `specsmith preflight` — CLI subcommand emitting a deterministic governance JSON payload
190
+ (`decision`, `requirement_ids`, `test_case_ids`, `confidence_target`, `instruction`).
191
+ - `src/specsmith/agent/broker.py` — natural-language broker (intent + scope + narration).
192
+ - `src/specsmith/agent/repl.py` — Nexus REPL with the `/why` toggle and execution gate.
193
+ - `docker-compose.yml` — pinned vLLM `l1-nexus` model server with the Hermes tool-call parser.
194
+ - `scripts/nexus_smoke.py` — opt-in live smoke test (`NEXUS_LIVE=1` to run against
195
+ a running container).
196
+
197
+ ---
198
+
163
199
  ## VS Code Extension
164
200
 
165
201
  The **specsmith AEE Workbench** VS Code extension is the flagship client:
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "specsmith"
7
- version = "0.3.13.dev216"
7
+ version = "0.3.13.dev220"
8
8
  description = "Applied Epistemic Engineering toolkit — AEE agent sessions, execution profiles, FPGA/HDL governance, tool installer, 50+ CLI commands."
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -153,7 +153,16 @@ module = [
153
153
  "specsmith.importer",
154
154
  "specsmith.agent.providers.gemini",
155
155
  "specsmith.agent.runner",
156
+ "specsmith.agent.broker",
157
+ "specsmith.agent.cleanup",
158
+ "specsmith.agent.indexer",
159
+ "specsmith.agent.orchestrator",
160
+ "specsmith.agent.repl",
161
+ "specsmith.agent.safety",
162
+ "specsmith.agent.tools",
163
+ "specsmith.console_utils",
156
164
  "specsmith.profiles",
165
+ "specsmith.serve",
157
166
  "specsmith.toolrules",
158
167
  "specsmith.tool_installer",
159
168
  ]