simplicio-cli 0.9.1__tar.gz → 0.9.3__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.
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/PKG-INFO +97 -7
- simplicio_cli-0.9.1/simplicio_cli.egg-info/PKG-INFO → simplicio_cli-0.9.3/README.md +77 -46
- simplicio_cli-0.9.3/pyproject.toml +215 -0
- simplicio_cli-0.9.3/simplicio/__init__.py +1 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/_cache.py +14 -26
- simplicio_cli-0.9.3/simplicio/adaptive.py +164 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/bench.py +57 -29
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/cache.py +11 -5
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/cache_cli.py +20 -13
- simplicio_cli-0.9.3/simplicio/cli.py +496 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/commands/__init__.py +5 -3
- simplicio_cli-0.9.3/simplicio/commands/_shared.py +76 -0
- simplicio_cli-0.9.3/simplicio/commands/bench.py +15 -0
- simplicio_cli-0.9.3/simplicio/commands/cache.py +36 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/commands/claims.py +152 -56
- simplicio_cli-0.9.3/simplicio/commands/detect.py +25 -0
- simplicio_cli-0.9.3/simplicio/commands/doctor.py +28 -0
- simplicio_cli-0.9.3/simplicio/commands/edit.py +66 -0
- simplicio_cli-0.9.3/simplicio/commands/env_export.py +30 -0
- simplicio_cli-0.9.3/simplicio/commands/file.py +22 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/commands/file_read.py +2 -4
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/commands/gate.py +5 -5
- simplicio_cli-0.9.3/simplicio/commands/index.py +15 -0
- simplicio_cli-0.9.3/simplicio/commands/init.py +20 -0
- simplicio_cli-0.9.3/simplicio/commands/inspect.py +24 -0
- simplicio_cli-0.9.3/simplicio/commands/memory.py +48 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/commands/nest.py +4 -12
- simplicio_cli-0.9.3/simplicio/commands/run.py +352 -0
- simplicio_cli-0.9.3/simplicio/commands/runtime.py +30 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/commands/score_skill.py +38 -15
- simplicio_cli-0.9.3/simplicio/commands/serve.py +22 -0
- simplicio_cli-0.9.3/simplicio/commands/smoke.py +23 -0
- simplicio_cli-0.9.3/simplicio/commands/status.py +101 -0
- simplicio_cli-0.9.3/simplicio/commands/task.py +55 -0
- simplicio_cli-0.9.3/simplicio/commands/test.py +29 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/commands/test_run.py +2 -6
- simplicio_cli-0.9.3/simplicio/commands/token.py +64 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/detect.py +171 -33
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/doctor.py +77 -38
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/dod.py +0 -1
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/ecosystem.py +38 -22
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/hardware.py +16 -12
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/init.py +19 -13
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/intent.py +1 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/local_models.py +13 -8
- simplicio_cli-0.9.3/simplicio/mapper.py +593 -0
- simplicio_cli-0.9.3/simplicio/mcp_server.py +261 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/mechanical_edit.py +6 -7
- simplicio_cli-0.9.3/simplicio/memory_store.py +204 -0
- simplicio_cli-0.9.3/simplicio/observability.py +345 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/orchestrator/cost_governor.py +19 -12
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/orchestrator/feature.py +5 -14
- simplicio_cli-0.9.3/simplicio/pipeline.py +571 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/pipeline_fixers.py +12 -8
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/precedent.py +93 -23
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/prompt.py +24 -11
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/providers.py +243 -51
- simplicio_cli-0.9.3/simplicio/py.typed +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/runtime_bridge.py +1 -3
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/runtime_contracts.py +17 -1
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/runtime_env.py +0 -1
- simplicio_cli-0.9.3/simplicio/scratch/__init__.py +22 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/scratch/cli.py +31 -42
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/scratch/codegen/go_gin.py +1 -3
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/scratch/codegen/php_laravel.py +1 -3
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/scratch/codegen/python_cst.py +5 -15
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/scratch/codegen/python_fastapi.py +3 -8
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/scratch/codegen/python_orm.py +3 -10
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/scratch/codegen/python_pydantic.py +13 -50
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/scratch/codegen/python_pytest.py +10 -32
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/scratch/codegen/registry.py +2 -2
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/scratch/codegen/rust_axum.py +1 -3
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/scratch/codegen/typescript_next_page.py +1 -3
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/scratch/codegen/typescript_next_route.py +5 -21
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/scratch/executor.py +11 -26
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/scratch/plan_schema.py +6 -15
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/scratch/planner.py +8 -6
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/scratch/recipes.py +33 -58
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/scratch/skill_opt.py +12 -23
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/scratch/stack_registry.py +7 -5
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/skill_router.py +16 -7
- simplicio_cli-0.9.3/simplicio/templates/stacks/py-cli/tree/src/app/__pycache__/__init__.cpython-314.pyc +0 -0
- simplicio_cli-0.9.3/simplicio/templates/stacks/py-cli/tree/src/app/__pycache__/cli.cpython-314.pyc +0 -0
- simplicio_cli-0.9.3/simplicio/templates/stacks/py-cli/tree/tests/__pycache__/test_cli.cpython-314.pyc +0 -0
- simplicio_cli-0.9.3/simplicio/templates/stacks/py-django/tree/__pycache__/manage.cpython-314.pyc +0 -0
- simplicio_cli-0.9.3/simplicio/templates/stacks/py-django/tree/app/__pycache__/__init__.cpython-314.pyc +0 -0
- simplicio_cli-0.9.3/simplicio/templates/stacks/py-django/tree/app/__pycache__/apps.cpython-314.pyc +0 -0
- simplicio_cli-0.9.3/simplicio/templates/stacks/py-django/tree/app/__pycache__/tests.cpython-314.pyc +0 -0
- simplicio_cli-0.9.3/simplicio/templates/stacks/py-django/tree/app/__pycache__/views.cpython-314.pyc +0 -0
- simplicio_cli-0.9.3/simplicio/templates/stacks/py-django/tree/config/__pycache__/__init__.cpython-314.pyc +0 -0
- simplicio_cli-0.9.3/simplicio/templates/stacks/py-django/tree/config/__pycache__/asgi.cpython-314.pyc +0 -0
- simplicio_cli-0.9.3/simplicio/templates/stacks/py-django/tree/config/__pycache__/settings.cpython-314.pyc +0 -0
- simplicio_cli-0.9.3/simplicio/templates/stacks/py-django/tree/config/__pycache__/urls.cpython-314.pyc +0 -0
- simplicio_cli-0.9.3/simplicio/templates/stacks/py-django/tree/config/__pycache__/wsgi.cpython-314.pyc +0 -0
- simplicio_cli-0.9.3/simplicio/templates/stacks/py-fastapi/tree/src/__pycache__/main.cpython-314.pyc +0 -0
- simplicio_cli-0.9.3/simplicio/templates/stacks/py-fastapi/tree/src/api/__pycache__/__init__.cpython-314.pyc +0 -0
- simplicio_cli-0.9.3/simplicio/templates/stacks/py-fastapi/tree/tests/__pycache__/test_health.cpython-314.pyc +0 -0
- simplicio_cli-0.9.3/simplicio/templates/stacks/py-flask/tree/src/__pycache__/app.cpython-314.pyc +0 -0
- simplicio_cli-0.9.3/simplicio/templates/stacks/py-flask/tree/tests/__pycache__/test_health.cpython-314.pyc +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/token_primitives.py +0 -1
- simplicio_cli-0.9.3/simplicio/toon_codec.py +407 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/utils/cache.py +8 -6
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/utils/http_client.py +8 -8
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/utils/serialization.py +3 -0
- simplicio_cli-0.9.1/README.md → simplicio_cli-0.9.3/simplicio_cli.egg-info/PKG-INFO +136 -1
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio_cli.egg-info/SOURCES.txt +42 -0
- simplicio_cli-0.9.3/simplicio_cli.egg-info/requires.txt +38 -0
- simplicio_cli-0.9.1/pyproject.toml +0 -94
- simplicio_cli-0.9.1/simplicio/__init__.py +0 -1
- simplicio_cli-0.9.1/simplicio/adaptive.py +0 -60
- simplicio_cli-0.9.1/simplicio/cli.py +0 -1220
- simplicio_cli-0.9.1/simplicio/mapper.py +0 -283
- simplicio_cli-0.9.1/simplicio/observability.py +0 -32
- simplicio_cli-0.9.1/simplicio/pipeline.py +0 -257
- simplicio_cli-0.9.1/simplicio/scratch/__init__.py +0 -16
- simplicio_cli-0.9.1/simplicio_cli.egg-info/requires.txt +0 -17
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/LICENSE +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/setup.cfg +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/orchestrator/__init__.py +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/scratch/_pipeline_adapter.py +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/scratch/codegen/__init__.py +1 -1
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/scratch/codegen/markdown_document.py +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/scratch/codegen/types.py +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/sprint_loader.py +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/SKILL.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/recipes/go-gin/admin-crud.yaml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/recipes/go-gin/auth-jwt.yaml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/recipes/go-gin/crud-resource.yaml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/recipes/php-laravel/admin-crud.yaml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/recipes/php-laravel/auth-jwt.yaml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/recipes/php-laravel/crud-resource.yaml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/recipes/php-vanilla/docs-marker.yaml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/recipes/py-fastapi/admin-crud.yaml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/recipes/py-fastapi/auth-jwt.yaml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/recipes/py-fastapi/background-worker.yaml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/recipes/py-fastapi/crud-resource.yaml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/recipes/py-fastapi/file-upload.yaml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/recipes/py-fastapi/oauth-integration.yaml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/recipes/py-fastapi/scheduled-job.yaml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/recipes/py-fastapi/websocket.yaml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/recipes/rust-axum/admin-crud.yaml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/recipes/rust-axum/auth-jwt.yaml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/recipes/rust-axum/crud-resource.yaml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/recipes/ts-nextjs/admin-crud.yaml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/recipes/ts-nextjs/auth-jwt.yaml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/recipes/ts-nextjs/crud-resource.yaml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/simplicio_prompt.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/bash-cli/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/bash-cli/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/bash-cli/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/bash-cli/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/bash-cli/tree/bin/app.sh +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/bash-cli/tree/test/app.bats +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/bash-cli/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/csharp-aspnet/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/csharp-aspnet/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/csharp-aspnet/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/csharp-aspnet/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/csharp-aspnet/tree/src/App.Api/App.Api.csproj +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/csharp-aspnet/tree/src/App.Api/Program.cs +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/csharp-aspnet/tree/tests/App.Tests/App.Tests.csproj +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/csharp-aspnet/tree/tests/App.Tests/HealthTests.cs +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/csharp-aspnet/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/csharp-blazor/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/csharp-blazor/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/csharp-blazor/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/csharp-blazor/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/App.Web.csproj +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Components/App.razor +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Components/Pages/Home.razor +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Program.cs +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/csharp-blazor/tree/tests/App.Tests/App.Tests.csproj +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/csharp-blazor/tree/tests/App.Tests/HealthTests.cs +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/csharp-blazor/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/dart-flutter/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/dart-flutter/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/dart-flutter/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/dart-flutter/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/dart-flutter/tree/lib/main.dart +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/dart-flutter/tree/pubspec.yaml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/dart-flutter/tree/test/widget_test.dart +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/dart-flutter/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/elixir-phoenix/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/elixir-phoenix/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/elixir-phoenix/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/elixir-phoenix/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/elixir-phoenix/tree/config/config.exs +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app/application.ex +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/controllers/health_controller.ex +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/endpoint.ex +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/router.ex +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/elixir-phoenix/tree/mix.exs +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/elixir-phoenix/tree/test/health_controller_test.exs +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/elixir-phoenix/tree/test/test_helper.exs +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/elixir-phoenix/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-cli/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-cli/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-cli/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-cli/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-cli/tree/cmd/root.go +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-cli/tree/cmd/root_test.go +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-cli/tree/go.mod +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-cli/tree/main.go +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-cli/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-echo/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-echo/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-echo/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-echo/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-echo/tree/cmd/server/main.go +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-echo/tree/go.mod +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-echo/tree/internal/http/router.go +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-echo/tree/internal/http/router_test.go +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-echo/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-gin/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-gin/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-gin/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-gin/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-gin/tree/cmd/server/main.go +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-gin/tree/go.mod +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-gin/tree/internal/http/router.go +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-gin/tree/internal/http/router_test.go +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/go-gin/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/java-spring/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/java-spring/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/java-spring/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/java-spring/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/java-spring/tree/build.gradle.kts +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/java-spring/tree/settings.gradle.kts +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/java-spring/tree/src/main/java/com/example/Application.java +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/java-spring/tree/src/main/java/com/example/HealthController.java +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/java-spring/tree/src/test/java/com/example/HealthControllerTest.java +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/java-spring/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/js-express/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/js-express/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/js-express/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/js-express/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/js-express/tree/package.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/js-express/tree/src/app.js +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/js-express/tree/src/server.js +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/js-express/tree/tests/health.test.js +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/js-express/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-android/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-android/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-android/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-android/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-android/tree/app/build.gradle.kts +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/AndroidManifest.xml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/java/com/example/app/MainActivity.kt +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/res/values/styles.xml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-android/tree/app/src/test/java/com/example/app/SmokeTest.kt +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-android/tree/build.gradle.kts +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-android/tree/settings.gradle.kts +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-android/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-ktor/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-ktor/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-ktor/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-ktor/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-ktor/tree/build.gradle.kts +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-ktor/tree/settings.gradle.kts +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-ktor/tree/src/main/kotlin/com/example/Application.kt +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-ktor/tree/src/test/kotlin/com/example/ApplicationTest.kt +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-ktor/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-spring/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-spring/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-spring/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-spring/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-spring/tree/build.gradle.kts +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-spring/tree/settings.gradle.kts +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-spring/tree/src/main/kotlin/com/example/Application.kt +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-spring/tree/src/main/kotlin/com/example/HealthController.kt +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-spring/tree/src/test/kotlin/com/example/HealthControllerTest.kt +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/kotlin-spring/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-laravel/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-laravel/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-laravel/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-laravel/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-laravel/tree/artisan +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-laravel/tree/bootstrap/app.php +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-laravel/tree/composer.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-laravel/tree/phpunit.xml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-laravel/tree/routes/api.php +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-laravel/tree/routes/console.php +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-laravel/tree/tests/Feature/HealthTest.php +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-laravel/tree/tests/TestCase.php +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-laravel/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-symfony/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-symfony/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-symfony/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-symfony/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-symfony/tree/composer.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-symfony/tree/src/Controller/HealthController.php +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-symfony/tree/tests/HealthControllerTest.php +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-symfony/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-vanilla/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-vanilla/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-vanilla/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-vanilla/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-vanilla/tree/composer.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-vanilla/tree/phpunit.xml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-vanilla/tree/src/Health.php +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-vanilla/tree/tests/HealthTest.php +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/php-vanilla/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-cli/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-cli/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-cli/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-cli/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-cli/tree/pyproject.toml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-cli/tree/src/app/__init__.py +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-cli/tree/src/app/cli.py +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-cli/tree/tests/test_cli.py +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-cli/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-django/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-django/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-django/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-django/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-django/tree/app/__init__.py +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-django/tree/app/apps.py +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-django/tree/app/tests.py +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-django/tree/app/views.py +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-django/tree/config/__init__.py +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-django/tree/config/asgi.py +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-django/tree/config/settings.py +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-django/tree/config/urls.py +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-django/tree/config/wsgi.py +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-django/tree/manage.py +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-django/tree/pyproject.toml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-django/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-fastapi/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-fastapi/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-fastapi/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-fastapi/tree/.gitignore +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-fastapi/tree/README.template.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-fastapi/tree/pyproject.toml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-fastapi/tree/ruff.toml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-fastapi/tree/src/api/__init__.py +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-fastapi/tree/src/main.py +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-fastapi/tree/tests/test_health.py +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-fastapi/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-flask/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-flask/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-flask/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-flask/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-flask/tree/pyproject.toml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-flask/tree/ruff.toml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-flask/tree/src/app.py +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-flask/tree/tests/test_health.py +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/py-flask/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/react-vite/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/react-vite/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/react-vite/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/react-vite/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/react-vite/tree/index.html +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/react-vite/tree/package.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/react-vite/tree/src/App.test.tsx +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/react-vite/tree/src/App.tsx +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/react-vite/tree/src/main.tsx +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/react-vite/tree/tsconfig.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/react-vite/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ruby-rails/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ruby-rails/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ruby-rails/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ruby-rails/tree/Gemfile +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ruby-rails/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ruby-rails/tree/app/controllers/health_controller.rb +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ruby-rails/tree/bin/rails +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ruby-rails/tree/config/application.rb +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ruby-rails/tree/config/boot.rb +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ruby-rails/tree/config/routes.rb +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ruby-rails/tree/test/controllers/health_controller_test.rb +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ruby-rails/tree/test/test_helper.rb +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ruby-rails/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/rust-axum/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/rust-axum/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/rust-axum/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/rust-axum/tree/Cargo.toml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/rust-axum/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/rust-axum/tree/src/main.rs +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/rust-axum/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/rust-cli/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/rust-cli/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/rust-cli/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/rust-cli/tree/Cargo.toml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/rust-cli/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/rust-cli/tree/src/main.rs +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/rust-cli/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/rust-leptos/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/rust-leptos/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/rust-leptos/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/rust-leptos/tree/Cargo.toml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/rust-leptos/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/rust-leptos/tree/src/main.rs +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/rust-leptos/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/swift-ios/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/swift-ios/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/swift-ios/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/swift-ios/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/swift-ios/tree/Sources/App/App.swift +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/swift-ios/tree/Sources/App/ContentView.swift +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/swift-ios/tree/Tests/AppTests/AppTests.swift +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/swift-ios/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/swift-vapor/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/swift-vapor/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/swift-vapor/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/swift-vapor/tree/Package.swift +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/swift-vapor/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/swift-vapor/tree/Sources/App/main.swift +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/swift-vapor/tree/Tests/AppTests/HealthTests.swift +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/swift-vapor/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-nestjs/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-nestjs/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-nestjs/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-nestjs/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-nestjs/tree/package.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-nestjs/tree/src/app.controller.spec.ts +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-nestjs/tree/src/app.controller.ts +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-nestjs/tree/src/app.module.ts +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-nestjs/tree/src/main.ts +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-nestjs/tree/tsconfig.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-nestjs/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-nextjs/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-nextjs/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-nextjs/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-nextjs/tree/.eslintrc.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-nextjs/tree/.gitignore +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-nextjs/tree/next.config.mjs +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-nextjs/tree/package.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-nextjs/tree/pnpm-workspace.yaml +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-nextjs/tree/src/app/layout.tsx +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-nextjs/tree/src/app/page.tsx +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-nextjs/tree/tsconfig.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-nextjs/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-remix/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-remix/practices.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-remix/stack.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-remix/tree/README.md +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-remix/tree/app/root.tsx +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-remix/tree/app/routes/_index.tsx +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-remix/tree/app/routes/health.test.ts +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-remix/tree/app/routes/health.ts +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-remix/tree/package.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-remix/tree/tsconfig.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/stacks/ts-remix/verify.json +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/templates/userpromptsubmit-hook.sh +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio/utils/__init__.py +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio_cli.egg-info/dependency_links.txt +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio_cli.egg-info/entry_points.txt +0 -0
- {simplicio_cli-0.9.1 → simplicio_cli-0.9.3}/simplicio_cli.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: simplicio-cli
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.3
|
|
4
4
|
Summary: Portable task-to-code pipeline that works with any LLM. Turn a one-line task into a verified code change — diff + test + verify loop. +55 pts on a 156-check benchmark, 21% faster, ~same tokens.
|
|
5
5
|
Author-email: Wesley Simplicio <wesleybob4@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -26,21 +26,35 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
|
26
26
|
Requires-Python: >=3.10
|
|
27
27
|
Description-Content-Type: text/markdown
|
|
28
28
|
License-File: LICENSE
|
|
29
|
-
Requires-Dist:
|
|
30
|
-
Requires-Dist:
|
|
31
|
-
Requires-Dist: anthropic>=0.112.0
|
|
32
|
-
Requires-Dist: openai>=2.44.0
|
|
33
|
-
Requires-Dist: simplicio-mapper>=0.13.0
|
|
29
|
+
Requires-Dist: numpy>=2.1.0
|
|
30
|
+
Requires-Dist: simplicio-mapper>=0.16.0
|
|
34
31
|
Requires-Dist: simplicio-prompt>=1.14.1
|
|
35
32
|
Requires-Dist: httpx>=0.28.1
|
|
36
33
|
Requires-Dist: orjson>=3.11.9
|
|
37
34
|
Requires-Dist: diskcache>=5.6.3
|
|
38
35
|
Requires-Dist: libcst>=1.8.6
|
|
36
|
+
Provides-Extra: providers
|
|
37
|
+
Requires-Dist: anthropic>=0.112.0; extra == "providers"
|
|
38
|
+
Requires-Dist: openai>=2.44.0; extra == "providers"
|
|
39
|
+
Provides-Extra: ml
|
|
40
|
+
Requires-Dist: sentence-transformers>=5.6.0; extra == "ml"
|
|
39
41
|
Provides-Extra: bench
|
|
40
42
|
Requires-Dist: fpdf2>=2.8.7; extra == "bench"
|
|
41
43
|
Provides-Extra: local
|
|
42
44
|
Requires-Dist: llama-cpp-python>=0.3.32; extra == "local"
|
|
43
45
|
Requires-Dist: huggingface-hub>=1.21.0; extra == "local"
|
|
46
|
+
Provides-Extra: all
|
|
47
|
+
Requires-Dist: simplicio-cli[providers]; extra == "all"
|
|
48
|
+
Requires-Dist: simplicio-cli[ml]; extra == "all"
|
|
49
|
+
Requires-Dist: simplicio-cli[bench]; extra == "all"
|
|
50
|
+
Requires-Dist: simplicio-cli[local]; extra == "all"
|
|
51
|
+
Provides-Extra: test
|
|
52
|
+
Requires-Dist: pytest>=8; extra == "test"
|
|
53
|
+
Requires-Dist: tomli>=2.0.1; python_version < "3.11" and extra == "test"
|
|
54
|
+
Provides-Extra: dev
|
|
55
|
+
Requires-Dist: simplicio-cli[test]; extra == "dev"
|
|
56
|
+
Requires-Dist: ruff>=0.15.8; extra == "dev"
|
|
57
|
+
Requires-Dist: mypy>=1.19.1; extra == "dev"
|
|
44
58
|
Dynamic: license-file
|
|
45
59
|
|
|
46
60
|
<h1 align="center">simplicio-cli</h1>
|
|
@@ -136,7 +150,12 @@ delivery status"]
|
|
|
136
150
|
|
|
137
151
|
## Documentation standard
|
|
138
152
|
|
|
139
|
-
- [docs/PYTHON_PACKAGE_INTERDEPENDENCE.md](docs/PYTHON_PACKAGE_INTERDEPENDENCE.md)
|
|
153
|
+
- [docs/PYTHON_PACKAGE_INTERDEPENDENCE.md](docs/PYTHON_PACKAGE_INTERDEPENDENCE.md) —
|
|
154
|
+
**generated, not hand-edited** (#101). Regenerate after touching
|
|
155
|
+
`pyproject.toml`'s version/dependencies/extras:
|
|
156
|
+
`python3 scripts/gen_package_interdependence.py`. CI enforces it hasn't
|
|
157
|
+
drifted (`python3 scripts/gen_package_interdependence.py --check`, also
|
|
158
|
+
covered by `tests/python/test_generated_docs.py`).
|
|
140
159
|
- [docs/LLM_USAGE_POLICY.md](docs/LLM_USAGE_POLICY.md)
|
|
141
160
|
- [docs/readme-globalization-standard.md](docs/readme-globalization-standard.md)
|
|
142
161
|
|
|
@@ -435,6 +454,38 @@ classifies failures, and sends targeted retry feedback. Bench and pipeline runs
|
|
|
435
454
|
can append lightweight JSONL records to `.simplicio/runs.jsonl` with prompt
|
|
436
455
|
variant, model/provider, estimated tokens, target, mode and failure class.
|
|
437
456
|
|
|
457
|
+
**TOON-encoded prompt context (`SIMPLICIO_PROMPT_TOON`, default on).** The
|
|
458
|
+
uniform-array context blocks injected into generation prompts — mapper
|
|
459
|
+
handoff `files[]`, project-map `Relevant files`, `Precedent candidates` — are
|
|
460
|
+
rendered as [TOON](https://github.com/toon-format/toon) instead of
|
|
461
|
+
hand-rolled bullets, ~27% fewer tokens on the same content (measured over
|
|
462
|
+
`bench/cases.json`, see `bench/results_toon_ab.md`), losslessly. Non-uniform
|
|
463
|
+
arrays fall back to compact JSON automatically. Set
|
|
464
|
+
`SIMPLICIO_PROMPT_TOON=0` to restore the legacy bullet rendering.
|
|
465
|
+
|
|
466
|
+
**Per-call usage events (`SIMPLICIO_LOG_ROOT`, opt-in).** Point this at a
|
|
467
|
+
project root and `generate()`/`planner_complete()` append one usage event to
|
|
468
|
+
`.simplicio/runs.jsonl` per provider call (cache hit or miss), labeling
|
|
469
|
+
whether the token count is real provider-reported usage or the canonical
|
|
470
|
+
estimator's guess. TOON activations and other measured token savings are
|
|
471
|
+
recorded to a separate append-only ledger,
|
|
472
|
+
`.simplicio/ledger/savings-events.jsonl` (`simplicio.savings-event/v1`), via
|
|
473
|
+
`simplicio.observability.record_savings_event()`.
|
|
474
|
+
|
|
475
|
+
#### MCP server and cross-vendor memory
|
|
476
|
+
|
|
477
|
+
`simplicio-dev-cli serve --mcp` runs this CLI as an MCP stdio server
|
|
478
|
+
(stdlib-only JSON-RPC 2.0, no extra dependency), exposing `dev_cli_edit`,
|
|
479
|
+
`dev_cli_validate`, and `dev_cli_memory` as tools any MCP client (Claude
|
|
480
|
+
Code, Codex, Cursor, VS Code) can call directly.
|
|
481
|
+
|
|
482
|
+
`simplicio-dev-cli memory init|store|recall` is a markdown + git store under
|
|
483
|
+
`~/.simplicio/memory/` (override with `SIMPLICIO_MEMORY_DIR`) for handing
|
|
484
|
+
context off between agent vendors — a decision stored by one tool is
|
|
485
|
+
recallable by another. Recall is deterministic keyword search, no LLM call,
|
|
486
|
+
no network; real FTS5/vector-hybrid recall is a documented follow-up, not
|
|
487
|
+
claimed here.
|
|
488
|
+
|
|
438
489
|
**The idea in one line: don't ask the model to guess — hand it the path.**
|
|
439
490
|
Each layer terminates one decision the model would otherwise hallucinate.
|
|
440
491
|
Relevant > complete — inject the *right* context, never *all* of it.
|
|
@@ -449,6 +500,45 @@ pip install simplicio-cli # from PyPI (pulls simplicio-mapper + simpli
|
|
|
449
500
|
pip install -e . # from this repo
|
|
450
501
|
```
|
|
451
502
|
|
|
503
|
+
#### Install profiles (extras)
|
|
504
|
+
|
|
505
|
+
The base install (above) is just the executor/contract/mapper-context/
|
|
506
|
+
edit-verify core — **no PyTorch, no provider SDKs**. Everything else is an
|
|
507
|
+
opt-in extra, picked to match what the code actually imports (#99):
|
|
508
|
+
|
|
509
|
+
| Extra | Adds | When you need it |
|
|
510
|
+
|---|---|---|
|
|
511
|
+
| *(base)* | `numpy`, `simplicio-mapper`, `simplicio-prompt`, `httpx`, `orjson`, `diskcache`, `libcst` | mechanical edit, mapper handoff, doctor/runtime contracts, `claude-cli`/`codex-cli` shell-out providers, cache/token primitives. `numpy` stays in base because `task`/`run`'s precedent+skill-router cosine-similarity ranking imports it unconditionally — it's lightweight (no GPU/torch), unlike the embedding model itself. |
|
|
512
|
+
| `simplicio-cli[providers]` | `openai`, `anthropic` | native Anthropic models, or any OpenAI-compatible endpoint (OpenRouter, GLM, DeepSeek, ...) via `SIMPLICIO_MODEL`/`SIMPLICIO_BASE_URL`. |
|
|
513
|
+
| `simplicio-cli[ml]` | `sentence-transformers` (pulls PyTorch, ~3 GB) | semantic precedent/skill ranking once cached vectors run out (`all-MiniLM-L6-v2`). |
|
|
514
|
+
| `simplicio-cli[local]` | `llama-cpp-python`, `huggingface-hub` | offline in-process inference (default local GGUF, or any `local-llama/<repo>::<file>` model). |
|
|
515
|
+
| `simplicio-cli[bench]` | `fpdf2` | `bench` command's PDF report. |
|
|
516
|
+
| `simplicio-cli[all]` | union of the four above | everything. |
|
|
517
|
+
|
|
518
|
+
Missing an extra never crashes with a raw traceback — every optional import
|
|
519
|
+
is guarded and raises an actionable error naming the exact extra to install
|
|
520
|
+
(e.g. `pip install 'simplicio-cli[providers]'`).
|
|
521
|
+
|
|
522
|
+
#### Local-equivalent of the CI gate
|
|
523
|
+
|
|
524
|
+
`.github/workflows/ci.yml` is the primary required gate (the Node/Playwright
|
|
525
|
+
harness in `starter-e2e.yml` validates the starter-kit template only and does
|
|
526
|
+
not gate merges). Reproduce it locally with:
|
|
527
|
+
|
|
528
|
+
```bash
|
|
529
|
+
pip install -e ".[test]" # base install + pytest (+ tomli on 3.10)
|
|
530
|
+
pytest # tests/python + tests/contracts, per pyproject.toml testpaths
|
|
531
|
+
python3 scripts/gen_package_interdependence.py --check # generated-doc drift gate (#101)
|
|
532
|
+
simplicio-py --help # entrypoint smoke (x3)
|
|
533
|
+
simplicio-cli --help
|
|
534
|
+
simplicio-dev-cli --help
|
|
535
|
+
|
|
536
|
+
pip install -e ".[providers]" && python -c "import openai, anthropic" # extras coverage
|
|
537
|
+
pip install build twine
|
|
538
|
+
python -m build # sdist + wheel
|
|
539
|
+
python -m twine check dist/* # packaging smoke
|
|
540
|
+
```
|
|
541
|
+
|
|
452
542
|
The install ships **three Simplicio packages** that play distinct roles:
|
|
453
543
|
|
|
454
544
|
- **`simplicio-cli`** (this repo) — the 6-layer task contract + verify loop.
|
|
@@ -1,48 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: simplicio-cli
|
|
3
|
-
Version: 0.9.1
|
|
4
|
-
Summary: Portable task-to-code pipeline that works with any LLM. Turn a one-line task into a verified code change — diff + test + verify loop. +55 pts on a 156-check benchmark, 21% faster, ~same tokens.
|
|
5
|
-
Author-email: Wesley Simplicio <wesleybob4@gmail.com>
|
|
6
|
-
License: MIT
|
|
7
|
-
Project-URL: Homepage, https://github.com/wesleysimplicio/simplicio-cli
|
|
8
|
-
Project-URL: Repository, https://github.com/wesleysimplicio/simplicio-cli
|
|
9
|
-
Project-URL: Issues, https://github.com/wesleysimplicio/simplicio-cli/issues
|
|
10
|
-
Project-URL: Changelog, https://github.com/wesleysimplicio/simplicio-cli/releases
|
|
11
|
-
Keywords: llm,ai,agent,code-generation,prompt-engineering,openrouter,openai,anthropic,claude,developer-tools,cli,rag,embeddings,verify-loop,task-automation
|
|
12
|
-
Classifier: Development Status :: 4 - Beta
|
|
13
|
-
Classifier: Environment :: Console
|
|
14
|
-
Classifier: Intended Audience :: Developers
|
|
15
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
16
|
-
Classifier: Operating System :: OS Independent
|
|
17
|
-
Classifier: Programming Language :: Python :: 3
|
|
18
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
-
Classifier: Topic :: Software Development
|
|
23
|
-
Classifier: Topic :: Software Development :: Code Generators
|
|
24
|
-
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
25
|
-
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
26
|
-
Requires-Python: >=3.10
|
|
27
|
-
Description-Content-Type: text/markdown
|
|
28
|
-
License-File: LICENSE
|
|
29
|
-
Requires-Dist: sentence-transformers>=5.6.0
|
|
30
|
-
Requires-Dist: numpy>=2.5.0
|
|
31
|
-
Requires-Dist: anthropic>=0.112.0
|
|
32
|
-
Requires-Dist: openai>=2.44.0
|
|
33
|
-
Requires-Dist: simplicio-mapper>=0.13.0
|
|
34
|
-
Requires-Dist: simplicio-prompt>=1.14.1
|
|
35
|
-
Requires-Dist: httpx>=0.28.1
|
|
36
|
-
Requires-Dist: orjson>=3.11.9
|
|
37
|
-
Requires-Dist: diskcache>=5.6.3
|
|
38
|
-
Requires-Dist: libcst>=1.8.6
|
|
39
|
-
Provides-Extra: bench
|
|
40
|
-
Requires-Dist: fpdf2>=2.8.7; extra == "bench"
|
|
41
|
-
Provides-Extra: local
|
|
42
|
-
Requires-Dist: llama-cpp-python>=0.3.32; extra == "local"
|
|
43
|
-
Requires-Dist: huggingface-hub>=1.21.0; extra == "local"
|
|
44
|
-
Dynamic: license-file
|
|
45
|
-
|
|
46
1
|
<h1 align="center">simplicio-cli</h1>
|
|
47
2
|
|
|
48
3
|
<p align="center">
|
|
@@ -136,7 +91,12 @@ delivery status"]
|
|
|
136
91
|
|
|
137
92
|
## Documentation standard
|
|
138
93
|
|
|
139
|
-
- [docs/PYTHON_PACKAGE_INTERDEPENDENCE.md](docs/PYTHON_PACKAGE_INTERDEPENDENCE.md)
|
|
94
|
+
- [docs/PYTHON_PACKAGE_INTERDEPENDENCE.md](docs/PYTHON_PACKAGE_INTERDEPENDENCE.md) —
|
|
95
|
+
**generated, not hand-edited** (#101). Regenerate after touching
|
|
96
|
+
`pyproject.toml`'s version/dependencies/extras:
|
|
97
|
+
`python3 scripts/gen_package_interdependence.py`. CI enforces it hasn't
|
|
98
|
+
drifted (`python3 scripts/gen_package_interdependence.py --check`, also
|
|
99
|
+
covered by `tests/python/test_generated_docs.py`).
|
|
140
100
|
- [docs/LLM_USAGE_POLICY.md](docs/LLM_USAGE_POLICY.md)
|
|
141
101
|
- [docs/readme-globalization-standard.md](docs/readme-globalization-standard.md)
|
|
142
102
|
|
|
@@ -435,6 +395,38 @@ classifies failures, and sends targeted retry feedback. Bench and pipeline runs
|
|
|
435
395
|
can append lightweight JSONL records to `.simplicio/runs.jsonl` with prompt
|
|
436
396
|
variant, model/provider, estimated tokens, target, mode and failure class.
|
|
437
397
|
|
|
398
|
+
**TOON-encoded prompt context (`SIMPLICIO_PROMPT_TOON`, default on).** The
|
|
399
|
+
uniform-array context blocks injected into generation prompts — mapper
|
|
400
|
+
handoff `files[]`, project-map `Relevant files`, `Precedent candidates` — are
|
|
401
|
+
rendered as [TOON](https://github.com/toon-format/toon) instead of
|
|
402
|
+
hand-rolled bullets, ~27% fewer tokens on the same content (measured over
|
|
403
|
+
`bench/cases.json`, see `bench/results_toon_ab.md`), losslessly. Non-uniform
|
|
404
|
+
arrays fall back to compact JSON automatically. Set
|
|
405
|
+
`SIMPLICIO_PROMPT_TOON=0` to restore the legacy bullet rendering.
|
|
406
|
+
|
|
407
|
+
**Per-call usage events (`SIMPLICIO_LOG_ROOT`, opt-in).** Point this at a
|
|
408
|
+
project root and `generate()`/`planner_complete()` append one usage event to
|
|
409
|
+
`.simplicio/runs.jsonl` per provider call (cache hit or miss), labeling
|
|
410
|
+
whether the token count is real provider-reported usage or the canonical
|
|
411
|
+
estimator's guess. TOON activations and other measured token savings are
|
|
412
|
+
recorded to a separate append-only ledger,
|
|
413
|
+
`.simplicio/ledger/savings-events.jsonl` (`simplicio.savings-event/v1`), via
|
|
414
|
+
`simplicio.observability.record_savings_event()`.
|
|
415
|
+
|
|
416
|
+
#### MCP server and cross-vendor memory
|
|
417
|
+
|
|
418
|
+
`simplicio-dev-cli serve --mcp` runs this CLI as an MCP stdio server
|
|
419
|
+
(stdlib-only JSON-RPC 2.0, no extra dependency), exposing `dev_cli_edit`,
|
|
420
|
+
`dev_cli_validate`, and `dev_cli_memory` as tools any MCP client (Claude
|
|
421
|
+
Code, Codex, Cursor, VS Code) can call directly.
|
|
422
|
+
|
|
423
|
+
`simplicio-dev-cli memory init|store|recall` is a markdown + git store under
|
|
424
|
+
`~/.simplicio/memory/` (override with `SIMPLICIO_MEMORY_DIR`) for handing
|
|
425
|
+
context off between agent vendors — a decision stored by one tool is
|
|
426
|
+
recallable by another. Recall is deterministic keyword search, no LLM call,
|
|
427
|
+
no network; real FTS5/vector-hybrid recall is a documented follow-up, not
|
|
428
|
+
claimed here.
|
|
429
|
+
|
|
438
430
|
**The idea in one line: don't ask the model to guess — hand it the path.**
|
|
439
431
|
Each layer terminates one decision the model would otherwise hallucinate.
|
|
440
432
|
Relevant > complete — inject the *right* context, never *all* of it.
|
|
@@ -449,6 +441,45 @@ pip install simplicio-cli # from PyPI (pulls simplicio-mapper + simpli
|
|
|
449
441
|
pip install -e . # from this repo
|
|
450
442
|
```
|
|
451
443
|
|
|
444
|
+
#### Install profiles (extras)
|
|
445
|
+
|
|
446
|
+
The base install (above) is just the executor/contract/mapper-context/
|
|
447
|
+
edit-verify core — **no PyTorch, no provider SDKs**. Everything else is an
|
|
448
|
+
opt-in extra, picked to match what the code actually imports (#99):
|
|
449
|
+
|
|
450
|
+
| Extra | Adds | When you need it |
|
|
451
|
+
|---|---|---|
|
|
452
|
+
| *(base)* | `numpy`, `simplicio-mapper`, `simplicio-prompt`, `httpx`, `orjson`, `diskcache`, `libcst` | mechanical edit, mapper handoff, doctor/runtime contracts, `claude-cli`/`codex-cli` shell-out providers, cache/token primitives. `numpy` stays in base because `task`/`run`'s precedent+skill-router cosine-similarity ranking imports it unconditionally — it's lightweight (no GPU/torch), unlike the embedding model itself. |
|
|
453
|
+
| `simplicio-cli[providers]` | `openai`, `anthropic` | native Anthropic models, or any OpenAI-compatible endpoint (OpenRouter, GLM, DeepSeek, ...) via `SIMPLICIO_MODEL`/`SIMPLICIO_BASE_URL`. |
|
|
454
|
+
| `simplicio-cli[ml]` | `sentence-transformers` (pulls PyTorch, ~3 GB) | semantic precedent/skill ranking once cached vectors run out (`all-MiniLM-L6-v2`). |
|
|
455
|
+
| `simplicio-cli[local]` | `llama-cpp-python`, `huggingface-hub` | offline in-process inference (default local GGUF, or any `local-llama/<repo>::<file>` model). |
|
|
456
|
+
| `simplicio-cli[bench]` | `fpdf2` | `bench` command's PDF report. |
|
|
457
|
+
| `simplicio-cli[all]` | union of the four above | everything. |
|
|
458
|
+
|
|
459
|
+
Missing an extra never crashes with a raw traceback — every optional import
|
|
460
|
+
is guarded and raises an actionable error naming the exact extra to install
|
|
461
|
+
(e.g. `pip install 'simplicio-cli[providers]'`).
|
|
462
|
+
|
|
463
|
+
#### Local-equivalent of the CI gate
|
|
464
|
+
|
|
465
|
+
`.github/workflows/ci.yml` is the primary required gate (the Node/Playwright
|
|
466
|
+
harness in `starter-e2e.yml` validates the starter-kit template only and does
|
|
467
|
+
not gate merges). Reproduce it locally with:
|
|
468
|
+
|
|
469
|
+
```bash
|
|
470
|
+
pip install -e ".[test]" # base install + pytest (+ tomli on 3.10)
|
|
471
|
+
pytest # tests/python + tests/contracts, per pyproject.toml testpaths
|
|
472
|
+
python3 scripts/gen_package_interdependence.py --check # generated-doc drift gate (#101)
|
|
473
|
+
simplicio-py --help # entrypoint smoke (x3)
|
|
474
|
+
simplicio-cli --help
|
|
475
|
+
simplicio-dev-cli --help
|
|
476
|
+
|
|
477
|
+
pip install -e ".[providers]" && python -c "import openai, anthropic" # extras coverage
|
|
478
|
+
pip install build twine
|
|
479
|
+
python -m build # sdist + wheel
|
|
480
|
+
python -m twine check dist/* # packaging smoke
|
|
481
|
+
```
|
|
482
|
+
|
|
452
483
|
The install ships **three Simplicio packages** that play distinct roles:
|
|
453
484
|
|
|
454
485
|
- **`simplicio-cli`** (this repo) — the 6-layer task contract + verify loop.
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "simplicio-cli"
|
|
3
|
+
version = "0.9.3"
|
|
4
|
+
description = "Portable task-to-code pipeline that works with any LLM. Turn a one-line task into a verified code change — diff + test + verify loop. +55 pts on a 156-check benchmark, 21% faster, ~same tokens."
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
license = { text = "MIT" }
|
|
7
|
+
requires-python = ">=3.10"
|
|
8
|
+
authors = [{ name = "Wesley Simplicio", email = "wesleybob4@gmail.com" }]
|
|
9
|
+
keywords = [
|
|
10
|
+
"llm",
|
|
11
|
+
"ai",
|
|
12
|
+
"agent",
|
|
13
|
+
"code-generation",
|
|
14
|
+
"prompt-engineering",
|
|
15
|
+
"openrouter",
|
|
16
|
+
"openai",
|
|
17
|
+
"anthropic",
|
|
18
|
+
"claude",
|
|
19
|
+
"developer-tools",
|
|
20
|
+
"cli",
|
|
21
|
+
"rag",
|
|
22
|
+
"embeddings",
|
|
23
|
+
"verify-loop",
|
|
24
|
+
"task-automation",
|
|
25
|
+
]
|
|
26
|
+
classifiers = [
|
|
27
|
+
"Development Status :: 4 - Beta",
|
|
28
|
+
"Environment :: Console",
|
|
29
|
+
"Intended Audience :: Developers",
|
|
30
|
+
"License :: OSI Approved :: MIT License",
|
|
31
|
+
"Operating System :: OS Independent",
|
|
32
|
+
"Programming Language :: Python :: 3",
|
|
33
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
34
|
+
"Programming Language :: Python :: 3.10",
|
|
35
|
+
"Programming Language :: Python :: 3.11",
|
|
36
|
+
"Programming Language :: Python :: 3.12",
|
|
37
|
+
"Topic :: Software Development",
|
|
38
|
+
"Topic :: Software Development :: Code Generators",
|
|
39
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
40
|
+
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
41
|
+
]
|
|
42
|
+
# Base install is the executor/contract/mapper-context/edit-verify core:
|
|
43
|
+
# mechanical edit, mapper handoff, task/run pipeline (precedent + skill
|
|
44
|
+
# router use numpy for cosine-similarity ranking, but NOT the embedding
|
|
45
|
+
# model itself), doctor/runtime contracts, caching. numpy stays in base
|
|
46
|
+
# (lightweight, no GPU/torch) because it is imported unconditionally by
|
|
47
|
+
# simplicio.cache -> simplicio.precedent/skill_router, which the core
|
|
48
|
+
# `task`/`run` commands import even when no remote/semantic provider is
|
|
49
|
+
# configured. The genuinely heavy ML dependency (sentence-transformers,
|
|
50
|
+
# which pulls PyTorch + CUDA wheels, ~3 GB) moves to the `ml` extra; remote
|
|
51
|
+
# provider SDKs move to `providers`. See docs/PYTHON_PACKAGE_INTERDEPENDENCE.md
|
|
52
|
+
# (generated, `--check`-able) for the full graph and #99 for the audit.
|
|
53
|
+
dependencies = [
|
|
54
|
+
"numpy>=2.1.0",
|
|
55
|
+
"simplicio-mapper>=0.16.0",
|
|
56
|
+
"simplicio-prompt>=1.14.1",
|
|
57
|
+
"httpx>=0.28.1",
|
|
58
|
+
"orjson>=3.11.9",
|
|
59
|
+
"diskcache>=5.6.3",
|
|
60
|
+
"libcst>=1.8.6",
|
|
61
|
+
]
|
|
62
|
+
|
|
63
|
+
[project.optional-dependencies]
|
|
64
|
+
# Remote LLM provider SDKs (native Anthropic path + any OpenAI-compatible
|
|
65
|
+
# endpoint: OpenRouter, GLM, DeepSeek, ...). Not needed for claude-cli/
|
|
66
|
+
# codex-cli shell-out providers or the local llama.cpp path.
|
|
67
|
+
providers = ["anthropic>=0.112.0", "openai>=2.44.0"]
|
|
68
|
+
# Semantic precedent/skill ranking (sentence-transformers -> PyTorch). Only
|
|
69
|
+
# needed once `task`/`run` actually reach the embedding path (no cached
|
|
70
|
+
# vectors yet); the numpy-only cosine-similarity math stays in base.
|
|
71
|
+
ml = ["sentence-transformers>=5.6.0"]
|
|
72
|
+
bench = ["fpdf2>=2.8.7"]
|
|
73
|
+
# Offline fallback in-process inference. Pulls the llama.cpp Python bindings
|
|
74
|
+
# plus huggingface-hub to fetch MiniCPM5-1B-Q4_K_M.gguf.
|
|
75
|
+
local = ["llama-cpp-python>=0.3.32", "huggingface-hub>=1.21.0"]
|
|
76
|
+
all = [
|
|
77
|
+
"simplicio-cli[providers]",
|
|
78
|
+
"simplicio-cli[ml]",
|
|
79
|
+
"simplicio-cli[bench]",
|
|
80
|
+
"simplicio-cli[local]",
|
|
81
|
+
]
|
|
82
|
+
# CI/dev-only, not a product extra: pytest to run tests/python, plus tomli
|
|
83
|
+
# on 3.10 (tomllib is stdlib only from 3.11+; several tests parse this file).
|
|
84
|
+
test = ["pytest>=8", "tomli>=2.0.1; python_version < '3.11'"]
|
|
85
|
+
# CI/dev-only lint+type gate (#102): never a base/product dependency.
|
|
86
|
+
# `ruff format --check .` / `ruff check .` / `mypy simplicio` is the local
|
|
87
|
+
# command (see CONTRIBUTING.md / AGENTS.md "Comandos importantes").
|
|
88
|
+
dev = ["simplicio-cli[test]", "ruff>=0.15.8", "mypy>=1.19.1"]
|
|
89
|
+
|
|
90
|
+
[project.urls]
|
|
91
|
+
Homepage = "https://github.com/wesleysimplicio/simplicio-cli"
|
|
92
|
+
Repository = "https://github.com/wesleysimplicio/simplicio-cli"
|
|
93
|
+
Issues = "https://github.com/wesleysimplicio/simplicio-cli/issues"
|
|
94
|
+
Changelog = "https://github.com/wesleysimplicio/simplicio-cli/releases"
|
|
95
|
+
|
|
96
|
+
[project.scripts]
|
|
97
|
+
simplicio-cli = "simplicio.cli:main"
|
|
98
|
+
simplicio-py = "simplicio.cli:main"
|
|
99
|
+
simplicio-dev-cli = "simplicio.cli:main"
|
|
100
|
+
|
|
101
|
+
[build-system]
|
|
102
|
+
requires = ["setuptools>=68", "wheel"]
|
|
103
|
+
build-backend = "setuptools.build_meta"
|
|
104
|
+
|
|
105
|
+
[tool.setuptools.packages.find]
|
|
106
|
+
where = ["."]
|
|
107
|
+
include = ["simplicio*"]
|
|
108
|
+
|
|
109
|
+
[tool.setuptools.package-data]
|
|
110
|
+
simplicio = [
|
|
111
|
+
"py.typed",
|
|
112
|
+
"templates/*.md",
|
|
113
|
+
"templates/*.sh",
|
|
114
|
+
"templates/recipes/**/*.json",
|
|
115
|
+
"templates/recipes/**/*.yaml",
|
|
116
|
+
"templates/recipes/**/*.yml",
|
|
117
|
+
"templates/stacks/**/*",
|
|
118
|
+
"templates/stacks/*/tree/.gitignore",
|
|
119
|
+
"templates/stacks/*/tree/.eslintrc.json",
|
|
120
|
+
]
|
|
121
|
+
|
|
122
|
+
[tool.pytest.ini_options]
|
|
123
|
+
pythonpath = ["."]
|
|
124
|
+
testpaths = ["tests/python", "tests/contracts"]
|
|
125
|
+
|
|
126
|
+
# --------------------------------------------------------------------------- #
|
|
127
|
+
# Lint / type gate (#102). Dev-only tooling — see the `dev` extra above.
|
|
128
|
+
# Baseline is intentionally permissive (not `mypy --strict`); documented here
|
|
129
|
+
# rather than left implicit so future tightening is a deliberate diff.
|
|
130
|
+
# --------------------------------------------------------------------------- #
|
|
131
|
+
[tool.ruff]
|
|
132
|
+
# 110 rather than the ruff default of 88: several product modules carry
|
|
133
|
+
# long but meaningful lines (URLs, JSON schema literals, long f-strings in
|
|
134
|
+
# provider/pipeline diagnostics) that read worse wrapped than left alone.
|
|
135
|
+
line-length = 110
|
|
136
|
+
target-version = "py310"
|
|
137
|
+
extend-exclude = [
|
|
138
|
+
"bench",
|
|
139
|
+
"output",
|
|
140
|
+
".simplicio",
|
|
141
|
+
".orchestrator",
|
|
142
|
+
"simplicio/templates",
|
|
143
|
+
]
|
|
144
|
+
|
|
145
|
+
[tool.ruff.lint]
|
|
146
|
+
# E/F = pyflakes+pycodestyle core, I = isort, UP = pyupgrade, B = bugbear,
|
|
147
|
+
# T20 = flake8-print (issue #106 — blocks new print() regressions in
|
|
148
|
+
# library/MCP-adjacent code; see per-file-ignores below for the documented
|
|
149
|
+
# CLI-handler exception, where stdout IS the subcommand's intended output).
|
|
150
|
+
select = ["E", "F", "I", "UP", "B", "T20"]
|
|
151
|
+
# B008: PLAN_JSON-style default args show up in a few argparse builders;
|
|
152
|
+
# revisit case-by-case with a scoped noqa instead of a blanket ignore.
|
|
153
|
+
ignore = []
|
|
154
|
+
|
|
155
|
+
[tool.ruff.lint.per-file-ignores]
|
|
156
|
+
# Test modules intentionally shadow fixtures/imports and use long fixtures.
|
|
157
|
+
"tests/**/*.py" = ["E501", "T201"]
|
|
158
|
+
# CLI-handler exception (#106): stdout IS the intended output of these
|
|
159
|
+
# subcommand entry points (JSON payloads, tables, human summaries), so
|
|
160
|
+
# print() is the correct tool here — never in mcp_server.py, providers.py,
|
|
161
|
+
# pipeline.py, mapper.py, or any other library/MCP-adjacent module, which
|
|
162
|
+
# stay covered by the bare T201 rule above with zero suppressions.
|
|
163
|
+
"simplicio/cli.py" = ["T201"]
|
|
164
|
+
"simplicio/doctor.py" = ["T201"]
|
|
165
|
+
"simplicio/init.py" = ["T201"]
|
|
166
|
+
"simplicio/cache_cli.py" = ["T201"]
|
|
167
|
+
"simplicio/bench.py" = ["T201"]
|
|
168
|
+
"simplicio/detect.py" = ["T201"]
|
|
169
|
+
"simplicio/commands/*.py" = ["T201"]
|
|
170
|
+
"simplicio/scratch/cli.py" = ["T201"]
|
|
171
|
+
"simplicio/scratch/skill_opt.py" = ["T201"]
|
|
172
|
+
# Standalone dev/CI scripts outside the `simplicio` package — their stdout
|
|
173
|
+
# is their entire purpose (doc-generator output, demo pipeline summary).
|
|
174
|
+
"scripts/**/*.py" = ["T201"]
|
|
175
|
+
|
|
176
|
+
[tool.ruff.format]
|
|
177
|
+
quote-style = "double"
|
|
178
|
+
indent-style = "space"
|
|
179
|
+
|
|
180
|
+
[tool.mypy]
|
|
181
|
+
python_version = "3.10"
|
|
182
|
+
files = ["simplicio"]
|
|
183
|
+
# Baseline rigor (#102 AC): permissive on missing third-party stubs, but
|
|
184
|
+
# real within the package. Tighten per-module (`[[tool.mypy.overrides]]`)
|
|
185
|
+
# once a module's own tests give confidence to raise the bar.
|
|
186
|
+
ignore_missing_imports = true
|
|
187
|
+
warn_redundant_casts = true
|
|
188
|
+
warn_unused_ignores = false
|
|
189
|
+
exclude = ["simplicio/templates/"]
|
|
190
|
+
|
|
191
|
+
# Legacy-debt allowlist (#102 baseline): these modules predate the mypy gate
|
|
192
|
+
# and lean on dynamic dict/Any shapes (JSON-parsed configs, duck-typed
|
|
193
|
+
# introspection over an optional `libcst`/`cst` dependency, dataclass-ish
|
|
194
|
+
# `object` placeholders) that a real fix means non-trivial refactors, not a
|
|
195
|
+
# quick annotation. Tracked as debt rather than silenced with a blanket
|
|
196
|
+
# `ignore_missing_imports`-style rule repo-wide. New code should NOT be
|
|
197
|
+
# added to this list — annotate it properly instead. Shrink this list as
|
|
198
|
+
# each module gets tightened (see issue #102 follow-up).
|
|
199
|
+
[[tool.mypy.overrides]]
|
|
200
|
+
module = [
|
|
201
|
+
"simplicio.scratch.codegen.python_cst",
|
|
202
|
+
"simplicio.scratch.stack_registry",
|
|
203
|
+
"simplicio.mechanical_edit",
|
|
204
|
+
"simplicio.orchestrator.cost_governor",
|
|
205
|
+
"simplicio.scratch.codegen.typescript_next_route",
|
|
206
|
+
"simplicio.scratch.codegen.python_orm",
|
|
207
|
+
"simplicio.commands.test_run",
|
|
208
|
+
"simplicio.cache_cli",
|
|
209
|
+
"simplicio.precedent",
|
|
210
|
+
"simplicio.mcp_server",
|
|
211
|
+
"simplicio.scratch.executor",
|
|
212
|
+
"simplicio.orchestrator.feature",
|
|
213
|
+
"simplicio.scratch.cli",
|
|
214
|
+
]
|
|
215
|
+
ignore_errors = true
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.9.3"
|
|
@@ -10,7 +10,7 @@ import tempfile
|
|
|
10
10
|
import time
|
|
11
11
|
from dataclasses import dataclass, field
|
|
12
12
|
from pathlib import Path
|
|
13
|
-
from typing import Any
|
|
13
|
+
from typing import Any
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
def _env_flag(name: str, default: bool) -> bool:
|
|
@@ -55,9 +55,9 @@ class CacheEntry:
|
|
|
55
55
|
provider_id: str = ""
|
|
56
56
|
model: str = ""
|
|
57
57
|
created_at: float = field(default_factory=time.time)
|
|
58
|
-
metadata:
|
|
58
|
+
metadata: dict[str, Any] = field(default_factory=dict)
|
|
59
59
|
|
|
60
|
-
def to_dict(self) ->
|
|
60
|
+
def to_dict(self) -> dict[str, Any]:
|
|
61
61
|
return {
|
|
62
62
|
"completion": self.completion,
|
|
63
63
|
"provider_id": self.provider_id,
|
|
@@ -67,7 +67,7 @@ class CacheEntry:
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
@classmethod
|
|
70
|
-
def from_dict(cls, payload:
|
|
70
|
+
def from_dict(cls, payload: dict[str, Any]) -> CacheEntry:
|
|
71
71
|
return cls(
|
|
72
72
|
completion=str(payload.get("completion", "")),
|
|
73
73
|
provider_id=str(payload.get("provider_id", "")),
|
|
@@ -80,20 +80,14 @@ class CacheEntry:
|
|
|
80
80
|
class CompletionCache:
|
|
81
81
|
def __init__(
|
|
82
82
|
self,
|
|
83
|
-
root:
|
|
83
|
+
root: Path | None = None,
|
|
84
84
|
*,
|
|
85
|
-
ttl_days:
|
|
86
|
-
max_mb:
|
|
85
|
+
ttl_days: float | None = None,
|
|
86
|
+
max_mb: float | None = None,
|
|
87
87
|
) -> None:
|
|
88
88
|
self.root = Path(root) if root is not None else _cache_root()
|
|
89
|
-
self.ttl_days = (
|
|
90
|
-
|
|
91
|
-
if ttl_days is not None
|
|
92
|
-
else _env_float("SIMPLICIO_CACHE_TTL_DAYS", 30)
|
|
93
|
-
)
|
|
94
|
-
self.max_mb = (
|
|
95
|
-
max_mb if max_mb is not None else _env_float("SIMPLICIO_CACHE_MAX_MB", 500)
|
|
96
|
-
)
|
|
89
|
+
self.ttl_days = ttl_days if ttl_days is not None else _env_float("SIMPLICIO_CACHE_TTL_DAYS", 30)
|
|
90
|
+
self.max_mb = max_mb if max_mb is not None else _env_float("SIMPLICIO_CACHE_MAX_MB", 500)
|
|
97
91
|
self.hits = 0
|
|
98
92
|
self.misses = 0
|
|
99
93
|
self.puts = 0
|
|
@@ -109,7 +103,7 @@ class CompletionCache:
|
|
|
109
103
|
def path_for(self, key: str) -> Path:
|
|
110
104
|
return self.root / key[:2] / f"{key}.json"
|
|
111
105
|
|
|
112
|
-
def get(self, key: str) ->
|
|
106
|
+
def get(self, key: str) -> CacheEntry | None:
|
|
113
107
|
if not self.enabled or self.bust:
|
|
114
108
|
self.misses += 1
|
|
115
109
|
return None
|
|
@@ -167,7 +161,7 @@ class CompletionCache:
|
|
|
167
161
|
shutil.rmtree(self.root)
|
|
168
162
|
return int(n)
|
|
169
163
|
|
|
170
|
-
def stats(self) ->
|
|
164
|
+
def stats(self) -> dict[str, Any]:
|
|
171
165
|
files = list(self._files())
|
|
172
166
|
total_bytes = sum(path.stat().st_size for path in files if path.exists())
|
|
173
167
|
now = time.time()
|
|
@@ -182,9 +176,7 @@ class CompletionCache:
|
|
|
182
176
|
"hits": self.hits,
|
|
183
177
|
"misses": self.misses,
|
|
184
178
|
"puts": self.puts,
|
|
185
|
-
"hit_rate": round(self.hits / (self.hits + self.misses), 4)
|
|
186
|
-
if self.hits + self.misses
|
|
187
|
-
else 0.0,
|
|
179
|
+
"hit_rate": round(self.hits / (self.hits + self.misses), 4) if self.hits + self.misses else 0.0,
|
|
188
180
|
"bytes": total_bytes,
|
|
189
181
|
"mb": round(total_bytes / (1024 * 1024), 3),
|
|
190
182
|
"oldest_age_s": round(oldest, 3) if oldest is not None else None,
|
|
@@ -233,7 +225,7 @@ class CompletionCache:
|
|
|
233
225
|
return
|
|
234
226
|
|
|
235
227
|
|
|
236
|
-
_cache:
|
|
228
|
+
_cache: CompletionCache | None = None
|
|
237
229
|
|
|
238
230
|
|
|
239
231
|
def cache() -> CompletionCache:
|
|
@@ -248,11 +240,7 @@ def _is_completion_cache_file(root: Path, path: Path) -> bool:
|
|
|
248
240
|
rel = path.relative_to(root)
|
|
249
241
|
except ValueError:
|
|
250
242
|
return False
|
|
251
|
-
return (
|
|
252
|
-
len(rel.parts) == 2
|
|
253
|
-
and len(path.stem) == 64
|
|
254
|
-
and rel.parts[0] == path.stem[:2]
|
|
255
|
-
)
|
|
243
|
+
return len(rel.parts) == 2 and len(path.stem) == 64 and rel.parts[0] == path.stem[:2]
|
|
256
244
|
|
|
257
245
|
|
|
258
246
|
def reset_for_tests() -> None:
|