specsmith 0.10.1.dev262__tar.gz → 0.10.1.dev272__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 (254) hide show
  1. {specsmith-0.10.1.dev262/src/specsmith.egg-info → specsmith-0.10.1.dev272}/PKG-INFO +69 -46
  2. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/README.md +68 -39
  3. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/pyproject.toml +2 -12
  4. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/agent/chat_runner.py +50 -208
  5. specsmith-0.10.1.dev272/src/specsmith/agent/execution_profiles.py +274 -0
  6. specsmith-0.10.1.dev272/src/specsmith/agent/model_intelligence.py +293 -0
  7. specsmith-0.10.1.dev272/src/specsmith/agent/permissions.py +278 -0
  8. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/agent/profiles.py +36 -0
  9. specsmith-0.10.1.dev272/src/specsmith/agent/provider_registry.py +366 -0
  10. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/agent/repl.py +33 -11
  11. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/agent/runner.py +57 -10
  12. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/agent/tools.py +154 -0
  13. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/auditor.py +46 -4
  14. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/cli.py +571 -248
  15. {specsmith-0.10.1.dev262/src/specsmith/tui/screens → specsmith-0.10.1.dev272/src/specsmith/commands}/__init__.py +1 -1
  16. specsmith-0.10.1.dev272/src/specsmith/commands/intelligence.py +292 -0
  17. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/compressor.py +10 -5
  18. specsmith-0.10.1.dev272/src/specsmith/datasources/__init__.py +14 -0
  19. specsmith-0.10.1.dev272/src/specsmith/datasources/base.py +141 -0
  20. specsmith-0.10.1.dev272/src/specsmith/datasources/citations.py +83 -0
  21. specsmith-0.10.1.dev272/src/specsmith/datasources/fpd.py +72 -0
  22. specsmith-0.10.1.dev272/src/specsmith/datasources/odp.py +75 -0
  23. specsmith-0.10.1.dev272/src/specsmith/datasources/patentsview.py +272 -0
  24. specsmith-0.10.1.dev272/src/specsmith/datasources/pfw.py +81 -0
  25. specsmith-0.10.1.dev272/src/specsmith/datasources/ppubs.py +111 -0
  26. specsmith-0.10.1.dev272/src/specsmith/datasources/ptab.py +126 -0
  27. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/epistemic/belief.py +101 -26
  28. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/exporter.py +39 -3
  29. specsmith-0.10.1.dev272/src/specsmith/governance_logic.py +589 -0
  30. specsmith-0.10.1.dev272/src/specsmith/instinct.py +330 -0
  31. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/ledger.py +14 -8
  32. specsmith-0.10.1.dev272/src/specsmith/paths.py +152 -0
  33. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/phase.py +111 -37
  34. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/requirements.py +61 -17
  35. specsmith-0.10.1.dev272/src/specsmith/safe_write.py +188 -0
  36. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/scaffolder.py +3 -0
  37. specsmith-0.10.1.dev272/src/specsmith/sync.py +286 -0
  38. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/upgrader.py +15 -7
  39. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272/src/specsmith.egg-info}/PKG-INFO +69 -46
  40. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith.egg-info/SOURCES.txt +19 -37
  41. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith.egg-info/requires.txt +0 -8
  42. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_auditor.py +5 -0
  43. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_nexus.py +6 -1
  44. specsmith-0.10.1.dev272/tests/test_permissions.py +448 -0
  45. specsmith-0.10.1.dev262/src/specsmith/commands/__init__.py +0 -7
  46. specsmith-0.10.1.dev262/src/specsmith/commands/ask.py +0 -21
  47. specsmith-0.10.1.dev262/src/specsmith/commands/commit.py +0 -31
  48. specsmith-0.10.1.dev262/src/specsmith/commands/context.py +0 -17
  49. specsmith-0.10.1.dev262/src/specsmith/commands/fix.py +0 -19
  50. specsmith-0.10.1.dev262/src/specsmith/commands/plan.py +0 -19
  51. specsmith-0.10.1.dev262/src/specsmith/commands/registry.py +0 -94
  52. specsmith-0.10.1.dev262/src/specsmith/commands/review.py +0 -18
  53. specsmith-0.10.1.dev262/src/specsmith/commands/test.py +0 -17
  54. specsmith-0.10.1.dev262/src/specsmith/eval/__init__.py +0 -17
  55. specsmith-0.10.1.dev262/src/specsmith/eval/graders.py +0 -137
  56. specsmith-0.10.1.dev262/src/specsmith/eval/harness.py +0 -78
  57. specsmith-0.10.1.dev262/src/specsmith/eval/types.py +0 -94
  58. specsmith-0.10.1.dev262/src/specsmith/feature_flags.py +0 -90
  59. specsmith-0.10.1.dev262/src/specsmith/instinct.py +0 -172
  60. specsmith-0.10.1.dev262/src/specsmith/tui/__init__.py +0 -24
  61. specsmith-0.10.1.dev262/src/specsmith/tui/app.py +0 -133
  62. specsmith-0.10.1.dev262/src/specsmith/tui/bridge.py +0 -227
  63. specsmith-0.10.1.dev262/src/specsmith/tui/screens/project.py +0 -93
  64. specsmith-0.10.1.dev262/src/specsmith/tui/screens/session.py +0 -170
  65. specsmith-0.10.1.dev262/src/specsmith/tui/screens/settings.py +0 -100
  66. specsmith-0.10.1.dev262/src/specsmith/tui/themes/__init__.py +0 -3
  67. specsmith-0.10.1.dev262/src/specsmith/tui/widgets/__init__.py +0 -3
  68. specsmith-0.10.1.dev262/src/specsmith/tui/widgets/chat.py +0 -132
  69. specsmith-0.10.1.dev262/src/specsmith/tui/widgets/command_block.py +0 -74
  70. specsmith-0.10.1.dev262/src/specsmith/tui/widgets/governance_bar.py +0 -66
  71. specsmith-0.10.1.dev262/src/specsmith/tui/widgets/input_bar.py +0 -117
  72. specsmith-0.10.1.dev262/src/specsmith/tui/widgets/provider_bar.py +0 -123
  73. specsmith-0.10.1.dev262/src/specsmith/tui/widgets/token_meter.py +0 -37
  74. specsmith-0.10.1.dev262/src/specsmith/tui/widgets/tool_block.py +0 -99
  75. specsmith-0.10.1.dev262/src/specsmith/tui/widgets/vcs_bar.py +0 -60
  76. specsmith-0.10.1.dev262/src/specsmith/webui/__init__.py +0 -29
  77. specsmith-0.10.1.dev262/src/specsmith/webui/app.py +0 -636
  78. specsmith-0.10.1.dev262/tests/test_commands.py +0 -139
  79. specsmith-0.10.1.dev262/tests/test_eval.py +0 -156
  80. specsmith-0.10.1.dev262/tests/test_feature_flags.py +0 -76
  81. specsmith-0.10.1.dev262/tests/test_instinct.py +0 -82
  82. specsmith-0.10.1.dev262/tests/test_tui.py +0 -342
  83. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/LICENSE +0 -0
  84. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/setup.cfg +0 -0
  85. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/epistemic/__init__.py +0 -0
  86. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/epistemic/belief.py +0 -0
  87. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/epistemic/certainty.py +0 -0
  88. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/epistemic/failure_graph.py +0 -0
  89. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/epistemic/py.typed +0 -0
  90. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/epistemic/recovery.py +0 -0
  91. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/epistemic/session.py +0 -0
  92. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/epistemic/stress_tester.py +0 -0
  93. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/epistemic/trace.py +0 -0
  94. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/__init__.py +0 -0
  95. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/__main__.py +0 -0
  96. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/agent/__init__.py +0 -0
  97. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/agent/broker.py +0 -0
  98. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/agent/cleanup.py +0 -0
  99. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/agent/core.py +0 -0
  100. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/agent/endpoints.py +0 -0
  101. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/agent/events.py +0 -0
  102. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/agent/fallback.py +0 -0
  103. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/agent/indexer.py +0 -0
  104. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/agent/mcp.py +0 -0
  105. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/agent/memory.py +0 -0
  106. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/agent/orchestrator.py +0 -0
  107. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/agent/router.py +0 -0
  108. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/agent/rules.py +0 -0
  109. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/agent/safety.py +0 -0
  110. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/agent/suggester.py +0 -0
  111. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/agent/verifier.py +0 -0
  112. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/agent/voice.py +0 -0
  113. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/architect.py +0 -0
  114. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/auth.py +0 -0
  115. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/block_export.py +0 -0
  116. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/config.py +0 -0
  117. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/console_utils.py +0 -0
  118. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/credit_analyzer.py +0 -0
  119. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/credits.py +0 -0
  120. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/differ.py +0 -0
  121. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/doctor.py +0 -0
  122. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/drive.py +0 -0
  123. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/epistemic/__init__.py +0 -0
  124. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/epistemic/certainty.py +0 -0
  125. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/epistemic/failure_graph.py +0 -0
  126. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/epistemic/recovery.py +0 -0
  127. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/epistemic/stress_tester.py +0 -0
  128. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/executor.py +0 -0
  129. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/gui/__init__.py +0 -0
  130. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/gui/app.py +0 -0
  131. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/gui/main_window.py +0 -0
  132. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/gui/session_tab.py +0 -0
  133. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/gui/theme.py +0 -0
  134. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/gui/widgets/__init__.py +0 -0
  135. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/gui/widgets/chat_view.py +0 -0
  136. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/gui/widgets/input_bar.py +0 -0
  137. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/gui/widgets/provider_bar.py +0 -0
  138. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/gui/widgets/token_meter.py +0 -0
  139. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/gui/widgets/tool_panel.py +0 -0
  140. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/gui/widgets/update_checker.py +0 -0
  141. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/gui/worker.py +0 -0
  142. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/history_search.py +0 -0
  143. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/importer.py +0 -0
  144. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/integrations/__init__.py +0 -0
  145. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/integrations/agent_skill.py +0 -0
  146. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/integrations/aider.py +0 -0
  147. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/integrations/base.py +0 -0
  148. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/integrations/claude_code.py +0 -0
  149. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/integrations/copilot.py +0 -0
  150. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/integrations/cursor.py +0 -0
  151. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/integrations/gemini.py +0 -0
  152. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/integrations/windsurf.py +0 -0
  153. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/languages.py +0 -0
  154. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/patent.py +0 -0
  155. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/plugins.py +0 -0
  156. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/profiles.py +0 -0
  157. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/rate_limits.py +0 -0
  158. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/releaser.py +0 -0
  159. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/requirements_parser.py +0 -0
  160. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/retrieval.py +0 -0
  161. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/serve.py +0 -0
  162. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/session.py +0 -0
  163. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/skills.py +0 -0
  164. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/agents.md.j2 +0 -0
  165. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/community/bug_report.md.j2 +0 -0
  166. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/community/code_of_conduct.md.j2 +0 -0
  167. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/community/contributing.md.j2 +0 -0
  168. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/community/feature_request.md.j2 +0 -0
  169. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/community/license-Apache-2.0.j2 +0 -0
  170. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/community/license-MIT.j2 +0 -0
  171. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/community/pull_request_template.md.j2 +0 -0
  172. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/community/security.md.j2 +0 -0
  173. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/docs/architecture.md.j2 +0 -0
  174. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/docs/mkdocs.yml.j2 +0 -0
  175. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/docs/readthedocs.yaml.j2 +0 -0
  176. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/docs/requirements.md.j2 +0 -0
  177. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/docs/test-spec.md.j2 +0 -0
  178. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/editorconfig.j2 +0 -0
  179. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/gitattributes.j2 +0 -0
  180. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/gitignore.j2 +0 -0
  181. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/go/go.mod.j2 +0 -0
  182. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/go/main.go.j2 +0 -0
  183. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/governance/belief-registry.md.j2 +0 -0
  184. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/governance/context-budget.md.j2 +0 -0
  185. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/governance/drift-metrics.md.j2 +0 -0
  186. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/governance/epistemic-axioms.md.j2 +0 -0
  187. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/governance/failure-modes.md.j2 +0 -0
  188. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/governance/lifecycle.md.j2 +0 -0
  189. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/governance/roles.md.j2 +0 -0
  190. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/governance/rules.md.j2 +0 -0
  191. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/governance/session-protocol.md.j2 +0 -0
  192. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/governance/uncertainty-map.md.j2 +0 -0
  193. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/governance/verification.md.j2 +0 -0
  194. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/js/package.json.j2 +0 -0
  195. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/ledger.md.j2 +0 -0
  196. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/python/cli.py.j2 +0 -0
  197. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/python/init.py.j2 +0 -0
  198. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/python/pyproject.toml.j2 +0 -0
  199. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/readme.md.j2 +0 -0
  200. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/rust/Cargo.toml.j2 +0 -0
  201. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/rust/main.rs.j2 +0 -0
  202. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/scripts/exec.cmd.j2 +0 -0
  203. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/scripts/exec.sh.j2 +0 -0
  204. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/scripts/run.cmd.j2 +0 -0
  205. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/scripts/run.sh.j2 +0 -0
  206. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/scripts/setup.cmd.j2 +0 -0
  207. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/scripts/setup.sh.j2 +0 -0
  208. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/templates/workflows/release.yml.j2 +0 -0
  209. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/tool_installer.py +0 -0
  210. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/toolrules.py +0 -0
  211. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/tools.py +0 -0
  212. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/trace.py +0 -0
  213. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/updater.py +0 -0
  214. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/validator.py +0 -0
  215. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/vcs/__init__.py +0 -0
  216. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/vcs/base.py +0 -0
  217. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/vcs/bitbucket.py +0 -0
  218. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/vcs/github.py +0 -0
  219. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/vcs/gitlab.py +0 -0
  220. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/vcs_commands.py +0 -0
  221. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/wireframes.py +0 -0
  222. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith/workspace.py +0 -0
  223. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith.egg-info/dependency_links.txt +0 -0
  224. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith.egg-info/entry_points.txt +0 -0
  225. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/src/specsmith.egg-info/top_level.txt +0 -0
  226. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_CMD_001.py +0 -0
  227. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_agent_profiles.py +0 -0
  228. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_agent_runner_ready.py +0 -0
  229. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_chat_diff_decision.py +0 -0
  230. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_chat_runner_openai_compat.py +0 -0
  231. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_chat_stdin_protocol.py +0 -0
  232. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_cli.py +0 -0
  233. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_cli_workflows_history_drive.py +0 -0
  234. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_compressor.py +0 -0
  235. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_e2e_nexus.py +0 -0
  236. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_endpoints_cli.py +0 -0
  237. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_endpoints_store.py +0 -0
  238. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_epistemic.py +0 -0
  239. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_fallback_chain.py +0 -0
  240. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_importer.py +0 -0
  241. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_integrations.py +0 -0
  242. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_mcp_client.py +0 -0
  243. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_phase1_4_new.py +0 -0
  244. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_phase34_completion.py +0 -0
  245. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_rate_limits.py +0 -0
  246. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_scaffolder.py +0 -0
  247. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_skill_marketplace.py +0 -0
  248. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_smoke.py +0 -0
  249. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_suggester.py +0 -0
  250. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_tools.py +0 -0
  251. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_validator.py +0 -0
  252. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_vcs.py +0 -0
  253. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_warp_parity.py +0 -0
  254. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev272}/tests/test_warp_parity_followup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specsmith
