specsmith 0.13.1__tar.gz → 0.13.1.dev533__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 (298) hide show
  1. {specsmith-0.13.1/src/specsmith.egg-info → specsmith-0.13.1.dev533}/PKG-INFO +1 -1
  2. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/pyproject.toml +1 -1
  3. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/cli.py +4 -3
  4. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/esdb/__init__.py +3 -1
  5. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/esdb/bridge.py +3 -1
  6. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/esdb/sqlite_store.py +2 -2
  7. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/governance_logic.py +2 -1
  8. {specsmith-0.13.1 → specsmith-0.13.1.dev533/src/specsmith.egg-info}/PKG-INFO +1 -1
  9. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_esdb_license.py +1 -1
  10. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_mcp_server.py +0 -6
  11. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/LICENSE +0 -0
  12. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/README.md +0 -0
  13. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/setup.cfg +0 -0
  14. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/epistemic/__init__.py +0 -0
  15. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/epistemic/belief.py +0 -0
  16. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/epistemic/certainty.py +0 -0
  17. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/epistemic/failure_graph.py +0 -0
  18. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/epistemic/py.typed +0 -0
  19. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/epistemic/recovery.py +0 -0
  20. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/epistemic/session.py +0 -0
  21. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/epistemic/stress_tester.py +0 -0
  22. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/epistemic/trace.py +0 -0
  23. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/__init__.py +0 -0
  24. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/__main__.py +0 -0
  25. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/__init__.py +0 -0
  26. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/broker.py +0 -0
  27. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/chat_runner.py +0 -0
  28. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/cleanup.py +0 -0
  29. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/context_seed.py +0 -0
  30. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/core.py +0 -0
  31. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/dispatch/__init__.py +0 -0
  32. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/dispatch/_status.py +0 -0
  33. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/dispatch/dag.py +0 -0
  34. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/dispatch/dispatcher.py +0 -0
  35. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/dispatch/events.py +0 -0
  36. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/dispatch/result.py +0 -0
  37. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/endpoints.py +0 -0
  38. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/events.py +0 -0
  39. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/execution_profiles.py +0 -0
  40. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/fallback.py +0 -0
  41. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/hf_leaderboard.py +0 -0
  42. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/hf_sync.py +0 -0
  43. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/indexer.py +0 -0
  44. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/llm_client.py +0 -0
  45. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/mcp.py +0 -0
  46. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/memory.py +0 -0
  47. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/model_intelligence.py +0 -0
  48. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/model_profiles.py +0 -0
  49. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/orchestrator.py +0 -0
  50. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/permissions.py +0 -0
  51. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/profiles.py +0 -0
  52. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/provider_registry.py +0 -0
  53. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/repl.py +0 -0
  54. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/router.py +0 -0
  55. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/rules.py +0 -0
  56. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/runner.py +0 -0
  57. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/safety.py +0 -0
  58. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/spawner.py +0 -0
  59. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/suggester.py +0 -0
  60. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/teams.py +0 -0
  61. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/tools.py +0 -0
  62. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/verifier.py +0 -0
  63. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/agent/voice.py +0 -0
  64. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/architect.py +0 -0
  65. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/auditor.py +0 -0
  66. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/auth.py +0 -0
  67. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/block_export.py +0 -0
  68. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/channel.py +0 -0
  69. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/ci_manager.py +0 -0
  70. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/commands/__init__.py +0 -0
  71. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/commands/intelligence.py +0 -0
  72. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/compliance/__init__.py +0 -0
  73. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/compliance/_compat.py +0 -0
  74. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/compliance/checker.py +0 -0
  75. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/compliance/evidence.py +0 -0
  76. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/compliance/regulations.py +0 -0
  77. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/compliance/reporter.py +0 -0
  78. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/compressor.py +0 -0
  79. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/config.py +0 -0
  80. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/console_utils.py +0 -0
  81. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/context_orchestrator.py +0 -0
  82. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/context_window.py +0 -0
  83. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/credit_analyzer.py +0 -0
  84. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/credits.py +0 -0
  85. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/datasources/__init__.py +0 -0
  86. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/datasources/base.py +0 -0
  87. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/datasources/citations.py +0 -0
  88. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/datasources/fpd.py +0 -0
  89. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/datasources/odp.py +0 -0
  90. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/datasources/patentsview.py +0 -0
  91. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/datasources/pfw.py +0 -0
  92. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/datasources/ppubs.py +0 -0
  93. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/datasources/ptab.py +0 -0
  94. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/differ.py +0 -0
  95. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/doctor.py +0 -0
  96. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/drive.py +0 -0
  97. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/editor.py +0 -0
  98. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/epistemic/__init__.py +0 -0
  99. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/epistemic/belief.py +0 -0
  100. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/epistemic/certainty.py +0 -0
  101. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/epistemic/failure_graph.py +0 -0
  102. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/epistemic/recovery.py +0 -0
  103. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/epistemic/stress_tester.py +0 -0
  104. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/esdb/_license.py +0 -0
  105. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/eval/__init__.py +0 -0
  106. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/eval/builtins.py +0 -0
  107. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/eval/runner.py +0 -0
  108. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/executor.py +0 -0
  109. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/exporter.py +0 -0
  110. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/governance_store.py +0 -0
  111. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/governance_yaml.py +0 -0
  112. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/gui/__init__.py +0 -0
  113. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/gui/app.py +0 -0
  114. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/gui/main_window.py +0 -0
  115. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/gui/session_tab.py +0 -0
  116. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/gui/theme.py +0 -0
  117. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/gui/widgets/__init__.py +0 -0
  118. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/gui/widgets/chat_view.py +0 -0
  119. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/gui/widgets/input_bar.py +0 -0
  120. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/gui/widgets/provider_bar.py +0 -0
  121. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/gui/widgets/token_meter.py +0 -0
  122. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/gui/widgets/tool_panel.py +0 -0
  123. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/gui/widgets/update_checker.py +0 -0
  124. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/gui/worker.py +0 -0
  125. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/history_search.py +0 -0
  126. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/importer.py +0 -0
  127. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/instinct.py +0 -0
  128. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/integrations/__init__.py +0 -0
  129. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/integrations/agent_skill.py +0 -0
  130. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/integrations/aider.py +0 -0
  131. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/integrations/base.py +0 -0
  132. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/integrations/claude_code.py +0 -0
  133. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/integrations/codity.py +0 -0
  134. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/integrations/copilot.py +0 -0
  135. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/integrations/cursor.py +0 -0
  136. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/integrations/gemini.py +0 -0
  137. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/integrations/windsurf.py +0 -0
  138. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/issue_reporter.py +0 -0
  139. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/languages.py +0 -0
  140. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/ledger.py +0 -0
  141. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/mcp_generator.py +0 -0
  142. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/mcp_server.py +0 -0
  143. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/migrations/__init__.py +0 -0
  144. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/migrations/m001_governance_yaml.py +0 -0
  145. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/migrations/m002_agents_slim.py +0 -0
  146. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/migrations/m003_compliance_init.py +0 -0
  147. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/migrations/m004_ledger_esdb.py +0 -0
  148. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/migrations/m005_agent_run_tool.py +0 -0
  149. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/migrations/m006_session_governance.py +0 -0
  150. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/migrations/runner.py +0 -0
  151. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/ollama_cmds.py +0 -0
  152. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/patent.py +0 -0
  153. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/paths.py +0 -0
  154. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/phase.py +0 -0
  155. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/plugins.py +0 -0
  156. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/profiles.py +0 -0
  157. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/rate_limits.py +0 -0
  158. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/releaser.py +0 -0
  159. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/requirements.py +0 -0
  160. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/requirements_parser.py +0 -0
  161. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/retrieval.py +0 -0
  162. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/safe_write.py +0 -0
  163. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/scaffolder.py +0 -0
  164. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/serve.py +0 -0
  165. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/session.py +0 -0
  166. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/session_init.py +0 -0
  167. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/session_store.py +0 -0
  168. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/skills/__init__.py +0 -0
  169. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/skills/ai_agents.py +0 -0
  170. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/skills/cloud.py +0 -0
  171. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/skills/corporate.py +0 -0
  172. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/skills/cross_platform.py +0 -0
  173. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/skills/data_engineering.py +0 -0
  174. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/skills/devops.py +0 -0
  175. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/skills/docs.py +0 -0
  176. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/skills/embedded.py +0 -0
  177. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/skills/governance.py +0 -0
  178. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/skills/hardware.py +0 -0
  179. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/skills/mobile.py +0 -0
  180. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/skills/platform_engineering.py +0 -0
  181. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/skills/productivity.py +0 -0
  182. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/skills/software_engineering.py +0 -0
  183. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/skills/specsmith_skills.py +0 -0
  184. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/skills/ssh.py +0 -0
  185. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/skills/web_backend.py +0 -0
  186. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/skills_builder.py +0 -0
  187. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/sync.py +0 -0
  188. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/agents.md.j2 +0 -0
  189. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/community/bug_report.md.j2 +0 -0
  190. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/community/code_of_conduct.md.j2 +0 -0
  191. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/community/contributing.md.j2 +0 -0
  192. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/community/feature_request.md.j2 +0 -0
  193. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/community/license-Apache-2.0.j2 +0 -0
  194. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/community/license-MIT.j2 +0 -0
  195. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/community/pull_request_template.md.j2 +0 -0
  196. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/community/security.md.j2 +0 -0
  197. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/docs/architecture.md.j2 +0 -0
  198. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/docs/mkdocs.yml.j2 +0 -0
  199. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/docs/readthedocs.yaml.j2 +0 -0
  200. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/docs/requirements.md.j2 +0 -0
  201. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/docs/test-spec.md.j2 +0 -0
  202. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/editorconfig.j2 +0 -0
  203. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/gitattributes.j2 +0 -0
  204. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/gitignore.j2 +0 -0
  205. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/go/go.mod.j2 +0 -0
  206. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/go/main.go.j2 +0 -0
  207. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/governance/belief-registry.md.j2 +0 -0
  208. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/governance/context-budget.md.j2 +0 -0
  209. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/governance/drift-metrics.md.j2 +0 -0
  210. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/governance/epistemic-axioms.md.j2 +0 -0
  211. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/governance/failure-modes.md.j2 +0 -0
  212. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/governance/lifecycle.md.j2 +0 -0
  213. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/governance/roles.md.j2 +0 -0
  214. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/governance/rules.md.j2 +0 -0
  215. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/governance/session-protocol.md.j2 +0 -0
  216. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/governance/uncertainty-map.md.j2 +0 -0
  217. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/governance/verification.md.j2 +0 -0
  218. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/js/package.json.j2 +0 -0
  219. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/ledger.md.j2 +0 -0
  220. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/python/cli.py.j2 +0 -0
  221. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/python/init.py.j2 +0 -0
  222. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/python/pyproject.toml.j2 +0 -0
  223. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/readme.md.j2 +0 -0
  224. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/rust/Cargo.toml.j2 +0 -0
  225. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/rust/main.rs.j2 +0 -0
  226. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/scripts/exec.cmd.j2 +0 -0
  227. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/scripts/exec.sh.j2 +0 -0
  228. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/scripts/run.cmd.j2 +0 -0
  229. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/scripts/run.sh.j2 +0 -0
  230. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/scripts/setup.cmd.j2 +0 -0
  231. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/scripts/setup.sh.j2 +0 -0
  232. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/templates/workflows/release.yml.j2 +0 -0
  233. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/tool_installer.py +0 -0
  234. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/toolrules.py +0 -0
  235. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/tools.py +0 -0
  236. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/trace.py +0 -0
  237. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/updater.py +0 -0
  238. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/upgrader.py +0 -0
  239. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/validator.py +0 -0
  240. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/vcs/__init__.py +0 -0
  241. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/vcs/base.py +0 -0
  242. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/vcs/bitbucket.py +0 -0
  243. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/vcs/github.py +0 -0
  244. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/vcs/gitlab.py +0 -0
  245. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/vcs_commands.py +0 -0
  246. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/wireframes.py +0 -0
  247. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith/workspace.py +0 -0
  248. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith.egg-info/SOURCES.txt +0 -0
  249. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith.egg-info/dependency_links.txt +0 -0
  250. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith.egg-info/entry_points.txt +0 -0
  251. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith.egg-info/requires.txt +0 -0
  252. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/src/specsmith.egg-info/top_level.txt +0 -0
  253. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_CMD_001.py +0 -0
  254. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_agent_profiles.py +0 -0
  255. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_agent_run_feedback.py +0 -0
  256. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_agent_runner_ready.py +0 -0
  257. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_ai_client.py +0 -0
  258. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_ai_intelligence.py +0 -0
  259. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_auditor.py +0 -0
  260. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_channel.py +0 -0
  261. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_chat_diff_decision.py +0 -0
  262. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_chat_runner_openai_compat.py +0 -0
  263. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_chat_stdin_protocol.py +0 -0
  264. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_cli.py +0 -0
  265. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_cli_workflows_history_drive.py +0 -0
  266. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_compliance.py +0 -0
  267. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_compressor.py +0 -0
  268. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_dispatch.py +0 -0
  269. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_e2e_nexus.py +0 -0
  270. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_endpoints_cli.py +0 -0
  271. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_endpoints_store.py +0 -0
  272. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_epistemic.py +0 -0
  273. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_esdb_sqlite.py +0 -0
  274. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_fallback_chain.py +0 -0
  275. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_importer.py +0 -0
  276. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_integrations.py +0 -0
  277. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_integrations_codity.py +0 -0
  278. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_intelligence.py +0 -0
  279. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_issue_reporter.py +0 -0
  280. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_mcp_client.py +0 -0
  281. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_new_modules.py +0 -0
  282. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_nexus.py +0 -0
  283. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_permissions.py +0 -0
  284. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_phase1_4_new.py +0 -0
  285. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_phase34_completion.py +0 -0
  286. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_rate_limits.py +0 -0
  287. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_req_248_262.py +0 -0
  288. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_req_358_359.py +0 -0
  289. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_scaffolder.py +0 -0
  290. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_skill_marketplace.py +0 -0
  291. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_skills_mcp.py +0 -0
  292. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_smoke.py +0 -0
  293. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_suggester.py +0 -0
  294. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_tools.py +0 -0
  295. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_validator.py +0 -0
  296. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_vcs.py +0 -0
  297. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/tests/test_warp_parity.py +0 -0
  298. {specsmith-0.13.1 → specsmith-0.13.1.dev533}/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.13.1
