specsmith 0.3.6.dev185__tar.gz → 0.3.6.dev187__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.dev185/src/specsmith.egg-info → specsmith-0.3.6.dev187}/PKG-INFO +1 -1
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/pyproject.toml +1 -1
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/cli.py +42 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187/src/specsmith.egg-info}/PKG-INFO +1 -1
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/LICENSE +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/README.md +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/setup.cfg +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/epistemic/__init__.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/epistemic/belief.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/epistemic/certainty.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/epistemic/failure_graph.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/epistemic/py.typed +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/epistemic/recovery.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/epistemic/session.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/epistemic/stress_tester.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/epistemic/trace.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/__init__.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/__main__.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/agent/__init__.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/agent/core.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/agent/hooks.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/agent/optimizer.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/agent/profiles/epistemic-auditor.md +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/agent/profiles/planner.md +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/agent/profiles/verifier.md +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/agent/providers/__init__.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/agent/providers/anthropic.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/agent/providers/gemini.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/agent/providers/mistral.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/agent/providers/ollama.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/agent/providers/openai.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/agent/runner.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/agent/skills.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/agent/tools.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/architect.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/auditor.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/auth.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/commands/__init__.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/compressor.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/config.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/credit_analyzer.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/credits.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/differ.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/doctor.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/epistemic/__init__.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/epistemic/belief.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/epistemic/certainty.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/epistemic/failure_graph.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/epistemic/recovery.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/epistemic/stress_tester.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/executor.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/exporter.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/gui/__init__.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/gui/app.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/gui/main_window.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/gui/session_tab.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/gui/theme.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/gui/widgets/__init__.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/gui/widgets/chat_view.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/gui/widgets/input_bar.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/gui/widgets/provider_bar.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/gui/widgets/token_meter.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/gui/widgets/tool_panel.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/gui/widgets/update_checker.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/gui/worker.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/importer.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/integrations/__init__.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/integrations/aider.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/integrations/base.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/integrations/claude_code.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/integrations/copilot.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/integrations/cursor.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/integrations/gemini.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/integrations/warp.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/integrations/windsurf.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/languages.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/ledger.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/ollama_cmds.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/patent.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/phase.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/plugins.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/profiles.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/rate_limits.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/releaser.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/requirements.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/retrieval.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/scaffolder.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/session.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/agents.md.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/community/bug_report.md.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/community/code_of_conduct.md.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/community/contributing.md.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/community/feature_request.md.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/community/license-Apache-2.0.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/community/license-MIT.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/community/pull_request_template.md.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/community/security.md.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/docs/architecture.md.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/docs/mkdocs.yml.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/docs/readthedocs.yaml.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/docs/requirements.md.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/docs/test-spec.md.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/editorconfig.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/gitattributes.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/gitignore.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/go/go.mod.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/go/main.go.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/governance/belief-registry.md.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/governance/context-budget.md.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/governance/drift-metrics.md.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/governance/epistemic-axioms.md.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/governance/failure-modes.md.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/governance/lifecycle.md.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/governance/roles.md.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/governance/rules.md.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/governance/session-protocol.md.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/governance/uncertainty-map.md.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/governance/verification.md.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/js/package.json.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/ledger.md.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/python/cli.py.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/python/init.py.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/python/pyproject.toml.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/readme.md.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/rust/Cargo.toml.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/rust/main.rs.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/scripts/exec.cmd.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/scripts/exec.sh.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/scripts/run.cmd.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/scripts/run.sh.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/scripts/setup.cmd.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/scripts/setup.sh.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/workflows/release.yml.j2 +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/tool_installer.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/toolrules.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/tools.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/trace.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/updater.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/upgrader.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/validator.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/vcs/__init__.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/vcs/base.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/vcs/bitbucket.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/vcs/github.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/vcs/gitlab.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/vcs_commands.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/wireframes.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/workspace.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith.egg-info/SOURCES.txt +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith.egg-info/dependency_links.txt +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith.egg-info/entry_points.txt +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith.egg-info/requires.txt +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith.egg-info/top_level.txt +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/tests/test_auditor.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/tests/test_cli.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/tests/test_compressor.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/tests/test_epistemic.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/tests/test_importer.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/tests/test_integrations.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/tests/test_optimizer.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/tests/test_rate_limits.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/tests/test_scaffolder.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/tests/test_smoke.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/tests/test_tools.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/tests/test_validator.py +0 -0
- {specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/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.dev187
|
|
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
|
|
@@ -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.dev187"
|
|
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:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: specsmith
|
|
3
|
-
Version: 0.3.6.
|
|
3
|
+
Version: 0.3.6.dev187
|
|
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
|
|
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.dev185 → specsmith-0.3.6.dev187}/src/specsmith/agent/profiles/epistemic-auditor.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/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.dev185 → specsmith-0.3.6.dev187}/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.dev185 → specsmith-0.3.6.dev187}/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.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/community/license-MIT.j2
RENAMED
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/community/security.md.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/docs/architecture.md.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/docs/mkdocs.yml.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/docs/readthedocs.yaml.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/docs/requirements.md.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/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.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/governance/lifecycle.md.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/governance/roles.md.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/governance/rules.md.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/js/package.json.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/python/pyproject.toml.j2
RENAMED
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/rust/Cargo.toml.j2
RENAMED
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/scripts/exec.cmd.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/scripts/exec.sh.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/scripts/run.cmd.j2
RENAMED
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/scripts/setup.cmd.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/src/specsmith/templates/scripts/setup.sh.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/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
|
|
File without changes
|
{specsmith-0.3.6.dev185 → specsmith-0.3.6.dev187}/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
|