specsmith 0.3.13.dev216__tar.gz → 0.3.13.dev220__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.13.dev216/src/specsmith.egg-info → specsmith-0.3.13.dev220}/PKG-INFO +37 -1
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/README.md +36 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/pyproject.toml +10 -1
- specsmith-0.3.13.dev220/src/specsmith/agent/__init__.py +0 -0
- specsmith-0.3.13.dev220/src/specsmith/agent/broker.py +608 -0
- specsmith-0.3.13.dev220/src/specsmith/agent/cleanup.py +312 -0
- specsmith-0.3.13.dev220/src/specsmith/agent/indexer.py +72 -0
- specsmith-0.3.13.dev220/src/specsmith/agent/orchestrator.py +280 -0
- specsmith-0.3.13.dev220/src/specsmith/agent/repl.py +152 -0
- specsmith-0.3.13.dev220/src/specsmith/agent/safety.py +109 -0
- specsmith-0.3.13.dev220/src/specsmith/agent/tools.py +189 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/auditor.py +8 -8
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/cli.py +648 -48
- specsmith-0.3.13.dev220/src/specsmith/console_utils.py +62 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/epistemic/recovery.py +1 -3
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/epistemic/stress_tester.py +4 -6
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/exporter.py +2 -2
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/importer.py +5 -5
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/integrations/warp.py +1 -1
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/phase.py +8 -8
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/requirements.py +2 -2
- specsmith-0.3.13.dev220/src/specsmith/requirements_parser.py +89 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/retrieval.py +1 -1
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/scaffolder.py +1 -1
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/agents.md.j2 +256 -249
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/community/contributing.md.j2 +1 -1
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/community/pull_request_template.md.j2 +1 -1
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/governance/context-budget.md.j2 +1 -1
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/governance/epistemic-axioms.md.j2 +1 -1
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/governance/lifecycle.md.j2 +3 -3
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/upgrader.py +2 -2
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220/src/specsmith.egg-info}/PKG-INFO +37 -1
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith.egg-info/SOURCES.txt +10 -29
- specsmith-0.3.13.dev220/tests/test_CMD_001.py +4 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/tests/test_auditor.py +2 -2
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/tests/test_importer.py +1 -1
- specsmith-0.3.13.dev220/tests/test_nexus.py +1381 -0
- specsmith-0.3.13.dev216/src/specsmith/agent/__init__.py +0 -44
- specsmith-0.3.13.dev216/src/specsmith/agent/core.py +0 -213
- specsmith-0.3.13.dev216/src/specsmith/agent/hooks.py +0 -232
- specsmith-0.3.13.dev216/src/specsmith/agent/optimizer.py +0 -902
- specsmith-0.3.13.dev216/src/specsmith/agent/profiles/epistemic-auditor.md +0 -95
- specsmith-0.3.13.dev216/src/specsmith/agent/profiles/planner.md +0 -50
- specsmith-0.3.13.dev216/src/specsmith/agent/profiles/verifier.md +0 -51
- specsmith-0.3.13.dev216/src/specsmith/agent/providers/__init__.py +0 -155
- specsmith-0.3.13.dev216/src/specsmith/agent/providers/anthropic.py +0 -174
- specsmith-0.3.13.dev216/src/specsmith/agent/providers/gemini.py +0 -246
- specsmith-0.3.13.dev216/src/specsmith/agent/providers/mistral.py +0 -175
- specsmith-0.3.13.dev216/src/specsmith/agent/providers/ollama.py +0 -327
- specsmith-0.3.13.dev216/src/specsmith/agent/providers/openai.py +0 -154
- specsmith-0.3.13.dev216/src/specsmith/agent/runner.py +0 -1093
- specsmith-0.3.13.dev216/src/specsmith/agent/skills.py +0 -192
- specsmith-0.3.13.dev216/src/specsmith/agent/tools.py +0 -716
- specsmith-0.3.13.dev216/src/specsmith/agents/__init__.py +0 -7
- specsmith-0.3.13.dev216/src/specsmith/agents/cli.py +0 -233
- specsmith-0.3.13.dev216/src/specsmith/agents/config.py +0 -74
- specsmith-0.3.13.dev216/src/specsmith/agents/reports.py +0 -77
- specsmith-0.3.13.dev216/src/specsmith/agents/roles.py +0 -208
- specsmith-0.3.13.dev216/src/specsmith/agents/tools/__init__.py +0 -34
- specsmith-0.3.13.dev216/src/specsmith/agents/tools/filesystem.py +0 -187
- specsmith-0.3.13.dev216/src/specsmith/agents/tools/git.py +0 -70
- specsmith-0.3.13.dev216/src/specsmith/agents/tools/shell.py +0 -69
- specsmith-0.3.13.dev216/src/specsmith/agents/tools/tests.py +0 -59
- specsmith-0.3.13.dev216/src/specsmith/agents/workflows/__init__.py +0 -3
- specsmith-0.3.13.dev216/src/specsmith/agents/workflows/improve.py +0 -179
- specsmith-0.3.13.dev216/src/specsmith/ollama_cmds.py +0 -407
- specsmith-0.3.13.dev216/tests/test_agent.py +0 -293
- specsmith-0.3.13.dev216/tests/test_optimizer.py +0 -511
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/LICENSE +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/setup.cfg +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/epistemic/__init__.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/epistemic/belief.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/epistemic/certainty.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/epistemic/failure_graph.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/epistemic/py.typed +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/epistemic/recovery.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/epistemic/session.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/epistemic/stress_tester.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/epistemic/trace.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/__init__.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/__main__.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/architect.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/auth.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/commands/__init__.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/compressor.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/config.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/credit_analyzer.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/credits.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/differ.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/doctor.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/epistemic/__init__.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/epistemic/belief.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/epistemic/certainty.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/epistemic/failure_graph.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/executor.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/__init__.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/app.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/main_window.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/session_tab.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/theme.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/widgets/__init__.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/widgets/chat_view.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/widgets/input_bar.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/widgets/provider_bar.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/widgets/token_meter.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/widgets/tool_panel.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/widgets/update_checker.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/gui/worker.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/integrations/__init__.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/integrations/aider.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/integrations/base.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/integrations/claude_code.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/integrations/copilot.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/integrations/cursor.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/integrations/gemini.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/integrations/windsurf.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/languages.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/ledger.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/patent.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/plugins.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/profiles.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/rate_limits.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/releaser.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/serve.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/session.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/community/bug_report.md.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/community/code_of_conduct.md.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/community/feature_request.md.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/community/license-Apache-2.0.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/community/license-MIT.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/community/security.md.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/docs/architecture.md.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/docs/mkdocs.yml.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/docs/readthedocs.yaml.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/docs/requirements.md.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/docs/test-spec.md.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/editorconfig.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/gitattributes.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/gitignore.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/go/go.mod.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/go/main.go.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/governance/belief-registry.md.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/governance/drift-metrics.md.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/governance/failure-modes.md.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/governance/roles.md.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/governance/rules.md.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/governance/session-protocol.md.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/governance/uncertainty-map.md.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/governance/verification.md.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/js/package.json.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/ledger.md.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/python/cli.py.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/python/init.py.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/python/pyproject.toml.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/readme.md.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/rust/Cargo.toml.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/rust/main.rs.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/scripts/exec.cmd.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/scripts/exec.sh.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/scripts/run.cmd.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/scripts/run.sh.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/scripts/setup.cmd.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/scripts/setup.sh.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/templates/workflows/release.yml.j2 +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/tool_installer.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/toolrules.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/tools.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/trace.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/updater.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/validator.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/vcs/__init__.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/vcs/base.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/vcs/bitbucket.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/vcs/github.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/vcs/gitlab.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/vcs_commands.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/wireframes.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith/workspace.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith.egg-info/dependency_links.txt +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith.egg-info/entry_points.txt +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith.egg-info/requires.txt +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/src/specsmith.egg-info/top_level.txt +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/tests/test_cli.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/tests/test_compressor.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/tests/test_epistemic.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/tests/test_integrations.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/tests/test_rate_limits.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/tests/test_scaffolder.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/tests/test_smoke.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/tests/test_tools.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/tests/test_validator.py +0 -0
- {specsmith-0.3.13.dev216 → specsmith-0.3.13.dev220}/tests/test_vcs.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: specsmith
|
|
3
|
-
Version: 0.3.13.
|
|
3
|
+
Version: 0.3.13.dev220
|
|
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
|
|
@@ -227,6 +227,42 @@ Project Settings → Agent tab.
|
|
|
227
227
|
|
|
228
228
|
---
|
|
229
229
|
|
|
230
|
+
## Nexus — Plain-English Governance, Local-First
|
|
231
|
+
|
|
232
|
+
**Nexus** is the local-first Nexus runtime that turns plain English into Specsmith-governed
|
|
233
|
+
work. You speak in your own words; Specsmith stays the sole authority on what counts as a
|
|
234
|
+
requirement, a test, or a work item — Nexus just brokers the conversation and runs the work.
|
|
235
|
+
|
|
236
|
+
```bash
|
|
237
|
+
# Classify a natural-language utterance under Specsmith governance
|
|
238
|
+
specsmith preflight "fix the cleanup dry-run regression" --json
|
|
239
|
+
|
|
240
|
+
# Or drop into the Nexus REPL
|
|
241
|
+
specsmith run
|
|
242
|
+
nexus> what does the cleanup module do? # read-only ask -> answered
|
|
243
|
+
nexus> fix the cleanup dry-run regression # change -> Specsmith approves, runs
|
|
244
|
+
nexus> delete the entire dist directory # destructive -> needs clarification
|
|
245
|
+
nexus> /why # toggle governance details on/off
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
**How it works.** A natural-language **broker** classifies intent, infers scope from
|
|
249
|
+
your requirements, and asks Specsmith to **preflight** the request. Only when the
|
|
250
|
+
preflight decision is `accepted` does Nexus drive the AG2 orchestrator — and it does so
|
|
251
|
+
through a **bounded-retry harness** so you can never accidentally run away. By default,
|
|
252
|
+
Nexus speaks plain English; toggle `/why` in the REPL to surface the underlying
|
|
253
|
+
requirement, test, and work-item identifiers Specsmith assigned.
|
|
254
|
+
|
|
255
|
+
**Pieces in this repo.**
|
|
256
|
+
- `specsmith preflight` — CLI subcommand emitting a deterministic governance JSON payload
|
|
257
|
+
(`decision`, `requirement_ids`, `test_case_ids`, `confidence_target`, `instruction`).
|
|
258
|
+
- `src/specsmith/agent/broker.py` — natural-language broker (intent + scope + narration).
|
|
259
|
+
- `src/specsmith/agent/repl.py` — Nexus REPL with the `/why` toggle and execution gate.
|
|
260
|
+
- `docker-compose.yml` — pinned vLLM `l1-nexus` model server with the Hermes tool-call parser.
|
|
261
|
+
- `scripts/nexus_smoke.py` — opt-in live smoke test (`NEXUS_LIVE=1` to run against
|
|
262
|
+
a running container).
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
230
266
|
## VS Code Extension
|
|
231
267
|
|
|
232
268
|
The **specsmith AEE Workbench** VS Code extension is the flagship client:
|
|
@@ -160,6 +160,42 @@ Project Settings → Agent tab.
|
|
|
160
160
|
|
|
161
161
|
---
|
|
162
162
|
|
|
163
|
+
## Nexus — Plain-English Governance, Local-First
|
|
164
|
+
|
|
165
|
+
**Nexus** is the local-first Nexus runtime that turns plain English into Specsmith-governed
|
|
166
|
+
work. You speak in your own words; Specsmith stays the sole authority on what counts as a
|
|
167
|
+
requirement, a test, or a work item — Nexus just brokers the conversation and runs the work.
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
# Classify a natural-language utterance under Specsmith governance
|
|
171
|
+
specsmith preflight "fix the cleanup dry-run regression" --json
|
|
172
|
+
|
|
173
|
+
# Or drop into the Nexus REPL
|
|
174
|
+
specsmith run
|
|
175
|
+
nexus> what does the cleanup module do? # read-only ask -> answered
|
|
176
|
+
nexus> fix the cleanup dry-run regression # change -> Specsmith approves, runs
|
|
177
|
+
nexus> delete the entire dist directory # destructive -> needs clarification
|
|
178
|
+
nexus> /why # toggle governance details on/off
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**How it works.** A natural-language **broker** classifies intent, infers scope from
|
|
182
|
+
your requirements, and asks Specsmith to **preflight** the request. Only when the
|
|
183
|
+
preflight decision is `accepted` does Nexus drive the AG2 orchestrator — and it does so
|
|
184
|
+
through a **bounded-retry harness** so you can never accidentally run away. By default,
|
|
185
|
+
Nexus speaks plain English; toggle `/why` in the REPL to surface the underlying
|
|
186
|
+
requirement, test, and work-item identifiers Specsmith assigned.
|
|
187
|
+
|
|
188
|
+
**Pieces in this repo.**
|
|
189
|
+
- `specsmith preflight` — CLI subcommand emitting a deterministic governance JSON payload
|
|
190
|
+
(`decision`, `requirement_ids`, `test_case_ids`, `confidence_target`, `instruction`).
|
|
191
|
+
- `src/specsmith/agent/broker.py` — natural-language broker (intent + scope + narration).
|
|
192
|
+
- `src/specsmith/agent/repl.py` — Nexus REPL with the `/why` toggle and execution gate.
|
|
193
|
+
- `docker-compose.yml` — pinned vLLM `l1-nexus` model server with the Hermes tool-call parser.
|
|
194
|
+
- `scripts/nexus_smoke.py` — opt-in live smoke test (`NEXUS_LIVE=1` to run against
|
|
195
|
+
a running container).
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
163
199
|
## VS Code Extension
|
|
164
200
|
|
|
165
201
|
The **specsmith AEE Workbench** VS Code extension is the flagship client:
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "specsmith"
|
|
7
|
-
version = "0.3.13.
|
|
7
|
+
version = "0.3.13.dev220"
|
|
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"
|
|
@@ -153,7 +153,16 @@ module = [
|
|
|
153
153
|
"specsmith.importer",
|
|
154
154
|
"specsmith.agent.providers.gemini",
|
|
155
155
|
"specsmith.agent.runner",
|
|
156
|
+
"specsmith.agent.broker",
|
|
157
|
+
"specsmith.agent.cleanup",
|
|
158
|
+
"specsmith.agent.indexer",
|
|
159
|
+
"specsmith.agent.orchestrator",
|
|
160
|
+
"specsmith.agent.repl",
|
|
161
|
+
"specsmith.agent.safety",
|
|
162
|
+
"specsmith.agent.tools",
|
|
163
|
+
"specsmith.console_utils",
|
|
156
164
|
"specsmith.profiles",
|
|
165
|
+
"specsmith.serve",
|
|
157
166
|
"specsmith.toolrules",
|
|
158
167
|
"specsmith.tool_installer",
|
|
159
168
|
]
|
|
File without changes
|