3
+ Version: 0.13.1.dev533
4
4
  Summary: AEE governance toolkit for AI-assisted development — session preflight gates, multi-agent dispatch, requirements↔test traceability, ESDB persistence, MCP server, and skills for Warp, Cursor, Claude Code, Copilot, Windsurf, and Aider.
5
5
  Author: Layer1Labs Silicon, Inc.
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "specsmith"
7
- version = "0.13.1"
7
+ version = "0.13.1.dev533"
8
8
  description = "AEE governance toolkit for AI-assisted development — session preflight gates, multi-agent dispatch, requirements↔test traceability, ESDB persistence, MCP server, and skills for Warp, Cursor, Claude Code, Copilot, Windsurf, and Aider."
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -4234,15 +4234,16 @@ def agent_ask_cmd(prompt: str, project_dir: str, as_json: bool) -> None:
4234
4234
  )
4235
4235
  action = "skills_hint"
4236
4236
  elif any(k in lower for k in ("esdb", "database", "backup", "export", "records")):
4237
- import specsmith.esdb as _esdb
4237
+ from specsmith.esdb import ESDB_BACKEND as _ESDB_BACKEND # noqa: PLC0415
4238
+ from specsmith.esdb import open_default_store as _open_default_store # noqa: PLC0415
4238
4239
 