3
- Version: 0.10.1.dev262
3
+ Version: 0.10.1.dev272
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
@@ -38,8 +38,6 @@ Requires-Dist: ruff>=0.4; extra == "dev"
38
38
  Requires-Dist: mypy>=1.10; extra == "dev"
39
39
  Requires-Dist: pre-commit>=3.0; extra == "dev"
40
40
  Requires-Dist: types-pyyaml>=6.0; extra == "dev"
41
- Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
42
- Requires-Dist: pytest-textual-snapshot>=1.0; extra == "dev"
43
41
  Provides-Extra: docs
44
42
  Requires-Dist: mkdocs>=1.6; extra == "docs"
45
43
  Requires-Dist: mkdocs-material>=9.5; extra == "docs"
@@ -53,10 +51,6 @@ Provides-Extra: mistral
53
51
  Requires-Dist: openai>=1.0; extra == "mistral"
54
52
  Provides-Extra: gui
55
53
  Requires-Dist: PySide6>=6.6; extra == "gui"
56
- Provides-Extra: tui
57
- Requires-Dist: textual>=3.0; extra == "tui"
58
- Provides-Extra: webui
59
- Requires-Dist: nicegui>=3.0; extra == "webui"
60
54
  Provides-Extra: ag2
61
55
  Requires-Dist: ag2[ollama]; extra == "ag2"
