specsmith 0.3.6.dev164__tar.gz → 0.3.6.dev171__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.dev164/src/specsmith.egg-info → specsmith-0.3.6.dev171}/PKG-INFO +15 -3
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/README.md +14 -2
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/pyproject.toml +1 -1
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/__init__.py +1 -1
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/agent/tools.py +11 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/cli.py +12 -12
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/config.py +17 -5
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171/src/specsmith.egg-info}/PKG-INFO +15 -3
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/LICENSE +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/setup.cfg +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/epistemic/__init__.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/epistemic/belief.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/epistemic/certainty.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/epistemic/failure_graph.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/epistemic/py.typed +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/epistemic/recovery.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/epistemic/session.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/epistemic/stress_tester.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/epistemic/trace.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/__main__.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/agent/__init__.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/agent/core.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/agent/hooks.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/agent/optimizer.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/agent/profiles/epistemic-auditor.md +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/agent/profiles/planner.md +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/agent/profiles/verifier.md +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/agent/providers/__init__.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/agent/providers/anthropic.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/agent/providers/gemini.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/agent/providers/mistral.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/agent/providers/ollama.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/agent/providers/openai.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/agent/runner.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/agent/skills.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/architect.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/auditor.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/auth.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/commands/__init__.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/compressor.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/credit_analyzer.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/credits.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/differ.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/doctor.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/epistemic/__init__.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/epistemic/belief.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/epistemic/certainty.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/epistemic/failure_graph.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/epistemic/recovery.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/epistemic/stress_tester.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/executor.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/exporter.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/gui/__init__.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/gui/app.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/gui/main_window.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/gui/session_tab.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/gui/theme.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/gui/widgets/__init__.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/gui/widgets/chat_view.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/gui/widgets/input_bar.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/gui/widgets/provider_bar.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/gui/widgets/token_meter.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/gui/widgets/tool_panel.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/gui/widgets/update_checker.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/gui/worker.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/importer.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/integrations/__init__.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/integrations/aider.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/integrations/base.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/integrations/claude_code.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/integrations/copilot.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/integrations/cursor.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/integrations/gemini.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/integrations/warp.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/integrations/windsurf.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/languages.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/ledger.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/ollama_cmds.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/patent.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/phase.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/plugins.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/profiles.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/rate_limits.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/releaser.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/requirements.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/scaffolder.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/session.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/agents.md.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/community/bug_report.md.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/community/code_of_conduct.md.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/community/contributing.md.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/community/feature_request.md.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/community/license-Apache-2.0.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/community/license-MIT.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/community/pull_request_template.md.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/community/security.md.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/docs/architecture.md.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/docs/mkdocs.yml.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/docs/readthedocs.yaml.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/docs/requirements.md.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/docs/test-spec.md.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/docs/workflow.md.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/editorconfig.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/gitattributes.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/gitignore.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/go/go.mod.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/go/main.go.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/governance/belief-registry.md.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/governance/context-budget.md.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/governance/drift-metrics.md.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/governance/epistemic-axioms.md.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/governance/failure-modes.md.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/governance/roles.md.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/governance/rules.md.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/governance/uncertainty-map.md.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/governance/verification.md.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/governance/workflow.md.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/js/package.json.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/ledger.md.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/python/cli.py.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/python/init.py.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/python/pyproject.toml.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/readme.md.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/rust/Cargo.toml.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/rust/main.rs.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/scripts/exec.cmd.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/scripts/exec.sh.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/scripts/run.cmd.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/scripts/run.sh.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/scripts/setup.cmd.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/scripts/setup.sh.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/workflows/release.yml.j2 +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/tool_installer.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/toolrules.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/tools.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/trace.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/updater.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/upgrader.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/validator.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/vcs/__init__.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/vcs/base.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/vcs/bitbucket.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/vcs/github.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/vcs/gitlab.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/vcs_commands.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/workspace.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith.egg-info/SOURCES.txt +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith.egg-info/dependency_links.txt +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith.egg-info/entry_points.txt +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith.egg-info/requires.txt +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith.egg-info/top_level.txt +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/tests/test_auditor.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/tests/test_cli.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/tests/test_compressor.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/tests/test_epistemic.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/tests/test_importer.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/tests/test_integrations.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/tests/test_optimizer.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/tests/test_rate_limits.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/tests/test_scaffolder.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/tests/test_smoke.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/tests/test_tools.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/tests/test_validator.py +0 -0
- {specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/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.dev171
|
|
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
|
|
@@ -66,6 +66,7 @@ Dynamic: license-file
|
|
|
66
66
|
# specsmith
|
|
67
67
|
|
|
68
68
|
[](https://github.com/BitConcepts/specsmith/actions/workflows/ci.yml)
|
|
69
|
+
[](https://github.com/sponsors/BitConcepts)
|
|
69
70
|
[](https://specsmith.readthedocs.io/en/stable/)
|
|
70
71
|
[](https://pypi.org/project/specsmith/)
|
|
71
72
|
[](https://www.python.org/downloads/)
|
|
@@ -122,7 +123,7 @@ specsmith phase list # list all phases
|
|
|
122
123
|
```
|
|
123
124
|
|
|
124
125
|
The current phase is persisted in `scaffold.yml` as `aee_phase` and displayed in the VS Code
|
|
125
|
-
|
|
126
|
+
Settings Panel. Each phase has a checklist of file/command criteria, recommended commands,
|
|
126
127
|
and a readiness percentage.
|
|
127
128
|
|
|
128
129
|
---
|
|
@@ -190,7 +191,7 @@ The **specsmith AEE Workbench** VS Code extension is the flagship client:
|
|
|
190
191
|
```
|
|
191
192
|
# Install specsmith first, then:
|
|
192
193
|
# VS Code: Ctrl+Shift+P → specsmith: New Agent Session
|
|
193
|
-
#
|
|
194
|
+
# Settings Panel: Ctrl+Shift+G
|
|
194
195
|
```
|
|
195
196
|
|
|
196
197
|
**Key features:**
|
|
@@ -211,6 +212,17 @@ The **specsmith AEE Workbench** VS Code extension is the flagship client:
|
|
|
211
212
|
|
|
212
213
|
---
|
|
213
214
|
|
|
215
|
+
## Supporting specsmith
|
|
216
|
+
|
|
217
|
+
If specsmith is saving you time or helping your team ship better software, please consider:
|
|
218
|
+
|
|
219
|
+
- **[Sponsoring BitConcepts](https://github.com/sponsors/BitConcepts)** — directly funds development
|
|
220
|
+
- **Starring** [specsmith](https://github.com/BitConcepts/specsmith) and [specsmith-vscode](https://github.com/BitConcepts/specsmith-vscode) on GitHub
|
|
221
|
+
- **Reporting bugs** and **requesting features** via [GitHub Issues](https://github.com/BitConcepts/specsmith/issues)
|
|
222
|
+
- **Contributing** — see [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
214
226
|
## Ollama — Local LLMs (Zero API Cost)
|
|
215
227
|
|
|
216
228
|
specsmith has first-class Ollama support, including:
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# specsmith
|
|
2
2
|
|
|
3
3
|
[](https://github.com/BitConcepts/specsmith/actions/workflows/ci.yml)
|
|
4
|
+
[](https://github.com/sponsors/BitConcepts)
|
|
4
5
|
[](https://specsmith.readthedocs.io/en/stable/)
|
|
5
6
|
[](https://pypi.org/project/specsmith/)
|
|
6
7
|
[](https://www.python.org/downloads/)
|
|
@@ -57,7 +58,7 @@ specsmith phase list # list all phases
|
|
|
57
58
|
```
|
|
58
59
|
|
|
59
60
|
The current phase is persisted in `scaffold.yml` as `aee_phase` and displayed in the VS Code
|
|
60
|
-
|
|
61
|
+
Settings Panel. Each phase has a checklist of file/command criteria, recommended commands,
|
|
61
62
|
and a readiness percentage.
|
|
62
63
|
|
|
63
64
|
---
|
|
@@ -125,7 +126,7 @@ The **specsmith AEE Workbench** VS Code extension is the flagship client:
|
|
|
125
126
|
```
|
|
126
127
|
# Install specsmith first, then:
|
|
127
128
|
# VS Code: Ctrl+Shift+P → specsmith: New Agent Session
|
|
128
|
-
#
|
|
129
|
+
# Settings Panel: Ctrl+Shift+G
|
|
129
130
|
```
|
|
130
131
|
|
|
131
132
|
**Key features:**
|
|
@@ -146,6 +147,17 @@ The **specsmith AEE Workbench** VS Code extension is the flagship client:
|
|
|
146
147
|
|
|
147
148
|
---
|
|
148
149
|
|
|
150
|
+
## Supporting specsmith
|
|
151
|
+
|
|
152
|
+
If specsmith is saving you time or helping your team ship better software, please consider:
|
|
153
|
+
|
|
154
|
+
- **[Sponsoring BitConcepts](https://github.com/sponsors/BitConcepts)** — directly funds development
|
|
155
|
+
- **Starring** [specsmith](https://github.com/BitConcepts/specsmith) and [specsmith-vscode](https://github.com/BitConcepts/specsmith-vscode) on GitHub
|
|
156
|
+
- **Reporting bugs** and **requesting features** via [GitHub Issues](https://github.com/BitConcepts/specsmith/issues)
|
|
157
|
+
- **Contributing** — see [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
149
161
|
## Ollama — Local LLMs (Zero API Cost)
|
|
150
162
|
|
|
151
163
|
specsmith has first-class Ollama support, including:
|
|
@@ -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.dev171"
|
|
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"
|
|
@@ -8,4 +8,4 @@ from importlib.metadata import version as _pkg_version
|
|
|
8
8
|
try:
|
|
9
9
|
__version__: str = _pkg_version("specsmith")
|
|
10
10
|
except PackageNotFoundError: # running from source without install
|
|
11
|
-
__version__ = "0.
|
|
11
|
+
__version__ = "0.3.6" # fallback: keep in sync with pyproject.toml
|
|
@@ -26,6 +26,16 @@ from pathlib import Path
|
|
|
26
26
|
|
|
27
27
|
from specsmith.agent.core import Tool, ToolParam
|
|
28
28
|
|
|
29
|
+
# Env vars that prevent Rich from using the Windows Console API
|
|
30
|
+
# (LegacyWindowsTerm) when stdout is a captured pipe. Without these, Rich
|
|
31
|
+
# crashes with 'WriteFile failed' / handle errors on every command.
|
|
32
|
+
_SUBPROCESS_ENV: dict[str, str] = {
|
|
33
|
+
**os.environ,
|
|
34
|
+
"NO_COLOR": "1", # Disables Rich colour / Windows console API path
|
|
35
|
+
"FORCE_COLOR": "0", # Belt-and-suspenders: also suppress colour
|
|
36
|
+
"PYTHONIOENCODING": "utf-8", # Ensure UTF-8 on pipes regardless of locale
|
|
37
|
+
}
|
|
38
|
+
|
|
29
39
|
|
|
30
40
|
def _run_specsmith(args: list[str], project_dir: str = ".") -> str:
|
|
31
41
|
"""Execute a specsmith command and return combined stdout+stderr."""
|
|
@@ -36,6 +46,7 @@ def _run_specsmith(args: list[str], project_dir: str = ".") -> str:
|
|
|
36
46
|
capture_output=True,
|
|
37
47
|
text=True,
|
|
38
48
|
timeout=120,
|
|
49
|
+
env=_SUBPROCESS_ENV,
|
|
39
50
|
)
|
|
40
51
|
output = (result.stdout + result.stderr).strip()
|
|
41
52
|
if result.returncode != 0:
|
|
@@ -1969,8 +1969,8 @@ def run_cmd(
|
|
|
1969
1969
|
SPECSMITH_PROVIDER=<name> → explicit override
|
|
1970
1970
|
|
|
1971
1971
|
Install a provider:
|
|
1972
|
-
|
|
1973
|
-
|
|
1972
|
+
pipx inject specsmith anthropic # Claude
|
|
1973
|
+
pipx inject specsmith openai # GPT/O-series
|
|
1974
1974
|
"""
|
|
1975
1975
|
from specsmith.agent.core import ModelTier
|
|
1976
1976
|
from specsmith.agent.runner import AgentRunner
|
|
@@ -2002,11 +2002,11 @@ def run_cmd(
|
|
|
2002
2002
|
except Exception as e: # noqa: BLE001
|
|
2003
2003
|
console.print(f"[red]{e}[/red]")
|
|
2004
2004
|
console.print(
|
|
2005
|
-
"\nInstall a provider:\n"
|
|
2006
|
-
"
|
|
2007
|
-
"
|
|
2008
|
-
"
|
|
2009
|
-
" # Ollama: install locally
|
|
2005
|
+
"\nInstall a provider (pipx recommended):\n"
|
|
2006
|
+
" pipx inject specsmith anthropic # Claude\n"
|
|
2007
|
+
" pipx inject specsmith openai # GPT\n"
|
|
2008
|
+
" pipx inject specsmith google-generativeai # Gemini\n"
|
|
2009
|
+
" # Ollama: install locally from https://ollama.ai"
|
|
2010
2010
|
)
|
|
2011
2011
|
raise SystemExit(1) from None
|
|
2012
2012
|
|
|
@@ -2027,11 +2027,11 @@ def agent_providers_cmd() -> None:
|
|
|
2027
2027
|
icon = "[green]\u2713[/green]" if configured else "[yellow]\u2014[/yellow]"
|
|
2028
2028
|
console.print(f" {icon} {p['name']:12s} {p['status']}")
|
|
2029
2029
|
|
|
2030
|
-
console.print("\nInstall providers:")
|
|
2031
|
-
console.print("
|
|
2032
|
-
console.print("
|
|
2033
|
-
console.print("
|
|
2034
|
-
console.print(" # Ollama: install from https://ollama.ai (no
|
|
2030
|
+
console.print("\nInstall providers (pipx recommended):")
|
|
2031
|
+
console.print(" pipx inject specsmith anthropic # Claude")
|
|
2032
|
+
console.print(" pipx inject specsmith openai # GPT/O-series")
|
|
2033
|
+
console.print(" pipx inject specsmith google-generativeai # Gemini")
|
|
2034
|
+
console.print(" # Ollama: install from https://ollama.ai (no extra needed)")
|
|
2035
2035
|
|
|
2036
2036
|
|
|
2037
2037
|
@agent_group.command(name="tools")
|
|
@@ -64,7 +64,7 @@ class ProjectType(str, Enum):
|
|
|
64
64
|
|
|
65
65
|
|
|
66
66
|
class Platform(str, Enum):
|
|
67
|
-
"""Target platforms."""
|
|
67
|
+
"""Target platforms (kept for backward compatibility; ProjectConfig now uses list[str])."""
|
|
68
68
|
|
|
69
69
|
WINDOWS = "windows"
|
|
70
70
|
LINUX = "linux"
|
|
@@ -91,9 +91,15 @@ class ProjectConfig(BaseModel):
|
|
|
91
91
|
default=ProjectType.CLI_PYTHON.value,
|
|
92
92
|
description="Project type. Should match a ProjectType value.",
|
|
93
93
|
)
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
94
|
+
# str instead of Platform enum so FPGA/embedded/cloud targets (e.g. 'embedded',
|
|
95
|
+
# 'amd-fpga', 'wasm') don't crash pydantic validation. The Platform enum is kept
|
|
96
|
+
# for backward-compatible imports; use its .value strings as defaults.
|
|
97
|
+
platforms: list[str] = Field(
|
|
98
|
+
default=["windows", "linux", "macos"],
|
|
99
|
+
description=(
|
|
100
|
+
"Target build platforms. Standard: windows, linux, macos. "
|
|
101
|
+
"Domain-specific: embedded, cloud, wasm, amd-fpga, intel-fpga, lattice-fpga, etc."
|
|
102
|
+
),
|
|
97
103
|
)
|
|
98
104
|
language: str = Field(default="python", description="Primary language/runtime")
|
|
99
105
|
spec_version: str = Field(default="0.3.0", description="Spec version to scaffold from")
|
|
@@ -238,7 +244,13 @@ class ProjectConfig(BaseModel):
|
|
|
238
244
|
@property
|
|
239
245
|
def platform_names(self) -> list[str]:
|
|
240
246
|
"""Human-readable platform names."""
|
|
241
|
-
|
|
247
|
+
|
|
248
|
+
def _label(p: str) -> str:
|
|
249
|
+
if p.lower() == "macos":
|
|
250
|
+
return "macOS"
|
|
251
|
+
return p.replace("-", " ").title()
|
|
252
|
+
|
|
253
|
+
return [_label(str(p)) for p in self.platforms]
|
|
242
254
|
|
|
243
255
|
@property
|
|
244
256
|
def is_epistemic_type(self) -> bool:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: specsmith
|
|
3
|
-
Version: 0.3.6.
|
|
3
|
+
Version: 0.3.6.dev171
|
|
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
|
|
@@ -66,6 +66,7 @@ Dynamic: license-file
|
|
|
66
66
|
# specsmith
|
|
67
67
|
|
|
68
68
|
[](https://github.com/BitConcepts/specsmith/actions/workflows/ci.yml)
|
|
69
|
+
[](https://github.com/sponsors/BitConcepts)
|
|
69
70
|
[](https://specsmith.readthedocs.io/en/stable/)
|
|
70
71
|
[](https://pypi.org/project/specsmith/)
|
|
71
72
|
[](https://www.python.org/downloads/)
|
|
@@ -122,7 +123,7 @@ specsmith phase list # list all phases
|
|
|
122
123
|
```
|
|
123
124
|
|
|
124
125
|
The current phase is persisted in `scaffold.yml` as `aee_phase` and displayed in the VS Code
|
|
125
|
-
|
|
126
|
+
Settings Panel. Each phase has a checklist of file/command criteria, recommended commands,
|
|
126
127
|
and a readiness percentage.
|
|
127
128
|
|
|
128
129
|
---
|
|
@@ -190,7 +191,7 @@ The **specsmith AEE Workbench** VS Code extension is the flagship client:
|
|
|
190
191
|
```
|
|
191
192
|
# Install specsmith first, then:
|
|
192
193
|
# VS Code: Ctrl+Shift+P → specsmith: New Agent Session
|
|
193
|
-
#
|
|
194
|
+
# Settings Panel: Ctrl+Shift+G
|
|
194
195
|
```
|
|
195
196
|
|
|
196
197
|
**Key features:**
|
|
@@ -211,6 +212,17 @@ The **specsmith AEE Workbench** VS Code extension is the flagship client:
|
|
|
211
212
|
|
|
212
213
|
---
|
|
213
214
|
|
|
215
|
+
## Supporting specsmith
|
|
216
|
+
|
|
217
|
+
If specsmith is saving you time or helping your team ship better software, please consider:
|
|
218
|
+
|
|
219
|
+
- **[Sponsoring BitConcepts](https://github.com/sponsors/BitConcepts)** — directly funds development
|
|
220
|
+
- **Starring** [specsmith](https://github.com/BitConcepts/specsmith) and [specsmith-vscode](https://github.com/BitConcepts/specsmith-vscode) on GitHub
|
|
221
|
+
- **Reporting bugs** and **requesting features** via [GitHub Issues](https://github.com/BitConcepts/specsmith/issues)
|
|
222
|
+
- **Contributing** — see [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
214
226
|
## Ollama — Local LLMs (Zero API Cost)
|
|
215
227
|
|
|
216
228
|
specsmith has first-class Ollama support, including:
|
|
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.dev164 → specsmith-0.3.6.dev171}/src/specsmith/agent/profiles/epistemic-auditor.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/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
|
{specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/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
|
{specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/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.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/community/license-MIT.j2
RENAMED
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/community/security.md.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/docs/architecture.md.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/docs/mkdocs.yml.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/docs/readthedocs.yaml.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/docs/requirements.md.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/docs/test-spec.md.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/docs/workflow.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.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/governance/roles.md.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/governance/rules.md.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/governance/workflow.md.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/js/package.json.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/python/pyproject.toml.j2
RENAMED
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/rust/Cargo.toml.j2
RENAMED
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/scripts/exec.cmd.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/scripts/exec.sh.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/scripts/run.cmd.j2
RENAMED
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/scripts/setup.cmd.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/src/specsmith/templates/scripts/setup.sh.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev164 → specsmith-0.3.6.dev171}/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.dev164 → specsmith-0.3.6.dev171}/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
|