4239
4240
  action = "esdb_status"
4240
4241
  try:
4241
- store = _esdb.open_default_store(project_dir, warn=False)
4242
+ store = _open_default_store(project_dir, warn=False)
4242
4243
  with store:
4243
4244
  count = store.record_count()
4244
4245
  chain_ok = store.chain_valid()
4245
- reply = f"ESDB: {_esdb.ESDB_BACKEND} | {count} records | chain_valid={chain_ok}"
4246
+ reply = f"ESDB: {_ESDB_BACKEND} | {count} records | chain_valid={chain_ok}"
4246
4247
  except Exception as exc: # noqa: BLE001
4247
4248
  reply = f"ESDB unavailable: {exc}"
4248
4249
  elif any(k in lower for k in ("mcp", "server", "tool server")):
@@ -98,7 +98,9 @@ except ImportError:
98
98
  """Stub module reference so 'from specsmith.esdb import query, metrics' works."""
99
99
 
100
100
  def __getattr__(self, name: str) -> "_Stub":
101
- raise ImportError(_INSTALL_HINT)
101
+ raise AttributeError( # noqa: TRY301
102
+ f"'{name}' is unavailable: {_INSTALL_HINT}"
103
+ )
102
104
 
103
105
  query = _StubModule() # type: ignore[assignment]
