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.
Files changed (376) hide show
  1. {simplicio_cli-0.5.1/simplicio_cli.egg-info → simplicio_cli-0.5.13}/PKG-INFO +44 -21
  2. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/README.md +29 -5
  3. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/pyproject.toml +15 -16
  4. simplicio_cli-0.5.13/simplicio/__init__.py +1 -0
  5. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/bench.py +2 -0
  6. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/cli.py +41 -7
  7. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/detect.py +41 -8
  8. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/intent.py +78 -0
  9. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/orchestrator/feature.py +31 -2
  10. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/pipeline.py +56 -3
  11. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/precedent.py +41 -6
  12. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/providers.py +55 -10
  13. simplicio_cli-0.5.13/simplicio/runtime_env.py +59 -0
  14. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/cli.py +74 -5
  15. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/__init__.py +2 -0
  16. simplicio_cli-0.5.13/simplicio/scratch/codegen/markdown_document.py +105 -0
  17. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/registry.py +2 -0
  18. simplicio_cli-0.5.13/simplicio/templates/recipes/php-vanilla/docs-marker.yaml +31 -0
  19. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13/simplicio_cli.egg-info}/PKG-INFO +44 -21
  20. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio_cli.egg-info/SOURCES.txt +3 -0
  21. simplicio_cli-0.5.13/simplicio_cli.egg-info/requires.txt +17 -0
  22. simplicio_cli-0.5.1/simplicio/__init__.py +0 -1
  23. simplicio_cli-0.5.1/simplicio_cli.egg-info/requires.txt +0 -17
  24. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/LICENSE +0 -0
  25. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/setup.cfg +0 -0
  26. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/_cache.py +0 -0
  27. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/adaptive.py +0 -0
  28. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/cache.py +0 -0
  29. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/cache_cli.py +0 -0
  30. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/doctor.py +0 -0
  31. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/dod.py +0 -0
  32. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/ecosystem.py +0 -0
  33. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/hardware.py +0 -0
  34. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/init.py +0 -0
  35. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/local_models.py +0 -0
  36. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/mapper.py +0 -0
  37. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/observability.py +0 -0
  38. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/orchestrator/__init__.py +0 -0
  39. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/orchestrator/cost_governor.py +0 -0
  40. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/pipeline_fixers.py +0 -0
  41. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/prompt.py +0 -0
  42. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/__init__.py +0 -0
  43. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/_pipeline_adapter.py +0 -0
  44. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/go_gin.py +0 -0
  45. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/php_laravel.py +0 -0
  46. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/python_cst.py +0 -0
  47. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/python_fastapi.py +0 -0
  48. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/python_orm.py +0 -0
  49. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/python_pydantic.py +0 -0
  50. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/python_pytest.py +0 -0
  51. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/rust_axum.py +0 -0
  52. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/types.py +0 -0
  53. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/typescript_next_page.py +0 -0
  54. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/codegen/typescript_next_route.py +0 -0
  55. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/executor.py +0 -0
  56. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/plan_schema.py +0 -0
  57. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/planner.py +0 -0
  58. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/recipes.py +0 -0
  59. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/skill_opt.py +0 -0
  60. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/scratch/stack_registry.py +0 -0
  61. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/skill_router.py +0 -0
  62. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/sprint_loader.py +0 -0
  63. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/SKILL.md +0 -0
  64. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/recipes/go-gin/crud-resource.yaml +0 -0
  65. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/recipes/php-laravel/crud-resource.yaml +0 -0
  66. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/recipes/py-fastapi/admin-crud.yaml +0 -0
  67. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/recipes/py-fastapi/auth-jwt.yaml +0 -0
  68. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/recipes/py-fastapi/crud-resource.yaml +0 -0
  69. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/recipes/rust-axum/crud-resource.yaml +0 -0
  70. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/recipes/ts-nextjs/admin-crud.yaml +0 -0
  71. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/recipes/ts-nextjs/auth-jwt.yaml +0 -0
  72. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/recipes/ts-nextjs/crud-resource.yaml +0 -0
  73. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/simplicio_prompt.md +0 -0
  74. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/bash-cli/README.md +0 -0
  75. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/bash-cli/practices.md +0 -0
  76. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/bash-cli/stack.json +0 -0
  77. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/bash-cli/tree/README.md +0 -0
  78. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/bash-cli/tree/bin/app.sh +0 -0
  79. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/bash-cli/tree/test/app.bats +0 -0
  80. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/bash-cli/verify.json +0 -0
  81. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-aspnet/README.md +0 -0
  82. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-aspnet/practices.md +0 -0
  83. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-aspnet/stack.json +0 -0
  84. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-aspnet/tree/README.md +0 -0
  85. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-aspnet/tree/src/App.Api/App.Api.csproj +0 -0
  86. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-aspnet/tree/src/App.Api/Program.cs +0 -0
  87. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-aspnet/tree/tests/App.Tests/App.Tests.csproj +0 -0
  88. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-aspnet/tree/tests/App.Tests/HealthTests.cs +0 -0
  89. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-aspnet/verify.json +0 -0
  90. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-blazor/README.md +0 -0
  91. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-blazor/practices.md +0 -0
  92. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-blazor/stack.json +0 -0
  93. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-blazor/tree/README.md +0 -0
  94. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/App.Web.csproj +0 -0
  95. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Components/App.razor +0 -0
  96. {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
  97. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Program.cs +0 -0
  98. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-blazor/tree/tests/App.Tests/App.Tests.csproj +0 -0
  99. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-blazor/tree/tests/App.Tests/HealthTests.cs +0 -0
  100. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/csharp-blazor/verify.json +0 -0
  101. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/dart-flutter/README.md +0 -0
  102. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/dart-flutter/practices.md +0 -0
  103. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/dart-flutter/stack.json +0 -0
  104. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/dart-flutter/tree/README.md +0 -0
  105. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/dart-flutter/tree/lib/main.dart +0 -0
  106. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/dart-flutter/tree/pubspec.yaml +0 -0
  107. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/dart-flutter/tree/test/widget_test.dart +0 -0
  108. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/dart-flutter/verify.json +0 -0
  109. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/README.md +0 -0
  110. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/practices.md +0 -0
  111. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/stack.json +0 -0
  112. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/tree/README.md +0 -0
  113. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/tree/config/config.exs +0 -0
  114. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app/application.ex +0 -0
  115. {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
  116. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/endpoint.ex +0 -0
  117. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/router.ex +0 -0
  118. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/tree/mix.exs +0 -0
  119. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/tree/test/health_controller_test.exs +0 -0
  120. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/tree/test/test_helper.exs +0 -0
  121. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/elixir-phoenix/verify.json +0 -0
  122. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-cli/README.md +0 -0
  123. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-cli/practices.md +0 -0
  124. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-cli/stack.json +0 -0
  125. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-cli/tree/README.md +0 -0
  126. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-cli/tree/cmd/root.go +0 -0
  127. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-cli/tree/cmd/root_test.go +0 -0
  128. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-cli/tree/go.mod +0 -0
  129. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-cli/tree/main.go +0 -0
  130. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-cli/verify.json +0 -0
  131. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-echo/README.md +0 -0
  132. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-echo/practices.md +0 -0
  133. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-echo/stack.json +0 -0
  134. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-echo/tree/README.md +0 -0
  135. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-echo/tree/cmd/server/main.go +0 -0
  136. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-echo/tree/go.mod +0 -0
  137. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-echo/tree/internal/http/router.go +0 -0
  138. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-echo/tree/internal/http/router_test.go +0 -0
  139. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-echo/verify.json +0 -0
  140. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-gin/README.md +0 -0
  141. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-gin/practices.md +0 -0
  142. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-gin/stack.json +0 -0
  143. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-gin/tree/README.md +0 -0
  144. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-gin/tree/cmd/server/main.go +0 -0
  145. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-gin/tree/go.mod +0 -0
  146. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-gin/tree/internal/http/router.go +0 -0
  147. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-gin/tree/internal/http/router_test.go +0 -0
  148. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/go-gin/verify.json +0 -0
  149. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/java-spring/README.md +0 -0
  150. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/java-spring/practices.md +0 -0
  151. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/java-spring/stack.json +0 -0
  152. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/java-spring/tree/README.md +0 -0
  153. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/java-spring/tree/build.gradle.kts +0 -0
  154. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/java-spring/tree/settings.gradle.kts +0 -0
  155. {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
  156. {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
  157. {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
  158. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/java-spring/verify.json +0 -0
  159. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/js-express/README.md +0 -0
  160. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/js-express/practices.md +0 -0
  161. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/js-express/stack.json +0 -0
  162. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/js-express/tree/README.md +0 -0
  163. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/js-express/tree/package.json +0 -0
  164. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/js-express/tree/src/app.js +0 -0
  165. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/js-express/tree/src/server.js +0 -0
  166. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/js-express/tree/tests/health.test.js +0 -0
  167. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/js-express/verify.json +0 -0
  168. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-android/README.md +0 -0
  169. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-android/practices.md +0 -0
  170. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-android/stack.json +0 -0
  171. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-android/tree/README.md +0 -0
  172. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-android/tree/app/build.gradle.kts +0 -0
  173. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/AndroidManifest.xml +0 -0
  174. {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
  175. {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
  176. {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
  177. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-android/tree/build.gradle.kts +0 -0
  178. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-android/tree/settings.gradle.kts +0 -0
  179. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-android/verify.json +0 -0
  180. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-ktor/README.md +0 -0
  181. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-ktor/practices.md +0 -0
  182. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-ktor/stack.json +0 -0
  183. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-ktor/tree/README.md +0 -0
  184. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-ktor/tree/build.gradle.kts +0 -0
  185. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-ktor/tree/settings.gradle.kts +0 -0
  186. {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
  187. {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
  188. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-ktor/verify.json +0 -0
  189. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-spring/README.md +0 -0
  190. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-spring/practices.md +0 -0
  191. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-spring/stack.json +0 -0
  192. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-spring/tree/README.md +0 -0
  193. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-spring/tree/build.gradle.kts +0 -0
  194. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-spring/tree/settings.gradle.kts +0 -0
  195. {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
  196. {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
  197. {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
  198. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/kotlin-spring/verify.json +0 -0
  199. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/README.md +0 -0
  200. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/practices.md +0 -0
  201. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/stack.json +0 -0
  202. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/tree/README.md +0 -0
  203. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/tree/artisan +0 -0
  204. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/tree/bootstrap/app.php +0 -0
  205. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/tree/composer.json +0 -0
  206. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/tree/phpunit.xml +0 -0
  207. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/tree/routes/api.php +0 -0
  208. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/tree/routes/console.php +0 -0
  209. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/tree/tests/Feature/HealthTest.php +0 -0
  210. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/tree/tests/TestCase.php +0 -0
  211. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-laravel/verify.json +0 -0
  212. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-symfony/README.md +0 -0
  213. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-symfony/practices.md +0 -0
  214. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-symfony/stack.json +0 -0
  215. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-symfony/tree/README.md +0 -0
  216. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-symfony/tree/composer.json +0 -0
  217. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-symfony/tree/src/Controller/HealthController.php +0 -0
  218. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-symfony/tree/tests/HealthControllerTest.php +0 -0
  219. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-symfony/verify.json +0 -0
  220. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-vanilla/README.md +0 -0
  221. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-vanilla/practices.md +0 -0
  222. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-vanilla/stack.json +0 -0
  223. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-vanilla/tree/README.md +0 -0
  224. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-vanilla/tree/composer.json +0 -0
  225. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-vanilla/tree/phpunit.xml +0 -0
  226. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-vanilla/tree/src/Health.php +0 -0
  227. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-vanilla/tree/tests/HealthTest.php +0 -0
  228. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/php-vanilla/verify.json +0 -0
  229. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-cli/README.md +0 -0
  230. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-cli/practices.md +0 -0
  231. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-cli/stack.json +0 -0
  232. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-cli/tree/README.md +0 -0
  233. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-cli/tree/pyproject.toml +0 -0
  234. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-cli/tree/src/app/__init__.py +0 -0
  235. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-cli/tree/src/app/cli.py +0 -0
  236. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-cli/tree/tests/test_cli.py +0 -0
  237. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-cli/verify.json +0 -0
  238. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/README.md +0 -0
  239. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/practices.md +0 -0
  240. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/stack.json +0 -0
  241. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/tree/README.md +0 -0
  242. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/tree/app/__init__.py +0 -0
  243. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/tree/app/apps.py +0 -0
  244. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/tree/app/tests.py +0 -0
  245. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/tree/app/views.py +0 -0
  246. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/tree/config/__init__.py +0 -0
  247. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/tree/config/asgi.py +0 -0
  248. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/tree/config/settings.py +0 -0
  249. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/tree/config/urls.py +0 -0
  250. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/tree/config/wsgi.py +0 -0
  251. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/tree/manage.py +0 -0
  252. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/tree/pyproject.toml +0 -0
  253. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-django/verify.json +0 -0
  254. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-fastapi/README.md +0 -0
  255. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-fastapi/practices.md +0 -0
  256. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-fastapi/stack.json +0 -0
  257. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-fastapi/tree/.gitignore +0 -0
  258. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-fastapi/tree/README.template.md +0 -0
  259. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-fastapi/tree/pyproject.toml +0 -0
  260. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-fastapi/tree/ruff.toml +0 -0
  261. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-fastapi/tree/src/api/__init__.py +0 -0
  262. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-fastapi/tree/src/main.py +0 -0
  263. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-fastapi/tree/tests/test_health.py +0 -0
  264. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-fastapi/verify.json +0 -0
  265. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-flask/README.md +0 -0
  266. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-flask/practices.md +0 -0
  267. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-flask/stack.json +0 -0
  268. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-flask/tree/README.md +0 -0
  269. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-flask/tree/pyproject.toml +0 -0
  270. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-flask/tree/ruff.toml +0 -0
  271. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-flask/tree/src/app.py +0 -0
  272. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-flask/tree/tests/test_health.py +0 -0
  273. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/py-flask/verify.json +0 -0
  274. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/react-vite/README.md +0 -0
  275. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/react-vite/practices.md +0 -0
  276. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/react-vite/stack.json +0 -0
  277. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/react-vite/tree/README.md +0 -0
  278. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/react-vite/tree/index.html +0 -0
  279. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/react-vite/tree/package.json +0 -0
  280. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/react-vite/tree/src/App.test.tsx +0 -0
  281. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/react-vite/tree/src/App.tsx +0 -0
  282. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/react-vite/tree/src/main.tsx +0 -0
  283. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/react-vite/tree/tsconfig.json +0 -0
  284. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/react-vite/verify.json +0 -0
  285. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/README.md +0 -0
  286. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/practices.md +0 -0
  287. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/stack.json +0 -0
  288. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/tree/Gemfile +0 -0
  289. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/tree/README.md +0 -0
  290. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/tree/app/controllers/health_controller.rb +0 -0
  291. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/tree/bin/rails +0 -0
  292. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/tree/config/application.rb +0 -0
  293. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/tree/config/boot.rb +0 -0
  294. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/tree/config/routes.rb +0 -0
  295. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/tree/test/controllers/health_controller_test.rb +0 -0
  296. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/tree/test/test_helper.rb +0 -0
  297. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ruby-rails/verify.json +0 -0
  298. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-axum/README.md +0 -0
  299. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-axum/practices.md +0 -0
  300. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-axum/stack.json +0 -0
  301. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-axum/tree/Cargo.toml +0 -0
  302. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-axum/tree/README.md +0 -0
  303. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-axum/tree/src/main.rs +0 -0
  304. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-axum/verify.json +0 -0
  305. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-cli/README.md +0 -0
  306. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-cli/practices.md +0 -0
  307. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-cli/stack.json +0 -0
  308. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-cli/tree/Cargo.toml +0 -0
  309. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-cli/tree/README.md +0 -0
  310. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-cli/tree/src/main.rs +0 -0
  311. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-cli/verify.json +0 -0
  312. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-leptos/README.md +0 -0
  313. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-leptos/practices.md +0 -0
  314. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-leptos/stack.json +0 -0
  315. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-leptos/tree/Cargo.toml +0 -0
  316. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-leptos/tree/README.md +0 -0
  317. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-leptos/tree/src/main.rs +0 -0
  318. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/rust-leptos/verify.json +0 -0
  319. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-ios/README.md +0 -0
  320. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-ios/practices.md +0 -0
  321. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-ios/stack.json +0 -0
  322. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-ios/tree/README.md +0 -0
  323. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-ios/tree/Sources/App/App.swift +0 -0
  324. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-ios/tree/Sources/App/ContentView.swift +0 -0
  325. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-ios/tree/Tests/AppTests/AppTests.swift +0 -0
  326. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-ios/verify.json +0 -0
  327. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-vapor/README.md +0 -0
  328. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-vapor/practices.md +0 -0
  329. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-vapor/stack.json +0 -0
  330. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-vapor/tree/Package.swift +0 -0
  331. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-vapor/tree/README.md +0 -0
  332. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-vapor/tree/Sources/App/main.swift +0 -0
  333. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-vapor/tree/Tests/AppTests/HealthTests.swift +0 -0
  334. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/swift-vapor/verify.json +0 -0
  335. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nestjs/README.md +0 -0
  336. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nestjs/practices.md +0 -0
  337. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nestjs/stack.json +0 -0
  338. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nestjs/tree/README.md +0 -0
  339. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nestjs/tree/package.json +0 -0
  340. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nestjs/tree/src/app.controller.spec.ts +0 -0
  341. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nestjs/tree/src/app.controller.ts +0 -0
  342. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nestjs/tree/src/app.module.ts +0 -0
  343. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nestjs/tree/src/main.ts +0 -0
  344. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nestjs/tree/tsconfig.json +0 -0
  345. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nestjs/verify.json +0 -0
  346. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nextjs/README.md +0 -0
  347. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nextjs/practices.md +0 -0
  348. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nextjs/stack.json +0 -0
  349. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nextjs/tree/.eslintrc.json +0 -0
  350. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nextjs/tree/.gitignore +0 -0
  351. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nextjs/tree/next.config.mjs +0 -0
  352. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nextjs/tree/package.json +0 -0
  353. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nextjs/tree/pnpm-workspace.yaml +0 -0
  354. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nextjs/tree/src/app/layout.tsx +0 -0
  355. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nextjs/tree/src/app/page.tsx +0 -0
  356. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nextjs/tree/tsconfig.json +0 -0
  357. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-nextjs/verify.json +0 -0
  358. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-remix/README.md +0 -0
  359. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-remix/practices.md +0 -0
  360. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-remix/stack.json +0 -0
  361. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-remix/tree/README.md +0 -0
  362. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-remix/tree/app/root.tsx +0 -0
  363. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-remix/tree/app/routes/_index.tsx +0 -0
  364. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-remix/tree/app/routes/health.test.ts +0 -0
  365. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-remix/tree/app/routes/health.ts +0 -0
  366. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-remix/tree/package.json +0 -0
  367. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-remix/tree/tsconfig.json +0 -0
  368. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/stacks/ts-remix/verify.json +0 -0
  369. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/templates/userpromptsubmit-hook.sh +0 -0
  370. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/utils/__init__.py +0 -0
  371. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/utils/cache.py +0 -0
  372. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/utils/http_client.py +0 -0
  373. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio/utils/serialization.py +0 -0
  374. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio_cli.egg-info/dependency_links.txt +0 -0
  375. {simplicio_cli-0.5.1 → simplicio_cli-0.5.13}/simplicio_cli.egg-info/entry_points.txt +0 -0
  376. {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.1
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.9
26
+ Requires-Python: >=3.10
28
27
  Description-Content-Type: text/markdown
29
28
  License-File: LICENSE
30
- Requires-Dist: sentence-transformers>=2.2
31
- Requires-Dist: numpy>=1.23
32
- Requires-Dist: anthropic>=0.30
33
- Requires-Dist: openai>=1.30
34
- Requires-Dist: simplicio-mapper>=0.6.1
35
- Requires-Dist: simplicio-prompt>=1.12.0
36
- Requires-Dist: httpx>=0.27
37
- Requires-Dist: orjson>=3.10
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.7; extra == "bench"
40
+ Requires-Dist: fpdf2>=2.8.4; extra == "bench"
42
41
  Provides-Extra: local
43
- Requires-Dist: llama-cpp-python>=0.3.2; extra == "local"
44
- Requires-Dist: huggingface-hub>=0.23; extra == "local"
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 **Qwen2.5-Coder-1.5B-Instruct (Q5_K_M GGUF)** directly small,
566
- code-specialized, fast on CPU, no API key, no Ollama, no HTTP overhead. The
567
- 6-layer contract is what makes a 1.5B usable: it lifts the same model from ~34%
568
- to ~88% pass-rate on the local benchmark.
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 # bundled 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 **Qwen2.5-Coder-1.5B-Instruct (Q5_K_M GGUF)** directly small,
520
- code-specialized, fast on CPU, no API key, no Ollama, no HTTP overhead. The
521
- 6-layer contract is what makes a 1.5B usable: it lifts the same model from ~34%
522
- to ~88% pass-rate on the local benchmark.
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 # bundled 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.1"
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.9"
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>=2.2",
45
- "numpy>=1.23",
46
- "anthropic>=0.30",
47
- "openai>=1.30",
48
- "simplicio-mapper>=0.6.1",
49
- "simplicio-prompt>=1.12.0",
50
- "httpx>=0.27",
51
- "orjson>=3.10",
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.7"]
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 Qwen2.5-Coder-1.5B GGUF.
60
- local = ["llama-cpp-python>=0.3.2", "huggingface-hub>=0.23"]
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 (Qwen2.5-Coder-1.5B GGUF, "
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 run, run_task
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
- run(
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
- return 0
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
- if a.prompt is not None:
654
- detect_argv += ["--prompt", a.prompt]
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
- "This prompt looks like a small/medium code edit. Before editing by hand,\n"
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
- task_runner_fn = task_runner or run_plan_task
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 task_runner_fn is run_plan_task:
133
+ if default_task_runner:
105
134
  passed, log = task_runner_fn(
106
135
  task,
107
136
  Path(root),