62
56
  Provides-Extra: history-semantic
@@ -94,23 +88,17 @@ specsmith treats belief systems like code: codable, testable, and deployable. It
94
88
  epistemically-governed projects, stress-tests requirements as BeliefArtifacts, runs
95
89
  cryptographically-sealed trace vaults, and orchestrates AI agents under formal AEE governance.
96
90
 
97
- **0.10.0Multi-Agent + BYOE.** A `/plan` goes to the architect, `/fix`
98
- goes to the coder, `/review` goes to a reviewer that runs on a different
99
- model family. Each *profile* is a `(provider, model, endpoint?, fallback_chain)`
100
- bundle stored in `~/.specsmith/agents.json`; an *activity routing table*
101
- maps slash commands and AEE phases to profiles; **BYOE endpoints**
102
- (`~/.specsmith/endpoints.json`) let you point a profile at any
103
- OpenAI-v1-compatible backend you self-host (vLLM, llama.cpp `server`,
104
- LM Studio, TGI, ...). Cross-family **diversity guard**, capability
105
- filtering, transient-failure fallback chains, and TraceVault decision
106
- seals on every `/agent` pin are wired in by default. See
107
- [`docs/site/agents.md`](docs/site/agents.md) for the five-minute walkthrough.
91
+ **0.10.1Governance REST API, machine-state sync, and least-privilege permissions.**
92
+ Specsmith now serves as the governance backend for Kairos (the epistemically-governed
93
+ Rust terminal) via `specsmith governance-serve`, keeps `.specsmith/` JSON in sync
94
+ with `docs/` Markdown via `specsmith sync`, and gates every agent tool call via
95
+ `specsmith agent permissions-check`. Multi-agent profiles, BYOE endpoints, and the
96
+ AEE phase lifecycle are all fully wired.
108
97
 