104
106
  metrics = _StubModule() # type: ignore[assignment]
@@ -44,7 +44,9 @@ except ImportError: # pragma: no cover
44
44
 
45
45
  class _StubModule: # noqa: F811
46
46
  def __getattr__(self, name: str) -> "_Stub":
47
- raise ImportError(_INSTALL_HINT)
47
+ raise AttributeError( # noqa: TRY301
48
+ f"'{name}' is unavailable: {_INSTALL_HINT}"
49
+ )
48
50
 
49
51
  EsdbBridge = EsdbRecord = EsdbStatus = ContextPackCompiler = DepGraph = _Stub # noqa: F811
50
52
  query = _StubModule() # noqa: F811
@@ -330,7 +330,7 @@ class SqliteStore:
330
330
  )
331
331
  counts["requirements"] += 1
332
332
  except (OSError, ValueError):
333
- pass
333
+ counts["skipped"] += 1 # file unreadable or invalid JSON
334
334
 
335
335
  test_path = state_dir / "testcases.json"
336
336
  if test_path.exists():
@@ -351,7 +351,7 @@ class SqliteStore:
351
351
  )
352
352
  counts["testcases"] += 1
353
353
  except (OSError, ValueError):
354
- pass
354
+ counts["skipped"] += 1 # file unreadable or invalid JSON
355
355
 
