specsmith 0.14.0.dev537__tar.gz → 0.14.0.dev539__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.14.0.dev537/src/specsmith.egg-info → specsmith-0.14.0.dev539}/PKG-INFO +5 -4
  2. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/README.md +4 -3
  3. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/pyproject.toml +1 -1
  4. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/governance_logic.py +11 -5
  5. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539/src/specsmith.egg-info}/PKG-INFO +5 -4
  6. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/LICENSE +0 -0
  7. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/setup.cfg +0 -0
  8. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/epistemic/__init__.py +0 -0
  9. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/epistemic/belief.py +0 -0
  10. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/epistemic/certainty.py +0 -0
  11. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/epistemic/failure_graph.py +0 -0
  12. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/epistemic/py.typed +0 -0
  13. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/epistemic/recovery.py +0 -0
  14. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/epistemic/session.py +0 -0
  15. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/epistemic/stress_tester.py +0 -0
  16. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/epistemic/trace.py +0 -0
  17. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/__init__.py +0 -0
  18. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/__main__.py +0 -0
  19. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/__init__.py +0 -0
  20. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/broker.py +0 -0
  21. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/chat_runner.py +0 -0
  22. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/cleanup.py +0 -0
  23. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/context_seed.py +0 -0
  24. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/core.py +0 -0
  25. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/dispatch/__init__.py +0 -0
  26. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/dispatch/_status.py +0 -0
  27. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/dispatch/dag.py +0 -0
  28. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/dispatch/dispatcher.py +0 -0
  29. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/dispatch/events.py +0 -0
  30. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/dispatch/result.py +0 -0
  31. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/endpoints.py +0 -0
  32. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/events.py +0 -0
  33. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/execution_profiles.py +0 -0
  34. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/fallback.py +0 -0
  35. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/hf_leaderboard.py +0 -0
  36. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/hf_sync.py +0 -0
  37. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/indexer.py +0 -0
  38. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/llm_client.py +0 -0
  39. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/mcp.py +0 -0
  40. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/memory.py +0 -0
  41. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/model_intelligence.py +0 -0
  42. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/model_profiles.py +0 -0
  43. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/orchestrator.py +0 -0
  44. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/permissions.py +0 -0
  45. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/profiles.py +0 -0
  46. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/provider_registry.py +0 -0
  47. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/repl.py +0 -0
  48. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/router.py +0 -0
  49. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/rules.py +0 -0
  50. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/runner.py +0 -0
  51. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/safety.py +0 -0
  52. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/spawner.py +0 -0
  53. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/suggester.py +0 -0
  54. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/teams.py +0 -0
  55. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/tools.py +0 -0
  56. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/verifier.py +0 -0
  57. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/agent/voice.py +0 -0
  58. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/architect.py +0 -0
  59. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/auditor.py +0 -0
  60. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/auth.py +0 -0
  61. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/block_export.py +0 -0
  62. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/channel.py +0 -0
  63. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/ci_manager.py +0 -0
  64. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/cli.py +0 -0
  65. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/commands/__init__.py +0 -0
  66. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/commands/intelligence.py +0 -0
  67. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/compliance/__init__.py +0 -0
  68. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/compliance/_compat.py +0 -0
  69. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/compliance/checker.py +0 -0
  70. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/compliance/evidence.py +0 -0
  71. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/compliance/regulations.py +0 -0
  72. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/compliance/reporter.py +0 -0
  73. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/compressor.py +0 -0
  74. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/config.py +0 -0
  75. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/console_utils.py +0 -0
  76. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/context_orchestrator.py +0 -0
  77. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/context_window.py +0 -0
  78. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/credit_analyzer.py +0 -0
  79. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/credits.py +0 -0
  80. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/datasources/__init__.py +0 -0
  81. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/datasources/base.py +0 -0
  82. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/datasources/citations.py +0 -0
  83. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/datasources/fpd.py +0 -0
  84. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/datasources/odp.py +0 -0
  85. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/datasources/patentsview.py +0 -0
  86. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/datasources/pfw.py +0 -0
  87. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/datasources/ppubs.py +0 -0
  88. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/datasources/ptab.py +0 -0
  89. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/differ.py +0 -0
  90. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/doctor.py +0 -0
  91. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/drive.py +0 -0
  92. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/editor.py +0 -0
  93. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/epistemic/__init__.py +0 -0
  94. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/epistemic/belief.py +0 -0
  95. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/epistemic/certainty.py +0 -0
  96. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/epistemic/failure_graph.py +0 -0
  97. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/epistemic/recovery.py +0 -0
  98. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/epistemic/stress_tester.py +0 -0
  99. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/esdb/__init__.py +0 -0
  100. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/esdb/_license.py +0 -0
  101. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/esdb/bridge.py +0 -0
  102. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/esdb/sqlite_store.py +0 -0
  103. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/eval/__init__.py +0 -0
  104. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/eval/builtins.py +0 -0
  105. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/eval/runner.py +0 -0
  106. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/executor.py +0 -0
  107. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/exporter.py +0 -0
  108. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/governance_store.py +0 -0
  109. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/governance_yaml.py +0 -0
  110. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/gui/__init__.py +0 -0
  111. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/gui/app.py +0 -0
  112. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/gui/main_window.py +0 -0
  113. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/gui/session_tab.py +0 -0
  114. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/gui/theme.py +0 -0
  115. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/gui/widgets/__init__.py +0 -0
  116. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/gui/widgets/chat_view.py +0 -0
  117. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/gui/widgets/input_bar.py +0 -0
  118. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/gui/widgets/provider_bar.py +0 -0
  119. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/gui/widgets/token_meter.py +0 -0
  120. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/gui/widgets/tool_panel.py +0 -0
  121. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/gui/widgets/update_checker.py +0 -0
  122. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/gui/worker.py +0 -0
  123. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/history_search.py +0 -0
  124. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/importer.py +0 -0
  125. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/instinct.py +0 -0
  126. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/integrations/__init__.py +0 -0
  127. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/integrations/agent_skill.py +0 -0
  128. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/integrations/aider.py +0 -0
  129. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/integrations/base.py +0 -0
  130. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/integrations/claude_code.py +0 -0
  131. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/integrations/codity.py +0 -0
  132. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/integrations/copilot.py +0 -0
  133. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/integrations/cursor.py +0 -0
  134. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/integrations/gemini.py +0 -0
  135. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/integrations/windsurf.py +0 -0
  136. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/issue_reporter.py +0 -0
  137. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/languages.py +0 -0
  138. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/ledger.py +0 -0
  139. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/mcp_generator.py +0 -0
  140. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/mcp_server.py +0 -0
  141. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/migrations/__init__.py +0 -0
  142. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/migrations/m001_governance_yaml.py +0 -0
  143. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/migrations/m002_agents_slim.py +0 -0
  144. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/migrations/m003_compliance_init.py +0 -0
  145. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/migrations/m004_ledger_esdb.py +0 -0
  146. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/migrations/m005_agent_run_tool.py +0 -0
  147. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/migrations/m006_session_governance.py +0 -0
  148. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/migrations/runner.py +0 -0
  149. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/ollama_cmds.py +0 -0
  150. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/patent.py +0 -0
  151. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/paths.py +0 -0
  152. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/phase.py +0 -0
  153. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/plugins.py +0 -0
  154. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/profiles.py +0 -0
  155. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/rate_limits.py +0 -0
  156. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/releaser.py +0 -0
  157. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/requirements.py +0 -0
  158. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/requirements_parser.py +0 -0
  159. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/retrieval.py +0 -0
  160. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/safe_write.py +0 -0
  161. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/scaffolder.py +0 -0
  162. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/serve.py +0 -0
  163. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/session.py +0 -0
  164. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/session_init.py +0 -0
  165. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/session_store.py +0 -0
  166. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/skills/__init__.py +0 -0
  167. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/skills/ai_agents.py +0 -0
  168. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/skills/cloud.py +0 -0
  169. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/skills/corporate.py +0 -0
  170. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/skills/cross_platform.py +0 -0
  171. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/skills/data_engineering.py +0 -0
  172. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/skills/devops.py +0 -0
  173. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/skills/docs.py +0 -0
  174. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/skills/embedded.py +0 -0
  175. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/skills/governance.py +0 -0
  176. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/skills/hardware.py +0 -0
  177. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/skills/mobile.py +0 -0
  178. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/skills/platform_engineering.py +0 -0
  179. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/skills/productivity.py +0 -0
  180. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/skills/software_engineering.py +0 -0
  181. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/skills/specsmith_skills.py +0 -0
  182. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/skills/ssh.py +0 -0
  183. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/skills/web_backend.py +0 -0
  184. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/skills_builder.py +0 -0
  185. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/sync.py +0 -0
  186. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/agents.md.j2 +0 -0
  187. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/community/bug_report.md.j2 +0 -0
  188. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/community/code_of_conduct.md.j2 +0 -0
  189. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/community/contributing.md.j2 +0 -0
  190. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/community/feature_request.md.j2 +0 -0
  191. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/community/license-Apache-2.0.j2 +0 -0
  192. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/community/license-MIT.j2 +0 -0
  193. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/community/pull_request_template.md.j2 +0 -0
  194. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/community/security.md.j2 +0 -0
  195. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/docs/architecture.md.j2 +0 -0
  196. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/docs/mkdocs.yml.j2 +0 -0
  197. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/docs/readthedocs.yaml.j2 +0 -0
  198. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/docs/requirements.md.j2 +0 -0
  199. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/docs/test-spec.md.j2 +0 -0
  200. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/editorconfig.j2 +0 -0
  201. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/gitattributes.j2 +0 -0
  202. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/gitignore.j2 +0 -0
  203. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/go/go.mod.j2 +0 -0
  204. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/go/main.go.j2 +0 -0
  205. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/governance/belief-registry.md.j2 +0 -0
  206. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/governance/context-budget.md.j2 +0 -0
  207. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/governance/drift-metrics.md.j2 +0 -0
  208. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/governance/epistemic-axioms.md.j2 +0 -0
  209. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/governance/failure-modes.md.j2 +0 -0
  210. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/governance/lifecycle.md.j2 +0 -0
  211. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/governance/roles.md.j2 +0 -0
  212. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/governance/rules.md.j2 +0 -0
  213. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/governance/session-protocol.md.j2 +0 -0
  214. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/governance/uncertainty-map.md.j2 +0 -0
  215. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/governance/verification.md.j2 +0 -0
  216. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/js/package.json.j2 +0 -0
  217. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/ledger.md.j2 +0 -0
  218. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/python/cli.py.j2 +0 -0
  219. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/python/init.py.j2 +0 -0
  220. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/python/pyproject.toml.j2 +0 -0
  221. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/readme.md.j2 +0 -0
  222. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/rust/Cargo.toml.j2 +0 -0
  223. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/rust/main.rs.j2 +0 -0
  224. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/scripts/exec.cmd.j2 +0 -0
  225. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/scripts/exec.sh.j2 +0 -0
  226. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/scripts/run.cmd.j2 +0 -0
  227. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/scripts/run.sh.j2 +0 -0
  228. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/scripts/setup.cmd.j2 +0 -0
  229. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/scripts/setup.sh.j2 +0 -0
  230. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/templates/workflows/release.yml.j2 +0 -0
  231. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/tool_installer.py +0 -0
  232. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/toolrules.py +0 -0
  233. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/tools.py +0 -0
  234. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/trace.py +0 -0
  235. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/updater.py +0 -0
  236. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/upgrader.py +0 -0
  237. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/validator.py +0 -0
  238. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/vcs/__init__.py +0 -0
  239. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/vcs/base.py +0 -0
  240. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/vcs/bitbucket.py +0 -0
  241. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/vcs/github.py +0 -0
  242. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/vcs/gitlab.py +0 -0
  243. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/vcs_commands.py +0 -0
  244. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/wireframes.py +0 -0
  245. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith/workspace.py +0 -0
  246. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith.egg-info/SOURCES.txt +0 -0
  247. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith.egg-info/dependency_links.txt +0 -0
  248. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith.egg-info/entry_points.txt +0 -0
  249. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith.egg-info/requires.txt +0 -0
  250. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/src/specsmith.egg-info/top_level.txt +0 -0
  251. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_CMD_001.py +0 -0
  252. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_agent_profiles.py +0 -0
  253. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_agent_run_feedback.py +0 -0
  254. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_agent_runner_ready.py +0 -0
  255. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_ai_client.py +0 -0
  256. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_ai_intelligence.py +0 -0
  257. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_auditor.py +0 -0
  258. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_channel.py +0 -0
  259. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_chat_diff_decision.py +0 -0
  260. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_chat_runner_openai_compat.py +0 -0
  261. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_chat_stdin_protocol.py +0 -0
  262. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_cli.py +0 -0
  263. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_cli_workflows_history_drive.py +0 -0
  264. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_compliance.py +0 -0
  265. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_compressor.py +0 -0
  266. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_dispatch.py +0 -0
  267. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_e2e_nexus.py +0 -0
  268. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_endpoints_cli.py +0 -0
  269. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_endpoints_store.py +0 -0
  270. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_epistemic.py +0 -0
  271. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_esdb_license.py +0 -0
  272. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_esdb_sqlite.py +0 -0
  273. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_fallback_chain.py +0 -0
  274. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_importer.py +0 -0
  275. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_integrations.py +0 -0
  276. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_integrations_codity.py +0 -0
  277. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_intelligence.py +0 -0
  278. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_issue_reporter.py +0 -0
  279. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_mcp_client.py +0 -0
  280. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_mcp_server.py +0 -0
  281. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_new_modules.py +0 -0
  282. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_nexus.py +0 -0
  283. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_permissions.py +0 -0
  284. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_phase1_4_new.py +0 -0
  285. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_phase34_completion.py +0 -0
  286. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_rate_limits.py +0 -0
  287. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_req_248_262.py +0 -0
  288. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_req_358_359.py +0 -0
  289. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_scaffolder.py +0 -0
  290. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_skill_marketplace.py +0 -0
  291. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_skills_mcp.py +0 -0
  292. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_smoke.py +0 -0
  293. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_suggester.py +0 -0
  294. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_tools.py +0 -0
  295. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_validator.py +0 -0
  296. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_vcs.py +0 -0
  297. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/tests/test_warp_parity.py +0 -0
  298. {specsmith-0.14.0.dev537 → specsmith-0.14.0.dev539}/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.14.0.dev537
