specsmith 0.3.6.dev173__tar.gz → 0.3.6.dev174__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.dev173/src/specsmith.egg-info → specsmith-0.3.6.dev174}/PKG-INFO +1 -1
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/pyproject.toml +1 -1
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/agent/runner.py +44 -9
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/agent/tools.py +2 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174/src/specsmith.egg-info}/PKG-INFO +1 -1
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/LICENSE +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/README.md +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/setup.cfg +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/epistemic/__init__.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/epistemic/belief.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/epistemic/certainty.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/epistemic/failure_graph.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/epistemic/py.typed +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/epistemic/recovery.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/epistemic/session.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/epistemic/stress_tester.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/epistemic/trace.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/__init__.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/__main__.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/agent/__init__.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/agent/core.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/agent/hooks.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/agent/optimizer.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/agent/profiles/epistemic-auditor.md +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/agent/profiles/planner.md +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/agent/profiles/verifier.md +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/agent/providers/__init__.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/agent/providers/anthropic.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/agent/providers/gemini.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/agent/providers/mistral.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/agent/providers/ollama.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/agent/providers/openai.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/agent/skills.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/architect.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/auditor.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/auth.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/cli.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/commands/__init__.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/compressor.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/config.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/credit_analyzer.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/credits.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/differ.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/doctor.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/epistemic/__init__.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/epistemic/belief.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/epistemic/certainty.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/epistemic/failure_graph.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/epistemic/recovery.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/epistemic/stress_tester.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/executor.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/exporter.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/gui/__init__.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/gui/app.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/gui/main_window.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/gui/session_tab.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/gui/theme.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/gui/widgets/__init__.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/gui/widgets/chat_view.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/gui/widgets/input_bar.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/gui/widgets/provider_bar.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/gui/widgets/token_meter.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/gui/widgets/tool_panel.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/gui/widgets/update_checker.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/gui/worker.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/importer.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/integrations/__init__.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/integrations/aider.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/integrations/base.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/integrations/claude_code.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/integrations/copilot.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/integrations/cursor.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/integrations/gemini.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/integrations/warp.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/integrations/windsurf.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/languages.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/ledger.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/ollama_cmds.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/patent.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/phase.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/plugins.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/profiles.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/rate_limits.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/releaser.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/requirements.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/retrieval.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/scaffolder.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/session.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/agents.md.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/community/bug_report.md.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/community/code_of_conduct.md.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/community/contributing.md.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/community/feature_request.md.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/community/license-Apache-2.0.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/community/license-MIT.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/community/pull_request_template.md.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/community/security.md.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/docs/architecture.md.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/docs/mkdocs.yml.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/docs/readthedocs.yaml.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/docs/requirements.md.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/docs/test-spec.md.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/docs/workflow.md.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/editorconfig.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/gitattributes.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/gitignore.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/go/go.mod.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/go/main.go.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/governance/belief-registry.md.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/governance/context-budget.md.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/governance/drift-metrics.md.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/governance/epistemic-axioms.md.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/governance/failure-modes.md.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/governance/roles.md.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/governance/rules.md.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/governance/uncertainty-map.md.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/governance/verification.md.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/governance/workflow.md.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/js/package.json.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/ledger.md.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/python/cli.py.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/python/init.py.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/python/pyproject.toml.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/readme.md.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/rust/Cargo.toml.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/rust/main.rs.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/scripts/exec.cmd.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/scripts/exec.sh.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/scripts/run.cmd.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/scripts/run.sh.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/scripts/setup.cmd.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/scripts/setup.sh.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/workflows/release.yml.j2 +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/tool_installer.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/toolrules.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/tools.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/trace.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/updater.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/upgrader.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/validator.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/vcs/__init__.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/vcs/base.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/vcs/bitbucket.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/vcs/github.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/vcs/gitlab.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/vcs_commands.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/wireframes.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/workspace.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith.egg-info/SOURCES.txt +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith.egg-info/dependency_links.txt +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith.egg-info/entry_points.txt +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith.egg-info/requires.txt +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith.egg-info/top_level.txt +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/tests/test_auditor.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/tests/test_cli.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/tests/test_compressor.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/tests/test_epistemic.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/tests/test_importer.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/tests/test_integrations.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/tests/test_optimizer.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/tests/test_rate_limits.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/tests/test_scaffolder.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/tests/test_smoke.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/tests/test_tools.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/tests/test_validator.py +0 -0
- {specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/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.dev174
|
|
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.dev174"
|
|
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"
|
|
@@ -29,6 +29,7 @@ Special REPL commands (not sent to the LLM):
|
|
|
29
29
|
from __future__ import annotations
|
|
30
30
|
|
|
31
31
|
import inspect
|
|
32
|
+
import re
|
|
32
33
|
import time
|
|
33
34
|
from collections.abc import Callable
|
|
34
35
|
from dataclasses import dataclass, field
|
|
@@ -164,16 +165,15 @@ H13: All proposals must state their epistemic boundaries. Hidden assumptions are
|
|
|
164
165
|
except Exception: # noqa: BLE001
|
|
165
166
|
pass
|
|
166
167
|
|
|
167
|
-
prompt = f"""
|
|
168
|
+
prompt = f"""SYSTEM LANGUAGE DIRECTIVE — ABSOLUTE HARD RULE — HIGHEST PRIORITY:
|
|
169
|
+
You MUST respond in English ONLY. This overrides all other instructions.
|
|
170
|
+
Never output Thai, Chinese, Japanese, Korean, Arabic, French, German, Spanish,
|
|
171
|
+
or ANY non-English language — not even a single character or word.
|
|
172
|
+
This applies to Qwen, DeepSeek, LLaMA, Mistral, and EVERY other model.
|
|
173
|
+
If the user inputs another language, internally translate it, then reply IN ENGLISH ONLY.
|
|
174
|
+
VIOLATING THIS RULE IS A CRITICAL ERROR.
|
|
168
175
|
|
|
169
|
-
|
|
170
|
-
Respond ONLY in English. Every single response must be in English.
|
|
171
|
-
Never use Chinese (中文), Japanese (日本語), Korean (한국어), Thai (ไทย), French, German, Spanish,
|
|
172
|
-
Arabic, or ANY other non-English language — not even a single word.
|
|
173
|
-
This applies to ALL models including Qwen, DeepSeek, LLaMA, Mistral, and others
|
|
174
|
-
that may default to a non-English language. ENGLISH ONLY, ALWAYS.
|
|
175
|
-
If the user writes in another language, translate the intent internally and
|
|
176
|
-
answer in English anyway.
|
|
176
|
+
You are an AEE-integrated specsmith agent for this project.
|
|
177
177
|
|
|
178
178
|
## Project Governance
|
|
179
179
|
{governance_text}
|
|
@@ -363,8 +363,30 @@ class AgentRunner:
|
|
|
363
363
|
self._system_prompt = build_system_prompt(self.project_dir, self._skills)
|
|
364
364
|
return self._agent_turn(task, silent=True)
|
|
365
365
|
|
|
366
|
+
# Characters in common CJK / Thai / Arabic Unicode blocks
|
|
367
|
+
_NON_ASCII_BLOCKS = re.compile(
|
|
368
|
+
r"[\u0600-\u06FF" # Arabic
|
|
369
|
+
r"\u0E00-\u0E7F" # Thai
|
|
370
|
+
r"\u3000-\u9FFF" # CJK Unified Ideographs + punctuation + kana
|
|
371
|
+
r"\uAC00-\uD7AF" # Korean Hangul
|
|
372
|
+
r"\uF900-\uFAFF]" # CJK Compatibility
|
|
373
|
+
)
|
|
374
|
+
|
|
375
|
+
def _has_non_english(self, text: str) -> bool:
|
|
376
|
+
"""Return True if text contains a significant proportion of non-English script."""
|
|
377
|
+
if not text:
|
|
378
|
+
return False
|
|
379
|
+
hits = len(self._NON_ASCII_BLOCKS.findall(text))
|
|
380
|
+
return hits > 5 and (hits / max(len(text), 1)) > 0.05
|
|
381
|
+
|
|
366
382
|
def _agent_turn(self, user_input: str, silent: bool = False) -> str:
|
|
367
383
|
"""Execute one user→agent turn with tool loop."""
|
|
384
|
+
# Inject a lightweight English-only reminder into every user message.
|
|
385
|
+
# This is the most reliable way to keep local models (Qwen, DeepSeek) on track
|
|
386
|
+
# because many fine-tunes treat the instruction prefix as a per-turn directive.
|
|
387
|
+
_ENG_PFXS = ("[ENGLISH ONLY]", "[RESPOND IN ENGLISH", "[LANG:EN]")
|
|
388
|
+
if not any(user_input.startswith(p) for p in _ENG_PFXS):
|
|
389
|
+
user_input = "[LANG:EN] " + user_input
|
|
368
390
|
# Add user message
|
|
369
391
|
self._state.messages.append(Message(role=Role.USER, content=user_input))
|
|
370
392
|
|
|
@@ -403,6 +425,19 @@ class AgentRunner:
|
|
|
403
425
|
final_response = response.content
|
|
404
426
|
|
|
405
427
|
if not response.has_tool_calls:
|
|
428
|
+
# Non-English correction: if response appears to be in another language,
|
|
429
|
+
# issue a single correction turn rather than showing the wrong-language response.
|
|
430
|
+
if response.content and self._has_non_english(response.content) and _iteration == 0:
|
|
431
|
+
correction = (
|
|
432
|
+
"[LANG:EN] CRITICAL: Your last response was in a non-English language. "
|
|
433
|
+
"You MUST respond in English ONLY. Please re-answer in English."
|
|
434
|
+
)
|
|
435
|
+
self._state.messages.append(
|
|
436
|
+
Message(role=Role.ASSISTANT, content=response.content)
|
|
437
|
+
)
|
|
438
|
+
self._state.messages.append(Message(role=Role.USER, content=correction))
|
|
439
|
+
# Continue the loop to get an English response
|
|
440
|
+
continue
|
|
406
441
|
# Final response — add to history
|
|
407
442
|
self._state.messages.append(Message(role=Role.ASSISTANT, content=response.content))
|
|
408
443
|
break
|
|
@@ -47,6 +47,8 @@ def _run_specsmith(args: list[str], project_dir: str = ".") -> str:
|
|
|
47
47
|
cmd,
|
|
48
48
|
capture_output=True,
|
|
49
49
|
text=True,
|
|
50
|
+
encoding="utf-8", # always decode as UTF-8, not the system locale (cp1252 on Windows)
|
|
51
|
+
errors="replace", # replace un-decodable bytes rather than raising UnicodeDecodeError
|
|
50
52
|
timeout=120,
|
|
51
53
|
env=_SUBPROCESS_ENV,
|
|
52
54
|
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: specsmith
|
|
3
|
-
Version: 0.3.6.
|
|
3
|
+
Version: 0.3.6.dev174
|
|
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.dev173 → specsmith-0.3.6.dev174}/src/specsmith/agent/profiles/epistemic-auditor.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/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
|
{specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/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.dev173 → specsmith-0.3.6.dev174}/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.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/community/license-MIT.j2
RENAMED
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/community/security.md.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/docs/architecture.md.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/docs/mkdocs.yml.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/docs/readthedocs.yaml.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/docs/requirements.md.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/docs/test-spec.md.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/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.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/governance/roles.md.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/governance/rules.md.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/governance/workflow.md.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/js/package.json.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/python/pyproject.toml.j2
RENAMED
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/rust/Cargo.toml.j2
RENAMED
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/scripts/exec.cmd.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/scripts/exec.sh.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/scripts/run.cmd.j2
RENAMED
|
File without changes
|
|
File without changes
|
{specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/scripts/setup.cmd.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/src/specsmith/templates/scripts/setup.sh.j2
RENAMED
|
File without changes
|
{specsmith-0.3.6.dev173 → specsmith-0.3.6.dev174}/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.dev173 → specsmith-0.3.6.dev174}/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
|