specsmith 0.3.6.dev183__tar.gz → 0.3.6.dev186__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.
- {specsmith-0.3.6.dev183/src/specsmith.egg-info → specsmith-0.3.6.dev186}/PKG-INFO +16 -6
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/README.md +15 -5
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/pyproject.toml +1 -1
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/cli.py +42 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/upgrader.py +20 -10
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186/src/specsmith.egg-info}/PKG-INFO +16 -6
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/LICENSE +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/setup.cfg +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/epistemic/__init__.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/epistemic/belief.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/epistemic/certainty.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/epistemic/failure_graph.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/epistemic/py.typed +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/epistemic/recovery.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/epistemic/session.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/epistemic/stress_tester.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/epistemic/trace.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/__init__.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/__main__.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/agent/__init__.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/agent/core.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/agent/hooks.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/agent/optimizer.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/agent/profiles/epistemic-auditor.md +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/agent/profiles/planner.md +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/agent/profiles/verifier.md +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/agent/providers/__init__.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/agent/providers/anthropic.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/agent/providers/gemini.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/agent/providers/mistral.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/agent/providers/ollama.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/agent/providers/openai.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/agent/runner.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/agent/skills.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/agent/tools.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/architect.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/auditor.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/auth.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/commands/__init__.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/compressor.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/config.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/credit_analyzer.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/credits.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/differ.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/doctor.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/epistemic/__init__.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/epistemic/belief.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/epistemic/certainty.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/epistemic/failure_graph.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/epistemic/recovery.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/epistemic/stress_tester.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/executor.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/exporter.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/gui/__init__.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/gui/app.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/gui/main_window.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/gui/session_tab.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/gui/theme.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/gui/widgets/__init__.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/gui/widgets/chat_view.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/gui/widgets/input_bar.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/gui/widgets/provider_bar.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/gui/widgets/token_meter.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/gui/widgets/tool_panel.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/gui/widgets/update_checker.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/gui/worker.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/importer.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/integrations/__init__.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/integrations/aider.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/integrations/base.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/integrations/claude_code.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/integrations/copilot.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/integrations/cursor.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/integrations/gemini.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/integrations/warp.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/integrations/windsurf.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/languages.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/ledger.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/ollama_cmds.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/patent.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/phase.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/plugins.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/profiles.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/rate_limits.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/releaser.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/requirements.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/retrieval.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/scaffolder.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/session.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/agents.md.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/community/bug_report.md.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/community/code_of_conduct.md.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/community/contributing.md.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/community/feature_request.md.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/community/license-Apache-2.0.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/community/license-MIT.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/community/pull_request_template.md.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/community/security.md.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/docs/architecture.md.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/docs/mkdocs.yml.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/docs/readthedocs.yaml.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/docs/requirements.md.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/docs/test-spec.md.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/editorconfig.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/gitattributes.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/gitignore.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/go/go.mod.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/go/main.go.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/governance/belief-registry.md.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/governance/context-budget.md.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/governance/drift-metrics.md.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/governance/epistemic-axioms.md.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/governance/failure-modes.md.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/governance/lifecycle.md.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/governance/roles.md.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/governance/rules.md.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/governance/session-protocol.md.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/governance/uncertainty-map.md.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/governance/verification.md.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/js/package.json.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/ledger.md.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/python/cli.py.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/python/init.py.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/python/pyproject.toml.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/readme.md.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/rust/Cargo.toml.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/rust/main.rs.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/scripts/exec.cmd.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/scripts/exec.sh.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/scripts/run.cmd.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/scripts/run.sh.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/scripts/setup.cmd.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/scripts/setup.sh.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/workflows/release.yml.j2 +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/tool_installer.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/toolrules.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/tools.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/trace.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/updater.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/validator.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/vcs/__init__.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/vcs/base.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/vcs/bitbucket.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/vcs/github.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/vcs/gitlab.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/vcs_commands.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/wireframes.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/workspace.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith.egg-info/SOURCES.txt +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith.egg-info/dependency_links.txt +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith.egg-info/entry_points.txt +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith.egg-info/requires.txt +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith.egg-info/top_level.txt +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/tests/test_auditor.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/tests/test_cli.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/tests/test_compressor.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/tests/test_epistemic.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/tests/test_importer.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/tests/test_integrations.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/tests/test_optimizer.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/tests/test_rate_limits.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/tests/test_scaffolder.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/tests/test_smoke.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/tests/test_tools.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/tests/test_validator.py +0 -0
- {specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/tests/test_vcs.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: specsmith
|
|
3
|
-
Version: 0.3.6.
|
|
3
|
+
Version: 0.3.6.dev186
|
|
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
|
|
@@ -224,12 +224,15 @@ The **specsmith AEE Workbench** VS Code extension is the flagship client:
|
|
|
224
224
|
|
|
225
225
|
## Supporting specsmith
|
|
226
226
|
|
|
227
|
-
|
|
227
|
+
specsmith is open source and built by a small team. Every bit of support helps:
|
|
228
228
|
|
|
229
|
-
- **[
|
|
230
|
-
- **
|
|
231
|
-
- **
|
|
232
|
-
- **
|
|
229
|
+
- ⭐ **Star** [specsmith](https://github.com/BitConcepts/specsmith) and [specsmith-vscode](https://github.com/BitConcepts/specsmith-vscode) on GitHub
|
|
230
|
+
- 📣 **Tell your friends and colleagues** — word of mouth is our best marketing
|
|
231
|
+
- 🐛 **Report bugs** via [GitHub Issues](https://github.com/BitConcepts/specsmith/issues) — even small ones help
|
|
232
|
+
- 💡 **Suggest features** via [GitHub Discussions](https://github.com/BitConcepts/specsmith/discussions) — we read every suggestion
|
|
233
|
+
- 🔧 **Fix bugs and contribute** — see [CONTRIBUTING.md](CONTRIBUTING.md); PRs welcome
|
|
234
|
+
- 📝 **Write about specsmith** — blog posts, tutorials, and talks help the community grow
|
|
235
|
+
- ❤️ **[Sponsor BitConcepts](https://github.com/sponsors/BitConcepts)** — directly funds development
|
|
233
236
|
|
|
234
237
|
---
|
|
235
238
|
|
|
@@ -344,6 +347,13 @@ Use cases: linguistics research, compliance pipelines, AI alignment, patent pros
|
|
|
344
347
|
|
|
345
348
|
---
|
|
346
349
|
|
|
350
|
+
## The specsmith Bootstrap
|
|
351
|
+
|
|
352
|
+
specsmith governs itself — the specsmith repo is a specsmith-managed project. Run `specsmith audit`
|
|
353
|
+
in this repo to check its governance health. This means every feature we add to specsmith is
|
|
354
|
+
immediately dogfooded on specsmith itself. The [VS Code extension](https://github.com/BitConcepts/specsmith-vscode)
|
|
355
|
+
is developed alongside it as the flagship client.
|
|
356
|
+
|
|
347
357
|
## Documentation
|
|
348
358
|
|
|
349
359
|
**[specsmith.readthedocs.io](https://specsmith.readthedocs.io)** — Full manual: AEE primer,
|
|
@@ -159,12 +159,15 @@ The **specsmith AEE Workbench** VS Code extension is the flagship client:
|
|
|
159
159
|
|
|
160
160
|
## Supporting specsmith
|
|
161
161
|
|
|
162
|
-
|
|
162
|
+
specsmith is open source and built by a small team. Every bit of support helps:
|
|
163
163
|
|
|
164
|
-
- **[
|
|
165
|
-
- **
|
|
166
|
-
- **
|
|
167
|
-
- **
|
|
164
|
+
- ⭐ **Star** [specsmith](https://github.com/BitConcepts/specsmith) and [specsmith-vscode](https://github.com/BitConcepts/specsmith-vscode) on GitHub
|
|
165
|
+
- 📣 **Tell your friends and colleagues** — word of mouth is our best marketing
|
|
166
|
+
- 🐛 **Report bugs** via [GitHub Issues](https://github.com/BitConcepts/specsmith/issues) — even small ones help
|
|
167
|
+
- 💡 **Suggest features** via [GitHub Discussions](https://github.com/BitConcepts/specsmith/discussions) — we read every suggestion
|
|
168
|
+
- 🔧 **Fix bugs and contribute** — see [CONTRIBUTING.md](CONTRIBUTING.md); PRs welcome
|
|
169
|
+
- 📝 **Write about specsmith** — blog posts, tutorials, and talks help the community grow
|
|
170
|
+
- ❤️ **[Sponsor BitConcepts](https://github.com/sponsors/BitConcepts)** — directly funds development
|
|
168
171
|
|
|
169
172
|
---
|
|
170
173
|
|
|
@@ -279,6 +282,13 @@ Use cases: linguistics research, compliance pipelines, AI alignment, patent pros
|
|
|
279
282
|
|
|
280
283
|
---
|
|
281
284
|
|
|
285
|
+
## The specsmith Bootstrap
|
|
286
|
+
|
|
287
|
+
specsmith governs itself — the specsmith repo is a specsmith-managed project. Run `specsmith audit`
|
|
288
|
+
in this repo to check its governance health. This means every feature we add to specsmith is
|
|
289
|
+
immediately dogfooded on specsmith itself. The [VS Code extension](https://github.com/BitConcepts/specsmith-vscode)
|
|
290
|
+
is developed alongside it as the flagship client.
|
|
291
|
+
|
|
282
292
|
## Documentation
|
|
283
293
|
|
|
284
294
|
**[specsmith.readthedocs.io](https://specsmith.readthedocs.io)** — Full manual: AEE primer,
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "specsmith"
|
|
7
|
-
version = "0.3.6.
|
|
7
|
+
version = "0.3.6.dev186"
|
|
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"
|
|
@@ -64,6 +64,7 @@ class _AutoUpdateGroup(click.Group):
|
|
|
64
64
|
|
|
65
65
|
if not skip:
|
|
66
66
|
_maybe_prompt_project_update()
|
|
67
|
+
_maybe_notify_pypi_update()
|
|
67
68
|
|
|
68
69
|
return super().invoke(ctx)
|
|
69
70
|
|
|
@@ -125,6 +126,47 @@ def _maybe_prompt_project_update() -> None:
|
|
|
125
126
|
pass # Never break the actual command on version check errors
|
|
126
127
|
|
|
127
128
|
|
|
129
|
+
def _maybe_notify_pypi_update() -> None:
|
|
130
|
+
"""Check PyPI for a newer specsmith version. Prints one-liner if outdated.
|
|
131
|
+
|
|
132
|
+
Runs at most once per shell session (tracked via env var). Uses a 3-second
|
|
133
|
+
timeout to avoid blocking the CLI. Only checks stable versions.
|
|
134
|
+
"""
|
|
135
|
+
import os
|
|
136
|
+
|
|
137
|
+
session_key = "SPECSMITH_PYPI_CHECKED"
|
|
138
|
+
if os.environ.get(session_key):
|
|
139
|
+
return
|
|
140
|
+
os.environ[session_key] = "1"
|
|
141
|
+
|
|
142
|
+
try:
|
|
143
|
+
import json as _json # noqa: PLC0415
|
|
144
|
+
from urllib.request import urlopen # noqa: PLC0415
|
|
145
|
+
|
|
146
|
+
resp = urlopen("https://pypi.org/pypi/specsmith/json", timeout=3) # noqa: S310
|
|
147
|
+
data = _json.loads(resp.read())
|
|
148
|
+
latest = data.get("info", {}).get("version", "")
|
|
149
|
+
if not latest:
|
|
150
|
+
return
|
|
151
|
+
|
|
152
|
+
# Simple version comparison: split into tuples of ints
|
|
153
|
+
def _ver(v: str) -> tuple[int, ...]:
|
|
154
|
+
import re
|
|
155
|
+
|
|
156
|
+
clean = re.match(r"(\d+\.\d+\.\d+)", v)
|
|
157
|
+
return tuple(int(x) for x in clean.group(1).split(".")) if clean else (0,)
|
|
158
|
+
|
|
159
|
+
if _ver(latest) > _ver(__version__):
|
|
160
|
+
console.print(
|
|
161
|
+
f" [dim]specsmith [bold]{latest}[/bold] available "
|
|
162
|
+
f"(you have {__version__}). "
|
|
163
|
+
f"Run [bold]specsmith self-update[/bold] or "
|
|
164
|
+
f"[bold]pipx upgrade specsmith[/bold].[/dim]"
|
|
165
|
+
)
|
|
166
|
+
except Exception: # noqa: BLE001
|
|
167
|
+
pass # Never block the CLI on network errors
|
|
168
|
+
|
|
169
|
+
|
|
128
170
|
@click.group(cls=_AutoUpdateGroup)
|
|
129
171
|
@click.version_option(version=__version__, prog_name="specsmith")
|
|
130
172
|
def main() -> None:
|
|
@@ -235,17 +235,27 @@ def _sync_full(
|
|
|
235
235
|
except ValueError:
|
|
236
236
|
pass
|
|
237
237
|
|
|
238
|
-
# 3. VCS CI configs —
|
|
238
|
+
# 3. VCS CI configs — create only if missing (never overwrite user CI)
|
|
239
239
|
if config.vcs_platform:
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
240
|
+
ci_exists = (
|
|
241
|
+
(
|
|
242
|
+
list((root / ".github" / "workflows").glob("*.yml"))
|
|
243
|
+
if (root / ".github" / "workflows").is_dir()
|
|
244
|
+
else []
|
|
245
|
+
)
|
|
246
|
+
or (root / ".gitlab-ci.yml").exists()
|
|
247
|
+
or (root / "bitbucket-pipelines.yml").exists()
|
|
248
|
+
)
|
|
249
|
+
if not ci_exists:
|
|
250
|
+
try:
|
|
251
|
+
from specsmith.vcs import get_platform
|
|
252
|
+
|
|
253
|
+
platform = get_platform(config.vcs_platform)
|
|
254
|
+
files = platform.generate_all(config, root)
|
|
255
|
+
for f in files:
|
|
256
|
+
synced.append(str(f.relative_to(root)) + " (created)")
|
|
257
|
+
except ValueError:
|
|
258
|
+
pass
|
|
249
259
|
|
|
250
260
|
# 4. Community files — create only if missing
|
|
251
261
|
for tmpl_name, output_rel in _build_community_files(config):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: specsmith
|
|
3
|
-
Version: 0.3.6.
|
|
3
|
+
Version: 0.3.6.dev186
|
|
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
|
|
@@ -224,12 +224,15 @@ The **specsmith AEE Workbench** VS Code extension is the flagship client:
|
|
|
224
224
|
|
|
225
225
|
## Supporting specsmith
|
|
226
226
|
|
|
227
|
-
|
|
227
|
+
specsmith is open source and built by a small team. Every bit of support helps:
|
|
228
228
|
|
|
229
|
-
- **[
|
|
230
|
-
- **
|
|
231
|
-
- **
|
|
232
|
-
- **
|
|
229
|
+
- ⭐ **Star** [specsmith](https://github.com/BitConcepts/specsmith) and [specsmith-vscode](https://github.com/BitConcepts/specsmith-vscode) on GitHub
|
|
230
|
+
- 📣 **Tell your friends and colleagues** — word of mouth is our best marketing
|
|
231
|
+
- 🐛 **Report bugs** via [GitHub Issues](https://github.com/BitConcepts/specsmith/issues) — even small ones help
|
|
232
|
+
- 💡 **Suggest features** via [GitHub Discussions](https://github.com/BitConcepts/specsmith/discussions) — we read every suggestion
|
|
233
|
+
- 🔧 **Fix bugs and contribute** — see [CONTRIBUTING.md](CONTRIBUTING.md); PRs welcome
|
|
234
|
+
- 📝 **Write about specsmith** — blog posts, tutorials, and talks help the community grow
|
|
235
|
+
- ❤️ **[Sponsor BitConcepts](https://github.com/sponsors/BitConcepts)** — directly funds development
|
|
233
236
|
|
|
234
237
|
---
|
|
235
238
|
|
|
@@ -344,6 +347,13 @@ Use cases: linguistics research, compliance pipelines, AI alignment, patent pros
|
|
|
344
347
|
|
|
345
348
|
---
|
|
346
349
|
|
|
350
|
+
## The specsmith Bootstrap
|
|
351
|
+
|
|
352
|
+
specsmith governs itself — the specsmith repo is a specsmith-managed project. Run `specsmith audit`
|
|
353
|
+
in this repo to check its governance health. This means every feature we add to specsmith is
|
|
354
|
+
immediately dogfooded on specsmith itself. The [VS Code extension](https://github.com/BitConcepts/specsmith-vscode)
|
|
355
|
+
is developed alongside it as the flagship client.
|
|
356
|
+
|
|
347
357
|
## Documentation
|
|
348
358
|
|
|
349
359
|
**[specsmith.readthedocs.io](https://specsmith.readthedocs.io)** — Full manual: AEE primer,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/agent/profiles/epistemic-auditor.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/agent/providers/anthropic.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/gui/widgets/update_checker.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/community/bug_report.md.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/community/license-MIT.j2
RENAMED
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/community/security.md.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/docs/architecture.md.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/docs/mkdocs.yml.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/docs/readthedocs.yaml.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/docs/requirements.md.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/docs/test-spec.md.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/governance/lifecycle.md.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/governance/roles.md.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/governance/rules.md.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/js/package.json.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/python/pyproject.toml.j2
RENAMED
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/rust/Cargo.toml.j2
RENAMED
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/scripts/exec.cmd.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/scripts/exec.sh.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/scripts/run.cmd.j2
RENAMED
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/scripts/setup.cmd.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/scripts/setup.sh.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith/templates/workflows/release.yml.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev183 → specsmith-0.3.6.dev186}/src/specsmith.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|