109
98
  ```bash
110
- specsmith agents preset apply default # frontier coder + cross-family reviewer
111
- specsmith endpoints add --id home-vllm \
112
- --base-url http://10.0.0.4:8000/v1 --auth bearer-keyring
113
- specsmith run --agent opus-reviewer # one-shot per-session pin
99
+ specsmith governance-serve --port 7700 # Kairos governance REST API
100
+ specsmith sync # sync .specsmith/ from docs/ markdown
101
+ specsmith agent permissions-check git_push # check tool permission (REG-012)
114
102
  ```
115
103
 
116
104
  It also co-installs the standalone `epistemic` Python library for direct use in any project:
@@ -232,47 +220,82 @@ specsmith phase --project-dir ./my-project
232
220
 
233
221
  ---
234
222
 
235
- ## AG2 Agent Shell — Local AI Agents over Ollama
223
+ ## Machine State Sync
236
224
 
237
- specsmith includes an AG2-based agent shell with three specialized agents:
225
+ `.specsmith/` always mirrors the human-readable `docs/` governance files.
226
+ Run `specsmith sync` after any change to `docs/REQUIREMENTS.md` or `docs/TESTS.md`:
238
227
 
239
- - **Planner** — inspects repo, generates execution plans with acceptance criteria
240
- - **Builder** makes code/doc changes following the plan
241
- - **Verifier** runs tests, accepts or rejects changes
228
+ ```bash
229
+ specsmith sync # regenerate .specsmith/requirements.json + testcases.json
230
+ specsmith sync --check # CI mode: exits 1 if out of sync without writing
231
+ specsmith sync --json # emit sync result as JSON
232
+ ```
242
233
 