3
+ Version: 0.14.0.dev539
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
@@ -188,9 +188,10 @@ of file/command criteria, recommended commands, and a readiness percentage.
188
188
 
189
189
  ```bash
190
190
  pipx install specsmith # core CLI + epistemic library
191
- pipx inject specsmith anthropic # + Claude support
192
- pipx inject specsmith openai # + GPT / O-series support
193
- pipx inject specsmith google-generativeai # + Gemini support
191
+ pipx inject specsmith anthropic # + Claude support
192
+ pipx inject specsmith openai # + GPT / O-series support
193
+ pipx inject specsmith google-genai # + Gemini (google-genai SDK, GA May 2025)
194
+ # Ollama: install locally at https://ollama.ai — no extra package needed
194
195
  ```
195
196
 
196
197
  **Library-only use (venv / conda / any Python environment):**
@@ -110,9 +110,10 @@ of file/command criteria, recommended commands, and a readiness percentage.
110
110
 
111
111
  ```bash
112
112
  pipx install specsmith # core CLI + epistemic library
113
- pipx inject specsmith anthropic # + Claude support
114
- pipx inject specsmith openai # + GPT / O-series support
115
- pipx inject specsmith google-generativeai # + Gemini support
113
+ pipx inject specsmith anthropic # + Claude support
114
+ pipx inject specsmith openai # + GPT / O-series support
115
+ pipx inject specsmith google-genai # + Gemini (google-genai SDK, GA May 2025)
116
+ # Ollama: install locally at https://ollama.ai — no extra package needed
116
117
  ```
