specsmith 0.11.5.dev451__tar.gz → 0.11.5.dev452__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.11.5.dev451/src/specsmith.egg-info → specsmith-0.11.5.dev452}/PKG-INFO +1 -1
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/pyproject.toml +1 -1
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/cli.py +7 -2
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/governance/rules.md.j2 +15 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/python/pyproject.toml.j2 +7 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/validator.py +92 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452/src/specsmith.egg-info}/PKG-INFO +1 -1
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/LICENSE +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/README.md +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/setup.cfg +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/epistemic/__init__.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/epistemic/belief.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/epistemic/certainty.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/epistemic/failure_graph.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/epistemic/py.typed +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/epistemic/recovery.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/epistemic/session.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/epistemic/stress_tester.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/epistemic/trace.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/__init__.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/__main__.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/__init__.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/broker.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/chat_runner.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/cleanup.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/context_seed.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/core.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/dispatch/__init__.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/dispatch/_status.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/dispatch/dag.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/dispatch/dispatcher.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/dispatch/events.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/dispatch/result.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/endpoints.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/events.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/execution_profiles.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/fallback.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/hf_leaderboard.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/hf_sync.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/indexer.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/llm_client.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/mcp.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/memory.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/model_intelligence.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/model_profiles.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/orchestrator.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/permissions.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/profiles.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/provider_registry.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/repl.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/router.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/rules.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/runner.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/safety.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/spawner.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/suggester.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/teams.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/tools.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/verifier.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/voice.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/architect.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/auditor.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/auth.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/block_export.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/channel.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/ci_manager.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/commands/__init__.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/commands/intelligence.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/compliance/__init__.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/compliance/_compat.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/compliance/checker.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/compliance/evidence.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/compliance/regulations.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/compliance/reporter.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/compressor.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/config.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/console_utils.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/context_orchestrator.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/context_window.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/credit_analyzer.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/credits.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/datasources/__init__.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/datasources/base.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/datasources/citations.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/datasources/fpd.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/datasources/odp.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/datasources/patentsview.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/datasources/pfw.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/datasources/ppubs.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/datasources/ptab.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/differ.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/doctor.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/drive.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/editor.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/epistemic/__init__.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/epistemic/belief.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/epistemic/certainty.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/epistemic/failure_graph.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/epistemic/recovery.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/epistemic/stress_tester.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/esdb/__init__.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/esdb/bridge.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/eval/__init__.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/eval/builtins.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/eval/runner.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/executor.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/exporter.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/governance_logic.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/governance_store.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/governance_yaml.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/gui/__init__.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/gui/app.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/gui/main_window.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/gui/session_tab.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/gui/theme.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/gui/widgets/__init__.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/gui/widgets/chat_view.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/gui/widgets/input_bar.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/gui/widgets/provider_bar.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/gui/widgets/token_meter.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/gui/widgets/tool_panel.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/gui/widgets/update_checker.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/gui/worker.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/history_search.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/importer.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/instinct.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/integrations/__init__.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/integrations/agent_skill.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/integrations/aider.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/integrations/base.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/integrations/claude_code.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/integrations/codity.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/integrations/copilot.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/integrations/cursor.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/integrations/gemini.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/integrations/windsurf.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/issue_reporter.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/languages.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/ledger.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/mcp_generator.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/migrations/__init__.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/migrations/m001_governance_yaml.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/migrations/m002_agents_slim.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/migrations/m003_compliance_init.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/migrations/m004_ledger_esdb.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/migrations/m005_agent_run_tool.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/migrations/m006_session_governance.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/migrations/runner.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/ollama_cmds.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/patent.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/paths.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/phase.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/plugins.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/profiles.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/rate_limits.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/releaser.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/requirements.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/requirements_parser.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/retrieval.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/safe_write.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/scaffolder.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/serve.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/session.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/session_init.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/session_store.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/skills/__init__.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/skills/cloud.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/skills/corporate.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/skills/cross_platform.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/skills/devops.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/skills/docs.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/skills/embedded.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/skills/governance.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/skills/hardware.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/skills/mobile.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/skills/productivity.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/skills/ssh.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/skills_builder.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/sync.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/agents.md.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/community/bug_report.md.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/community/code_of_conduct.md.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/community/contributing.md.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/community/feature_request.md.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/community/license-Apache-2.0.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/community/license-MIT.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/community/pull_request_template.md.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/community/security.md.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/docs/architecture.md.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/docs/mkdocs.yml.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/docs/readthedocs.yaml.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/docs/requirements.md.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/docs/test-spec.md.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/editorconfig.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/gitattributes.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/gitignore.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/go/go.mod.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/go/main.go.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/governance/belief-registry.md.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/governance/context-budget.md.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/governance/drift-metrics.md.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/governance/epistemic-axioms.md.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/governance/failure-modes.md.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/governance/lifecycle.md.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/governance/roles.md.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/governance/session-protocol.md.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/governance/uncertainty-map.md.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/governance/verification.md.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/js/package.json.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/ledger.md.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/python/cli.py.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/python/init.py.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/readme.md.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/rust/Cargo.toml.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/rust/main.rs.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/scripts/exec.cmd.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/scripts/exec.sh.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/scripts/run.cmd.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/scripts/run.sh.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/scripts/setup.cmd.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/scripts/setup.sh.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/workflows/release.yml.j2 +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/tool_installer.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/toolrules.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/tools.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/trace.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/updater.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/upgrader.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/vcs/__init__.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/vcs/base.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/vcs/bitbucket.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/vcs/github.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/vcs/gitlab.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/vcs_commands.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/wireframes.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/workspace.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith.egg-info/SOURCES.txt +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith.egg-info/dependency_links.txt +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith.egg-info/entry_points.txt +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith.egg-info/requires.txt +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith.egg-info/top_level.txt +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_CMD_001.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_agent_profiles.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_agent_runner_ready.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_ai_client.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_ai_intelligence.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_auditor.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_channel.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_chat_diff_decision.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_chat_runner_openai_compat.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_chat_stdin_protocol.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_cli.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_cli_workflows_history_drive.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_compliance.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_compressor.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_dispatch.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_e2e_nexus.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_endpoints_cli.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_endpoints_store.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_epistemic.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_fallback_chain.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_importer.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_integrations.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_integrations_codity.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_intelligence.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_issue_reporter.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_mcp_client.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_new_modules.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_nexus.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_permissions.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_phase1_4_new.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_phase34_completion.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_rate_limits.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_req_248_262.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_scaffolder.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_skill_marketplace.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_skills_mcp.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_smoke.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_suggester.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_tools.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_validator.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_vcs.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_warp_parity.py +0 -0
- {specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/tests/test_warp_parity_followup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: specsmith
|
|
3
|
-
Version: 0.11.5.
|
|
3
|
+
Version: 0.11.5.dev452
|
|
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.11.5.
|
|
7
|
+
version = "0.11.5.dev452"
|
|
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"
|
|
@@ -4778,8 +4778,13 @@ def watch_cmd(project_dir: str, interval: int, no_notify: bool) -> None:
|
|
|
4778
4778
|
_has_watchdog = False
|
|
4779
4779
|
if not _has_watchdog:
|
|
4780
4780
|
console.print(
|
|
4781
|
-
"[dim]watchdog not installed — using polling mode
|
|
4782
|
-
"
|
|
4781
|
+
"[yellow]⚠[/yellow] [dim]watchdog not installed — using polling mode "
|
|
4782
|
+
f"({interval}s interval).[/dim]\n"
|
|
4783
|
+
" [dim]For native filesystem events, add [bold]watchdog>=4.0[/bold] to your "
|
|
4784
|
+
"project's dev extras:[/dim]\n"
|
|
4785
|
+
" [dim] pip install watchdog[/dim]\n"
|
|
4786
|
+
" [dim] or add to pyproject.toml: "
|
|
4787
|
+
'[bold][project.optional-dependencies] dev = ["watchdog>=4.0"][/bold][/dim]\n'
|
|
4783
4788
|
)
|
|
4784
4789
|
|
|
4785
4790
|
from specsmith.auditor import run_audit
|
{specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/governance/rules.md.j2
RENAMED
|
@@ -55,6 +55,21 @@ All proposals MUST state their epistemic boundaries. A proposal without explicit
|
|
|
55
55
|
|
|
56
56
|
Hidden assumptions are not acceptable. Declare all epistemic boundaries in the `Assumptions:` field of every proposal.
|
|
57
57
|
|
|
58
|
+
### H23 — No Bare Sleep Delays in Scripts
|
|
59
|
+
Scripts MUST NOT use `sleep N`, `Start-Sleep`, or equivalent blocking waits as a
|
|
60
|
+
standalone timing mechanism without a guaranteed exit path.
|
|
61
|
+
|
|
62
|
+
Every wait that depends on an external condition MUST use a polling loop with:
|
|
63
|
+
1. A **maximum iteration count** or **wall-clock timeout**
|
|
64
|
+
2. A **non-zero exit code** on timeout
|
|
65
|
+
3. An **explicit sleep interval** inside the loop body
|
|
66
|
+
|
|
67
|
+
**Applies to:** `.sh`, `.bash`, `.ps1`, `.cmd`, `.bat`, CI `run:` blocks, Makefile recipes.
|
|
68
|
+
**Does NOT apply to:** production source code (`time.sleep`, `thread::sleep`, etc.).
|
|
69
|
+
|
|
70
|
+
`specsmith validate` checks scripts for bare sleep patterns without loop/retry constructs
|
|
71
|
+
and emits a warning (H23).
|
|
72
|
+
|
|
58
73
|
---
|
|
59
74
|
|
|
60
75
|
## Stop Conditions
|
{specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/templates/python/pyproject.toml.j2
RENAMED
|
@@ -14,5 +14,12 @@ license = {text = "MIT"}
|
|
|
14
14
|
{{ project.package_name }} = "{{ project.package_name }}.cli:main"
|
|
15
15
|
{% endif %}
|
|
16
16
|
|
|
17
|
+
[project.optional-dependencies]
|
|
18
|
+
dev = [
|
|
19
|
+
"pytest>=7.0",
|
|
20
|
+
"ruff>=0.4",
|
|
21
|
+
"watchdog>=4.0", # specsmith watch — native filesystem events
|
|
22
|
+
]
|
|
23
|
+
|
|
17
24
|
[tool.setuptools.packages.find]
|
|
18
25
|
where = ["src"]
|
|
@@ -63,6 +63,25 @@ _DEADLINE_GUARD_PATTERNS = (
|
|
|
63
63
|
# Script file extensions to scan (exclude general source dirs to avoid false positives)
|
|
64
64
|
_SCRIPT_EXTENSIONS = {".sh", ".cmd", ".ps1", ".bash"}
|
|
65
65
|
|
|
66
|
+
# Bare-sleep patterns: standalone timing delays that block indefinitely (H23)
|
|
67
|
+
# Applies to scripts only — NOT to general source code.
|
|
68
|
+
_BARE_SLEEP_PATTERNS = (
|
|
69
|
+
re.compile(r"^\s*sleep\s+\d", re.MULTILINE | re.IGNORECASE), # bash: sleep N
|
|
70
|
+
re.compile(r"^\s*Start-Sleep\b", re.MULTILINE | re.IGNORECASE), # PowerShell
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
# Loop / retry constructs that justify a sleep — if any are present the sleep
|
|
74
|
+
# is inside a polling loop and should not be flagged.
|
|
75
|
+
_SLEEP_LOOP_CONTEXT = (
|
|
76
|
+
re.compile(r"\bfor\b"),
|
|
77
|
+
re.compile(r"\bwhile\b"),
|
|
78
|
+
re.compile(r"\buntil\b"),
|
|
79
|
+
re.compile(r"max_retries", re.IGNORECASE),
|
|
80
|
+
re.compile(r"max_attempts", re.IGNORECASE),
|
|
81
|
+
re.compile(r"\bretry\b", re.IGNORECASE),
|
|
82
|
+
re.compile(r"\bseq\s+\d"), # bash `for i in $(seq N)`
|
|
83
|
+
)
|
|
84
|
+
|
|
66
85
|
|
|
67
86
|
def _check_scaffold_yml(root: Path) -> list[ValidationResult]:
|
|
68
87
|
"""Check that scaffold.yml exists and is valid YAML."""
|
|
@@ -333,6 +352,78 @@ def _check_blocking_loops(root: Path) -> list[ValidationResult]:
|
|
|
333
352
|
return results
|
|
334
353
|
|
|
335
354
|
|
|
355
|
+
def _check_bare_sleep(root: Path) -> list[ValidationResult]:
|
|
356
|
+
"""Scan script files for bare sleep delays without a loop/retry context (H23).
|
|
357
|
+
|
|
358
|
+
A bare sleep is a ``sleep N`` / ``Start-Sleep`` line that appears in a script
|
|
359
|
+
file that contains NO loop or retry constructs. This is a timing anti-pattern
|
|
360
|
+
that blocks indefinitely when the awaited condition never arrives.
|
|
361
|
+
|
|
362
|
+
Files with a loop/retry context (``for``, ``while``, ``until``, ``max_retries``)
|
|
363
|
+
are skipped — the sleep is part of a legitimate polling loop in those cases.
|
|
364
|
+
|
|
365
|
+
Emits a warning (not a hard error) to allow gradual adoption.
|
|
366
|
+
"""
|
|
367
|
+
results: list[ValidationResult] = []
|
|
368
|
+
|
|
369
|
+
candidates: list[Path] = []
|
|
370
|
+
for path in root.iterdir():
|
|
371
|
+
if path.is_file() and path.suffix.lower() in _SCRIPT_EXTENSIONS:
|
|
372
|
+
candidates.append(path)
|
|
373
|
+
scripts_dir = root / "scripts"
|
|
374
|
+
if scripts_dir.is_dir():
|
|
375
|
+
for path in scripts_dir.rglob("*"):
|
|
376
|
+
if path.is_file() and path.suffix.lower() in _SCRIPT_EXTENSIONS:
|
|
377
|
+
candidates.append(path)
|
|
378
|
+
|
|
379
|
+
if not candidates:
|
|
380
|
+
return results
|
|
381
|
+
|
|
382
|
+
flagged: list[str] = []
|
|
383
|
+
for script_path in candidates:
|
|
384
|
+
try:
|
|
385
|
+
text = script_path.read_text(encoding="utf-8", errors="replace")
|
|
386
|
+
except OSError:
|
|
387
|
+
continue
|
|
388
|
+
|
|
389
|
+
has_sleep = any(p.search(text) for p in _BARE_SLEEP_PATTERNS)
|
|
390
|
+
if not has_sleep:
|
|
391
|
+
continue
|
|
392
|
+
|
|
393
|
+
# Sleep inside a loop/retry context is acceptable
|
|
394
|
+
has_loop_context = any(p.search(text) for p in _SLEEP_LOOP_CONTEXT)
|
|
395
|
+
if not has_loop_context:
|
|
396
|
+
try:
|
|
397
|
+
rel = script_path.relative_to(root)
|
|
398
|
+
except ValueError:
|
|
399
|
+
rel = script_path
|
|
400
|
+
flagged.append(str(rel))
|
|
401
|
+
|
|
402
|
+
if flagged:
|
|
403
|
+
for name in flagged:
|
|
404
|
+
results.append(
|
|
405
|
+
ValidationResult(
|
|
406
|
+
name=f"bare-sleep:{name}",
|
|
407
|
+
passed=False,
|
|
408
|
+
message=(
|
|
409
|
+
f"{name}: bare sleep delay without a polling loop (H23 warning). "
|
|
410
|
+
"Replace with a retry loop that has a max iteration count and "
|
|
411
|
+
"non-zero exit on timeout."
|
|
412
|
+
),
|
|
413
|
+
)
|
|
414
|
+
)
|
|
415
|
+
else:
|
|
416
|
+
results.append(
|
|
417
|
+
ValidationResult(
|
|
418
|
+
name="bare-sleep",
|
|
419
|
+
passed=True,
|
|
420
|
+
message=f"{len(candidates)} script file(s) checked — no bare sleep delays found",
|
|
421
|
+
)
|
|
422
|
+
)
|
|
423
|
+
|
|
424
|
+
return results
|
|
425
|
+
|
|
426
|
+
|
|
336
427
|
def run_validate(root: Path) -> ValidationReport:
|
|
337
428
|
"""Run all validation checks and return a report."""
|
|
338
429
|
report = ValidationReport()
|
|
@@ -341,4 +432,5 @@ def run_validate(root: Path) -> ValidationReport:
|
|
|
341
432
|
report.results.extend(_check_req_ids_unique(root))
|
|
342
433
|
report.results.extend(_check_architecture_reqs(root))
|
|
343
434
|
report.results.extend(_check_blocking_loops(root))
|
|
435
|
+
report.results.extend(_check_bare_sleep(root))
|
|
344
436
|
return report
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: specsmith
|
|
3
|
-
Version: 0.11.5.
|
|
3
|
+
Version: 0.11.5.dev452
|
|
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
|
{specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/dispatch/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/dispatch/dispatcher.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/execution_profiles.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
|
{specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/model_intelligence.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/agent/provider_registry.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
|
|
File without changes
|
{specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/datasources/patentsview.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
|
{specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/epistemic/failure_graph.py
RENAMED
|
File without changes
|
|
File without changes
|
{specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/epistemic/stress_tester.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
|
{specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/gui/widgets/provider_bar.py
RENAMED
|
File without changes
|
{specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/gui/widgets/token_meter.py
RENAMED
|
File without changes
|
|
File without changes
|
{specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/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
|
{specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/integrations/agent_skill.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/integrations/claude_code.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
|
{specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/migrations/m001_governance_yaml.py
RENAMED
|
File without changes
|
{specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/migrations/m002_agents_slim.py
RENAMED
|
File without changes
|
{specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/migrations/m003_compliance_init.py
RENAMED
|
File without changes
|
{specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/migrations/m004_ledger_esdb.py
RENAMED
|
File without changes
|
{specsmith-0.11.5.dev451 → specsmith-0.11.5.dev452}/src/specsmith/migrations/m005_agent_run_tool.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
|