243
- All agents run locally on Ollama (default: `qwen2.5:14b`). Zero cloud cost.
234
+ ## Least-Privilege Agent Permissions (REG-012)
244
235
 
245
236
  ```bash
246
- pip install "specsmith[ag2]" # install AG2 + Ollama support
247
- specsmith agent status # verify config + Ollama running
248
- specsmith agent run "fix lint errors" # Plan Build → Verify pipeline
249
- specsmith agent improve "add tests for config.py" # self-improvement with reports
237
+ specsmith agent permissions # show active permission profile
238
+ specsmith agent permissions-check git_push # check if git_push is allowed
239
+ specsmith agent permissions-check git_push --no-log # dry-run (no ledger write)
250
240
  ```
251
241
 
252
- The agent shell stores structured reports at `.specsmith/agent-reports/` with task ID,
253
- files changed, test results, verdict (ACCEPT/REJECT), and follow-up tasks.
254
-
255
- Configurable per-project in `scaffold.yml` under `agents:` or via the VS Code
256
- Project Settings Agent tab.
242
+ Configure in `docs/SPECSMITH.yml`:
243
+ ```yaml
244
+ agent:
245
+ permissions:
246
+ preset: standard # read_only | standard | extended | admin
247
+ # Or custom:
248
+ allow: [read_file, write_file, run_shell, git_status]
249
+ deny: [git_push, git_create_pr]
250
+ ```
257
251
 
