simplicio-cli 0.5.1__tar.gz → 0.5.12__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.12}/PKG-INFO +39 -16
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/README.md +25 -2
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/pyproject.toml +13 -13
- simplicio_cli-0.5.12/simplicio/__init__.py +1 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/bench.py +2 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/cli.py +39 -5
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/detect.py +41 -8
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/intent.py +78 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/orchestrator/feature.py +31 -2
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/pipeline.py +56 -3
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/precedent.py +41 -6
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/providers.py +46 -7
- simplicio_cli-0.5.12/simplicio/runtime_env.py +59 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/scratch/cli.py +74 -5
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/scratch/codegen/__init__.py +2 -0
- simplicio_cli-0.5.12/simplicio/scratch/codegen/markdown_document.py +105 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/scratch/codegen/registry.py +2 -0
- simplicio_cli-0.5.12/simplicio/templates/recipes/php-vanilla/docs-marker.yaml +31 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12/simplicio_cli.egg-info}/PKG-INFO +39 -16
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio_cli.egg-info/SOURCES.txt +3 -0
- simplicio_cli-0.5.12/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.12}/LICENSE +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/setup.cfg +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/_cache.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/adaptive.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/cache.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/cache_cli.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/doctor.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/dod.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/ecosystem.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/hardware.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/init.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/local_models.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/mapper.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/observability.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/orchestrator/__init__.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/orchestrator/cost_governor.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/pipeline_fixers.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/prompt.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/scratch/__init__.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/scratch/_pipeline_adapter.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/scratch/codegen/go_gin.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/scratch/codegen/php_laravel.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/scratch/codegen/python_cst.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/scratch/codegen/python_fastapi.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/scratch/codegen/python_orm.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/scratch/codegen/python_pydantic.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/scratch/codegen/python_pytest.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/scratch/codegen/rust_axum.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/scratch/codegen/types.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/scratch/codegen/typescript_next_page.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/scratch/codegen/typescript_next_route.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/scratch/executor.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/scratch/plan_schema.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/scratch/planner.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/scratch/recipes.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/scratch/skill_opt.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/scratch/stack_registry.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/skill_router.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/sprint_loader.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/SKILL.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/recipes/go-gin/crud-resource.yaml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/recipes/php-laravel/crud-resource.yaml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/recipes/py-fastapi/admin-crud.yaml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/recipes/py-fastapi/auth-jwt.yaml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/recipes/py-fastapi/crud-resource.yaml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/recipes/rust-axum/crud-resource.yaml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/recipes/ts-nextjs/admin-crud.yaml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/recipes/ts-nextjs/auth-jwt.yaml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/recipes/ts-nextjs/crud-resource.yaml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/simplicio_prompt.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/bash-cli/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/bash-cli/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/bash-cli/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/bash-cli/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/bash-cli/tree/bin/app.sh +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/bash-cli/tree/test/app.bats +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/bash-cli/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/csharp-aspnet/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/csharp-aspnet/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/csharp-aspnet/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/csharp-aspnet/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/csharp-aspnet/tree/src/App.Api/App.Api.csproj +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/csharp-aspnet/tree/src/App.Api/Program.cs +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/csharp-aspnet/tree/tests/App.Tests/App.Tests.csproj +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/csharp-aspnet/tree/tests/App.Tests/HealthTests.cs +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/csharp-aspnet/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/csharp-blazor/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/csharp-blazor/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/csharp-blazor/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/csharp-blazor/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/App.Web.csproj +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Components/App.razor +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Components/Pages/Home.razor +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Program.cs +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/csharp-blazor/tree/tests/App.Tests/App.Tests.csproj +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/csharp-blazor/tree/tests/App.Tests/HealthTests.cs +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/csharp-blazor/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/dart-flutter/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/dart-flutter/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/dart-flutter/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/dart-flutter/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/dart-flutter/tree/lib/main.dart +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/dart-flutter/tree/pubspec.yaml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/dart-flutter/tree/test/widget_test.dart +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/dart-flutter/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/elixir-phoenix/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/elixir-phoenix/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/elixir-phoenix/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/elixir-phoenix/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/elixir-phoenix/tree/config/config.exs +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app/application.ex +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/controllers/health_controller.ex +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/endpoint.ex +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/router.ex +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/elixir-phoenix/tree/mix.exs +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/elixir-phoenix/tree/test/health_controller_test.exs +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/elixir-phoenix/tree/test/test_helper.exs +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/elixir-phoenix/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-cli/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-cli/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-cli/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-cli/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-cli/tree/cmd/root.go +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-cli/tree/cmd/root_test.go +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-cli/tree/go.mod +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-cli/tree/main.go +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-cli/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-echo/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-echo/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-echo/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-echo/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-echo/tree/cmd/server/main.go +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-echo/tree/go.mod +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-echo/tree/internal/http/router.go +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-echo/tree/internal/http/router_test.go +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-echo/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-gin/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-gin/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-gin/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-gin/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-gin/tree/cmd/server/main.go +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-gin/tree/go.mod +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-gin/tree/internal/http/router.go +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-gin/tree/internal/http/router_test.go +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/go-gin/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/java-spring/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/java-spring/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/java-spring/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/java-spring/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/java-spring/tree/build.gradle.kts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/java-spring/tree/settings.gradle.kts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/java-spring/tree/src/main/java/com/example/Application.java +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/java-spring/tree/src/main/java/com/example/HealthController.java +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/java-spring/tree/src/test/java/com/example/HealthControllerTest.java +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/java-spring/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/js-express/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/js-express/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/js-express/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/js-express/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/js-express/tree/package.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/js-express/tree/src/app.js +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/js-express/tree/src/server.js +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/js-express/tree/tests/health.test.js +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/js-express/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-android/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-android/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-android/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-android/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-android/tree/app/build.gradle.kts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/AndroidManifest.xml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/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.12}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/res/values/styles.xml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/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.12}/simplicio/templates/stacks/kotlin-android/tree/build.gradle.kts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-android/tree/settings.gradle.kts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-android/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-ktor/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-ktor/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-ktor/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-ktor/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-ktor/tree/build.gradle.kts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-ktor/tree/settings.gradle.kts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-ktor/tree/src/main/kotlin/com/example/Application.kt +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-ktor/tree/src/test/kotlin/com/example/ApplicationTest.kt +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-ktor/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-spring/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-spring/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-spring/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-spring/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-spring/tree/build.gradle.kts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-spring/tree/settings.gradle.kts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-spring/tree/src/main/kotlin/com/example/Application.kt +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-spring/tree/src/main/kotlin/com/example/HealthController.kt +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-spring/tree/src/test/kotlin/com/example/HealthControllerTest.kt +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/kotlin-spring/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-laravel/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-laravel/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-laravel/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-laravel/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-laravel/tree/artisan +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-laravel/tree/bootstrap/app.php +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-laravel/tree/composer.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-laravel/tree/phpunit.xml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-laravel/tree/routes/api.php +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-laravel/tree/routes/console.php +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-laravel/tree/tests/Feature/HealthTest.php +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-laravel/tree/tests/TestCase.php +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-laravel/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-symfony/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-symfony/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-symfony/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-symfony/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-symfony/tree/composer.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-symfony/tree/src/Controller/HealthController.php +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-symfony/tree/tests/HealthControllerTest.php +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-symfony/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-vanilla/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-vanilla/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-vanilla/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-vanilla/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-vanilla/tree/composer.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-vanilla/tree/phpunit.xml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-vanilla/tree/src/Health.php +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-vanilla/tree/tests/HealthTest.php +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/php-vanilla/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-cli/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-cli/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-cli/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-cli/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-cli/tree/pyproject.toml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-cli/tree/src/app/__init__.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-cli/tree/src/app/cli.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-cli/tree/tests/test_cli.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-cli/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-django/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-django/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-django/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-django/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-django/tree/app/__init__.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-django/tree/app/apps.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-django/tree/app/tests.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-django/tree/app/views.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-django/tree/config/__init__.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-django/tree/config/asgi.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-django/tree/config/settings.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-django/tree/config/urls.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-django/tree/config/wsgi.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-django/tree/manage.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-django/tree/pyproject.toml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-django/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-fastapi/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-fastapi/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-fastapi/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-fastapi/tree/.gitignore +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-fastapi/tree/README.template.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-fastapi/tree/pyproject.toml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-fastapi/tree/ruff.toml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-fastapi/tree/src/api/__init__.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-fastapi/tree/src/main.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-fastapi/tree/tests/test_health.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-fastapi/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-flask/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-flask/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-flask/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-flask/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-flask/tree/pyproject.toml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-flask/tree/ruff.toml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-flask/tree/src/app.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-flask/tree/tests/test_health.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/py-flask/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/react-vite/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/react-vite/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/react-vite/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/react-vite/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/react-vite/tree/index.html +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/react-vite/tree/package.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/react-vite/tree/src/App.test.tsx +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/react-vite/tree/src/App.tsx +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/react-vite/tree/src/main.tsx +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/react-vite/tree/tsconfig.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/react-vite/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ruby-rails/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ruby-rails/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ruby-rails/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ruby-rails/tree/Gemfile +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ruby-rails/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ruby-rails/tree/app/controllers/health_controller.rb +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ruby-rails/tree/bin/rails +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ruby-rails/tree/config/application.rb +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ruby-rails/tree/config/boot.rb +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ruby-rails/tree/config/routes.rb +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ruby-rails/tree/test/controllers/health_controller_test.rb +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ruby-rails/tree/test/test_helper.rb +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ruby-rails/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/rust-axum/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/rust-axum/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/rust-axum/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/rust-axum/tree/Cargo.toml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/rust-axum/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/rust-axum/tree/src/main.rs +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/rust-axum/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/rust-cli/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/rust-cli/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/rust-cli/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/rust-cli/tree/Cargo.toml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/rust-cli/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/rust-cli/tree/src/main.rs +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/rust-cli/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/rust-leptos/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/rust-leptos/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/rust-leptos/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/rust-leptos/tree/Cargo.toml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/rust-leptos/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/rust-leptos/tree/src/main.rs +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/rust-leptos/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/swift-ios/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/swift-ios/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/swift-ios/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/swift-ios/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/swift-ios/tree/Sources/App/App.swift +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/swift-ios/tree/Sources/App/ContentView.swift +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/swift-ios/tree/Tests/AppTests/AppTests.swift +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/swift-ios/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/swift-vapor/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/swift-vapor/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/swift-vapor/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/swift-vapor/tree/Package.swift +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/swift-vapor/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/swift-vapor/tree/Sources/App/main.swift +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/swift-vapor/tree/Tests/AppTests/HealthTests.swift +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/swift-vapor/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-nestjs/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-nestjs/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-nestjs/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-nestjs/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-nestjs/tree/package.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-nestjs/tree/src/app.controller.spec.ts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-nestjs/tree/src/app.controller.ts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-nestjs/tree/src/app.module.ts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-nestjs/tree/src/main.ts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-nestjs/tree/tsconfig.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-nestjs/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-nextjs/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-nextjs/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-nextjs/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-nextjs/tree/.eslintrc.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-nextjs/tree/.gitignore +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-nextjs/tree/next.config.mjs +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-nextjs/tree/package.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-nextjs/tree/pnpm-workspace.yaml +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-nextjs/tree/src/app/layout.tsx +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-nextjs/tree/src/app/page.tsx +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-nextjs/tree/tsconfig.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-nextjs/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-remix/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-remix/practices.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-remix/stack.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-remix/tree/README.md +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-remix/tree/app/root.tsx +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-remix/tree/app/routes/_index.tsx +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-remix/tree/app/routes/health.test.ts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-remix/tree/app/routes/health.ts +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-remix/tree/package.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-remix/tree/tsconfig.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/stacks/ts-remix/verify.json +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/templates/userpromptsubmit-hook.sh +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/utils/__init__.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/utils/cache.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/utils/http_client.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio/utils/serialization.py +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio_cli.egg-info/dependency_links.txt +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/simplicio_cli.egg-info/entry_points.txt +0 -0
- {simplicio_cli-0.5.1 → simplicio_cli-0.5.12}/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.12
|
|
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
|
|
@@ -27,21 +27,21 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
|
27
27
|
Requires-Python: >=3.9
|
|
28
28
|
Description-Content-Type: text/markdown
|
|
29
29
|
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
|
|
30
|
+
Requires-Dist: sentence-transformers>=5.1.2
|
|
31
|
+
Requires-Dist: numpy>=2.0.2
|
|
32
|
+
Requires-Dist: anthropic>=0.105.2
|
|
33
|
+
Requires-Dist: openai>=2.38.0
|
|
34
|
+
Requires-Dist: simplicio-mapper>=0.6.6
|
|
35
|
+
Requires-Dist: simplicio-prompt>=1.12.1
|
|
36
|
+
Requires-Dist: httpx>=0.28.1
|
|
37
|
+
Requires-Dist: orjson>=3.11.5
|
|
38
|
+
Requires-Dist: diskcache>=5.6.3
|
|
39
|
+
Requires-Dist: libcst>=1.8.6
|
|
40
40
|
Provides-Extra: bench
|
|
41
|
-
Requires-Dist: fpdf2>=2.
|
|
41
|
+
Requires-Dist: fpdf2>=2.8.4; extra == "bench"
|
|
42
42
|
Provides-Extra: local
|
|
43
|
-
Requires-Dist: llama-cpp-python>=0.3.
|
|
44
|
-
Requires-Dist: huggingface-hub>=0
|
|
43
|
+
Requires-Dist: llama-cpp-python>=0.3.23; extra == "local"
|
|
44
|
+
Requires-Dist: huggingface-hub>=1.8.0; extra == "local"
|
|
45
45
|
Dynamic: license-file
|
|
46
46
|
|
|
47
47
|
# simplicio-cli
|
|
@@ -64,6 +64,23 @@ pip install simplicio-cli
|
|
|
64
64
|
```
|
|
65
65
|
|
|
66
66
|
---
|
|
67
|
+
## Recommended Default Stack (Official)
|
|
68
|
+
|
|
69
|
+
The recommended and supported way to use `simplicio-dev-cli` is as part of the full Simplicio execution stack:
|
|
70
|
+
|
|
71
|
+
**simplicio-dev-cli + simplicio-prompt + agents/skills**
|
|
72
|
+
|
|
73
|
+
- `simplicio-dev-cli`: 6-layer contract, verification loop, and core task execution.
|
|
74
|
+
- `simplicio-prompt`: Subagent runtime, fan-out, behavior consensus aggregator, and advanced orchestration.
|
|
75
|
+
- **Agents & Skills**: Reusable capabilities from `.skills/`, `.agents/`, and the Simplicio starter (AGENTS.md, specs-as-code, etc.).
|
|
76
|
+
|
|
77
|
+
This combination is the **official default** across the Simplicio ecosystem. All benchmarks, examples, and documentation assume this full stack.
|
|
78
|
+
|
|
79
|
+
See the canonical policy:
|
|
80
|
+
- [docs/LLM_USAGE_POLICY.md](docs/LLM_USAGE_POLICY.md)
|
|
81
|
+
|
|
82
|
+
When bootstrapping a new project with the Simplicio starter, this stack is configured by default.
|
|
83
|
+
|
|
67
84
|
|
|
68
85
|
## Why it works — the numbers
|
|
69
86
|
|
|
@@ -562,7 +579,8 @@ simplicio smoke # prints provider config + one test call
|
|
|
562
579
|
simplicio ships an **in-process** backend powered by
|
|
563
580
|
[`llama-cpp-python`](https://github.com/abetlen/llama-cpp-python). When **no
|
|
564
581
|
provider is configured** (`SIMPLICIO_MODEL` *and* `SIMPLICIO_BASE_URL` both
|
|
565
|
-
unset), it runs **Qwen2.5-Coder-1.5B-Instruct
|
|
582
|
+
unset), it runs **Qwen2.5-Coder-1.5B-Instruct Q8_0 GGUF** directly, falling
|
|
583
|
+
back to **Q6_K_L** if the primary file is unavailable — small,
|
|
566
584
|
code-specialized, fast on CPU, no API key, no Ollama, no HTTP overhead. The
|
|
567
585
|
6-layer contract is what makes a 1.5B usable: it lifts the same model from ~34%
|
|
568
586
|
to ~88% pass-rate on the local benchmark.
|
|
@@ -579,7 +597,7 @@ simplicio task "add input validation to createUser" \
|
|
|
579
597
|
Explicit routes (override the default model/weights):
|
|
580
598
|
|
|
581
599
|
```bash
|
|
582
|
-
SIMPLICIO_MODEL=local-llama/default #
|
|
600
|
+
SIMPLICIO_MODEL=local-llama/default # Q8_0 primary, Q6_K_L fallback
|
|
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,7 +533,8 @@ 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 **Qwen2.5-Coder-1.5B-Instruct
|
|
536
|
+
unset), it runs **Qwen2.5-Coder-1.5B-Instruct Q8_0 GGUF** directly, falling
|
|
537
|
+
back to **Q6_K_L** if the primary file is unavailable — small,
|
|
520
538
|
code-specialized, fast on CPU, no API key, no Ollama, no HTTP overhead. The
|
|
521
539
|
6-layer contract is what makes a 1.5B usable: it lifts the same model from ~34%
|
|
522
540
|
to ~88% pass-rate on the local benchmark.
|
|
@@ -533,7 +551,7 @@ 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 # Q8_0 primary, Q6_K_L fallback
|
|
537
555
|
SIMPLICIO_MODEL=local-llama/bartowski/Qwen2.5-Coder-7B-Instruct-GGUF::Qwen2.5-Coder-7B-Instruct-Q4_K_M.gguf
|
|
538
556
|
SIMPLICIO_MODEL=local-llama//models/my-model.gguf # direct local path
|
|
539
557
|
SIMPLICIO_LOCAL_MODEL_PATH=/models/my-model.gguf # always wins
|
|
@@ -576,6 +594,11 @@ API key from any of the providers above (OpenRouter is the cheapest way to
|
|
|
576
594
|
try multiple models behind one key), set `SIMPLICIO_API_KEY` +
|
|
577
595
|
`SIMPLICIO_MODEL` + optional `SIMPLICIO_BASE_URL`, run `simplicio task ...`.
|
|
578
596
|
|
|
597
|
+
**"How do I load `.env.local` safely before running a local API?"** Use
|
|
598
|
+
`eval "$(simplicio env-export .env.local)"` instead of `source .env.local`.
|
|
599
|
+
This preserves values with semicolons, such as PostgreSQL connection strings,
|
|
600
|
+
without executing the dotenv file as shell code.
|
|
601
|
+
|
|
579
602
|
**"I have Codex CLI / ChatGPT Plus and don't want to pay for an API key."**
|
|
580
603
|
Not auto-wired yet. Workarounds: (a) get an OpenRouter key (~$2 covers
|
|
581
604
|
thousands of tasks at small-model rates), (b) wait for the shell-out provider
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "simplicio-cli"
|
|
3
|
-
version = "0.5.
|
|
3
|
+
version = "0.5.12"
|
|
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" }
|
|
@@ -41,23 +41,23 @@ classifiers = [
|
|
|
41
41
|
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
42
42
|
]
|
|
43
43
|
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",
|
|
44
|
+
"sentence-transformers>=5.1.2",
|
|
45
|
+
"numpy>=2.0.2",
|
|
46
|
+
"anthropic>=0.105.2",
|
|
47
|
+
"openai>=2.38.0",
|
|
48
|
+
"simplicio-mapper>=0.6.6",
|
|
49
|
+
"simplicio-prompt>=1.12.1",
|
|
50
|
+
"httpx>=0.28.1",
|
|
51
|
+
"orjson>=3.11.5",
|
|
52
|
+
"diskcache>=5.6.3",
|
|
53
|
+
"libcst>=1.8.6",
|
|
54
54
|
]
|
|
55
55
|
|
|
56
56
|
[project.optional-dependencies]
|
|
57
|
-
bench = ["fpdf2>=2.
|
|
57
|
+
bench = ["fpdf2>=2.8.4"]
|
|
58
58
|
# Offline-first in-process inference (Path 4). Pulls the llama.cpp Python
|
|
59
59
|
# bindings plus huggingface-hub to fetch the default Qwen2.5-Coder-1.5B GGUF.
|
|
60
|
-
local = ["llama-cpp-python>=0.3.
|
|
60
|
+
local = ["llama-cpp-python>=0.3.23", "huggingface-hub>=1.8.0"]
|
|
61
61
|
|
|
62
62
|
[project.urls]
|
|
63
63
|
Homepage = "https://github.com/wesleysimplicio/simplicio-cli"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.5.12"
|
|
@@ -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
|
|
|
@@ -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),
|