simplicio-cli 0.5.1__tar.gz → 0.5.13__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.5.1/simplicio_cli.egg-info → simplicio_cli-0.5.13}/PKG-INFO +44 -21
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/README.md +29 -5
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/pyproject.toml +15 -16
- simplicio_cli-0.5.13/simplicio/__init__.py +1 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/bench.py +2 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/cli.py +41 -7
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/detect.py +41 -8
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/intent.py +78 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/orchestrator/feature.py +31 -2
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/pipeline.py +56 -3
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/precedent.py +41 -6
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/providers.py +55 -10
- simplicio_cli-0.5.13/simplicio/runtime_env.py +59 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/cli.py +74 -5
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/__init__.py +2 -0
- simplicio_cli-0.5.13/simplicio/scratch/codegen/markdown_document.py +105 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/registry.py +2 -0
- simplicio_cli-0.5.13/simplicio/templates/recipes/php-vanilla/docs-marker.yaml +31 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13/simplicio_cli.egg-info}/PKG-INFO +44 -21
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio_cli.egg-info/SOURCES.txt +3 -0
- simplicio_cli-0.5.13/simplicio_cli.egg-info/requires.txt +17 -0
- simplicio_cli-0.5.1/simplicio/__init__.py +0 -1
- simplicio_cli-0.5.1/simplicio_cli.egg-info/requires.txt +0 -17
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/LICENSE +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/setup.cfg +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/_cache.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/adaptive.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/cache.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/cache_cli.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/doctor.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/dod.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/ecosystem.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/hardware.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/init.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/local_models.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/mapper.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/observability.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/orchestrator/__init__.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/orchestrator/cost_governor.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/pipeline_fixers.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/prompt.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/__init__.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/_pipeline_adapter.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/go_gin.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/php_laravel.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/python_cst.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/python_fastapi.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/python_orm.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/python_pydantic.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/python_pytest.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/rust_axum.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/types.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/typescript_next_page.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/typescript_next_route.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/executor.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/plan_schema.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/planner.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/recipes.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/skill_opt.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/stack_registry.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/skill_router.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/sprint_loader.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/SKILL.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/recipes/go-gin/crud-resource.yaml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/recipes/php-laravel/crud-resource.yaml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/recipes/py-fastapi/admin-crud.yaml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/recipes/py-fastapi/auth-jwt.yaml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/recipes/py-fastapi/crud-resource.yaml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/recipes/rust-axum/crud-resource.yaml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/recipes/ts-nextjs/admin-crud.yaml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/recipes/ts-nextjs/auth-jwt.yaml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/recipes/ts-nextjs/crud-resource.yaml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/simplicio_prompt.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/bash-cli/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/bash-cli/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/bash-cli/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/bash-cli/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/bash-cli/tree/bin/app.sh +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/bash-cli/tree/test/app.bats +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/bash-cli/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-aspnet/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-aspnet/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-aspnet/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-aspnet/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-aspnet/tree/src/App.Api/App.Api.csproj +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-aspnet/tree/src/App.Api/Program.cs +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-aspnet/tree/tests/App.Tests/App.Tests.csproj +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-aspnet/tree/tests/App.Tests/HealthTests.cs +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-aspnet/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-blazor/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-blazor/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-blazor/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-blazor/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/App.Web.csproj +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Components/App.razor +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Components/Pages/Home.razor +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Program.cs +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-blazor/tree/tests/App.Tests/App.Tests.csproj +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-blazor/tree/tests/App.Tests/HealthTests.cs +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-blazor/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/dart-flutter/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/dart-flutter/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/dart-flutter/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/dart-flutter/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/dart-flutter/tree/lib/main.dart +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/dart-flutter/tree/pubspec.yaml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/dart-flutter/tree/test/widget_test.dart +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/dart-flutter/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/tree/config/config.exs +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app/application.ex +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/controllers/health_controller.ex +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/endpoint.ex +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/router.ex +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/tree/mix.exs +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/tree/test/health_controller_test.exs +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/tree/test/test_helper.exs +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-cli/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-cli/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-cli/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-cli/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-cli/tree/cmd/root.go +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-cli/tree/cmd/root_test.go +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-cli/tree/go.mod +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-cli/tree/main.go +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-cli/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-echo/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-echo/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-echo/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-echo/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-echo/tree/cmd/server/main.go +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-echo/tree/go.mod +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-echo/tree/internal/http/router.go +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-echo/tree/internal/http/router_test.go +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-echo/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-gin/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-gin/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-gin/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-gin/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-gin/tree/cmd/server/main.go +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-gin/tree/go.mod +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-gin/tree/internal/http/router.go +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-gin/tree/internal/http/router_test.go +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-gin/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/java-spring/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/java-spring/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/java-spring/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/java-spring/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/java-spring/tree/build.gradle.kts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/java-spring/tree/settings.gradle.kts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/java-spring/tree/src/main/java/com/example/Application.java +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/java-spring/tree/src/main/java/com/example/HealthController.java +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/java-spring/tree/src/test/java/com/example/HealthControllerTest.java +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/java-spring/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/js-express/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/js-express/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/js-express/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/js-express/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/js-express/tree/package.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/js-express/tree/src/app.js +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/js-express/tree/src/server.js +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/js-express/tree/tests/health.test.js +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/js-express/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-android/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-android/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-android/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-android/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-android/tree/app/build.gradle.kts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/AndroidManifest.xml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/java/com/example/app/MainActivity.kt +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/res/values/styles.xml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-android/tree/app/src/test/java/com/example/app/SmokeTest.kt +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-android/tree/build.gradle.kts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-android/tree/settings.gradle.kts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-android/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-ktor/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-ktor/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-ktor/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-ktor/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-ktor/tree/build.gradle.kts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-ktor/tree/settings.gradle.kts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-ktor/tree/src/main/kotlin/com/example/Application.kt +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-ktor/tree/src/test/kotlin/com/example/ApplicationTest.kt +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-ktor/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-spring/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-spring/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-spring/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-spring/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-spring/tree/build.gradle.kts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-spring/tree/settings.gradle.kts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-spring/tree/src/main/kotlin/com/example/Application.kt +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-spring/tree/src/main/kotlin/com/example/HealthController.kt +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-spring/tree/src/test/kotlin/com/example/HealthControllerTest.kt +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-spring/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/tree/artisan +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/tree/bootstrap/app.php +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/tree/composer.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/tree/phpunit.xml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/tree/routes/api.php +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/tree/routes/console.php +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/tree/tests/Feature/HealthTest.php +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/tree/tests/TestCase.php +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-symfony/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-symfony/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-symfony/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-symfony/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-symfony/tree/composer.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-symfony/tree/src/Controller/HealthController.php +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-symfony/tree/tests/HealthControllerTest.php +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-symfony/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-vanilla/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-vanilla/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-vanilla/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-vanilla/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-vanilla/tree/composer.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-vanilla/tree/phpunit.xml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-vanilla/tree/src/Health.php +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-vanilla/tree/tests/HealthTest.php +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-vanilla/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-cli/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-cli/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-cli/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-cli/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-cli/tree/pyproject.toml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-cli/tree/src/app/__init__.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-cli/tree/src/app/cli.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-cli/tree/tests/test_cli.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-cli/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/tree/app/__init__.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/tree/app/apps.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/tree/app/tests.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/tree/app/views.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/tree/config/__init__.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/tree/config/asgi.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/tree/config/settings.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/tree/config/urls.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/tree/config/wsgi.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/tree/manage.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/tree/pyproject.toml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-fastapi/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-fastapi/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-fastapi/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-fastapi/tree/.gitignore +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-fastapi/tree/README.template.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-fastapi/tree/pyproject.toml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-fastapi/tree/ruff.toml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-fastapi/tree/src/api/__init__.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-fastapi/tree/src/main.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-fastapi/tree/tests/test_health.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-fastapi/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-flask/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-flask/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-flask/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-flask/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-flask/tree/pyproject.toml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-flask/tree/ruff.toml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-flask/tree/src/app.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-flask/tree/tests/test_health.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-flask/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/react-vite/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/react-vite/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/react-vite/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/react-vite/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/react-vite/tree/index.html +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/react-vite/tree/package.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/react-vite/tree/src/App.test.tsx +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/react-vite/tree/src/App.tsx +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/react-vite/tree/src/main.tsx +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/react-vite/tree/tsconfig.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/react-vite/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/tree/Gemfile +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/tree/app/controllers/health_controller.rb +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/tree/bin/rails +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/tree/config/application.rb +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/tree/config/boot.rb +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/tree/config/routes.rb +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/tree/test/controllers/health_controller_test.rb +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/tree/test/test_helper.rb +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-axum/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-axum/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-axum/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-axum/tree/Cargo.toml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-axum/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-axum/tree/src/main.rs +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-axum/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-cli/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-cli/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-cli/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-cli/tree/Cargo.toml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-cli/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-cli/tree/src/main.rs +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-cli/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-leptos/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-leptos/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-leptos/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-leptos/tree/Cargo.toml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-leptos/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-leptos/tree/src/main.rs +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-leptos/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-ios/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-ios/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-ios/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-ios/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-ios/tree/Sources/App/App.swift +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-ios/tree/Sources/App/ContentView.swift +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-ios/tree/Tests/AppTests/AppTests.swift +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-ios/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-vapor/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-vapor/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-vapor/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-vapor/tree/Package.swift +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-vapor/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-vapor/tree/Sources/App/main.swift +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-vapor/tree/Tests/AppTests/HealthTests.swift +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-vapor/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nestjs/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nestjs/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nestjs/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nestjs/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nestjs/tree/package.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nestjs/tree/src/app.controller.spec.ts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nestjs/tree/src/app.controller.ts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nestjs/tree/src/app.module.ts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nestjs/tree/src/main.ts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nestjs/tree/tsconfig.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nestjs/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nextjs/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nextjs/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nextjs/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nextjs/tree/.eslintrc.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nextjs/tree/.gitignore +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nextjs/tree/next.config.mjs +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nextjs/tree/package.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nextjs/tree/pnpm-workspace.yaml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nextjs/tree/src/app/layout.tsx +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nextjs/tree/src/app/page.tsx +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nextjs/tree/tsconfig.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nextjs/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-remix/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-remix/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-remix/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-remix/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-remix/tree/app/root.tsx +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-remix/tree/app/routes/_index.tsx +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-remix/tree/app/routes/health.test.ts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-remix/tree/app/routes/health.ts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-remix/tree/package.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-remix/tree/tsconfig.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-remix/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/userpromptsubmit-hook.sh +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/utils/__init__.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/utils/cache.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/utils/http_client.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/utils/serialization.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio_cli.egg-info/dependency_links.txt +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio_cli.egg-info/entry_points.txt +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/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.5.
|
|
3
|
+
Version: 0.5.13
|
|
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
|
|
@@ -16,7 +16,6 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
16
16
|
Classifier: Operating System :: OS Independent
|
|
17
17
|
Classifier: Programming Language :: Python :: 3
|
|
18
18
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.10
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.11
|
|
22
21
|
Classifier: Programming Language :: Python :: 3.12
|
|
@@ -24,24 +23,24 @@ Classifier: Topic :: Software Development
|
|
|
24
23
|
Classifier: Topic :: Software Development :: Code Generators
|
|
25
24
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
26
25
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
27
|
-
Requires-Python: >=3.
|
|
26
|
+
Requires-Python: >=3.10
|
|
28
27
|
Description-Content-Type: text/markdown
|
|
29
28
|
License-File: LICENSE
|
|
30
|
-
Requires-Dist: sentence-transformers>=
|
|
31
|
-
Requires-Dist: numpy>=
|
|
32
|
-
Requires-Dist: anthropic>=0.
|
|
33
|
-
Requires-Dist: openai>=
|
|
34
|
-
Requires-Dist: simplicio-mapper>=0.6.
|
|
35
|
-
Requires-Dist: simplicio-prompt>=1.12.
|
|
36
|
-
Requires-Dist: httpx>=0.
|
|
37
|
-
Requires-Dist: orjson>=3.
|
|
38
|
-
Requires-Dist: diskcache>=5.6
|
|
39
|
-
Requires-Dist: libcst>=1.8
|
|
29
|
+
Requires-Dist: sentence-transformers>=5.1.2
|
|
30
|
+
Requires-Dist: numpy>=2.0.2
|
|
31
|
+
Requires-Dist: anthropic>=0.105.2
|
|
32
|
+
Requires-Dist: openai>=2.38.0
|
|
33
|
+
Requires-Dist: simplicio-mapper>=0.6.10
|
|
34
|
+
Requires-Dist: simplicio-prompt>=1.12.3
|
|
35
|
+
Requires-Dist: httpx>=0.28.1
|
|
36
|
+
Requires-Dist: orjson>=3.11.5
|
|
37
|
+
Requires-Dist: diskcache>=5.6.3
|
|
38
|
+
Requires-Dist: libcst>=1.8.6
|
|
40
39
|
Provides-Extra: bench
|
|
41
|
-
Requires-Dist: fpdf2>=2.
|
|
40
|
+
Requires-Dist: fpdf2>=2.8.4; extra == "bench"
|
|
42
41
|
Provides-Extra: local
|
|
43
|
-
Requires-Dist: llama-cpp-python>=0.3.
|
|
44
|
-
Requires-Dist: huggingface-hub>=0
|
|
42
|
+
Requires-Dist: llama-cpp-python>=0.3.23; extra == "local"
|
|
43
|
+
Requires-Dist: huggingface-hub>=1.8.0; extra == "local"
|
|
45
44
|
Dynamic: license-file
|
|
46
45
|
|
|
47
46
|
# simplicio-cli
|
|
@@ -64,6 +63,23 @@ pip install simplicio-cli
|
|
|
64
63
|
```
|
|
65
64
|
|
|
66
65
|
---
|
|
66
|
+
## Recommended Default Stack (Official)
|
|
67
|
+
|
|
68
|
+
The recommended and supported way to use `simplicio-dev-cli` is as part of the full Simplicio execution stack:
|
|
69
|
+
|
|
70
|
+
**simplicio-dev-cli + simplicio-prompt + agents/skills**
|
|
71
|
+
|
|
72
|
+
- `simplicio-dev-cli`: 6-layer contract, verification loop, and core task execution.
|
|
73
|
+
- `simplicio-prompt`: Subagent runtime, fan-out, behavior consensus aggregator, and advanced orchestration.
|
|
74
|
+
- **Agents & Skills**: Reusable capabilities from `.skills/`, `.agents/`, and the Simplicio starter (AGENTS.md, specs-as-code, etc.).
|
|
75
|
+
|
|
76
|
+
This combination is the **official default** across the Simplicio ecosystem. All benchmarks, examples, and documentation assume this full stack.
|
|
77
|
+
|
|
78
|
+
See the canonical policy:
|
|
79
|
+
- [docs/LLM_USAGE_POLICY.md](docs/LLM_USAGE_POLICY.md)
|
|
80
|
+
|
|
81
|
+
When bootstrapping a new project with the Simplicio starter, this stack is configured by default.
|
|
82
|
+
|
|
67
83
|
|
|
68
84
|
## Why it works — the numbers
|
|
69
85
|
|
|
@@ -562,10 +578,11 @@ simplicio smoke # prints provider config + one test call
|
|
|
562
578
|
simplicio ships an **in-process** backend powered by
|
|
563
579
|
[`llama-cpp-python`](https://github.com/abetlen/llama-cpp-python). When **no
|
|
564
580
|
provider is configured** (`SIMPLICIO_MODEL` *and* `SIMPLICIO_BASE_URL` both
|
|
565
|
-
unset), it runs **
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
581
|
+
unset), it runs **Qwen3.5-2B Q6_K GGUF** directly. If that GGUF is not
|
|
582
|
+
available yet, it falls back to the previous **Qwen2.5-Coder 1.5B Q8_0** and
|
|
583
|
+
**Q6_K_L** executor files — small, code-specialized, fast on CPU, no API key,
|
|
584
|
+
no Ollama, no HTTP overhead. The 6-layer contract is what keeps tiny local
|
|
585
|
+
models usable for execution work.
|
|
569
586
|
|
|
570
587
|
```bash
|
|
571
588
|
pip install 'simplicio-cli[local]' # pulls llama-cpp-python + huggingface-hub
|
|
@@ -579,7 +596,8 @@ simplicio task "add input validation to createUser" \
|
|
|
579
596
|
Explicit routes (override the default model/weights):
|
|
580
597
|
|
|
581
598
|
```bash
|
|
582
|
-
SIMPLICIO_MODEL=local-llama/default #
|
|
599
|
+
SIMPLICIO_MODEL=local-llama/default # Qwen3.5-2B Q6_K primary, Qwen2.5 fallbacks
|
|
600
|
+
SIMPLICIO_MODEL=local-llama/bartowski/Qwen_Qwen3.5-2B-GGUF::Qwen3.5-2B-Q6_K.gguf
|
|
583
601
|
SIMPLICIO_MODEL=local-llama/bartowski/Qwen2.5-Coder-7B-Instruct-GGUF::Qwen2.5-Coder-7B-Instruct-Q4_K_M.gguf
|
|
584
602
|
SIMPLICIO_MODEL=local-llama//models/my-model.gguf # direct local path
|
|
585
603
|
SIMPLICIO_LOCAL_MODEL_PATH=/models/my-model.gguf # always wins
|
|
@@ -622,6 +640,11 @@ API key from any of the providers above (OpenRouter is the cheapest way to
|
|
|
622
640
|
try multiple models behind one key), set `SIMPLICIO_API_KEY` +
|
|
623
641
|
`SIMPLICIO_MODEL` + optional `SIMPLICIO_BASE_URL`, run `simplicio task ...`.
|
|
624
642
|
|
|
643
|
+
**"How do I load `.env.local` safely before running a local API?"** Use
|
|
644
|
+
`eval "$(simplicio env-export .env.local)"` instead of `source .env.local`.
|
|
645
|
+
This preserves values with semicolons, such as PostgreSQL connection strings,
|
|
646
|
+
without executing the dotenv file as shell code.
|
|
647
|
+
|
|
625
648
|
**"I have Codex CLI / ChatGPT Plus and don't want to pay for an API key."**
|
|
626
649
|
Not auto-wired yet. Workarounds: (a) get an OpenRouter key (~$2 covers
|
|
627
650
|
thousands of tasks at small-model rates), (b) wait for the shell-out provider
|
|
@@ -18,6 +18,23 @@ pip install simplicio-cli
|
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
---
|
|
21
|
+
## Recommended Default Stack (Official)
|
|
22
|
+
|
|
23
|
+
The recommended and supported way to use `simplicio-dev-cli` is as part of the full Simplicio execution stack:
|
|
24
|
+
|
|
25
|
+
**simplicio-dev-cli + simplicio-prompt + agents/skills**
|
|
26
|
+
|
|
27
|
+
- `simplicio-dev-cli`: 6-layer contract, verification loop, and core task execution.
|
|
28
|
+
- `simplicio-prompt`: Subagent runtime, fan-out, behavior consensus aggregator, and advanced orchestration.
|
|
29
|
+
- **Agents & Skills**: Reusable capabilities from `.skills/`, `.agents/`, and the Simplicio starter (AGENTS.md, specs-as-code, etc.).
|
|
30
|
+
|
|
31
|
+
This combination is the **official default** across the Simplicio ecosystem. All benchmarks, examples, and documentation assume this full stack.
|
|
32
|
+
|
|
33
|
+
See the canonical policy:
|
|
34
|
+
- [docs/LLM_USAGE_POLICY.md](docs/LLM_USAGE_POLICY.md)
|
|
35
|
+
|
|
36
|
+
When bootstrapping a new project with the Simplicio starter, this stack is configured by default.
|
|
37
|
+
|
|
21
38
|
|
|
22
39
|
## Why it works — the numbers
|
|
23
40
|
|
|
@@ -516,10 +533,11 @@ simplicio smoke # prints provider config + one test call
|
|
|
516
533
|
simplicio ships an **in-process** backend powered by
|
|
517
534
|
[`llama-cpp-python`](https://github.com/abetlen/llama-cpp-python). When **no
|
|
518
535
|
provider is configured** (`SIMPLICIO_MODEL` *and* `SIMPLICIO_BASE_URL` both
|
|
519
|
-
unset), it runs **
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
536
|
+
unset), it runs **Qwen3.5-2B Q6_K GGUF** directly. If that GGUF is not
|
|
537
|
+
available yet, it falls back to the previous **Qwen2.5-Coder 1.5B Q8_0** and
|
|
538
|
+
**Q6_K_L** executor files — small, code-specialized, fast on CPU, no API key,
|
|
539
|
+
no Ollama, no HTTP overhead. The 6-layer contract is what keeps tiny local
|
|
540
|
+
models usable for execution work.
|
|
523
541
|
|
|
524
542
|
```bash
|
|
525
543
|
pip install 'simplicio-cli[local]' # pulls llama-cpp-python + huggingface-hub
|
|
@@ -533,7 +551,8 @@ simplicio task "add input validation to createUser" \
|
|
|
533
551
|
Explicit routes (override the default model/weights):
|
|
534
552
|
|
|
535
553
|
```bash
|
|
536
|
-
SIMPLICIO_MODEL=local-llama/default #
|
|
554
|
+
SIMPLICIO_MODEL=local-llama/default # Qwen3.5-2B Q6_K primary, Qwen2.5 fallbacks
|
|
555
|
+
SIMPLICIO_MODEL=local-llama/bartowski/Qwen_Qwen3.5-2B-GGUF::Qwen3.5-2B-Q6_K.gguf
|
|
537
556
|
SIMPLICIO_MODEL=local-llama/bartowski/Qwen2.5-Coder-7B-Instruct-GGUF::Qwen2.5-Coder-7B-Instruct-Q4_K_M.gguf
|
|
538
557
|
SIMPLICIO_MODEL=local-llama//models/my-model.gguf # direct local path
|
|
539
558
|
SIMPLICIO_LOCAL_MODEL_PATH=/models/my-model.gguf # always wins
|
|
@@ -576,6 +595,11 @@ API key from any of the providers above (OpenRouter is the cheapest way to
|
|
|
576
595
|
try multiple models behind one key), set `SIMPLICIO_API_KEY` +
|
|
577
596
|
`SIMPLICIO_MODEL` + optional `SIMPLICIO_BASE_URL`, run `simplicio task ...`.
|
|
578
597
|
|
|
598
|
+
**"How do I load `.env.local` safely before running a local API?"** Use
|
|
599
|
+
`eval "$(simplicio env-export .env.local)"` instead of `source .env.local`.
|
|
600
|
+
This preserves values with semicolons, such as PostgreSQL connection strings,
|
|
601
|
+
without executing the dotenv file as shell code.
|
|
602
|
+
|
|
579
603
|
**"I have Codex CLI / ChatGPT Plus and don't want to pay for an API key."**
|
|
580
604
|
Not auto-wired yet. Workarounds: (a) get an OpenRouter key (~$2 covers
|
|
581
605
|
thousands of tasks at small-model rates), (b) wait for the shell-out provider
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "simplicio-cli"
|
|
3
|
-
version = "0.5.
|
|
3
|
+
version = "0.5.13"
|
|
4
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
5
|
readme = "README.md"
|
|
6
6
|
license = { text = "MIT" }
|
|
7
|
-
requires-python = ">=3.
|
|
7
|
+
requires-python = ">=3.10"
|
|
8
8
|
authors = [{ name = "Wesley Simplicio", email = "wesleybob4@gmail.com" }]
|
|
9
9
|
keywords = [
|
|
10
10
|
"llm",
|
|
@@ -31,7 +31,6 @@ classifiers = [
|
|
|
31
31
|
"Operating System :: OS Independent",
|
|
32
32
|
"Programming Language :: Python :: 3",
|
|
33
33
|
"Programming Language :: Python :: 3 :: Only",
|
|
34
|
-
"Programming Language :: Python :: 3.9",
|
|
35
34
|
"Programming Language :: Python :: 3.10",
|
|
36
35
|
"Programming Language :: Python :: 3.11",
|
|
37
36
|
"Programming Language :: Python :: 3.12",
|
|
@@ -41,23 +40,23 @@ classifiers = [
|
|
|
41
40
|
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
42
41
|
]
|
|
43
42
|
dependencies = [
|
|
44
|
-
"sentence-transformers>=
|
|
45
|
-
"numpy>=
|
|
46
|
-
"anthropic>=0.
|
|
47
|
-
"openai>=
|
|
48
|
-
"simplicio-mapper>=0.6.
|
|
49
|
-
"simplicio-prompt>=1.12.
|
|
50
|
-
"httpx>=0.
|
|
51
|
-
"orjson>=3.
|
|
52
|
-
"diskcache>=5.6",
|
|
53
|
-
"libcst>=1.8",
|
|
43
|
+
"sentence-transformers>=5.1.2",
|
|
44
|
+
"numpy>=2.0.2",
|
|
45
|
+
"anthropic>=0.105.2",
|
|
46
|
+
"openai>=2.38.0",
|
|
47
|
+
"simplicio-mapper>=0.6.10",
|
|
48
|
+
"simplicio-prompt>=1.12.3",
|
|
49
|
+
"httpx>=0.28.1",
|
|
50
|
+
"orjson>=3.11.5",
|
|
51
|
+
"diskcache>=5.6.3",
|
|
52
|
+
"libcst>=1.8.6",
|
|
54
53
|
]
|
|
55
54
|
|
|
56
55
|
[project.optional-dependencies]
|
|
57
|
-
bench = ["fpdf2>=2.
|
|
56
|
+
bench = ["fpdf2>=2.8.4"]
|
|
58
57
|
# Offline-first in-process inference (Path 4). Pulls the llama.cpp Python
|
|
59
|
-
# bindings plus huggingface-hub to fetch the default
|
|
60
|
-
local = ["llama-cpp-python>=0.3.
|
|
58
|
+
# bindings plus huggingface-hub to fetch the default Qwen3.5-2B Q6_K GGUF.
|
|
59
|
+
local = ["llama-cpp-python>=0.3.23", "huggingface-hub>=1.8.0"]
|
|
61
60
|
|
|
62
61
|
[project.urls]
|
|
63
62
|
Homepage = "https://github.com/wesleysimplicio/simplicio-cli"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.5.13"
|
|
@@ -13,10 +13,12 @@ import os, json, time, subprocess
|
|
|
13
13
|
from .observability import estimate_tokens, log_run
|
|
14
14
|
from .prompt import build_prompt
|
|
15
15
|
from .providers import generate
|
|
16
|
+
from .runtime_env import wrap_project_command
|
|
16
17
|
|
|
17
18
|
def _test(output, root, test_cmd):
|
|
18
19
|
os.makedirs(os.path.join(root, ".simplicio"), exist_ok=True)
|
|
19
20
|
open(os.path.join(root, ".simplicio/bench_out.txt"), "w").write(output or "")
|
|
21
|
+
test_cmd = wrap_project_command(root, test_cmd)
|
|
20
22
|
p = subprocess.run(test_cmd, shell=True, cwd=root, capture_output=True, text=True)
|
|
21
23
|
return p.returncode == 0
|
|
22
24
|
|
|
@@ -91,7 +91,7 @@ def _add_task_args(p: argparse.ArgumentParser, *, target_required: bool) -> None
|
|
|
91
91
|
p.add_argument(
|
|
92
92
|
"--local",
|
|
93
93
|
action="store_true",
|
|
94
|
-
help="force the in-process local model (
|
|
94
|
+
help="force the in-process local model (Qwen3.5-2B Q6_K GGUF, "
|
|
95
95
|
"no API key); overrides SIMPLICIO_MODEL/SIMPLICIO_BASE_URL",
|
|
96
96
|
)
|
|
97
97
|
|
|
@@ -128,7 +128,7 @@ def _force_local_if_requested(a: argparse.Namespace) -> None:
|
|
|
128
128
|
|
|
129
129
|
|
|
130
130
|
def _run_task_command(a: argparse.Namespace) -> int:
|
|
131
|
-
from .pipeline import
|
|
131
|
+
from .pipeline import run_task
|
|
132
132
|
|
|
133
133
|
_force_local_if_requested(a)
|
|
134
134
|
stack = a.stack or "angular"
|
|
@@ -152,7 +152,7 @@ def _run_task_command(a: argparse.Namespace) -> int:
|
|
|
152
152
|
for warning in result["warnings"]:
|
|
153
153
|
print(f"warning: {warning}", file=sys.stderr)
|
|
154
154
|
return 0 if (a.dry_run_task or result["applied"]) else 1
|
|
155
|
-
|
|
155
|
+
result = run_task(
|
|
156
156
|
a.root,
|
|
157
157
|
stack,
|
|
158
158
|
a.goal,
|
|
@@ -161,7 +161,11 @@ def _run_task_command(a: argparse.Namespace) -> int:
|
|
|
161
161
|
a.constraints,
|
|
162
162
|
bound_paths=a.bound_paths,
|
|
163
163
|
)
|
|
164
|
-
|
|
164
|
+
status = "DONE" if result["applied"] else "FAILED"
|
|
165
|
+
print(f"{status}: {result['diff_summary']}")
|
|
166
|
+
for warning in result["warnings"]:
|
|
167
|
+
print(f"warning: {warning}", file=sys.stderr)
|
|
168
|
+
return 0 if result["applied"] else 1
|
|
165
169
|
|
|
166
170
|
|
|
167
171
|
def _first_file_signal(signals: list[str]) -> str | None:
|
|
@@ -177,6 +181,8 @@ def _run_scratch_command(a: argparse.Namespace) -> int:
|
|
|
177
181
|
scratch_argv = [a.goal]
|
|
178
182
|
if a.stack:
|
|
179
183
|
scratch_argv += ["--stack", a.stack]
|
|
184
|
+
if a.root:
|
|
185
|
+
scratch_argv += ["--root", a.root]
|
|
180
186
|
if a.name:
|
|
181
187
|
scratch_argv += ["--name", a.name]
|
|
182
188
|
if a.dest:
|
|
@@ -560,6 +566,7 @@ def main(argv=None):
|
|
|
560
566
|
sub = ap.add_subparsers(dest="cmd", required=True)
|
|
561
567
|
|
|
562
568
|
pi = sub.add_parser("index", help="index/cache the repo (once, or after changes)")
|
|
569
|
+
pi.add_argument("root_arg", nargs="?", help="project root; same as --root")
|
|
563
570
|
pi.add_argument("--root", default=".")
|
|
564
571
|
pi.add_argument("--stack", default="angular")
|
|
565
572
|
|
|
@@ -592,6 +599,7 @@ def main(argv=None):
|
|
|
592
599
|
p_init.add_argument("--dry-run", action="store_true")
|
|
593
600
|
|
|
594
601
|
p_det = sub.add_parser("detect", help="heuristic: is a prompt a code-edit task")
|
|
602
|
+
p_det.add_argument("prompt_words", nargs="*", help=argparse.SUPPRESS)
|
|
595
603
|
p_det.add_argument("--prompt", help="prompt text (default: read from stdin)")
|
|
596
604
|
p_det.add_argument("--quiet", action="store_true")
|
|
597
605
|
p_det.add_argument("--json", action="store_true")
|
|
@@ -600,12 +608,19 @@ def main(argv=None):
|
|
|
600
608
|
p_status.add_argument("--root", default=".")
|
|
601
609
|
p_status.add_argument("--json", action="store_true")
|
|
602
610
|
|
|
611
|
+
p_env_export = sub.add_parser(
|
|
612
|
+
"env-export",
|
|
613
|
+
help="print shell-safe exports from a dotenv file without sourcing it",
|
|
614
|
+
)
|
|
615
|
+
p_env_export.add_argument("env_file")
|
|
616
|
+
p_env_export.add_argument("--json", action="store_true")
|
|
617
|
+
|
|
603
618
|
a = ap.parse_args(argv)
|
|
604
619
|
maybe_autoinstall(a.cmd)
|
|
605
620
|
if a.cmd == "index":
|
|
606
621
|
from .precedent import index_repo
|
|
607
622
|
|
|
608
|
-
index_repo(a.root, a.stack)
|
|
623
|
+
index_repo(a.root_arg or a.root, a.stack)
|
|
609
624
|
elif a.cmd == "smoke":
|
|
610
625
|
from .providers import generate, info
|
|
611
626
|
|
|
@@ -650,8 +665,11 @@ def main(argv=None):
|
|
|
650
665
|
from .detect import main as detect_main
|
|
651
666
|
|
|
652
667
|
detect_argv = []
|
|
653
|
-
|
|
654
|
-
|
|
668
|
+
prompt = a.prompt
|
|
669
|
+
if prompt is None and a.prompt_words:
|
|
670
|
+
prompt = " ".join(a.prompt_words)
|
|
671
|
+
if prompt is not None:
|
|
672
|
+
detect_argv += ["--prompt", prompt]
|
|
655
673
|
if a.quiet:
|
|
656
674
|
detect_argv += ["--quiet"]
|
|
657
675
|
if a.json:
|
|
@@ -659,6 +677,22 @@ def main(argv=None):
|
|
|
659
677
|
return detect_main(detect_argv)
|
|
660
678
|
elif a.cmd == "status":
|
|
661
679
|
return _run_status_command(a)
|
|
680
|
+
elif a.cmd == "env-export":
|
|
681
|
+
from .runtime_env import parse_env_file, shell_export_lines
|
|
682
|
+
|
|
683
|
+
try:
|
|
684
|
+
values = parse_env_file(a.env_file)
|
|
685
|
+
except OSError as exc:
|
|
686
|
+
print(f"simplicio env-export: {exc}", file=sys.stderr)
|
|
687
|
+
return 2
|
|
688
|
+
except ValueError as exc:
|
|
689
|
+
print(f"simplicio env-export: {exc}", file=sys.stderr)
|
|
690
|
+
return 2
|
|
691
|
+
if a.json:
|
|
692
|
+
print(json.dumps(values, sort_keys=True))
|
|
693
|
+
else:
|
|
694
|
+
print("\n".join(shell_export_lines(values)))
|
|
695
|
+
return 0
|
|
662
696
|
elif a.cmd == "task":
|
|
663
697
|
return _run_task_command(a)
|
|
664
698
|
elif a.cmd == "run":
|
|
@@ -13,17 +13,25 @@ import sys
|
|
|
13
13
|
from dataclasses import dataclass
|
|
14
14
|
from pathlib import Path
|
|
15
15
|
|
|
16
|
+
from .intent import classify_goal
|
|
17
|
+
|
|
16
18
|
_EDIT_VERBS = (
|
|
17
19
|
# English
|
|
18
20
|
"add", "remove", "delete", "rename", "refactor", "fix", "patch", "update",
|
|
19
21
|
"change", "replace", "hide", "show", "validate", "implement", "wire", "inject",
|
|
20
22
|
"extract", "split", "rewrite", "tweak", "adjust", "introduce", "expose",
|
|
23
|
+
"map", "inventory", "align", "document", "improve", "use", "run",
|
|
24
|
+
"execute", "connect", "test", "prove", "evidence",
|
|
21
25
|
# Portuguese
|
|
22
26
|
"adicione", "adicionar", "remova", "remover", "renomeie", "renomear",
|
|
23
27
|
"corrija", "corrigir", "atualize", "atualizar", "altere", "alterar",
|
|
24
28
|
"esconda", "esconder", "mostre", "mostrar", "valide", "validar",
|
|
25
29
|
"implemente", "implementar", "troque", "trocar", "ajuste", "ajustar",
|
|
26
|
-
"ocultar", "exiba", "exibir", "criar", "crie",
|
|
30
|
+
"ocultar", "exiba", "exibir", "criar", "crie", "veja", "ver",
|
|
31
|
+
"alinhe", "alinhar", "mapeie", "mapear", "documente", "documentar",
|
|
32
|
+
"melhore", "melhorar", "use", "usar", "rode", "rodar", "execute",
|
|
33
|
+
"executar", "teste", "testar", "conecte", "conectar", "prove", "provar",
|
|
34
|
+
"evidencie", "evidenciar",
|
|
27
35
|
)
|
|
28
36
|
|
|
29
37
|
_FILE_EXT_RE = re.compile(
|
|
@@ -38,8 +46,9 @@ _CODE_NOUNS = (
|
|
|
38
46
|
"spec", "validator", "selector", "store", "reducer", "action", "hook",
|
|
39
47
|
"directive", "pipe", "module", "function", "method", "class", "prop",
|
|
40
48
|
"field", "column", "button", "form", "input", "dropdown", "modal", "page",
|
|
49
|
+
"api", "apis", "database", "postgres", "postgresql", "playwright", "e2e",
|
|
41
50
|
"componente", "função", "funcao", "classe", "tela", "rota", "campo",
|
|
42
|
-
"botão", "botao", "formulário", "formulario",
|
|
51
|
+
"botão", "botao", "formulário", "formulario", "banco", "dados",
|
|
43
52
|
)
|
|
44
53
|
|
|
45
54
|
_NEGATIVE_CUES = (
|
|
@@ -55,6 +64,7 @@ class DetectResult:
|
|
|
55
64
|
score: int
|
|
56
65
|
signals: list
|
|
57
66
|
hint: str
|
|
67
|
+
scope: str = "task"
|
|
58
68
|
|
|
59
69
|
|
|
60
70
|
def detect(prompt: str) -> DetectResult:
|
|
@@ -89,21 +99,43 @@ def detect(prompt: str) -> DetectResult:
|
|
|
89
99
|
score += 5
|
|
90
100
|
signals.append("explicit_invocation")
|
|
91
101
|
|
|
102
|
+
intent = classify_goal(prompt)
|
|
103
|
+
if intent.scope in {"feature", "sprint"} and intent.confidence >= 0.70:
|
|
104
|
+
score += 2
|
|
105
|
+
for signal in intent.signals:
|
|
106
|
+
if signal.startswith(("feature:", "sprint:")) and signal not in signals:
|
|
107
|
+
signals.append(signal)
|
|
108
|
+
|
|
92
109
|
is_code = score >= 3
|
|
93
|
-
hint = _render_hint(prompt, signals) if is_code else ""
|
|
94
|
-
return DetectResult(is_code, score, signals, hint)
|
|
110
|
+
hint = _render_hint(prompt, signals, intent.scope) if is_code else ""
|
|
111
|
+
return DetectResult(is_code, score, signals, hint, intent.scope)
|
|
95
112
|
|
|
96
113
|
|
|
97
|
-
def _render_hint(prompt: str, signals: list) -> str:
|
|
114
|
+
def _render_hint(prompt: str, signals: list, scope: str = "task") -> str:
|
|
98
115
|
target_hint = next((s.split(":", 1)[1] for s in signals if s.startswith("file:")), None)
|
|
99
116
|
target_line = f"target = {target_hint}" if target_hint else "target = <ask user or infer via Explore>"
|
|
117
|
+
if scope == "sprint":
|
|
118
|
+
scale_line = (
|
|
119
|
+
"This prompt looks like sprint-scale code work. Use `simplicio run --scope sprint`\n"
|
|
120
|
+
"or a local sprint plan before editing by hand, then verify each slice."
|
|
121
|
+
)
|
|
122
|
+
elif scope == "feature":
|
|
123
|
+
scale_line = (
|
|
124
|
+
"This prompt looks like feature-scale code work. Use `simplicio run --scope feature`\n"
|
|
125
|
+
"or a focused local plan before editing by hand, then verify the full flow."
|
|
126
|
+
)
|
|
127
|
+
else:
|
|
128
|
+
scale_line = (
|
|
129
|
+
"This prompt looks like a small/medium code edit. Before editing by hand,\n"
|
|
130
|
+
"invoke the simplicio-cli skill (it stacks precedent + skill-router + 6-layer\n"
|
|
131
|
+
"prompt + test + verify-loop and measurably boosts pass-rate)."
|
|
132
|
+
)
|
|
100
133
|
return (
|
|
101
134
|
"[SIMPLICIO_PROMPT_HINT]\n"
|
|
102
|
-
"
|
|
103
|
-
"invoke the simplicio-cli skill (it stacks precedent + skill-router + 6-layer\n"
|
|
104
|
-
"prompt + test + verify-loop and measurably boosts pass-rate).\n"
|
|
135
|
+
f"{scale_line}\n"
|
|
105
136
|
f" goal = {prompt.strip()[:120]}\n"
|
|
106
137
|
f" {target_line}\n"
|
|
138
|
+
f" scope = {scope}\n"
|
|
107
139
|
f" signals = {', '.join(signals)}\n"
|
|
108
140
|
"[/SIMPLICIO_PROMPT_HINT]"
|
|
109
141
|
)
|
|
@@ -126,6 +158,7 @@ def main(argv=None) -> int:
|
|
|
126
158
|
print(json.dumps({
|
|
127
159
|
"is_code_task": result.is_code_task,
|
|
128
160
|
"score": result.score,
|
|
161
|
+
"scope": result.scope,
|
|
129
162
|
"signals": result.signals,
|
|
130
163
|
}))
|
|
131
164
|
|
|
@@ -59,6 +59,11 @@ _TASK_VERBS = (
|
|
|
59
59
|
"tweak",
|
|
60
60
|
"adjust",
|
|
61
61
|
"introduce",
|
|
62
|
+
"map",
|
|
63
|
+
"inventory",
|
|
64
|
+
"align",
|
|
65
|
+
"document",
|
|
66
|
+
"improve",
|
|
62
67
|
"corrija",
|
|
63
68
|
"corrigir",
|
|
64
69
|
"adicione",
|
|
@@ -75,6 +80,16 @@ _TASK_VERBS = (
|
|
|
75
80
|
"ajustar",
|
|
76
81
|
"crie",
|
|
77
82
|
"criar",
|
|
83
|
+
"veja",
|
|
84
|
+
"ver",
|
|
85
|
+
"alinhe",
|
|
86
|
+
"alinhar",
|
|
87
|
+
"mapeie",
|
|
88
|
+
"mapear",
|
|
89
|
+
"documente",
|
|
90
|
+
"documentar",
|
|
91
|
+
"melhore",
|
|
92
|
+
"melhorar",
|
|
78
93
|
)
|
|
79
94
|
_TASK_NOUNS = (
|
|
80
95
|
"component",
|
|
@@ -167,6 +182,12 @@ _BROAD_CUES = (
|
|
|
167
182
|
"varios arquivos",
|
|
168
183
|
"varios modulos",
|
|
169
184
|
)
|
|
185
|
+
_REAL_STACK_EVIDENCE_CUES = {
|
|
186
|
+
"browser": ("playwright", "e2e"),
|
|
187
|
+
"ui": ("web", "frontend", "telas", "screens", "interface", "browser"),
|
|
188
|
+
"api": ("api", "backend", "azure functions", ".net"),
|
|
189
|
+
"database": ("postgres", "postgresql", "database", "banco", "db"),
|
|
190
|
+
}
|
|
170
191
|
|
|
171
192
|
_SPRINT_CUES = (
|
|
172
193
|
"sprint",
|
|
@@ -180,11 +201,27 @@ _SPRINT_CUES = (
|
|
|
180
201
|
".specs/sprints",
|
|
181
202
|
"all issues",
|
|
182
203
|
"all tasks",
|
|
204
|
+
"all endpoints",
|
|
205
|
+
"all screens",
|
|
183
206
|
"every issue",
|
|
184
207
|
"entire repo",
|
|
208
|
+
"cross-repo",
|
|
185
209
|
"todas as issues",
|
|
186
210
|
"todos os issues",
|
|
187
211
|
"todas as tarefas",
|
|
212
|
+
"todos os endpoints",
|
|
213
|
+
"todas as telas",
|
|
214
|
+
"todos os projetos",
|
|
215
|
+
"remaining endpoints",
|
|
216
|
+
"remaining routes",
|
|
217
|
+
"missing endpoints",
|
|
218
|
+
"missing routes",
|
|
219
|
+
"endpoints restantes",
|
|
220
|
+
"rotas restantes",
|
|
221
|
+
"lacunas restantes",
|
|
222
|
+
"endpoints faltantes",
|
|
223
|
+
"rotas faltantes",
|
|
224
|
+
"lacunas faltantes",
|
|
188
225
|
)
|
|
189
226
|
_FINISH_CUES = ("finish", "close", "complete", "ship", "terminar", "fechar", "concluir", "finalizar")
|
|
190
227
|
|
|
@@ -299,6 +336,10 @@ def classify_goal(text: str, explicit_scope: str | None = None) -> IntentResult:
|
|
|
299
336
|
scores["feature"] += 2
|
|
300
337
|
signals.append(f"broad:{broad}")
|
|
301
338
|
|
|
339
|
+
if _looks_like_real_stack_evidence(lower):
|
|
340
|
+
scores["feature"] += 5
|
|
341
|
+
signals.append("feature:real_stack_evidence")
|
|
342
|
+
|
|
302
343
|
if not unique_files and (feature_verb or feature_noun):
|
|
303
344
|
scores["feature"] += 1
|
|
304
345
|
signals.append("feature:no_target_file")
|
|
@@ -308,6 +349,39 @@ def classify_goal(text: str, explicit_scope: str | None = None) -> IntentResult:
|
|
|
308
349
|
scores["sprint"] += 4
|
|
309
350
|
signals.append(f"sprint:{sprint}")
|
|
310
351
|
|
|
352
|
+
if any(
|
|
353
|
+
phrase in lower
|
|
354
|
+
for phrase in (
|
|
355
|
+
"todos os endpoints",
|
|
356
|
+
"todas as telas",
|
|
357
|
+
"todos os projetos",
|
|
358
|
+
"all endpoints",
|
|
359
|
+
"all screens",
|
|
360
|
+
"web com api",
|
|
361
|
+
"api e ai-agents",
|
|
362
|
+
)
|
|
363
|
+
):
|
|
364
|
+
scores["sprint"] += 2
|
|
365
|
+
signals.append("sprint:full_inventory")
|
|
366
|
+
|
|
367
|
+
if any(
|
|
368
|
+
phrase in lower
|
|
369
|
+
for phrase in (
|
|
370
|
+
"remaining endpoints",
|
|
371
|
+
"remaining routes",
|
|
372
|
+
"missing endpoints",
|
|
373
|
+
"missing routes",
|
|
374
|
+
"endpoints restantes",
|
|
375
|
+
"rotas restantes",
|
|
376
|
+
"lacunas restantes",
|
|
377
|
+
"endpoints faltantes",
|
|
378
|
+
"rotas faltantes",
|
|
379
|
+
"lacunas faltantes",
|
|
380
|
+
)
|
|
381
|
+
):
|
|
382
|
+
scores["sprint"] += 5
|
|
383
|
+
signals.append("sprint:remaining_endpoint_inventory")
|
|
384
|
+
|
|
311
385
|
issue_refs = _ISSUE_RE.findall(text)
|
|
312
386
|
if len(issue_refs) >= 3:
|
|
313
387
|
scores["sprint"] += 3
|
|
@@ -388,3 +462,7 @@ def _first_token(text: str, words: tuple[str, ...]) -> str | None:
|
|
|
388
462
|
|
|
389
463
|
def _first_phrase(text: str, phrases: tuple[str, ...]) -> str | None:
|
|
390
464
|
return next((phrase for phrase in phrases if phrase in text), None)
|
|
465
|
+
|
|
466
|
+
|
|
467
|
+
def _looks_like_real_stack_evidence(text: str) -> bool:
|
|
468
|
+
return all(any(cue in text for cue in cues) for cues in _REAL_STACK_EVIDENCE_CUES.values())
|
|
@@ -7,9 +7,11 @@ existing verify-loop, and a failing task can trigger one bounded replan.
|
|
|
7
7
|
|
|
8
8
|
from __future__ import annotations
|
|
9
9
|
|
|
10
|
+
import os
|
|
10
11
|
from pathlib import Path
|
|
11
12
|
from typing import Callable
|
|
12
13
|
|
|
14
|
+
from ..scratch.codegen import try_execute
|
|
13
15
|
from ..scratch._pipeline_adapter import run_task as run_plan_task
|
|
14
16
|
from ..scratch.planner import generate_plan
|
|
15
17
|
from ..scratch.stack_registry import StackRegistry, slugify_project
|
|
@@ -19,6 +21,32 @@ from .cost_governor import BudgetExceeded, provider_budget
|
|
|
19
21
|
TaskRunner = Callable[..., tuple[bool, str]]
|
|
20
22
|
|
|
21
23
|
|
|
24
|
+
def _codegen_disabled() -> bool:
|
|
25
|
+
return os.environ.get("SIMPLICIO_DISABLE_CODEGEN", "").lower() in {
|
|
26
|
+
"1",
|
|
27
|
+
"true",
|
|
28
|
+
"yes",
|
|
29
|
+
"on",
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def _run_feature_task(task, project_dir: Path, stack, *, quiet: bool = False):
|
|
34
|
+
"""Run feature tasks through deterministic codegen before the LLM pipeline."""
|
|
35
|
+
codegen_log = ""
|
|
36
|
+
if not _codegen_disabled():
|
|
37
|
+
codegen_result = try_execute(task, project_dir, stack)
|
|
38
|
+
if codegen_result is not None:
|
|
39
|
+
codegen_log = codegen_result.log
|
|
40
|
+
if codegen_result.passed or not codegen_result.fallback_to_llm:
|
|
41
|
+
mode = codegen_result.executor_name or "codegen"
|
|
42
|
+
return codegen_result.passed, f"codegen:{mode}: {codegen_log}"
|
|
43
|
+
|
|
44
|
+
passed, log = run_plan_task(task, project_dir, stack, quiet=quiet)
|
|
45
|
+
if codegen_log:
|
|
46
|
+
log = f"codegen fallback: {codegen_log}\n\n{log}"
|
|
47
|
+
return passed, log
|
|
48
|
+
|
|
49
|
+
|
|
22
50
|
def _ordered_tasks(tasks: list[object]) -> list[object]:
|
|
23
51
|
seen_ids: set[str] = set()
|
|
24
52
|
for task in tasks:
|
|
@@ -61,7 +89,8 @@ def run_feature(
|
|
|
61
89
|
if max_iter < 0:
|
|
62
90
|
raise ValueError("max_iter must be >= 0")
|
|
63
91
|
planner_fn = planner or generate_plan
|
|
64
|
-
|
|
92
|
+
default_task_runner = task_runner is None
|
|
93
|
+
task_runner_fn = task_runner or _run_feature_task
|
|
65
94
|
|
|
66
95
|
reg = StackRegistry()
|
|
67
96
|
stack = reg.get(stack_slug)
|
|
@@ -101,7 +130,7 @@ def run_feature(
|
|
|
101
130
|
for task in planned_tasks:
|
|
102
131
|
if task.id in completed_task_ids:
|
|
103
132
|
continue
|
|
104
|
-
if
|
|
133
|
+
if default_task_runner:
|
|
105
134
|
passed, log = task_runner_fn(
|
|
106
135
|
task,
|
|
107
136
|
Path(root),
|