258
252
  ---
259
253
 
260
- ## Nexus Plain-English Governance, Local-First
254
+ ## Kairos + Governance REST API
261
255
 
262
- **Nexus** is the local-first Nexus runtime that turns plain English into Specsmith-governed
263
- work. You speak in your own words; Specsmith stays the sole authority on what counts as a
264
- requirement, a test, or a work item Nexus just brokers the conversation and runs the work.
256
+ **Kairos** is the companion Rust terminal runtime (`BitConcepts/kairos`). specsmith
257
+ acts as the governance backend: Kairos spawns `specsmith governance-serve` at startup
258
+ and routes all preflight and verify calls through it.
265
259
 
266
260
  ```bash
261
+ # Start the governance REST API (Kairos calls this automatically)
262
+ specsmith governance-serve --port 7700 --project-dir .
263
+
267
264
  # Classify a natural-language utterance under Specsmith governance
268
265
  specsmith preflight "fix the cleanup dry-run regression" --json
269
266
 
270
- # Or drop into the Nexus REPL
267
+ # Start the agentic REPL
268
+ specsmith run
269
+ > what does the cleanup module do? # read-only ask -> answered
270
+ > fix the cleanup dry-run regression # change -> Specsmith approves, runs
271
+ > delete the entire dist directory # destructive -> needs clarification
272
+ ```
273
+
274
+ ---
275
+
276
+ ## Nexus
277
+
278
+ The Nexus runtime is specsmith's local-first agentic REPL — a
279
+ governance-gated broker that sits between you and the LLM.
280
+
281
+ Every utterance passes through `specsmith preflight` before execution.
282
+ The broker classifies intent, matches requirements, and gates the action.
283
+ After execution, `specsmith verify` checks equilibrium. The `/why` command
284
+ shows the full governance trace.
285
+
286
+ ```bash
287
+ # Interactive REPL with governance
271
288
  specsmith run
272
- nexus> what does the cleanup module do? # read-only ask -> answered
273
- nexus> fix the cleanup dry-run regression # change -> Specsmith approves, runs
274
- nexus> delete the entire dist directory # destructive -> needs clarification
275
- nexus> /why # toggle governance details on/off
289
+ nexus> fix the cleanup bug # broker classifies accepts → executes → verifies
290
+ nexus> /why # show governance trace for last action
291
+ nexus> /exit
292
+ ```
293
+
294
+ The Nexus broker:
295
+ - **Preflight gate**: every change goes through `specsmith preflight`
296
+ - **Bounded retry**: failed actions retry up to 3× with strategy classification
297
+ - **Execution trace**: every action is sealed in the cryptographic trace vault
298
+ - **`/why` toggle**: shows governance rationale in human-readable form
276
299
  ```
277
300
 
278
301
  **How it works.** A natural-language **broker** classifies intent, infers scope from
@@ -16,23 +16,17 @@ specsmith treats belief systems like code: codable, testable, and deployable. It
16
16
  epistemically-governed projects, stress-tests requirements as BeliefArtifacts, runs
17
17
  cryptographically-sealed trace vaults, and orchestrates AI agents under formal AEE governance.
18
18
 
19
- **0.10.0Multi-Agent + BYOE.** A `/plan` goes to the architect, `/fix`
20
- goes to the coder, `/review` goes to a reviewer that runs on a different
21
- model family. Each *profile* is a `(provider, model, endpoint?, fallback_chain)`
22
- bundle stored in `~/.specsmith/agents.json`; an *activity routing table*
23
- maps slash commands and AEE phases to profiles; **BYOE endpoints**
24
- (`~/.specsmith/endpoints.json`) let you point a profile at any
25
- OpenAI-v1-compatible backend you self-host (vLLM, llama.cpp `server`,
26
- LM Studio, TGI, ...). Cross-family **diversity guard**, capability
27
- filtering, transient-failure fallback chains, and TraceVault decision
28
- seals on every `/agent` pin are wired in by default. See
29
- [`docs/site/agents.md`](docs/site/agents.md) for the five-minute walkthrough.
19
+ **0.10.1Governance REST API, machine-state sync, and least-privilege permissions.**
20
+ Specsmith now serves as the governance backend for Kairos (the epistemically-governed
21
+ Rust terminal) via `specsmith governance-serve`, keeps `.specsmith/` JSON in sync
22
+ with `docs/` Markdown via `specsmith sync`, and gates every agent tool call via
23
+ `specsmith agent permissions-check`. Multi-agent profiles, BYOE endpoints, and the
24
+ AEE phase lifecycle are all fully wired.
30
25
 
31
26
  ```bash
