specsmith 0.10.1.dev262__tar.gz → 0.10.1.dev277__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 (255) hide show
  1. {specsmith-0.10.1.dev262/src/specsmith.egg-info → specsmith-0.10.1.dev277}/PKG-INFO +90 -93
  2. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/README.md +89 -86
  3. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/pyproject.toml +2 -12
  4. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/agent/chat_runner.py +50 -208
  5. specsmith-0.10.1.dev277/src/specsmith/agent/execution_profiles.py +274 -0
  6. specsmith-0.10.1.dev277/src/specsmith/agent/model_intelligence.py +293 -0
  7. specsmith-0.10.1.dev277/src/specsmith/agent/permissions.py +278 -0
  8. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/agent/profiles.py +36 -0
  9. specsmith-0.10.1.dev277/src/specsmith/agent/provider_registry.py +366 -0
  10. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/agent/repl.py +33 -11
  11. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/agent/runner.py +57 -10
  12. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/agent/tools.py +154 -0
  13. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/auditor.py +46 -4
  14. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/cli.py +678 -248
  15. {specsmith-0.10.1.dev262/src/specsmith/tui/screens → specsmith-0.10.1.dev277/src/specsmith/commands}/__init__.py +1 -1
  16. specsmith-0.10.1.dev277/src/specsmith/commands/intelligence.py +292 -0
  17. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/compressor.py +10 -5
  18. specsmith-0.10.1.dev277/src/specsmith/datasources/__init__.py +14 -0
  19. specsmith-0.10.1.dev277/src/specsmith/datasources/base.py +141 -0
  20. specsmith-0.10.1.dev277/src/specsmith/datasources/citations.py +83 -0
  21. specsmith-0.10.1.dev277/src/specsmith/datasources/fpd.py +72 -0
  22. specsmith-0.10.1.dev277/src/specsmith/datasources/odp.py +75 -0
  23. specsmith-0.10.1.dev277/src/specsmith/datasources/patentsview.py +272 -0
  24. specsmith-0.10.1.dev277/src/specsmith/datasources/pfw.py +81 -0
  25. specsmith-0.10.1.dev277/src/specsmith/datasources/ppubs.py +111 -0
  26. specsmith-0.10.1.dev277/src/specsmith/datasources/ptab.py +126 -0
  27. specsmith-0.10.1.dev277/src/specsmith/editor.py +277 -0
  28. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/epistemic/belief.py +101 -26
  29. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/exporter.py +39 -3
  30. specsmith-0.10.1.dev277/src/specsmith/governance_logic.py +589 -0
  31. specsmith-0.10.1.dev277/src/specsmith/instinct.py +330 -0
  32. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/ledger.py +14 -8
  33. specsmith-0.10.1.dev277/src/specsmith/paths.py +152 -0
  34. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/phase.py +111 -37
  35. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/requirements.py +61 -17
  36. specsmith-0.10.1.dev277/src/specsmith/safe_write.py +188 -0
  37. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/scaffolder.py +3 -0
  38. specsmith-0.10.1.dev277/src/specsmith/sync.py +286 -0
  39. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/upgrader.py +15 -7
  40. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277/src/specsmith.egg-info}/PKG-INFO +90 -93
  41. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith.egg-info/SOURCES.txt +20 -37
  42. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith.egg-info/requires.txt +0 -8
  43. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_auditor.py +5 -0
  44. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_nexus.py +14 -4
  45. specsmith-0.10.1.dev277/tests/test_permissions.py +448 -0
  46. specsmith-0.10.1.dev262/src/specsmith/commands/__init__.py +0 -7
  47. specsmith-0.10.1.dev262/src/specsmith/commands/ask.py +0 -21
  48. specsmith-0.10.1.dev262/src/specsmith/commands/commit.py +0 -31
  49. specsmith-0.10.1.dev262/src/specsmith/commands/context.py +0 -17
  50. specsmith-0.10.1.dev262/src/specsmith/commands/fix.py +0 -19
  51. specsmith-0.10.1.dev262/src/specsmith/commands/plan.py +0 -19
  52. specsmith-0.10.1.dev262/src/specsmith/commands/registry.py +0 -94
  53. specsmith-0.10.1.dev262/src/specsmith/commands/review.py +0 -18
  54. specsmith-0.10.1.dev262/src/specsmith/commands/test.py +0 -17
  55. specsmith-0.10.1.dev262/src/specsmith/eval/__init__.py +0 -17
  56. specsmith-0.10.1.dev262/src/specsmith/eval/graders.py +0 -137
  57. specsmith-0.10.1.dev262/src/specsmith/eval/harness.py +0 -78
  58. specsmith-0.10.1.dev262/src/specsmith/eval/types.py +0 -94
  59. specsmith-0.10.1.dev262/src/specsmith/feature_flags.py +0 -90
  60. specsmith-0.10.1.dev262/src/specsmith/instinct.py +0 -172
  61. specsmith-0.10.1.dev262/src/specsmith/tui/__init__.py +0 -24
  62. specsmith-0.10.1.dev262/src/specsmith/tui/app.py +0 -133
  63. specsmith-0.10.1.dev262/src/specsmith/tui/bridge.py +0 -227
  64. specsmith-0.10.1.dev262/src/specsmith/tui/screens/project.py +0 -93
  65. specsmith-0.10.1.dev262/src/specsmith/tui/screens/session.py +0 -170
  66. specsmith-0.10.1.dev262/src/specsmith/tui/screens/settings.py +0 -100
  67. specsmith-0.10.1.dev262/src/specsmith/tui/themes/__init__.py +0 -3
  68. specsmith-0.10.1.dev262/src/specsmith/tui/widgets/__init__.py +0 -3
  69. specsmith-0.10.1.dev262/src/specsmith/tui/widgets/chat.py +0 -132
  70. specsmith-0.10.1.dev262/src/specsmith/tui/widgets/command_block.py +0 -74
  71. specsmith-0.10.1.dev262/src/specsmith/tui/widgets/governance_bar.py +0 -66
  72. specsmith-0.10.1.dev262/src/specsmith/tui/widgets/input_bar.py +0 -117
  73. specsmith-0.10.1.dev262/src/specsmith/tui/widgets/provider_bar.py +0 -123
  74. specsmith-0.10.1.dev262/src/specsmith/tui/widgets/token_meter.py +0 -37
  75. specsmith-0.10.1.dev262/src/specsmith/tui/widgets/tool_block.py +0 -99
  76. specsmith-0.10.1.dev262/src/specsmith/tui/widgets/vcs_bar.py +0 -60
  77. specsmith-0.10.1.dev262/src/specsmith/webui/__init__.py +0 -29
  78. specsmith-0.10.1.dev262/src/specsmith/webui/app.py +0 -636
  79. specsmith-0.10.1.dev262/tests/test_commands.py +0 -139
  80. specsmith-0.10.1.dev262/tests/test_eval.py +0 -156
  81. specsmith-0.10.1.dev262/tests/test_feature_flags.py +0 -76
  82. specsmith-0.10.1.dev262/tests/test_instinct.py +0 -82
  83. specsmith-0.10.1.dev262/tests/test_tui.py +0 -342
  84. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/LICENSE +0 -0
  85. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/setup.cfg +0 -0
  86. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/epistemic/__init__.py +0 -0
  87. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/epistemic/belief.py +0 -0
  88. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/epistemic/certainty.py +0 -0
  89. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/epistemic/failure_graph.py +0 -0
  90. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/epistemic/py.typed +0 -0
  91. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/epistemic/recovery.py +0 -0
  92. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/epistemic/session.py +0 -0
  93. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/epistemic/stress_tester.py +0 -0
  94. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/epistemic/trace.py +0 -0
  95. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/__init__.py +0 -0
  96. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/__main__.py +0 -0
  97. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/agent/__init__.py +0 -0
  98. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/agent/broker.py +0 -0
  99. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/agent/cleanup.py +0 -0
  100. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/agent/core.py +0 -0
  101. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/agent/endpoints.py +0 -0
  102. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/agent/events.py +0 -0
  103. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/agent/fallback.py +0 -0
  104. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/agent/indexer.py +0 -0
  105. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/agent/mcp.py +0 -0
  106. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/agent/memory.py +0 -0
  107. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/agent/orchestrator.py +0 -0
  108. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/agent/router.py +0 -0
  109. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/agent/rules.py +0 -0
  110. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/agent/safety.py +0 -0
  111. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/agent/suggester.py +0 -0
  112. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/agent/verifier.py +0 -0
  113. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/agent/voice.py +0 -0
  114. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/architect.py +0 -0
  115. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/auth.py +0 -0
  116. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/block_export.py +0 -0
  117. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/config.py +0 -0
  118. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/console_utils.py +0 -0
  119. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/credit_analyzer.py +0 -0
  120. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/credits.py +0 -0
  121. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/differ.py +0 -0
  122. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/doctor.py +0 -0
  123. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/drive.py +0 -0
  124. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/epistemic/__init__.py +0 -0
  125. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/epistemic/certainty.py +0 -0
  126. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/epistemic/failure_graph.py +0 -0
  127. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/epistemic/recovery.py +0 -0
  128. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/epistemic/stress_tester.py +0 -0
  129. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/executor.py +0 -0
  130. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/gui/__init__.py +0 -0
  131. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/gui/app.py +0 -0
  132. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/gui/main_window.py +0 -0
  133. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/gui/session_tab.py +0 -0
  134. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/gui/theme.py +0 -0
  135. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/gui/widgets/__init__.py +0 -0
  136. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/gui/widgets/chat_view.py +0 -0
  137. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/gui/widgets/input_bar.py +0 -0
  138. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/gui/widgets/provider_bar.py +0 -0
  139. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/gui/widgets/token_meter.py +0 -0
  140. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/gui/widgets/tool_panel.py +0 -0
  141. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/gui/widgets/update_checker.py +0 -0
  142. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/gui/worker.py +0 -0
  143. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/history_search.py +0 -0
  144. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/importer.py +0 -0
  145. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/integrations/__init__.py +0 -0
  146. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/integrations/agent_skill.py +0 -0
  147. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/integrations/aider.py +0 -0
  148. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/integrations/base.py +0 -0
  149. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/integrations/claude_code.py +0 -0
  150. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/integrations/copilot.py +0 -0
  151. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/integrations/cursor.py +0 -0
  152. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/integrations/gemini.py +0 -0
  153. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/integrations/windsurf.py +0 -0
  154. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/languages.py +0 -0
  155. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/patent.py +0 -0
  156. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/plugins.py +0 -0
  157. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/profiles.py +0 -0
  158. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/rate_limits.py +0 -0
  159. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/releaser.py +0 -0
  160. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/requirements_parser.py +0 -0
  161. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/retrieval.py +0 -0
  162. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/serve.py +0 -0
  163. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/session.py +0 -0
  164. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/skills.py +0 -0
  165. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/agents.md.j2 +0 -0
  166. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/community/bug_report.md.j2 +0 -0
  167. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/community/code_of_conduct.md.j2 +0 -0
  168. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/community/contributing.md.j2 +0 -0
  169. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/community/feature_request.md.j2 +0 -0
  170. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/community/license-Apache-2.0.j2 +0 -0
  171. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/community/license-MIT.j2 +0 -0
  172. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/community/pull_request_template.md.j2 +0 -0
  173. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/community/security.md.j2 +0 -0
  174. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/docs/architecture.md.j2 +0 -0
  175. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/docs/mkdocs.yml.j2 +0 -0
  176. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/docs/readthedocs.yaml.j2 +0 -0
  177. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/docs/requirements.md.j2 +0 -0
  178. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/docs/test-spec.md.j2 +0 -0
  179. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/editorconfig.j2 +0 -0
  180. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/gitattributes.j2 +0 -0
  181. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/gitignore.j2 +0 -0
  182. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/go/go.mod.j2 +0 -0
  183. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/go/main.go.j2 +0 -0
  184. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/governance/belief-registry.md.j2 +0 -0
  185. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/governance/context-budget.md.j2 +0 -0
  186. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/governance/drift-metrics.md.j2 +0 -0
  187. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/governance/epistemic-axioms.md.j2 +0 -0
  188. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/governance/failure-modes.md.j2 +0 -0
  189. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/governance/lifecycle.md.j2 +0 -0
  190. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/governance/roles.md.j2 +0 -0
  191. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/governance/rules.md.j2 +0 -0
  192. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/governance/session-protocol.md.j2 +0 -0
  193. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/governance/uncertainty-map.md.j2 +0 -0
  194. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/governance/verification.md.j2 +0 -0
  195. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/js/package.json.j2 +0 -0
  196. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/ledger.md.j2 +0 -0
  197. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/python/cli.py.j2 +0 -0
  198. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/python/init.py.j2 +0 -0
  199. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/python/pyproject.toml.j2 +0 -0
  200. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/readme.md.j2 +0 -0
  201. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/rust/Cargo.toml.j2 +0 -0
  202. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/rust/main.rs.j2 +0 -0
  203. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/scripts/exec.cmd.j2 +0 -0
  204. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/scripts/exec.sh.j2 +0 -0
  205. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/scripts/run.cmd.j2 +0 -0
  206. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/scripts/run.sh.j2 +0 -0
  207. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/scripts/setup.cmd.j2 +0 -0
  208. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/scripts/setup.sh.j2 +0 -0
  209. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/templates/workflows/release.yml.j2 +0 -0
  210. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/tool_installer.py +0 -0
  211. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/toolrules.py +0 -0
  212. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/tools.py +0 -0
  213. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/trace.py +0 -0
  214. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/updater.py +0 -0
  215. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/validator.py +0 -0
  216. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/vcs/__init__.py +0 -0
  217. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/vcs/base.py +0 -0
  218. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/vcs/bitbucket.py +0 -0
  219. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/vcs/github.py +0 -0
  220. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/vcs/gitlab.py +0 -0
  221. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/vcs_commands.py +0 -0
  222. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/wireframes.py +0 -0
  223. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith/workspace.py +0 -0
  224. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith.egg-info/dependency_links.txt +0 -0
  225. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith.egg-info/entry_points.txt +0 -0
  226. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/src/specsmith.egg-info/top_level.txt +0 -0
  227. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_CMD_001.py +0 -0
  228. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_agent_profiles.py +0 -0
  229. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_agent_runner_ready.py +0 -0
  230. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_chat_diff_decision.py +0 -0
  231. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_chat_runner_openai_compat.py +0 -0
  232. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_chat_stdin_protocol.py +0 -0
  233. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_cli.py +0 -0
  234. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_cli_workflows_history_drive.py +0 -0
  235. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_compressor.py +0 -0
  236. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_e2e_nexus.py +0 -0
  237. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_endpoints_cli.py +0 -0
  238. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_endpoints_store.py +0 -0
  239. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_epistemic.py +0 -0
  240. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_fallback_chain.py +0 -0
  241. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_importer.py +0 -0
  242. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_integrations.py +0 -0
  243. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_mcp_client.py +0 -0
  244. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_phase1_4_new.py +0 -0
  245. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_phase34_completion.py +0 -0
  246. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_rate_limits.py +0 -0
  247. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_scaffolder.py +0 -0
  248. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_skill_marketplace.py +0 -0
  249. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_smoke.py +0 -0
  250. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_suggester.py +0 -0
  251. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_tools.py +0 -0
  252. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_validator.py +0 -0
  253. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_vcs.py +0 -0
  254. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/tests/test_warp_parity.py +0 -0
  255. {specsmith-0.10.1.dev262 → specsmith-0.10.1.dev277}/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.dev277
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
@@ -84,8 +78,6 @@ Dynamic: license-file
84
78
  [![PyPI](https://img.shields.io/pypi/v/specsmith?label=stable&style=flat&color=blue&cacheSeconds=60)](https://pypi.org/project/specsmith/)
85
79
  [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/downloads/)
86
80
  [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
87
- [![VS Code Extension](https://img.shields.io/badge/VS%20Code-AEE%20Workbench-4ec9b0?logo=visualstudiocode)](https://github.com/BitConcepts/specsmith-vscode)
88
-
89
81
  **Applied Epistemic Engineering toolkit for AI-assisted development.**
90
82
 
91
83
  > Intelligence proposes. Constraints decide. The ledger remembers.
@@ -94,23 +86,17 @@ specsmith treats belief systems like code: codable, testable, and deployable. It
94
86
  epistemically-governed projects, stress-tests requirements as BeliefArtifacts, runs
95
87
  cryptographically-sealed trace vaults, and orchestrates AI agents under formal AEE governance.
96
88
 
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.
89
+ **0.10.1Governance REST API, machine-state sync, and least-privilege permissions.**
90
+ Specsmith now serves as the governance backend for Kairos (the epistemically-governed
91
+ Rust terminal) via `specsmith governance-serve`, keeps `.specsmith/` JSON in sync
92
+ with `docs/` Markdown via `specsmith sync`, and gates every agent tool call via
93
+ `specsmith agent permissions-check`. Multi-agent profiles, BYOE endpoints, and the
94
+ AEE phase lifecycle are all fully wired.
108
95
 
109
96
  ```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
97
+ specsmith governance-serve --port 7700 # Kairos governance REST API
98
+ specsmith sync # sync .specsmith/ from docs/ markdown
99
+ specsmith agent permissions-check git_push # check tool permission (REG-012)
114
100
  ```
115
101
 
116
102
  It also co-installs the standalone `epistemic` Python library for direct use in any project:
@@ -154,23 +140,15 @@ specsmith phase set requirements # jump to a specific phase
154
140
  specsmith phase list # list all phases
155
141
  ```
156
142
 
157
- The current phase is persisted in `scaffold.yml` as `aee_phase` and displayed in the VS Code
158
- Settings Panel. Each phase has a checklist of file/command criteria, recommended commands,
159
- and a readiness percentage.
143
+ The current phase is persisted in `scaffold.yml` as `aee_phase` and displayed in the
144
+ Kairos Governance page. Each phase has a checklist of file/command criteria, recommended
145
+ commands, and a readiness percentage.
160
146
 
161
147
  ---
162
148
 
163
149
  ## Install
164
150
 
165
- **Recommended — via the VS Code extension (creates a project-isolated environment):**
166
-
167
- 1. Install the [specsmith AEE Workbench](https://github.com/BitConcepts/specsmith-vscode) VS Code extension
168
- 2. Open `Ctrl+Shift+,` (⚙ specsmith Settings)
169
- 3. Click **🔒 Create Environment** — creates `~/.specsmith/venv/` with specsmith + your provider packages
170
-
171
- The extension uses this environment for all agent sessions and terminal commands.
172
-
173
- **Or via pipx (system-wide):**
151
+ **Recommended — via pipx (works with Kairos, any terminal, and CI):**
174
152
 
175
153
  ```bash
176
154
  pipx install specsmith # core CLI + epistemic library
@@ -232,47 +210,82 @@ specsmith phase --project-dir ./my-project
232
210
 
233
211
  ---
234
212
 
235
- ## AG2 Agent Shell — Local AI Agents over Ollama
213
+ ## Machine State Sync
236
214
 
237
- specsmith includes an AG2-based agent shell with three specialized agents:
215
+ `.specsmith/` always mirrors the human-readable `docs/` governance files.
216
+ Run `specsmith sync` after any change to `docs/REQUIREMENTS.md` or `docs/TESTS.md`:
238
217
 
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
218
+ ```bash
219
+ specsmith sync # regenerate .specsmith/requirements.json + testcases.json
220
+ specsmith sync --check # CI mode: exits 1 if out of sync without writing
221
+ specsmith sync --json # emit sync result as JSON
222
+ ```
242
223
 
243
- All agents run locally on Ollama (default: `qwen2.5:14b`). Zero cloud cost.
224
+ ## Least-Privilege Agent Permissions (REG-012)
244
225
 
245
226
  ```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
227
+ specsmith agent permissions # show active permission profile
228
+ specsmith agent permissions-check git_push # check if git_push is allowed
229
+ specsmith agent permissions-check git_push --no-log # dry-run (no ledger write)
250
230
  ```
251
231
 
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.
232
+ Configure in `docs/SPECSMITH.yml`:
233
+ ```yaml
234
+ agent:
235
+ permissions:
236
+ preset: standard # read_only | standard | extended | admin
237
+ # Or custom:
238
+ allow: [read_file, write_file, run_shell, git_status]
239
+ deny: [git_push, git_create_pr]
240
+ ```
257
241
 
258
242
  ---
259
243
 
260
- ## Nexus Plain-English Governance, Local-First
244
+ ## Kairos + Governance REST API
261
245
 
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.
246
+ **Kairos** is the companion Rust terminal runtime (`BitConcepts/kairos`). specsmith
247
+ acts as the governance backend: Kairos spawns `specsmith governance-serve` at startup
248
+ and routes all preflight and verify calls through it.
265
249
 
266
250
  ```bash
251
+ # Start the governance REST API (Kairos calls this automatically)
252
+ specsmith governance-serve --port 7700 --project-dir .
253
+
267
254
  # Classify a natural-language utterance under Specsmith governance
268
255
  specsmith preflight "fix the cleanup dry-run regression" --json
269
256
 
270
- # Or drop into the Nexus REPL
257
+ # Start the agentic REPL
258
+ specsmith run
259
+ > what does the cleanup module do? # read-only ask -> answered
260
+ > fix the cleanup dry-run regression # change -> Specsmith approves, runs
261
+ > delete the entire dist directory # destructive -> needs clarification
262
+ ```
263
+
264
+ ---
265
+
266
+ ## Nexus
267
+
268
+ The Nexus runtime is specsmith's local-first agentic REPL — a
269
+ governance-gated broker that sits between you and the LLM.
270
+
271
+ Every utterance passes through `specsmith preflight` before execution.
272
+ The broker classifies intent, matches requirements, and gates the action.
273
+ After execution, `specsmith verify` checks equilibrium. The `/why` command
274
+ shows the full governance trace.
275
+
276
+ ```bash
277
+ # Interactive REPL with governance
271
278
  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
279
+ nexus> fix the cleanup bug # broker classifies accepts → executes → verifies
280
+ nexus> /why # show governance trace for last action
281
+ nexus> /exit
282
+ ```
283
+
284
+ The Nexus broker:
285
+ - **Preflight gate**: every change goes through `specsmith preflight`
286
+ - **Bounded retry**: failed actions retry up to 3× with strategy classification
287
+ - **Execution trace**: every action is sealed in the cryptographic trace vault
288
+ - **`/why` toggle**: shows governance rationale in human-readable form
276
289
  ```
277
290
 
278
291
  **How it works.** A natural-language **broker** classifies intent, infers scope from
@@ -293,36 +306,20 @@ requirement, test, and work-item identifiers Specsmith assigned.
293
306
 
294
307
  ---
295
308
 
296
- ## VS Code Extension
309
+ ## Kairos Flagship Terminal Client
297
310
 
298
- The **specsmith AEE Workbench** VS Code extension is the flagship client:
311
+ **[Kairos](https://github.com/BitConcepts/kairos)** is the recommended terminal client for specsmith.
312
+ Kairos spawns specsmith as a managed governance child process at startup and routes all
313
+ preflight, verify, and BYOE proxy calls through it. The Governance settings page shows live
314
+ specsmith status, version, and one-click update.
299
315
 
300
- ```
301
- # VS Code: Ctrl+Shift+P specsmith: New Agent Session
302
- # Settings: Ctrl+Shift+, (⚙ specsmith Settings global)
303
- # Project Settings: Ctrl+Shift+G (⚙ Project Settings — per-project)
316
+ ```bash
317
+ # Kairos starts specsmith automatically; or run manually:
318
+ specsmith governance-serve --port 7700 --project-dir .
304
319
  ```
305
320
 
306
- **Key features:**
307
- - **Dual-panel architecture** **⚙ specsmith Settings** (global: venv, version, Ollama, system)
308
- and **⚙ Project Settings** (per-project: scaffold, tools, files, actions, execution)
309
- - **Global environment management** — `~/.specsmith/venv/` with Create / Update / Rebuild / Delete;
310
- persistent restart banner; Remove System Installs cleanup button
311
- - **VCS context at session start** — git status + recent commits shown in chat and in system prompt
312
- - **Execution profiles** — safe / standard / open / admin; custom allow/block command lists
313
- - **AEE phase indicator** — shows current phase with readiness %, Next Phase button, phase selector
314
- - **AI agent sessions** — independent process per project, JSONL bridge, chat with file injection
315
- - **AG2 agent shell** — Planner/Builder/Verifier agents over Ollama in Actions tab
316
- - **Agent tab** — per-project provider/model/context/iteration config (overrides global defaults)
317
- - **Live model listing** — Anthropic, OpenAI, Gemini, Mistral, local Ollama (GPU-aware)
318
- - **Ollama model catalog** — 16 models, 4 tiers, GPU-aware recommendations, filter by installed/available
319
- - **Ollama integration** — model manager (update/remove/update-all), version check, upgrade
320
- - **FPGA/HDL tool support** — vivado, gtkwave, vsg, ghdl, verilator, yosys, nextpnr, and 15 more
321
- - **Tool installer** — scan installed tools; one-click install via winget/brew/apt for missing tools
322
- - **API key management** — stored in OS credential store (Windows Credential Manager / macOS Keychain)
323
- - **Update checker** — PyPI version check, auto-checks on panel open, release channel selector
324
-
325
- **[→ specsmith-vscode on GitHub](https://github.com/BitConcepts/specsmith-vscode)**
321
+ The VS Code extension (`specsmith-vscode`) has been **deprecated** in favour of Kairos.
322
+ Use `pipx install specsmith` for standalone CLI usage from any terminal.
326
323
 
327
324
  ---
328
325
 
@@ -330,7 +327,7 @@ The **specsmith AEE Workbench** VS Code extension is the flagship client:
330
327
 
331
328
  specsmith is open source and built by a small team. Every bit of support helps:
332
329
 
333
- - ⭐ **Star** [specsmith](https://github.com/BitConcepts/specsmith) and [specsmith-vscode](https://github.com/BitConcepts/specsmith-vscode) on GitHub
330
+ - ⭐ **Star** [specsmith](https://github.com/BitConcepts/specsmith) and [kairos](https://github.com/BitConcepts/kairos) on GitHub
334
331
  - 📣 **Tell your friends and colleagues** — word of mouth is our best marketing
335
332
  - 🐛 **Report bugs** via [GitHub Issues](https://github.com/BitConcepts/specsmith/issues) — even small ones help
336
333
  - 💡 **Suggest features** via [GitHub Discussions](https://github.com/BitConcepts/specsmith/discussions) — we read every suggestion
@@ -353,8 +350,8 @@ specsmith ollama suggest requirements # task-based recommendations
353
350
  specsmith ollama list # show installed models
354
351
  ```
355
352
 
356
- GPU-aware context sizing in the VS Code extension: 4K/8K/16K/32K tokens based on detected VRAM.
357
- Override with `specsmith.ollamaContextLength` in VS Code settings.
353
+ GPU-aware context sizing: 4K/8K/16K/32K tokens based on detected VRAM.
354
+ Override via `SPECSMITH_OLLAMA_CONTEXT_LENGTH` env var or `ollama.context_length` in `.specsmith/config.yml`.
358
355
 
359
356
  ---
360
357
 
@@ -455,20 +452,20 @@ Use cases: linguistics research, compliance pipelines, AI alignment, patent pros
455
452
 
456
453
  specsmith governs itself — the specsmith repo is a specsmith-managed project. Run `specsmith audit`
457
454
  in this repo to check its governance health. This means every feature we add to specsmith is
458
- immediately dogfooded on specsmith itself. The [VS Code extension](https://github.com/BitConcepts/specsmith-vscode)
459
- is developed alongside it as the flagship client.
455
+ immediately dogfooded on specsmith itself. [Kairos](https://github.com/BitConcepts/kairos)
456
+ is the companion terminal and flagship client.
460
457
 
461
458
  ## Documentation
462
459
 
463
460
  **[specsmith.readthedocs.io](https://specsmith.readthedocs.io)** — Full manual: AEE primer,
464
- command reference, project types, tool registry, governance model, Ollama guide, VS Code extension.
461
+ command reference, project types, tool registry, governance model, Ollama guide, Kairos integration.
465
462
 
466
463
  ## Links
467
464
 
468
465
  - [PyPI](https://pypi.org/project/specsmith/)
469
466
  - [Documentation](https://specsmith.readthedocs.io)
470
467
  - [Changelog](CHANGELOG.md)
471
- - [VS Code Extension](https://github.com/BitConcepts/specsmith-vscode)
468
+ - [Kairos terminal client](https://github.com/BitConcepts/kairos)
472
469
  - [Contributing](CONTRIBUTING.md)
473
470
  - [Security](SECURITY.md)
474
471
 
@@ -6,8 +6,6 @@
6
6
  [![PyPI](https://img.shields.io/pypi/v/specsmith?label=stable&style=flat&color=blue&cacheSeconds=60)](https://pypi.org/project/specsmith/)
7
7
  [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/downloads/)
8
8
  [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
9
- [![VS Code Extension](https://img.shields.io/badge/VS%20Code-AEE%20Workbench-4ec9b0?logo=visualstudiocode)](https://github.com/BitConcepts/specsmith-vscode)
10
-
11
9
  **Applied Epistemic Engineering toolkit for AI-assisted development.**
12
10
 
13
11
  > Intelligence proposes. Constraints decide. The ledger remembers.
@@ -16,23 +14,17 @@ specsmith treats belief systems like code: codable, testable, and deployable. It
16
14
  epistemically-governed projects, stress-tests requirements as BeliefArtifacts, runs
17
15
  cryptographically-sealed trace vaults, and orchestrates AI agents under formal AEE governance.
18
16
 
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.
17
+ **0.10.1Governance REST API, machine-state sync, and least-privilege permissions.**
18
+ Specsmith now serves as the governance backend for Kairos (the epistemically-governed
19
+ Rust terminal) via `specsmith governance-serve`, keeps `.specsmith/` JSON in sync
20
+ with `docs/` Markdown via `specsmith sync`, and gates every agent tool call via
21
+ `specsmith agent permissions-check`. Multi-agent profiles, BYOE endpoints, and the
22
+ AEE phase lifecycle are all fully wired.
30
23
 
31
24
  ```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
25
+ specsmith governance-serve --port 7700 # Kairos governance REST API
26
+ specsmith sync # sync .specsmith/ from docs/ markdown
27
+ specsmith agent permissions-check git_push # check tool permission (REG-012)
36
28
  ```
37
29
 
38
30
  It also co-installs the standalone `epistemic` Python library for direct use in any project:
@@ -76,23 +68,15 @@ specsmith phase set requirements # jump to a specific phase
76
68
  specsmith phase list # list all phases
77
69
  ```
78
70
 
79
- The current phase is persisted in `scaffold.yml` as `aee_phase` and displayed in the VS Code
80
- Settings Panel. Each phase has a checklist of file/command criteria, recommended commands,
81
- and a readiness percentage.
71
+ The current phase is persisted in `scaffold.yml` as `aee_phase` and displayed in the
72
+ Kairos Governance page. Each phase has a checklist of file/command criteria, recommended
73
+ commands, and a readiness percentage.
82
74
 
83
75
  ---
84
76
 
85
77
  ## Install
86
78
 
87
- **Recommended — via the VS Code extension (creates a project-isolated environment):**
88
-
89
- 1. Install the [specsmith AEE Workbench](https://github.com/BitConcepts/specsmith-vscode) VS Code extension
90
- 2. Open `Ctrl+Shift+,` (⚙ specsmith Settings)
91
- 3. Click **🔒 Create Environment** — creates `~/.specsmith/venv/` with specsmith + your provider packages
92
-
93
- The extension uses this environment for all agent sessions and terminal commands.
94
-
95
- **Or via pipx (system-wide):**
79
+ **Recommended — via pipx (works with Kairos, any terminal, and CI):**
96
80
 
97
81
  ```bash
98
82
  pipx install specsmith # core CLI + epistemic library
@@ -154,47 +138,82 @@ specsmith phase --project-dir ./my-project
154
138
 
155
139
  ---
156
140
 
157
- ## AG2 Agent Shell — Local AI Agents over Ollama
141
+ ## Machine State Sync
158
142
 
159
- specsmith includes an AG2-based agent shell with three specialized agents:
143
+ `.specsmith/` always mirrors the human-readable `docs/` governance files.
144
+ Run `specsmith sync` after any change to `docs/REQUIREMENTS.md` or `docs/TESTS.md`:
160
145
 
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
146
+ ```bash
147
+ specsmith sync # regenerate .specsmith/requirements.json + testcases.json
148
+ specsmith sync --check # CI mode: exits 1 if out of sync without writing
149
+ specsmith sync --json # emit sync result as JSON
150
+ ```
164
151
 
165
- All agents run locally on Ollama (default: `qwen2.5:14b`). Zero cloud cost.
152
+ ## Least-Privilege Agent Permissions (REG-012)
166
153
 
167
154
  ```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
155
+ specsmith agent permissions # show active permission profile
156
+ specsmith agent permissions-check git_push # check if git_push is allowed
157
+ specsmith agent permissions-check git_push --no-log # dry-run (no ledger write)
172
158
  ```
173
159
 
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.
160
+ Configure in `docs/SPECSMITH.yml`:
161
+ ```yaml
162
+ agent:
163
+ permissions:
164
+ preset: standard # read_only | standard | extended | admin
165
+ # Or custom:
166
+ allow: [read_file, write_file, run_shell, git_status]
167
+ deny: [git_push, git_create_pr]
168
+ ```
179
169
 
180
170
  ---
181
171
 
182
- ## Nexus Plain-English Governance, Local-First
172
+ ## Kairos + Governance REST API
183
173
 
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.
174
+ **Kairos** is the companion Rust terminal runtime (`BitConcepts/kairos`). specsmith
175
+ acts as the governance backend: Kairos spawns `specsmith governance-serve` at startup
176
+ and routes all preflight and verify calls through it.
187
177
 
188
178
  ```bash
179
+ # Start the governance REST API (Kairos calls this automatically)
180
+ specsmith governance-serve --port 7700 --project-dir .
181
+
189
182
  # Classify a natural-language utterance under Specsmith governance
190
183
  specsmith preflight "fix the cleanup dry-run regression" --json
191
184
 
192
- # Or drop into the Nexus REPL
185
+ # Start the agentic REPL
186
+ specsmith run
187
+ > what does the cleanup module do? # read-only ask -> answered
188
+ > fix the cleanup dry-run regression # change -> Specsmith approves, runs
189
+ > delete the entire dist directory # destructive -> needs clarification
190
+ ```
191
+
192
+ ---
193
+
194
+ ## Nexus
195
+
196
+ The Nexus runtime is specsmith's local-first agentic REPL — a
197
+ governance-gated broker that sits between you and the LLM.
198
+
199
+ Every utterance passes through `specsmith preflight` before execution.
200
+ The broker classifies intent, matches requirements, and gates the action.
201
+ After execution, `specsmith verify` checks equilibrium. The `/why` command
202
+ shows the full governance trace.
203
+
204
+ ```bash
205
+ # Interactive REPL with governance
193
206
  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
207
+ nexus> fix the cleanup bug # broker classifies accepts → executes → verifies
208
+ nexus> /why # show governance trace for last action
209
+ nexus> /exit
210
+ ```
211
+
212
+ The Nexus broker:
213
+ - **Preflight gate**: every change goes through `specsmith preflight`
214
+ - **Bounded retry**: failed actions retry up to 3× with strategy classification
215
+ - **Execution trace**: every action is sealed in the cryptographic trace vault
216
+ - **`/why` toggle**: shows governance rationale in human-readable form
198
217
  ```
199
218
 
200
219
  **How it works.** A natural-language **broker** classifies intent, infers scope from
@@ -215,36 +234,20 @@ requirement, test, and work-item identifiers Specsmith assigned.
215
234
 
216
235
  ---
217
236
 
218
- ## VS Code Extension
237
+ ## Kairos Flagship Terminal Client
219
238
 
220
- The **specsmith AEE Workbench** VS Code extension is the flagship client:
239
+ **[Kairos](https://github.com/BitConcepts/kairos)** is the recommended terminal client for specsmith.
240
+ Kairos spawns specsmith as a managed governance child process at startup and routes all
241
+ preflight, verify, and BYOE proxy calls through it. The Governance settings page shows live
242
+ specsmith status, version, and one-click update.
221
243
 
222
- ```
223
- # VS Code: Ctrl+Shift+P specsmith: New Agent Session
224
- # Settings: Ctrl+Shift+, (⚙ specsmith Settings global)
225
- # Project Settings: Ctrl+Shift+G (⚙ Project Settings — per-project)
244
+ ```bash
245
+ # Kairos starts specsmith automatically; or run manually:
246
+ specsmith governance-serve --port 7700 --project-dir .
226
247
  ```
227
248
 
228
- **Key features:**
229
- - **Dual-panel architecture** **⚙ specsmith Settings** (global: venv, version, Ollama, system)
230
- and **⚙ Project Settings** (per-project: scaffold, tools, files, actions, execution)
231
- - **Global environment management** — `~/.specsmith/venv/` with Create / Update / Rebuild / Delete;
232
- persistent restart banner; Remove System Installs cleanup button
233
- - **VCS context at session start** — git status + recent commits shown in chat and in system prompt
234
- - **Execution profiles** — safe / standard / open / admin; custom allow/block command lists
235
- - **AEE phase indicator** — shows current phase with readiness %, Next Phase button, phase selector
236
- - **AI agent sessions** — independent process per project, JSONL bridge, chat with file injection
237
- - **AG2 agent shell** — Planner/Builder/Verifier agents over Ollama in Actions tab
238
- - **Agent tab** — per-project provider/model/context/iteration config (overrides global defaults)
239
- - **Live model listing** — Anthropic, OpenAI, Gemini, Mistral, local Ollama (GPU-aware)
240
- - **Ollama model catalog** — 16 models, 4 tiers, GPU-aware recommendations, filter by installed/available
241
- - **Ollama integration** — model manager (update/remove/update-all), version check, upgrade
242
- - **FPGA/HDL tool support** — vivado, gtkwave, vsg, ghdl, verilator, yosys, nextpnr, and 15 more
243
- - **Tool installer** — scan installed tools; one-click install via winget/brew/apt for missing tools
244
- - **API key management** — stored in OS credential store (Windows Credential Manager / macOS Keychain)
245
- - **Update checker** — PyPI version check, auto-checks on panel open, release channel selector
246
-
247
- **[→ specsmith-vscode on GitHub](https://github.com/BitConcepts/specsmith-vscode)**
249
+ The VS Code extension (`specsmith-vscode`) has been **deprecated** in favour of Kairos.
250
+ Use `pipx install specsmith` for standalone CLI usage from any terminal.
248
251
 
249
252
  ---
250
253
 
@@ -252,7 +255,7 @@ The **specsmith AEE Workbench** VS Code extension is the flagship client:
252
255
 
253
256
  specsmith is open source and built by a small team. Every bit of support helps:
254
257
 
255
- - ⭐ **Star** [specsmith](https://github.com/BitConcepts/specsmith) and [specsmith-vscode](https://github.com/BitConcepts/specsmith-vscode) on GitHub
258
+ - ⭐ **Star** [specsmith](https://github.com/BitConcepts/specsmith) and [kairos](https://github.com/BitConcepts/kairos) on GitHub
256
259
  - 📣 **Tell your friends and colleagues** — word of mouth is our best marketing
257
260
  - 🐛 **Report bugs** via [GitHub Issues](https://github.com/BitConcepts/specsmith/issues) — even small ones help
258
261
  - 💡 **Suggest features** via [GitHub Discussions](https://github.com/BitConcepts/specsmith/discussions) — we read every suggestion
@@ -275,8 +278,8 @@ specsmith ollama suggest requirements # task-based recommendations
275
278
  specsmith ollama list # show installed models
276
279
  ```
277
280
 
278
- GPU-aware context sizing in the VS Code extension: 4K/8K/16K/32K tokens based on detected VRAM.
279
- Override with `specsmith.ollamaContextLength` in VS Code settings.
281
+ GPU-aware context sizing: 4K/8K/16K/32K tokens based on detected VRAM.
282
+ Override via `SPECSMITH_OLLAMA_CONTEXT_LENGTH` env var or `ollama.context_length` in `.specsmith/config.yml`.
280
283
 
281
284
  ---
282
285
 
@@ -377,20 +380,20 @@ Use cases: linguistics research, compliance pipelines, AI alignment, patent pros
377
380
 
378
381
  specsmith governs itself — the specsmith repo is a specsmith-managed project. Run `specsmith audit`
379
382
  in this repo to check its governance health. This means every feature we add to specsmith is
380
- immediately dogfooded on specsmith itself. The [VS Code extension](https://github.com/BitConcepts/specsmith-vscode)
381
- is developed alongside it as the flagship client.
383
+ immediately dogfooded on specsmith itself. [Kairos](https://github.com/BitConcepts/kairos)
384
+ is the companion terminal and flagship client.
382
385
 
383
386
  ## Documentation
384
387
 
385
388
  **[specsmith.readthedocs.io](https://specsmith.readthedocs.io)** — Full manual: AEE primer,
386
- command reference, project types, tool registry, governance model, Ollama guide, VS Code extension.
389
+ command reference, project types, tool registry, governance model, Ollama guide, Kairos integration.
387
390
 
388
391
  ## Links
389
392
 
390
393
  - [PyPI](https://pypi.org/project/specsmith/)
391
394
  - [Documentation](https://specsmith.readthedocs.io)
392
395
  - [Changelog](CHANGELOG.md)
393
- - [VS Code Extension](https://github.com/BitConcepts/specsmith-vscode)
396
+ - [Kairos terminal client](https://github.com/BitConcepts/kairos)
394
397
  - [Contributing](CONTRIBUTING.md)
395
398
  - [Security](SECURITY.md)
396
399
 
@@ -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.dev277"
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"