117
118
 
118
119
  **Library-only use (venv / conda / any Python environment):**
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "specsmith"
7
- version = "0.14.0.dev537"
7
+ version = "0.14.0.dev539"
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"
@@ -72,15 +72,21 @@ def run_preflight(
72
72
  from specsmith.agent.broker import Intent, classify_intent, infer_scope
73
73
 
74
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
+ # Assign os.path.realpath to a plain str first so CodeQL's py/path-injection
76
+ # taint tracker sees the sanitiser directly on the assignment (not nested
77
+ # inside Path()). Path() wrapping is done in a separate step.
78
+ _root_str: str = os.path.realpath(str(project_dir))
79
+ root = Path(_root_str)
76
80
  intent = classify_intent(utterance)
77
81
  # Requirements live at docs/REQUIREMENTS.md, not at the project root.
78
82
  # Falling back to root/REQUIREMENTS.md would always yield an empty list
79
83
  # on standard projects, causing preflight to always return
80
84
  # needs_clarification (GitHub issue #197).
81
- _req_md = root / "docs" / "REQUIREMENTS.md"
85
+ # Apply os.path.realpath on the child path so CodeQL sees the sanitiser
86
+ # at the point of the file-system call (.exists()), not just at root.
87
+ _req_md = Path(os.path.realpath(str(root / "docs" / "REQUIREMENTS.md")))
82
88
  if not _req_md.exists():
83
- _req_md = root / "REQUIREMENTS.md" # legacy fallback
89
+ _req_md = Path(os.path.realpath(str(root / "REQUIREMENTS.md"))) # legacy fallback
84
90
  scope = infer_scope(
85
91
  utterance,
86
92
  _req_md,
@@ -103,7 +109,7 @@ def run_preflight(
103
109
  # (Helper functions with a root: Path parameter are analysed conservatively
104
110
  # by CodeQL and can re-introduce py/path-injection alerts.)
105
111
  rq_records: list[Any] = []
106
- rq_path = (root / ".specsmith" / "requirements.json").resolve()
112
+ rq_path = Path(os.path.realpath(str(root / ".specsmith" / "requirements.json")))
107
113
  if rq_path.is_file():
108
114
  try:
109
115
  _rq = _json.loads(rq_path.read_text(encoding="utf-8"))
@@ -120,7 +126,7 @@ def run_preflight(
120
126
  # Read test-case machine-state inline (same rationale as above).
121
127
  test_case_ids: list[str] = []
122
128
  tc_records: list[Any] = []
123
- tc_path = (root / ".specsmith" / "testcases.json").resolve()
129
+ tc_path = Path(os.path.realpath(str(root / ".specsmith" / "testcases.json")))
124
130
  if tc_path.is_file():
125
131
  try:
126
132
  _tc = _json.loads(tc_path.read_text(encoding="utf-8"))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specsmith
3
- Version: 0.14.0.dev537
3
+ Version: 0.14.0.dev539
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
@@ -188,9 +188,10 @@ of file/command criteria, recommended commands, and a readiness percentage.
188
188
 
189
189
  ```bash
190
190
  pipx install specsmith # core CLI + epistemic library
191
- pipx inject specsmith anthropic # + Claude support
192
- pipx inject specsmith openai # + GPT / O-series support
193
- pipx inject specsmith google-generativeai # + Gemini support
191
+ pipx inject specsmith anthropic # + Claude support
192
+ pipx inject specsmith openai # + GPT / O-series support
193
+ pipx inject specsmith google-genai # + Gemini (google-genai SDK, GA May 2025)
194
+ # Ollama: install locally at https://ollama.ai — no extra package needed
194
195
  ```
195
196
 
196
197
  **Library-only use (venv / conda / any Python environment):**