32
- specsmith agents preset apply default # frontier coder + cross-family reviewer
33
- specsmith endpoints add --id home-vllm \
34
- --base-url http://10.0.0.4:8000/v1 --auth bearer-keyring
35
- specsmith run --agent opus-reviewer # one-shot per-session pin
27
+ specsmith governance-serve --port 7700 # Kairos governance REST API
28
+ specsmith sync # sync .specsmith/ from docs/ markdown
29
+ specsmith agent permissions-check git_push # check tool permission (REG-012)
36
30
  ```
37
31
 
38
32
  It also co-installs the standalone `epistemic` Python library for direct use in any project:
@@ -154,47 +148,82 @@ specsmith phase --project-dir ./my-project
154
148
 
155
149
  ---
156
150
 
157
- ## AG2 Agent Shell — Local AI Agents over Ollama
151
+ ## Machine State Sync
158
152
 
159
- specsmith includes an AG2-based agent shell with three specialized agents:
153
+ `.specsmith/` always mirrors the human-readable `docs/` governance files.
154
+ Run `specsmith sync` after any change to `docs/REQUIREMENTS.md` or `docs/TESTS.md`:
160
155
 
161
- - **Planner** — inspects repo, generates execution plans with acceptance criteria
162
- - **Builder** makes code/doc changes following the plan
163
- - **Verifier** runs tests, accepts or rejects changes
156
+ ```bash
157
+ specsmith sync # regenerate .specsmith/requirements.json + testcases.json
158
+ specsmith sync --check # CI mode: exits 1 if out of sync without writing
159
+ specsmith sync --json # emit sync result as JSON
160
+ ```
164
161
 
165
- All agents run locally on Ollama (default: `qwen2.5:14b`). Zero cloud cost.
162
+ ## Least-Privilege Agent Permissions (REG-012)
166
163
 
167
164
  ```bash
168
- pip install "specsmith[ag2]" # install AG2 + Ollama support
169
- specsmith agent status # verify config + Ollama running
170
- specsmith agent run "fix lint errors" # Plan Build → Verify pipeline
171
- specsmith agent improve "add tests for config.py" # self-improvement with reports
165
+ specsmith agent permissions # show active permission profile
166
+ specsmith agent permissions-check git_push # check if git_push is allowed
167
+ specsmith agent permissions-check git_push --no-log # dry-run (no ledger write)
172
168
  ```
173
169
 
174
- The agent shell stores structured reports at `.specsmith/agent-reports/` with task ID,
175
- files changed, test results, verdict (ACCEPT/REJECT), and follow-up tasks.
176
-
177
- Configurable per-project in `scaffold.yml` under `agents:` or via the VS Code
178
- Project Settings Agent tab.
170
+ Configure in `docs/SPECSMITH.yml`:
171
+ ```yaml
172
+ agent:
173
+ permissions:
174
+ preset: standard # read_only | standard | extended | admin
175
+ # Or custom:
176
+ allow: [read_file, write_file, run_shell, git_status]
177
+ deny: [git_push, git_create_pr]
178
+ ```
179
179
 
180
180
  ---
181
181
 
182
- ## Nexus Plain-English Governance, Local-First
182
+ ## Kairos + Governance REST API
183
183
 
184
- **Nexus** is the local-first Nexus runtime that turns plain English into Specsmith-governed
185
- work. You speak in your own words; Specsmith stays the sole authority on what counts as a
186
- requirement, a test, or a work item Nexus just brokers the conversation and runs the work.
184
+ **Kairos** is the companion Rust terminal runtime (`BitConcepts/kairos`). specsmith
185
+ acts as the governance backend: Kairos spawns `specsmith governance-serve` at startup
186
+ and routes all preflight and verify calls through it.
187
187
 
188
188
  ```bash