356
356
  return counts
357
357
 
@@ -71,7 +71,8 @@ def run_preflight(
71
71
  from specsmith import __version__
72
72
  from specsmith.agent.broker import Intent, classify_intent, infer_scope
73
73
 
74
- root = _safe_resolve(project_dir)
74
+ _safe_resolve(project_dir) # validate: reject null bytes and traversal sequences
75
+ root = Path(os.path.realpath(str(project_dir))) # CodeQL-visible sanitiser (py/path-injection)
75
76
  intent = classify_intent(utterance)
76
77
  # Requirements live at docs/REQUIREMENTS.md, not at the project root.
77
78
  # Falling back to root/REQUIREMENTS.md would always yield an empty list
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specsmith
3
- Version: 0.13.1
3
+ Version: 0.13.1.dev533
4
4
  Summary: AEE governance toolkit for AI-assisted development — session preflight gates, multi-agent dispatch, requirements↔test traceability, ESDB persistence, MCP server, and skills for Warp, Cursor, Claude Code, Copilot, Windsurf, and Aider.
5
5
  Author: Layer1Labs Silicon, Inc.
6
6
  License-Expression: MIT
@@ -159,7 +159,7 @@ def test_resolve_license_path_default(tmp_path: Path) -> None:
159
159
  specsmith_dir = tmp_path / ".specsmith"
160
160
  specsmith_dir.mkdir()
161
161
  _make_license_file(specsmith_dir, filename="esdb.key")
162
- import specsmith.esdb._license as lic_mod
162
+ from specsmith.esdb import _license as lic_mod # noqa: PLC0415
163
163
 
164
164
  def fake_home() -> Path:
165
165
  return tmp_path
@@ -634,8 +634,6 @@ class TestGovernanceReqListYamlMode:
634
634
 
635
635
  def test_yaml_mode_returns_new_req_despite_stale_cache(self, yaml_mode_project: Path) -> None:
636
636
  """REQ-364: governance_req_list in yaml_mode reads YAML, not JSON cache."""
637
- import specsmith.mcp_server as mcp_mod
638
-
639
637
  result = mcp_mod._handle_governance_req_list({"project_dir": str(yaml_mode_project)})
640
638
  req_ids = {r["id"] for r in result["reqs"]}
641
639
  assert "REQ-NEW" in req_ids, (
@@ -646,8 +644,6 @@ class TestGovernanceReqListYamlMode:
646
644
 
647
645
  def test_yaml_mode_coverage_from_yaml_tests(self, yaml_mode_project: Path) -> None:
648
646
  """Coverage is computed from YAML tests, not stale JSON cache."""
649
- import specsmith.mcp_server as mcp_mod
650
-
651
647
  result = mcp_mod._handle_governance_req_list({"project_dir": str(yaml_mode_project)})
652
648
  reqs_by_id = {r["id"]: r for r in result["reqs"]}
653
649
  # REQ-001 has a test in YAML → covered
@@ -657,8 +653,6 @@ class TestGovernanceReqListYamlMode:
657
653
 
658
654
  def test_legacy_mode_still_uses_json_cache(self, tmp_path: Path) -> None:
659
655
  """Non-yaml-mode projects still use the JSON cache (backward compat)."""
660
- import specsmith.mcp_server as mcp_mod
661
-
662
656
  state = tmp_path / ".specsmith"
663
657
  state.mkdir()
664
658
  # No governance-mode file → legacy mode
File without changes
File without changes
File without changes