specsmith 0.4.0.dev222__tar.gz → 0.4.0.dev223__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.4.0.dev222/src/specsmith.egg-info → specsmith-0.4.0.dev223}/PKG-INFO +1 -1
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/pyproject.toml +9 -6
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/agent/broker.py +6 -5
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/agent/indexer.py +1 -1
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/agent/orchestrator.py +24 -8
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/console_utils.py +4 -3
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223/src/specsmith.egg-info}/PKG-INFO +1 -1
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/LICENSE +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/README.md +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/setup.cfg +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/epistemic/__init__.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/epistemic/belief.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/epistemic/certainty.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/epistemic/failure_graph.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/epistemic/py.typed +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/epistemic/recovery.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/epistemic/session.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/epistemic/stress_tester.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/epistemic/trace.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/__init__.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/__main__.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/agent/__init__.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/agent/cleanup.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/agent/events.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/agent/mcp.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/agent/memory.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/agent/repl.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/agent/router.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/agent/rules.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/agent/safety.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/agent/tools.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/agent/verifier.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/architect.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/auditor.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/auth.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/cli.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/commands/__init__.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/compressor.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/config.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/credit_analyzer.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/credits.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/differ.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/doctor.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/epistemic/__init__.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/epistemic/belief.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/epistemic/certainty.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/epistemic/failure_graph.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/epistemic/recovery.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/epistemic/stress_tester.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/executor.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/exporter.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/gui/__init__.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/gui/app.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/gui/main_window.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/gui/session_tab.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/gui/theme.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/gui/widgets/__init__.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/gui/widgets/chat_view.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/gui/widgets/input_bar.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/gui/widgets/provider_bar.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/gui/widgets/token_meter.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/gui/widgets/tool_panel.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/gui/widgets/update_checker.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/gui/worker.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/importer.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/integrations/__init__.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/integrations/aider.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/integrations/base.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/integrations/claude_code.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/integrations/copilot.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/integrations/cursor.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/integrations/gemini.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/integrations/warp.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/integrations/windsurf.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/languages.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/ledger.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/patent.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/phase.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/plugins.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/profiles.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/rate_limits.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/releaser.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/requirements.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/requirements_parser.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/retrieval.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/scaffolder.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/serve.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/session.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/agents.md.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/community/bug_report.md.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/community/code_of_conduct.md.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/community/contributing.md.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/community/feature_request.md.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/community/license-Apache-2.0.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/community/license-MIT.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/community/pull_request_template.md.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/community/security.md.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/docs/architecture.md.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/docs/mkdocs.yml.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/docs/readthedocs.yaml.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/docs/requirements.md.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/docs/test-spec.md.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/editorconfig.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/gitattributes.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/gitignore.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/go/go.mod.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/go/main.go.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/governance/belief-registry.md.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/governance/context-budget.md.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/governance/drift-metrics.md.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/governance/epistemic-axioms.md.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/governance/failure-modes.md.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/governance/lifecycle.md.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/governance/roles.md.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/governance/rules.md.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/governance/session-protocol.md.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/governance/uncertainty-map.md.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/governance/verification.md.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/js/package.json.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/ledger.md.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/python/cli.py.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/python/init.py.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/python/pyproject.toml.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/readme.md.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/rust/Cargo.toml.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/rust/main.rs.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/scripts/exec.cmd.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/scripts/exec.sh.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/scripts/run.cmd.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/scripts/run.sh.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/scripts/setup.cmd.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/scripts/setup.sh.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/workflows/release.yml.j2 +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/tool_installer.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/toolrules.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/tools.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/trace.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/updater.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/upgrader.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/validator.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/vcs/__init__.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/vcs/base.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/vcs/bitbucket.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/vcs/github.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/vcs/gitlab.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/vcs_commands.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/wireframes.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/workspace.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith.egg-info/SOURCES.txt +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith.egg-info/dependency_links.txt +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith.egg-info/entry_points.txt +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith.egg-info/requires.txt +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith.egg-info/top_level.txt +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/tests/test_CMD_001.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/tests/test_auditor.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/tests/test_cli.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/tests/test_compressor.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/tests/test_e2e_nexus.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/tests/test_epistemic.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/tests/test_importer.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/tests/test_integrations.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/tests/test_nexus.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/tests/test_phase1_4_new.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/tests/test_rate_limits.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/tests/test_scaffolder.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/tests/test_smoke.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/tests/test_tools.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/tests/test_validator.py +0 -0
- {specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/tests/test_vcs.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: specsmith
|
|
3
|
-
Version: 0.4.0.
|
|
3
|
+
Version: 0.4.0.dev223
|
|
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.4.0.
|
|
7
|
+
version = "0.4.0.dev223"
|
|
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"
|
|
@@ -107,6 +107,11 @@ select = ["E", "F", "W", "I", "UP", "B", "SIM"]
|
|
|
107
107
|
# Long rule text and install command strings in documentation modules
|
|
108
108
|
"src/specsmith/toolrules.py" = ["E501"]
|
|
109
109
|
"src/specsmith/tool_installer.py" = ["E501"]
|
|
110
|
+
# One-shot rebuild scripts contain literal REQ description strings that are
|
|
111
|
+
# intentionally long; wrapping them would damage readability of the source
|
|
112
|
+
# of truth they reconstruct.
|
|
113
|
+
"scripts/rebuild_requirements_json.py" = ["E501"]
|
|
114
|
+
"scripts/rebuild_requirements_md.py" = ["E501"]
|
|
110
115
|
|
|
111
116
|
[tool.mypy]
|
|
112
117
|
python_version = "3.10"
|
|
@@ -141,9 +146,11 @@ ignore_missing_imports = true
|
|
|
141
146
|
module = ["epistemic", "epistemic.*"]
|
|
142
147
|
ignore_errors = true
|
|
143
148
|
|
|
144
|
-
#
|
|
149
|
+
# Modules that use dynamic typing patterns incompatible with strict mypy.
|
|
145
150
|
# These are correct at runtime; the Any-heavy urllib, json.loads, etc. patterns
|
|
146
151
|
# are the source of most errors here. Exclude from strict type checking.
|
|
152
|
+
# REQ-111: shrunk this list as part of the pre-1.0 cleanup; broker, safety,
|
|
153
|
+
# console_utils, and indexer have been graduated to strict mypy.
|
|
147
154
|
[[tool.mypy.overrides]]
|
|
148
155
|
module = [
|
|
149
156
|
"specsmith.ollama_cmds",
|
|
@@ -153,14 +160,10 @@ module = [
|
|
|
153
160
|
"specsmith.importer",
|
|
154
161
|
"specsmith.agent.providers.gemini",
|
|
155
162
|
"specsmith.agent.runner",
|
|
156
|
-
"specsmith.agent.broker",
|
|
157
163
|
"specsmith.agent.cleanup",
|
|
158
|
-
"specsmith.agent.indexer",
|
|
159
164
|
"specsmith.agent.orchestrator",
|
|
160
165
|
"specsmith.agent.repl",
|
|
161
|
-
"specsmith.agent.safety",
|
|
162
166
|
"specsmith.agent.tools",
|
|
163
|
-
"specsmith.console_utils",
|
|
164
167
|
"specsmith.profiles",
|
|
165
168
|
"specsmith.serve",
|
|
166
169
|
"specsmith.toolrules",
|
|
@@ -40,6 +40,7 @@ from collections.abc import Callable
|
|
|
40
40
|
from dataclasses import dataclass, field
|
|
41
41
|
from enum import Enum
|
|
42
42
|
from pathlib import Path
|
|
43
|
+
from typing import Any
|
|
43
44
|
|
|
44
45
|
# ---------------------------------------------------------------------------
|
|
45
46
|
# Intent classification
|
|
@@ -285,7 +286,7 @@ def infer_scope(
|
|
|
285
286
|
class PreflightDecision:
|
|
286
287
|
"""Wrapped Specsmith preflight outcome."""
|
|
287
288
|
|
|
288
|
-
raw: dict
|
|
289
|
+
raw: dict[str, Any]
|
|
289
290
|
decision: str = "unknown"
|
|
290
291
|
work_item_id: str = ""
|
|
291
292
|
requirement_ids: list[str] = field(default_factory=list)
|
|
@@ -294,7 +295,7 @@ class PreflightDecision:
|
|
|
294
295
|
instruction: str = ""
|
|
295
296
|
|
|
296
297
|
@classmethod
|
|
297
|
-
def from_json(cls, payload: dict) -> PreflightDecision:
|
|
298
|
+
def from_json(cls, payload: dict[str, Any]) -> PreflightDecision:
|
|
298
299
|
return cls(
|
|
299
300
|
raw=payload,
|
|
300
301
|
decision=str(payload.get("decision", "unknown")),
|
|
@@ -476,7 +477,7 @@ RETRY_STRATEGIES = (
|
|
|
476
477
|
)
|
|
477
478
|
|
|
478
479
|
|
|
479
|
-
def classify_retry_strategy(report: dict, decision: PreflightDecision) -> str:
|
|
480
|
+
def classify_retry_strategy(report: dict[str, Any], decision: PreflightDecision) -> str:
|
|
480
481
|
"""Map an executor failure report to one of the canonical retry strategies.
|
|
481
482
|
|
|
482
483
|
The classification is deterministic and inspects:
|
|
@@ -529,7 +530,7 @@ def classify_retry_strategy(report: dict, decision: PreflightDecision) -> str:
|
|
|
529
530
|
def execute_with_governance(
|
|
530
531
|
decision: PreflightDecision,
|
|
531
532
|
*,
|
|
532
|
-
executor: Callable[[PreflightDecision, int], dict],
|
|
533
|
+
executor: Callable[[PreflightDecision, int], dict[str, Any]],
|
|
533
534
|
retry_budget: int = DEFAULT_RETRY_BUDGET,
|
|
534
535
|
) -> RunResult:
|
|
535
536
|
"""Run the work with Specsmith governance and a hard retry budget.
|
|
@@ -546,7 +547,7 @@ def execute_with_governance(
|
|
|
546
547
|
|
|
547
548
|
last_summary = ""
|
|
548
549
|
last_confidence = 0.0
|
|
549
|
-
last_report: dict = {}
|
|
550
|
+
last_report: dict[str, Any] = {}
|
|
550
551
|
for attempt in range(1, retry_budget + 1):
|
|
551
552
|
report = executor(decision, attempt) or {}
|
|
552
553
|
last_report = report
|
|
@@ -207,13 +207,15 @@ Next action:
|
|
|
207
207
|
|
|
208
208
|
AG2's ``initiate_chat`` returns a ``ChatResult`` whose ``summary`` is
|
|
209
209
|
the last assistant message and whose ``chat_history`` lists every
|
|
210
|
-
turn. We
|
|
211
|
-
|
|
212
|
-
``
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
210
|
+
turn. We parse the Nexus output contract out of the summary and feed
|
|
211
|
+
the structured signal through :func:`specsmith.agent.verifier.score`
|
|
212
|
+
(REQ-108) so ``equilibrium`` and ``confidence`` reflect real test /
|
|
213
|
+
ruff / mypy state instead of a hardcoded heuristic. When the LLM
|
|
214
|
+
returns no contract sections at all we fall back to the previous
|
|
215
|
+
conservative defaults so behaviour stays the same on degraded runs.
|
|
216
216
|
"""
|
|
217
|
+
from specsmith.agent.verifier import report_from_chat_sections, score
|
|
218
|
+
|
|
217
219
|
summary = ""
|
|
218
220
|
if chat_result is not None:
|
|
219
221
|
summary = getattr(chat_result, "summary", "") or ""
|
|
@@ -221,8 +223,6 @@ Next action:
|
|
|
221
223
|
summary = str(summary)
|
|
222
224
|
|
|
223
225
|
sections = self._parse_output_contract(summary)
|
|
224
|
-
equilibrium = bool(sections) and "next_action" in sections
|
|
225
|
-
confidence = 0.85 if equilibrium else (0.4 if summary else 0.0)
|
|
226
226
|
|
|
227
227
|
files_changed: list[str] = []
|
|
228
228
|
files_section = sections.get("files_changed", "")
|
|
@@ -236,6 +236,22 @@ Next action:
|
|
|
236
236
|
if tests_section:
|
|
237
237
|
test_results["raw"] = tests_section
|
|
238
238
|
|
|
239
|
+
# REQ-108: derive confidence and equilibrium from the real verifier
|
|
240
|
+
# signal rather than guessing from the presence of contract sections.
|
|
241
|
+
if sections:
|
|
242
|
+
report = report_from_chat_sections(sections, files_changed=files_changed)
|
|
243
|
+
verdict = score(report, confidence_target=0.7)
|
|
244
|
+
confidence = verdict.confidence
|
|
245
|
+
# Treat "reached the next_action section" as a soft floor for
|
|
246
|
+
# equilibrium so the harness still distinguishes a structurally
|
|
247
|
+
# complete contract from a totally empty one.
|
|
248
|
+
equilibrium = verdict.equilibrium or (
|
|
249
|
+
"next_action" in sections and report.has_changes and report.test_failed == 0
|
|
250
|
+
)
|
|
251
|
+
else:
|
|
252
|
+
equilibrium = False
|
|
253
|
+
confidence = 0.4 if summary else 0.0
|
|
254
|
+
|
|
239
255
|
return TaskResult(
|
|
240
256
|
equilibrium=equilibrium,
|
|
241
257
|
confidence=confidence,
|
|
@@ -23,11 +23,12 @@ from __future__ import annotations
|
|
|
23
23
|
|
|
24
24
|
import os
|
|
25
25
|
import sys
|
|
26
|
+
from typing import IO, Any
|
|
26
27
|
|
|
27
28
|
from rich.console import Console
|
|
28
29
|
|
|
29
30
|
|
|
30
|
-
def _ensure_utf8_stream(stream) -> None:
|
|
31
|
+
def _ensure_utf8_stream(stream: IO[str]) -> None:
|
|
31
32
|
"""Best-effort upgrade of ``stream`` to UTF-8 with safe error handling."""
|
|
32
33
|
reconfigure = getattr(stream, "reconfigure", None)
|
|
33
34
|
if reconfigure is None:
|
|
@@ -40,7 +41,7 @@ def _ensure_utf8_stream(stream) -> None:
|
|
|
40
41
|
return
|
|
41
42
|
|
|
42
43
|
|
|
43
|
-
def make_console(**kwargs) -> Console:
|
|
44
|
+
def make_console(**kwargs: Any) -> Console:
|
|
44
45
|
"""Return a UTF-8 safe ``rich.console.Console``.
|
|
45
46
|
|
|
46
47
|
Any keyword arguments are forwarded to ``Console`` and override the
|
|
@@ -53,7 +54,7 @@ def make_console(**kwargs) -> Console:
|
|
|
53
54
|
# we may spawn (e.g. tests, CI runners).
|
|
54
55
|
os.environ.setdefault("PYTHONIOENCODING", "utf-8")
|
|
55
56
|
|
|
56
|
-
defaults = {
|
|
57
|
+
defaults: dict[str, Any] = {
|
|
57
58
|
"legacy_windows": False,
|
|
58
59
|
"soft_wrap": False,
|
|
59
60
|
"force_terminal": None,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: specsmith
|
|
3
|
-
Version: 0.4.0.
|
|
3
|
+
Version: 0.4.0.dev223
|
|
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
|
|
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.4.0.dev222 → specsmith-0.4.0.dev223}/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
|
|
File without changes
|
{specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/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.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/community/license-MIT.j2
RENAMED
|
File without changes
|
|
File without changes
|
{specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/community/security.md.j2
RENAMED
|
File without changes
|
{specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/docs/architecture.md.j2
RENAMED
|
File without changes
|
{specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/docs/mkdocs.yml.j2
RENAMED
|
File without changes
|
{specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/docs/readthedocs.yaml.j2
RENAMED
|
File without changes
|
{specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/docs/requirements.md.j2
RENAMED
|
File without changes
|
{specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/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.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/governance/lifecycle.md.j2
RENAMED
|
File without changes
|
{specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/governance/roles.md.j2
RENAMED
|
File without changes
|
{specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/governance/rules.md.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/js/package.json.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/python/pyproject.toml.j2
RENAMED
|
File without changes
|
|
File without changes
|
{specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/rust/Cargo.toml.j2
RENAMED
|
File without changes
|
|
File without changes
|
{specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/scripts/exec.cmd.j2
RENAMED
|
File without changes
|
{specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/scripts/exec.sh.j2
RENAMED
|
File without changes
|
{specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/scripts/run.cmd.j2
RENAMED
|
File without changes
|
|
File without changes
|
{specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/scripts/setup.cmd.j2
RENAMED
|
File without changes
|
{specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/src/specsmith/templates/scripts/setup.sh.j2
RENAMED
|
File without changes
|
{specsmith-0.4.0.dev222 → specsmith-0.4.0.dev223}/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.4.0.dev222 → specsmith-0.4.0.dev223}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|