189
+ # Start the governance REST API (Kairos calls this automatically)
190
+ specsmith governance-serve --port 7700 --project-dir .
191
+
189
192
  # Classify a natural-language utterance under Specsmith governance
190
193
  specsmith preflight "fix the cleanup dry-run regression" --json
191
194
 
192
- # Or drop into the Nexus REPL
195
+ # Start the agentic REPL
196
+ specsmith run
197
+ > what does the cleanup module do? # read-only ask -> answered
198
+ > fix the cleanup dry-run regression # change -> Specsmith approves, runs
199
+ > delete the entire dist directory # destructive -> needs clarification
200
+ ```
201
+
202
+ ---
203
+
204
+ ## Nexus
205
+
206
+ The Nexus runtime is specsmith's local-first agentic REPL — a
207
+ governance-gated broker that sits between you and the LLM.
208
+
209
+ Every utterance passes through `specsmith preflight` before execution.
210
+ The broker classifies intent, matches requirements, and gates the action.
211
+ After execution, `specsmith verify` checks equilibrium. The `/why` command
212
+ shows the full governance trace.
213
+
214
+ ```bash
215
+ # Interactive REPL with governance
193
216
  specsmith run
194
- nexus> what does the cleanup module do? # read-only ask -> answered
195
- nexus> fix the cleanup dry-run regression # change -> Specsmith approves, runs
196
- nexus> delete the entire dist directory # destructive -> needs clarification
197
- nexus> /why # toggle governance details on/off
217
+ nexus> fix the cleanup bug # broker classifies accepts → executes → verifies
218
+ nexus> /why # show governance trace for last action
219
+ nexus> /exit
220
+ ```
221
+
222
+ The Nexus broker:
223
+ - **Preflight gate**: every change goes through `specsmith preflight`
224
+ - **Bounded retry**: failed actions retry up to 3× with strategy classification
225
+ - **Execution trace**: every action is sealed in the cryptographic trace vault
226
+ - **`/why` toggle**: shows governance rationale in human-readable form
198
227
  ```
199
228
 
200
229
  **How it works.** A natural-language **broker** classifies intent, infers scope from
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "specsmith"
7
- version = "0.10.1.dev262"
7
+ version = "0.10.1.dev272"
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"
@@ -51,8 +51,6 @@ dev = [
51
51
  "mypy>=1.10",
52
52
  "pre-commit>=3.0",
53
53
  "types-pyyaml>=6.0",
54
- "pytest-asyncio>=0.23",
55
- "pytest-textual-snapshot>=1.0",
56
54
  ]
57
55
  docs = [
58
56
  "mkdocs>=1.6",
@@ -67,8 +65,6 @@ openai = ["openai>=1.0"]
67
65
  gemini = ["google-genai>=1.0"]
68
66
  mistral = ["openai>=1.0"] # Mistral uses the openai SDK pointed at api.mistral.ai
69
67
  gui = ["PySide6>=6.6"]
70
- tui = ["textual>=3.0"]
71
- webui = ["nicegui>=3.0"]
72
68
  # AG2 agent shell (Planner/Builder/Verifier over Ollama)
73
69
  ag2 = ["ag2[ollama]"]
74
70
  # Optional semantic backend for `specsmith history search --semantic` (REQ-135).
@@ -186,15 +182,9 @@ module = [
186
182
  "specsmith.serve",
187
183
  "specsmith.toolrules",
188
184
  "specsmith.tool_installer",
189
- "specsmith.commands.*",
190
- "specsmith.eval.*",
191
- "specsmith.feature_flags",
192
- "specsmith.instinct",
193
- "specsmith.tui.*",
194
- "specsmith.webui.*",
185
+ "specsmith.commands.intelligence",
195
186
  ]
196
187
  ignore_errors = true
197
188
 
198
189
  [tool.pytest.ini_options]
199
190
  testpaths = ["tests"]
200
- asyncio_mode = "auto"