simplicio-cli 0.5.13__tar.gz → 0.5.14__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 (393) hide show
  1. {simplicio_cli-0.5.13/simplicio_cli.egg-info → simplicio_cli-0.5.14}/PKG-INFO +17 -18
  2. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/README.md +14 -15
  3. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/pyproject.toml +5 -5
  4. simplicio_cli-0.5.14/simplicio/__init__.py +1 -0
  5. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/cli.py +7 -6
  6. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/local_models.py +23 -28
  7. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/providers.py +133 -56
  8. simplicio_cli-0.5.14/simplicio/templates/stacks/py-cli/tree/src/app/__pycache__/__init__.cpython-314.pyc +0 -0
  9. simplicio_cli-0.5.14/simplicio/templates/stacks/py-cli/tree/src/app/__pycache__/cli.cpython-314.pyc +0 -0
  10. simplicio_cli-0.5.14/simplicio/templates/stacks/py-cli/tree/tests/__pycache__/test_cli.cpython-314.pyc +0 -0
  11. simplicio_cli-0.5.14/simplicio/templates/stacks/py-django/tree/__pycache__/manage.cpython-314.pyc +0 -0
  12. simplicio_cli-0.5.14/simplicio/templates/stacks/py-django/tree/app/__pycache__/__init__.cpython-314.pyc +0 -0
  13. simplicio_cli-0.5.14/simplicio/templates/stacks/py-django/tree/app/__pycache__/apps.cpython-314.pyc +0 -0
  14. simplicio_cli-0.5.14/simplicio/templates/stacks/py-django/tree/app/__pycache__/tests.cpython-314.pyc +0 -0
  15. simplicio_cli-0.5.14/simplicio/templates/stacks/py-django/tree/app/__pycache__/views.cpython-314.pyc +0 -0
  16. simplicio_cli-0.5.14/simplicio/templates/stacks/py-django/tree/config/__pycache__/__init__.cpython-314.pyc +0 -0
  17. simplicio_cli-0.5.14/simplicio/templates/stacks/py-django/tree/config/__pycache__/asgi.cpython-314.pyc +0 -0
  18. simplicio_cli-0.5.14/simplicio/templates/stacks/py-django/tree/config/__pycache__/settings.cpython-314.pyc +0 -0
  19. simplicio_cli-0.5.14/simplicio/templates/stacks/py-django/tree/config/__pycache__/urls.cpython-314.pyc +0 -0
  20. simplicio_cli-0.5.14/simplicio/templates/stacks/py-django/tree/config/__pycache__/wsgi.cpython-314.pyc +0 -0
  21. simplicio_cli-0.5.14/simplicio/templates/stacks/py-fastapi/tree/src/__pycache__/main.cpython-314.pyc +0 -0
  22. simplicio_cli-0.5.14/simplicio/templates/stacks/py-fastapi/tree/src/api/__pycache__/__init__.cpython-314.pyc +0 -0
  23. simplicio_cli-0.5.14/simplicio/templates/stacks/py-fastapi/tree/tests/__pycache__/test_health.cpython-314.pyc +0 -0
  24. simplicio_cli-0.5.14/simplicio/templates/stacks/py-flask/tree/src/__pycache__/app.cpython-314.pyc +0 -0
  25. simplicio_cli-0.5.14/simplicio/templates/stacks/py-flask/tree/tests/__pycache__/test_health.cpython-314.pyc +0 -0
  26. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14/simplicio_cli.egg-info}/PKG-INFO +17 -18
  27. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio_cli.egg-info/SOURCES.txt +18 -0
  28. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio_cli.egg-info/requires.txt +2 -2
  29. simplicio_cli-0.5.13/simplicio/__init__.py +0 -1
  30. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/LICENSE +0 -0
  31. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/setup.cfg +0 -0
  32. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/_cache.py +0 -0
  33. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/adaptive.py +0 -0
  34. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/bench.py +0 -0
  35. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/cache.py +0 -0
  36. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/cache_cli.py +0 -0
  37. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/detect.py +0 -0
  38. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/doctor.py +0 -0
  39. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/dod.py +0 -0
  40. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/ecosystem.py +0 -0
  41. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/hardware.py +0 -0
  42. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/init.py +0 -0
  43. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/intent.py +0 -0
  44. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/mapper.py +0 -0
  45. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/observability.py +0 -0
  46. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/orchestrator/__init__.py +0 -0
  47. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/orchestrator/cost_governor.py +0 -0
  48. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/orchestrator/feature.py +0 -0
  49. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/pipeline.py +0 -0
  50. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/pipeline_fixers.py +0 -0
  51. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/precedent.py +0 -0
  52. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/prompt.py +0 -0
  53. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/runtime_env.py +0 -0
  54. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/scratch/__init__.py +0 -0
  55. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/scratch/_pipeline_adapter.py +0 -0
  56. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/scratch/cli.py +0 -0
  57. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/scratch/codegen/__init__.py +0 -0
  58. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/scratch/codegen/go_gin.py +0 -0
  59. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/scratch/codegen/markdown_document.py +0 -0
  60. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/scratch/codegen/php_laravel.py +0 -0
  61. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/scratch/codegen/python_cst.py +0 -0
  62. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/scratch/codegen/python_fastapi.py +0 -0
  63. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/scratch/codegen/python_orm.py +0 -0
  64. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/scratch/codegen/python_pydantic.py +0 -0
  65. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/scratch/codegen/python_pytest.py +0 -0
  66. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/scratch/codegen/registry.py +0 -0
  67. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/scratch/codegen/rust_axum.py +0 -0
  68. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/scratch/codegen/types.py +0 -0
  69. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/scratch/codegen/typescript_next_page.py +0 -0
  70. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/scratch/codegen/typescript_next_route.py +0 -0
  71. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/scratch/executor.py +0 -0
  72. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/scratch/plan_schema.py +0 -0
  73. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/scratch/planner.py +0 -0
  74. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/scratch/recipes.py +0 -0
  75. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/scratch/skill_opt.py +0 -0
  76. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/scratch/stack_registry.py +0 -0
  77. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/skill_router.py +0 -0
  78. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/sprint_loader.py +0 -0
  79. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/SKILL.md +0 -0
  80. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/recipes/go-gin/crud-resource.yaml +0 -0
  81. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/recipes/php-laravel/crud-resource.yaml +0 -0
  82. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/recipes/php-vanilla/docs-marker.yaml +0 -0
  83. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/recipes/py-fastapi/admin-crud.yaml +0 -0
  84. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/recipes/py-fastapi/auth-jwt.yaml +0 -0
  85. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/recipes/py-fastapi/crud-resource.yaml +0 -0
  86. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/recipes/rust-axum/crud-resource.yaml +0 -0
  87. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/recipes/ts-nextjs/admin-crud.yaml +0 -0
  88. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/recipes/ts-nextjs/auth-jwt.yaml +0 -0
  89. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/recipes/ts-nextjs/crud-resource.yaml +0 -0
  90. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/simplicio_prompt.md +0 -0
  91. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/bash-cli/README.md +0 -0
  92. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/bash-cli/practices.md +0 -0
  93. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/bash-cli/stack.json +0 -0
  94. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/bash-cli/tree/README.md +0 -0
  95. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/bash-cli/tree/bin/app.sh +0 -0
  96. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/bash-cli/tree/test/app.bats +0 -0
  97. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/bash-cli/verify.json +0 -0
  98. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/csharp-aspnet/README.md +0 -0
  99. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/csharp-aspnet/practices.md +0 -0
  100. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/csharp-aspnet/stack.json +0 -0
  101. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/csharp-aspnet/tree/README.md +0 -0
  102. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/csharp-aspnet/tree/src/App.Api/App.Api.csproj +0 -0
  103. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/csharp-aspnet/tree/src/App.Api/Program.cs +0 -0
  104. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/csharp-aspnet/tree/tests/App.Tests/App.Tests.csproj +0 -0
  105. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/csharp-aspnet/tree/tests/App.Tests/HealthTests.cs +0 -0
  106. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/csharp-aspnet/verify.json +0 -0
  107. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/csharp-blazor/README.md +0 -0
  108. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/csharp-blazor/practices.md +0 -0
  109. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/csharp-blazor/stack.json +0 -0
  110. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/csharp-blazor/tree/README.md +0 -0
  111. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/App.Web.csproj +0 -0
  112. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Components/App.razor +0 -0
  113. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Components/Pages/Home.razor +0 -0
  114. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Program.cs +0 -0
  115. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/csharp-blazor/tree/tests/App.Tests/App.Tests.csproj +0 -0
  116. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/csharp-blazor/tree/tests/App.Tests/HealthTests.cs +0 -0
  117. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/csharp-blazor/verify.json +0 -0
  118. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/dart-flutter/README.md +0 -0
  119. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/dart-flutter/practices.md +0 -0
  120. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/dart-flutter/stack.json +0 -0
  121. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/dart-flutter/tree/README.md +0 -0
  122. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/dart-flutter/tree/lib/main.dart +0 -0
  123. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/dart-flutter/tree/pubspec.yaml +0 -0
  124. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/dart-flutter/tree/test/widget_test.dart +0 -0
  125. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/dart-flutter/verify.json +0 -0
  126. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/elixir-phoenix/README.md +0 -0
  127. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/elixir-phoenix/practices.md +0 -0
  128. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/elixir-phoenix/stack.json +0 -0
  129. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/elixir-phoenix/tree/README.md +0 -0
  130. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/elixir-phoenix/tree/config/config.exs +0 -0
  131. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app/application.ex +0 -0
  132. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/controllers/health_controller.ex +0 -0
  133. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/endpoint.ex +0 -0
  134. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/router.ex +0 -0
  135. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/elixir-phoenix/tree/mix.exs +0 -0
  136. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/elixir-phoenix/tree/test/health_controller_test.exs +0 -0
  137. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/elixir-phoenix/tree/test/test_helper.exs +0 -0
  138. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/elixir-phoenix/verify.json +0 -0
  139. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-cli/README.md +0 -0
  140. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-cli/practices.md +0 -0
  141. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-cli/stack.json +0 -0
  142. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-cli/tree/README.md +0 -0
  143. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-cli/tree/cmd/root.go +0 -0
  144. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-cli/tree/cmd/root_test.go +0 -0
  145. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-cli/tree/go.mod +0 -0
  146. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-cli/tree/main.go +0 -0
  147. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-cli/verify.json +0 -0
  148. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-echo/README.md +0 -0
  149. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-echo/practices.md +0 -0
  150. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-echo/stack.json +0 -0
  151. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-echo/tree/README.md +0 -0
  152. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-echo/tree/cmd/server/main.go +0 -0
  153. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-echo/tree/go.mod +0 -0
  154. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-echo/tree/internal/http/router.go +0 -0
  155. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-echo/tree/internal/http/router_test.go +0 -0
  156. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-echo/verify.json +0 -0
  157. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-gin/README.md +0 -0
  158. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-gin/practices.md +0 -0
  159. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-gin/stack.json +0 -0
  160. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-gin/tree/README.md +0 -0
  161. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-gin/tree/cmd/server/main.go +0 -0
  162. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-gin/tree/go.mod +0 -0
  163. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-gin/tree/internal/http/router.go +0 -0
  164. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-gin/tree/internal/http/router_test.go +0 -0
  165. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/go-gin/verify.json +0 -0
  166. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/java-spring/README.md +0 -0
  167. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/java-spring/practices.md +0 -0
  168. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/java-spring/stack.json +0 -0
  169. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/java-spring/tree/README.md +0 -0
  170. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/java-spring/tree/build.gradle.kts +0 -0
  171. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/java-spring/tree/settings.gradle.kts +0 -0
  172. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/java-spring/tree/src/main/java/com/example/Application.java +0 -0
  173. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/java-spring/tree/src/main/java/com/example/HealthController.java +0 -0
  174. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/java-spring/tree/src/test/java/com/example/HealthControllerTest.java +0 -0
  175. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/java-spring/verify.json +0 -0
  176. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/js-express/README.md +0 -0
  177. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/js-express/practices.md +0 -0
  178. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/js-express/stack.json +0 -0
  179. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/js-express/tree/README.md +0 -0
  180. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/js-express/tree/package.json +0 -0
  181. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/js-express/tree/src/app.js +0 -0
  182. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/js-express/tree/src/server.js +0 -0
  183. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/js-express/tree/tests/health.test.js +0 -0
  184. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/js-express/verify.json +0 -0
  185. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-android/README.md +0 -0
  186. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-android/practices.md +0 -0
  187. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-android/stack.json +0 -0
  188. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-android/tree/README.md +0 -0
  189. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-android/tree/app/build.gradle.kts +0 -0
  190. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/AndroidManifest.xml +0 -0
  191. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/java/com/example/app/MainActivity.kt +0 -0
  192. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/res/values/styles.xml +0 -0
  193. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-android/tree/app/src/test/java/com/example/app/SmokeTest.kt +0 -0
  194. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-android/tree/build.gradle.kts +0 -0
  195. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-android/tree/settings.gradle.kts +0 -0
  196. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-android/verify.json +0 -0
  197. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-ktor/README.md +0 -0
  198. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-ktor/practices.md +0 -0
  199. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-ktor/stack.json +0 -0
  200. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-ktor/tree/README.md +0 -0
  201. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-ktor/tree/build.gradle.kts +0 -0
  202. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-ktor/tree/settings.gradle.kts +0 -0
  203. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-ktor/tree/src/main/kotlin/com/example/Application.kt +0 -0
  204. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-ktor/tree/src/test/kotlin/com/example/ApplicationTest.kt +0 -0
  205. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-ktor/verify.json +0 -0
  206. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-spring/README.md +0 -0
  207. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-spring/practices.md +0 -0
  208. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-spring/stack.json +0 -0
  209. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-spring/tree/README.md +0 -0
  210. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-spring/tree/build.gradle.kts +0 -0
  211. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-spring/tree/settings.gradle.kts +0 -0
  212. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-spring/tree/src/main/kotlin/com/example/Application.kt +0 -0
  213. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-spring/tree/src/main/kotlin/com/example/HealthController.kt +0 -0
  214. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-spring/tree/src/test/kotlin/com/example/HealthControllerTest.kt +0 -0
  215. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/kotlin-spring/verify.json +0 -0
  216. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-laravel/README.md +0 -0
  217. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-laravel/practices.md +0 -0
  218. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-laravel/stack.json +0 -0
  219. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-laravel/tree/README.md +0 -0
  220. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-laravel/tree/artisan +0 -0
  221. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-laravel/tree/bootstrap/app.php +0 -0
  222. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-laravel/tree/composer.json +0 -0
  223. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-laravel/tree/phpunit.xml +0 -0
  224. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-laravel/tree/routes/api.php +0 -0
  225. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-laravel/tree/routes/console.php +0 -0
  226. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-laravel/tree/tests/Feature/HealthTest.php +0 -0
  227. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-laravel/tree/tests/TestCase.php +0 -0
  228. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-laravel/verify.json +0 -0
  229. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-symfony/README.md +0 -0
  230. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-symfony/practices.md +0 -0
  231. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-symfony/stack.json +0 -0
  232. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-symfony/tree/README.md +0 -0
  233. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-symfony/tree/composer.json +0 -0
  234. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-symfony/tree/src/Controller/HealthController.php +0 -0
  235. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-symfony/tree/tests/HealthControllerTest.php +0 -0
  236. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-symfony/verify.json +0 -0
  237. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-vanilla/README.md +0 -0
  238. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-vanilla/practices.md +0 -0
  239. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-vanilla/stack.json +0 -0
  240. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-vanilla/tree/README.md +0 -0
  241. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-vanilla/tree/composer.json +0 -0
  242. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-vanilla/tree/phpunit.xml +0 -0
  243. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-vanilla/tree/src/Health.php +0 -0
  244. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-vanilla/tree/tests/HealthTest.php +0 -0
  245. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/php-vanilla/verify.json +0 -0
  246. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-cli/README.md +0 -0
  247. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-cli/practices.md +0 -0
  248. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-cli/stack.json +0 -0
  249. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-cli/tree/README.md +0 -0
  250. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-cli/tree/pyproject.toml +0 -0
  251. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-cli/tree/src/app/__init__.py +0 -0
  252. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-cli/tree/src/app/cli.py +0 -0
  253. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-cli/tree/tests/test_cli.py +0 -0
  254. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-cli/verify.json +0 -0
  255. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-django/README.md +0 -0
  256. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-django/practices.md +0 -0
  257. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-django/stack.json +0 -0
  258. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-django/tree/README.md +0 -0
  259. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-django/tree/app/__init__.py +0 -0
  260. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-django/tree/app/apps.py +0 -0
  261. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-django/tree/app/tests.py +0 -0
  262. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-django/tree/app/views.py +0 -0
  263. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-django/tree/config/__init__.py +0 -0
  264. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-django/tree/config/asgi.py +0 -0
  265. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-django/tree/config/settings.py +0 -0
  266. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-django/tree/config/urls.py +0 -0
  267. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-django/tree/config/wsgi.py +0 -0
  268. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-django/tree/manage.py +0 -0
  269. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-django/tree/pyproject.toml +0 -0
  270. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-django/verify.json +0 -0
  271. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-fastapi/README.md +0 -0
  272. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-fastapi/practices.md +0 -0
  273. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-fastapi/stack.json +0 -0
  274. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-fastapi/tree/.gitignore +0 -0
  275. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-fastapi/tree/README.template.md +0 -0
  276. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-fastapi/tree/pyproject.toml +0 -0
  277. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-fastapi/tree/ruff.toml +0 -0
  278. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-fastapi/tree/src/api/__init__.py +0 -0
  279. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-fastapi/tree/src/main.py +0 -0
  280. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-fastapi/tree/tests/test_health.py +0 -0
  281. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-fastapi/verify.json +0 -0
  282. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-flask/README.md +0 -0
  283. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-flask/practices.md +0 -0
  284. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-flask/stack.json +0 -0
  285. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-flask/tree/README.md +0 -0
  286. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-flask/tree/pyproject.toml +0 -0
  287. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-flask/tree/ruff.toml +0 -0
  288. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-flask/tree/src/app.py +0 -0
  289. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-flask/tree/tests/test_health.py +0 -0
  290. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/py-flask/verify.json +0 -0
  291. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/react-vite/README.md +0 -0
  292. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/react-vite/practices.md +0 -0
  293. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/react-vite/stack.json +0 -0
  294. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/react-vite/tree/README.md +0 -0
  295. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/react-vite/tree/index.html +0 -0
  296. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/react-vite/tree/package.json +0 -0
  297. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/react-vite/tree/src/App.test.tsx +0 -0
  298. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/react-vite/tree/src/App.tsx +0 -0
  299. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/react-vite/tree/src/main.tsx +0 -0
  300. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/react-vite/tree/tsconfig.json +0 -0
  301. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/react-vite/verify.json +0 -0
  302. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ruby-rails/README.md +0 -0
  303. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ruby-rails/practices.md +0 -0
  304. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ruby-rails/stack.json +0 -0
  305. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ruby-rails/tree/Gemfile +0 -0
  306. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ruby-rails/tree/README.md +0 -0
  307. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ruby-rails/tree/app/controllers/health_controller.rb +0 -0
  308. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ruby-rails/tree/bin/rails +0 -0
  309. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ruby-rails/tree/config/application.rb +0 -0
  310. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ruby-rails/tree/config/boot.rb +0 -0
  311. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ruby-rails/tree/config/routes.rb +0 -0
  312. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ruby-rails/tree/test/controllers/health_controller_test.rb +0 -0
  313. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ruby-rails/tree/test/test_helper.rb +0 -0
  314. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ruby-rails/verify.json +0 -0
  315. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/rust-axum/README.md +0 -0
  316. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/rust-axum/practices.md +0 -0
  317. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/rust-axum/stack.json +0 -0
  318. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/rust-axum/tree/Cargo.toml +0 -0
  319. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/rust-axum/tree/README.md +0 -0
  320. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/rust-axum/tree/src/main.rs +0 -0
  321. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/rust-axum/verify.json +0 -0
  322. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/rust-cli/README.md +0 -0
  323. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/rust-cli/practices.md +0 -0
  324. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/rust-cli/stack.json +0 -0
  325. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/rust-cli/tree/Cargo.toml +0 -0
  326. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/rust-cli/tree/README.md +0 -0
  327. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/rust-cli/tree/src/main.rs +0 -0
  328. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/rust-cli/verify.json +0 -0
  329. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/rust-leptos/README.md +0 -0
  330. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/rust-leptos/practices.md +0 -0
  331. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/rust-leptos/stack.json +0 -0
  332. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/rust-leptos/tree/Cargo.toml +0 -0
  333. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/rust-leptos/tree/README.md +0 -0
  334. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/rust-leptos/tree/src/main.rs +0 -0
  335. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/rust-leptos/verify.json +0 -0
  336. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/swift-ios/README.md +0 -0
  337. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/swift-ios/practices.md +0 -0
  338. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/swift-ios/stack.json +0 -0
  339. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/swift-ios/tree/README.md +0 -0
  340. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/swift-ios/tree/Sources/App/App.swift +0 -0
  341. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/swift-ios/tree/Sources/App/ContentView.swift +0 -0
  342. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/swift-ios/tree/Tests/AppTests/AppTests.swift +0 -0
  343. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/swift-ios/verify.json +0 -0
  344. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/swift-vapor/README.md +0 -0
  345. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/swift-vapor/practices.md +0 -0
  346. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/swift-vapor/stack.json +0 -0
  347. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/swift-vapor/tree/Package.swift +0 -0
  348. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/swift-vapor/tree/README.md +0 -0
  349. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/swift-vapor/tree/Sources/App/main.swift +0 -0
  350. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/swift-vapor/tree/Tests/AppTests/HealthTests.swift +0 -0
  351. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/swift-vapor/verify.json +0 -0
  352. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-nestjs/README.md +0 -0
  353. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-nestjs/practices.md +0 -0
  354. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-nestjs/stack.json +0 -0
  355. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-nestjs/tree/README.md +0 -0
  356. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-nestjs/tree/package.json +0 -0
  357. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-nestjs/tree/src/app.controller.spec.ts +0 -0
  358. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-nestjs/tree/src/app.controller.ts +0 -0
  359. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-nestjs/tree/src/app.module.ts +0 -0
  360. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-nestjs/tree/src/main.ts +0 -0
  361. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-nestjs/tree/tsconfig.json +0 -0
  362. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-nestjs/verify.json +0 -0
  363. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-nextjs/README.md +0 -0
  364. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-nextjs/practices.md +0 -0
  365. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-nextjs/stack.json +0 -0
  366. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-nextjs/tree/.eslintrc.json +0 -0
  367. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-nextjs/tree/.gitignore +0 -0
  368. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-nextjs/tree/next.config.mjs +0 -0
  369. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-nextjs/tree/package.json +0 -0
  370. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-nextjs/tree/pnpm-workspace.yaml +0 -0
  371. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-nextjs/tree/src/app/layout.tsx +0 -0
  372. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-nextjs/tree/src/app/page.tsx +0 -0
  373. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-nextjs/tree/tsconfig.json +0 -0
  374. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-nextjs/verify.json +0 -0
  375. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-remix/README.md +0 -0
  376. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-remix/practices.md +0 -0
  377. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-remix/stack.json +0 -0
  378. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-remix/tree/README.md +0 -0
  379. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-remix/tree/app/root.tsx +0 -0
  380. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-remix/tree/app/routes/_index.tsx +0 -0
  381. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-remix/tree/app/routes/health.test.ts +0 -0
  382. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-remix/tree/app/routes/health.ts +0 -0
  383. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-remix/tree/package.json +0 -0
  384. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-remix/tree/tsconfig.json +0 -0
  385. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/stacks/ts-remix/verify.json +0 -0
  386. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/templates/userpromptsubmit-hook.sh +0 -0
  387. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/utils/__init__.py +0 -0
  388. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/utils/cache.py +0 -0
  389. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/utils/http_client.py +0 -0
  390. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio/utils/serialization.py +0 -0
  391. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio_cli.egg-info/dependency_links.txt +0 -0
  392. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/simplicio_cli.egg-info/entry_points.txt +0 -0
  393. {simplicio_cli-0.5.13 → simplicio_cli-0.5.14}/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.13
3
+ Version: 0.5.14
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
@@ -30,8 +30,8 @@ Requires-Dist: sentence-transformers>=5.1.2
30
30
  Requires-Dist: numpy>=2.0.2
31
31
  Requires-Dist: anthropic>=0.105.2
32
32
  Requires-Dist: openai>=2.38.0
33
- Requires-Dist: simplicio-mapper>=0.6.10
34
- Requires-Dist: simplicio-prompt>=1.12.3
33
+ Requires-Dist: simplicio-mapper>=0.7.1
34
+ Requires-Dist: simplicio-prompt>=1.13.1
35
35
  Requires-Dist: httpx>=0.28.1
36
36
  Requires-Dist: orjson>=3.11.5
37
37
  Requires-Dist: diskcache>=5.6.3
@@ -561,7 +561,7 @@ user prompt. UserPromptSubmit is the right pre-hook for routing decisions.
561
561
  | GLM (z.ai) | `glm-4.6` | `https://api.z.ai/api/paas/v4` |
562
562
  | DeepSeek | `deepseek-chat` | `https://api.deepseek.com` |
563
563
  | OpenAI | `gpt-4.1` | `https://api.openai.com/v1` |
564
- | Local (Ollama) | `llama3` | `http://localhost:11434/v1` |
564
+ | Local (Ollama) | `openbmb/minicpm5:latest` | `http://localhost:11434/v1` |
565
565
  | Local (in-process) | `local-llama/default` | *(leave unset)* |
566
566
  | Anthropic native | `claude-opus-4-7` | *(leave unset)* |
567
567
 
@@ -573,32 +573,31 @@ your `base_url` — so **any** OpenAI-like provider works without code changes.
573
573
  simplicio smoke # prints provider config + one test call
574
574
  ```
575
575
 
576
- ### Path 4 — offline-first local model (zero key, zero HTTP)
576
+ ### Path 4 — local Ollama primary with GGUF fallback
577
577
 
578
- simplicio ships an **in-process** backend powered by
579
- [`llama-cpp-python`](https://github.com/abetlen/llama-cpp-python). When **no
580
- provider is configured** (`SIMPLICIO_MODEL` *and* `SIMPLICIO_BASE_URL` both
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.
578
+ When **no provider is configured** (`SIMPLICIO_MODEL` and
579
+ `SIMPLICIO_BASE_URL` both unset), simplicio uses local Ollama with
580
+ `openbmb/minicpm5:latest`. If that call fails, it falls back to the in-process
581
+ [`llama-cpp-python`](https://github.com/abetlen/llama-cpp-python) backend with
582
+ `Qwen_Qwen3.5-2B-Q6_K.gguf`.
586
583
 
587
584
  ```bash
588
585
  pip install 'simplicio-cli[local]' # pulls llama-cpp-python + huggingface-hub
589
586
 
590
587
  simplicio task "add input validation to createUser" \
591
- --target src/users.ts --local # forces the local model
588
+ --target src/users.ts --local # forces local Ollama primary
592
589
 
593
- # the GGUF is fetched once from the Hugging Face Hub, then cached + reused
590
+ # the fallback GGUF is fetched once from the Hugging Face Hub, then reused
594
591
  ```
595
592
 
596
593
  Explicit routes (override the default model/weights):
597
594
 
598
595
  ```bash
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
601
- SIMPLICIO_MODEL=local-llama/bartowski/Qwen2.5-Coder-7B-Instruct-GGUF::Qwen2.5-Coder-7B-Instruct-Q4_K_M.gguf
596
+ SIMPLICIO_MODEL=openbmb/minicpm5:latest
597
+ SIMPLICIO_BASE_URL=http://localhost:11434/v1
598
+ SIMPLICIO_API_KEY=ollama
599
+ SIMPLICIO_MODEL=local-llama/default # Qwen_Qwen3.5-2B-Q6_K.gguf fallback
600
+ SIMPLICIO_MODEL=local-llama/bartowski/Qwen_Qwen3.5-2B-GGUF::Qwen_Qwen3.5-2B-Q6_K.gguf
602
601
  SIMPLICIO_MODEL=local-llama//models/my-model.gguf # direct local path
603
602
  SIMPLICIO_LOCAL_MODEL_PATH=/models/my-model.gguf # always wins
604
603
  ```
@@ -516,7 +516,7 @@ user prompt. UserPromptSubmit is the right pre-hook for routing decisions.
516
516
  | GLM (z.ai) | `glm-4.6` | `https://api.z.ai/api/paas/v4` |
517
517
  | DeepSeek | `deepseek-chat` | `https://api.deepseek.com` |
518
518
  | OpenAI | `gpt-4.1` | `https://api.openai.com/v1` |
519
- | Local (Ollama) | `llama3` | `http://localhost:11434/v1` |
519
+ | Local (Ollama) | `openbmb/minicpm5:latest` | `http://localhost:11434/v1` |
520
520
  | Local (in-process) | `local-llama/default` | *(leave unset)* |
521
521
  | Anthropic native | `claude-opus-4-7` | *(leave unset)* |
522
522
 
@@ -528,32 +528,31 @@ your `base_url` — so **any** OpenAI-like provider works without code changes.
528
528
  simplicio smoke # prints provider config + one test call
529
529
  ```
530
530
 
531
- ### Path 4 — offline-first local model (zero key, zero HTTP)
531
+ ### Path 4 — local Ollama primary with GGUF fallback
532
532
 
533
- simplicio ships an **in-process** backend powered by
534
- [`llama-cpp-python`](https://github.com/abetlen/llama-cpp-python). When **no
535
- provider is configured** (`SIMPLICIO_MODEL` *and* `SIMPLICIO_BASE_URL` both
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.
533
+ When **no provider is configured** (`SIMPLICIO_MODEL` and
534
+ `SIMPLICIO_BASE_URL` both unset), simplicio uses local Ollama with
535
+ `openbmb/minicpm5:latest`. If that call fails, it falls back to the in-process
536
+ [`llama-cpp-python`](https://github.com/abetlen/llama-cpp-python) backend with
537
+ `Qwen_Qwen3.5-2B-Q6_K.gguf`.
541
538
 
542
539
  ```bash
543
540
  pip install 'simplicio-cli[local]' # pulls llama-cpp-python + huggingface-hub
544
541
 
545
542
  simplicio task "add input validation to createUser" \
546
- --target src/users.ts --local # forces the local model
543
+ --target src/users.ts --local # forces local Ollama primary
547
544
 
548
- # the GGUF is fetched once from the Hugging Face Hub, then cached + reused
545
+ # the fallback GGUF is fetched once from the Hugging Face Hub, then reused
549
546
  ```
550
547
 
551
548
  Explicit routes (override the default model/weights):
552
549
 
553
550
  ```bash
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
556
- SIMPLICIO_MODEL=local-llama/bartowski/Qwen2.5-Coder-7B-Instruct-GGUF::Qwen2.5-Coder-7B-Instruct-Q4_K_M.gguf
551
+ SIMPLICIO_MODEL=openbmb/minicpm5:latest
552
+ SIMPLICIO_BASE_URL=http://localhost:11434/v1
553
+ SIMPLICIO_API_KEY=ollama
554
+ SIMPLICIO_MODEL=local-llama/default # Qwen_Qwen3.5-2B-Q6_K.gguf fallback
555
+ SIMPLICIO_MODEL=local-llama/bartowski/Qwen_Qwen3.5-2B-GGUF::Qwen_Qwen3.5-2B-Q6_K.gguf
557
556
  SIMPLICIO_MODEL=local-llama//models/my-model.gguf # direct local path
558
557
  SIMPLICIO_LOCAL_MODEL_PATH=/models/my-model.gguf # always wins
559
558
  ```
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "simplicio-cli"
3
- version = "0.5.13"
3
+ version = "0.5.14"
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" }
@@ -44,8 +44,8 @@ dependencies = [
44
44
  "numpy>=2.0.2",
45
45
  "anthropic>=0.105.2",
46
46
  "openai>=2.38.0",
47
- "simplicio-mapper>=0.6.10",
48
- "simplicio-prompt>=1.12.3",
47
+ "simplicio-mapper>=0.7.1",
48
+ "simplicio-prompt>=1.13.1",
49
49
  "httpx>=0.28.1",
50
50
  "orjson>=3.11.5",
51
51
  "diskcache>=5.6.3",
@@ -54,8 +54,8 @@ dependencies = [
54
54
 
55
55
  [project.optional-dependencies]
56
56
  bench = ["fpdf2>=2.8.4"]
57
- # Offline-first in-process inference (Path 4). Pulls the llama.cpp Python
58
- # bindings plus huggingface-hub to fetch the default Qwen3.5-2B Q6_K GGUF.
57
+ # Offline fallback in-process inference. Pulls the llama.cpp Python bindings
58
+ # plus huggingface-hub to fetch Qwen_Qwen3.5-2B-Q6_K.gguf.
59
59
  local = ["llama-cpp-python>=0.3.23", "huggingface-hub>=1.8.0"]
60
60
 
61
61
  [project.urls]
@@ -0,0 +1 @@
1
+ __version__ = "0.5.14"
@@ -91,8 +91,8 @@ 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 (Qwen3.5-2B Q6_K GGUF, "
95
- "no API key); overrides SIMPLICIO_MODEL/SIMPLICIO_BASE_URL",
94
+ help="force local Ollama (openbmb/minicpm5:latest, no API key) "
95
+ "with Qwen3.5 GGUF fallback; overrides SIMPLICIO_MODEL/SIMPLICIO_BASE_URL",
96
96
  )
97
97
 
98
98
 
@@ -121,10 +121,11 @@ def _add_run_args(p: argparse.ArgumentParser) -> None:
121
121
 
122
122
  def _force_local_if_requested(a: argparse.Namespace) -> None:
123
123
  if getattr(a, "local", False):
124
- # Force Path 4: pin the local model and drop any HTTP endpoint so the
125
- # in-process llama backend wins regardless of the ambient config.
126
- os.environ["SIMPLICIO_MODEL"] = "local-llama/default"
127
- os.environ.pop("SIMPLICIO_BASE_URL", None)
124
+ # Force Path 4: local Ollama primary. The provider layer falls back to
125
+ # the local Qwen GGUF if the Ollama call fails.
126
+ os.environ["SIMPLICIO_MODEL"] = "openbmb/minicpm5:latest"
127
+ os.environ["SIMPLICIO_BASE_URL"] = "http://localhost:11434/v1"
128
+ os.environ.setdefault("SIMPLICIO_API_KEY", "ollama")
128
129
 
129
130
 
130
131
  def _run_task_command(a: argparse.Namespace) -> int:
@@ -1,12 +1,11 @@
1
1
  """local_models.py — hardware-tier → local model recommendation + Ollama plumbing.
2
2
 
3
- Encodes the hardware map documented in bench/SCRATCH_MODE_RFC.md:
3
+ Encodes the local LLM standard:
4
4
 
5
- cpu-tinyqwen2.5-coder:3b (~2 GB Q4)
6
- cpu-small → qwen2.5-coder:7b (~5 GB Q4)
7
- gpu-mid → qwen2.5-coder:14b (~9 GB Q4)
8
- gpu-large → unsloth Qwen3-Coder-30B-A3B-Instruct Q4_K_M (~17 GB)
9
- gpu-xlarge → unsloth Qwen3-Coder-Next Q4 (~26 GB)
5
+ all tiersopenbmb/minicpm5:latest via local Ollama (~0.7 GB)
6
+
7
+ The GGUF fallback is handled by simplicio.providers as
8
+ Qwen_Qwen3.5-2B-Q6_K.gguf when Ollama is unavailable.
10
9
 
11
10
  Hard rule (issue #32 follow-up):
12
11
  - NEVER auto-pull a model that does not fit the detected tier.
@@ -35,29 +34,25 @@ class ModelSpec:
35
34
  notes: str = ""
36
35
 
37
36
 
37
+ DEFAULT_LOCAL_OLLAMA_ID = "openbmb/minicpm5:latest"
38
+ DEFAULT_LOCAL_OLLAMA_LABEL = "MiniCPM5 local (Ollama)"
39
+ DEFAULT_LOCAL_OLLAMA_SIZE_GB = 0.7
40
+ DEFAULT_LOCAL_OLLAMA_NOTES = (
41
+ "canonical local primary; falls back to Qwen_Qwen3.5-2B-Q6_K.gguf in providers"
42
+ )
43
+
44
+
38
45
  # Order matters: list is consulted in the rare case the user asks for the
39
46
  # next-step-up model. The default lookup is by exact tier.
40
47
  RECOMMENDATIONS: dict[str, ModelSpec] = {
41
- "cpu-tiny": ModelSpec("cpu-tiny", "qwen2.5-coder:3b", 2.0,
42
- "Qwen2.5-Coder 3B (Q4)",
43
- "minimal but usable; 12-18 tok/s on CPU"),
44
- "cpu-small": ModelSpec("cpu-small", "qwen2.5-coder:7b", 5.0,
45
- "Qwen2.5-Coder 7B (Q4)",
46
- "good balance; ~25 tok/s on M1/M2"),
47
- "gpu-mid": ModelSpec("gpu-mid", "qwen2.5-coder:14b", 9.0,
48
- "Qwen2.5-Coder 14B (Q4)",
49
- "real-work proxy; 30-50 tok/s on 16 GB VRAM"),
50
- "gpu-large": ModelSpec("gpu-large",
51
- "hf.co/unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF:Q4_K_M",
52
- 17.5, "Qwen3-Coder 30B A3B (Q4_K_M, unsloth)",
53
- "MoE 3B active params; matches our bench cloud results"),
54
- "gpu-xlarge": ModelSpec("gpu-xlarge",
55
- "hf.co/unsloth/Qwen3-Coder-Next-GGUF:Q4_K_M",
56
- 26.0, "Qwen3-Coder Next (Q4)",
57
- "best local coder 2026; needs 32+ GB unified or VRAM"),
58
- "unknown": ModelSpec("unknown", "qwen2.5-coder:7b", 5.0,
59
- "Qwen2.5-Coder 7B (Q4) [fallback]",
60
- "safe default when detection inconclusive"),
48
+ tier: ModelSpec(
49
+ tier,
50
+ DEFAULT_LOCAL_OLLAMA_ID,
51
+ DEFAULT_LOCAL_OLLAMA_SIZE_GB,
52
+ DEFAULT_LOCAL_OLLAMA_LABEL,
53
+ DEFAULT_LOCAL_OLLAMA_NOTES,
54
+ )
55
+ for tier in ("cpu-tiny", "cpu-small", "gpu-mid", "gpu-large", "gpu-xlarge", "unknown")
61
56
  }
62
57
 
63
58
 
@@ -71,7 +66,7 @@ def ollama_present() -> bool:
71
66
  def ollama_list_installed() -> list[str]:
72
67
  """Return the list of Ollama models currently installed.
73
68
 
74
- Each entry is the full tag the user can target (e.g. "qwen2.5-coder:7b").
69
+ Each entry is the full tag the user can target (e.g. "openbmb/minicpm5:latest").
75
70
  Empty list on failure — never raises.
76
71
  """
77
72
  if not ollama_present():
@@ -97,7 +92,7 @@ def ollama_list_installed() -> list[str]:
97
92
 
98
93
 
99
94
  def is_installed(ollama_id: str) -> bool:
100
- """Looser match: handle `hf.co/...:Q4_K_M` vs `qwen2.5-coder:7b` styles."""
95
+ """Looser match hook kept for future aliases; currently exact tag match."""
101
96
  installed = ollama_list_installed()
102
97
  return ollama_id in installed
103
98
 
@@ -21,13 +21,18 @@ Four modes, picked by SIMPLICIO_MODEL prefix (or by absence of config):
21
21
  given SIMPLICIO_HOOK_GUARD=1 so the inner CLI does not re-trigger the
22
22
  simplicio UserPromptSubmit hook (recursion guard).
23
23
 
24
- 4. In-process local inference via llama-cpp-python (offline-first, zero key)
24
+ 4. Local Ollama default (offline-first, zero key)
25
+ SIMPLICIO_MODEL=(unset)
26
+ SIMPLICIO_BASE_URL=(unset)
27
+ -> http://localhost:11434/v1 with openbmb/minicpm5:latest
28
+ If Ollama is unavailable or the default call fails, simplicio falls back
29
+ to Path 5.
30
+
31
+ 5. In-process local inference via llama-cpp-python (GGUF fallback, zero key)
25
32
  SIMPLICIO_MODEL=local-llama/<repo>::<file.gguf> -> explicit HF GGUF
26
- SIMPLICIO_MODEL=local-llama/default -> bundled default
33
+ SIMPLICIO_MODEL=local-llama/default -> fallback Qwen GGUF
27
34
  SIMPLICIO_MODEL=local-llama//abs/path/model.gguf -> direct local path
28
- This is also the DEFAULT when neither SIMPLICIO_MODEL nor
29
- SIMPLICIO_BASE_URL is set: simplicio runs Qwen3.5-2B Q6_K GGUF on CPU with
30
- no HTTP overhead. Legacy Qwen2.5-Coder GGUFs remain fallback executors. The
35
+ The
31
36
  GGUF is reused from ~/.simplicio/models/executor when present, otherwise
32
37
  fetched once from the Hugging Face Hub. Requires the `local` extra:
33
38
  pip install 'simplicio-cli[local]'.
@@ -69,21 +74,17 @@ def _inline_feedback(prompt, feedback):
69
74
 
70
75
 
71
76
  # --------------------------------------------------------------------------- #
72
- # Path 4: in-process local inference (llama-cpp-python). Offline-first default.
77
+ # Path 4: local Ollama primary + Path 5: in-process GGUF fallback.
73
78
  # --------------------------------------------------------------------------- #
74
79
 
75
- # Qwen3.5-2B Q6_K is the preferred local executor. The previous Qwen2.5-Coder
76
- # files stay in the automatic fallback chain so existing offline setups keep
77
- # working if the new GGUF is not present yet.
80
+ DEFAULT_OLLAMA_MODEL = "openbmb/minicpm5:latest"
81
+ DEFAULT_OLLAMA_BASE_URL = "http://localhost:11434/v1"
82
+ DEFAULT_OLLAMA_API_KEY = "ollama"
83
+
84
+ # Qwen3.5-2B Q6_K is the local GGUF fallback for machines where Ollama is not
85
+ # reachable or the MiniCPM5 call fails.
78
86
  LOCAL_DEFAULT_REPO = "bartowski/Qwen_Qwen3.5-2B-GGUF"
79
- LOCAL_DEFAULT_FILE = "Qwen3.5-2B-Q6_K.gguf"
80
- LOCAL_FALLBACK_REPO = "bartowski/Qwen2.5-Coder-1.5B-Instruct-GGUF"
81
- LOCAL_FALLBACK_FILE = "Qwen2.5-Coder-1.5B-Instruct-Q8_0.gguf"
82
- LOCAL_SECONDARY_FALLBACK_FILE = "Qwen2.5-Coder-1.5B-Instruct-Q6_K_L.gguf"
83
- LOCAL_FALLBACK_SPECS = (
84
- (LOCAL_FALLBACK_REPO, LOCAL_FALLBACK_FILE),
85
- (LOCAL_FALLBACK_REPO, LOCAL_SECONDARY_FALLBACK_FILE),
86
- )
87
+ LOCAL_DEFAULT_FILE = "Qwen_Qwen3.5-2B-Q6_K.gguf"
87
88
  LOCAL_EXECUTOR_DIR = "~/.simplicio/models/executor"
88
89
  LOCAL_MODEL_PREFIX = "local-llama/"
89
90
 
@@ -95,19 +96,29 @@ _LOCAL_LLAMA_CACHE = {}
95
96
  def _is_local(model, base):
96
97
  """True when generate() should route to the in-process llama backend.
97
98
 
98
- Either an explicit `local-llama/` model, or the offline-first default:
99
- nothing configured at all (no model, no OpenAI-compatible base_url).
99
+ Only explicit `local-llama/` models use the in-process backend. The empty
100
+ config default is the local Ollama primary and is handled separately.
100
101
  """
101
102
  if model and model.startswith(LOCAL_MODEL_PREFIX):
102
103
  return True
103
- return not model and not base
104
+ return False
105
+
106
+
107
+ def _is_default_ollama(model, base):
108
+ """True when the local default should use Ollama first."""
109
+ if not model and not base:
110
+ return True
111
+ return (
112
+ model == DEFAULT_OLLAMA_MODEL
113
+ and (not base or base.rstrip("/") == DEFAULT_OLLAMA_BASE_URL.rstrip("/"))
114
+ )
104
115
 
105
116
 
106
117
  def _local_spec(model):
107
118
  """Resolve (repo, file, path) for a local-llama model id.
108
119
 
109
120
  Forms after the `local-llama/` prefix:
110
- "" / "default" / "auto" -> bundled Qwen3.5-2B Q6_K default
121
+ "" / "default" / "auto" -> Qwen3.5-2B Q6_K GGUF fallback
111
122
  "<repo>::<file.gguf>" -> explicit HF repo + filename
112
123
  "/abs/path/model.gguf" -> direct local path (no download)
113
124
  "<repo>" -> HF repo + default/SIMPLICIO_LOCAL_MODEL_FILE
@@ -137,10 +148,6 @@ def _local_executor_dir() -> Path:
137
148
 
138
149
  def _local_candidates(repo, fname):
139
150
  """Return candidate (repo, GGUF filename) pairs in preference order."""
140
- if os.environ.get("SIMPLICIO_LOCAL_MODEL_FILE"):
141
- return [(repo, fname)]
142
- if repo == LOCAL_DEFAULT_REPO and fname == LOCAL_DEFAULT_FILE:
143
- return [(repo, fname), *LOCAL_FALLBACK_SPECS]
144
151
  return [(repo, fname)]
145
152
 
146
153
 
@@ -296,11 +303,93 @@ def _charge_if_budgeted(model, prompt, out):
296
303
  charge_provider_call(model, prompt, out or "")
297
304
 
298
305
 
306
+ def _generate_local_cached(prompt, feedback, model, max_tokens, cache_full_prompt):
307
+ from ._cache import CacheEntry, cache, make_key
308
+
309
+ eff_model = model or (LOCAL_MODEL_PREFIX + "default")
310
+ # Fold the resolved weights into the cache key: two different GGUFs can
311
+ # both route as `local-llama/default` (via SIMPLICIO_LOCAL_MODEL_PATH /
312
+ # _REPO / _FILE), and must NOT share cached completions.
313
+ repo, fname, path = _local_spec(eff_model)
314
+ weights = path or f"{repo}/{fname}"
315
+ key = make_key(
316
+ "local-llama",
317
+ eff_model,
318
+ prompt,
319
+ feedback=feedback,
320
+ max_tokens=max_tokens,
321
+ weights=weights,
322
+ )
323
+ cached = cache().get(key)
324
+ if cached is not None:
325
+ return cached.completion
326
+ out = _local_generate(prompt, feedback, eff_model, max_tokens)
327
+ _charge_if_budgeted(eff_model, cache_full_prompt, out)
328
+ cache().put(key, CacheEntry(out, provider_id="local-llama", model=eff_model))
329
+ return out
330
+
331
+
332
+ def _openai_compatible_generate(model, base, key, prompt, feedback, max_tokens):
333
+ from openai import OpenAI
334
+
335
+ cli = OpenAI(base_url=base, api_key=key)
336
+ r = cli.chat.completions.create(
337
+ model=model, max_tokens=max_tokens, messages=_msgs(prompt, feedback)
338
+ )
339
+ return r.choices[0].message.content
340
+
341
+
342
+ def _generate_default_ollama_with_fallback(prompt, feedback, max_tokens, cache_full_prompt):
343
+ from ._cache import CacheEntry, cache, make_key
344
+
345
+ provider_id = f"openai-compatible:{DEFAULT_OLLAMA_BASE_URL}"
346
+ key = make_key(
347
+ provider_id,
348
+ DEFAULT_OLLAMA_MODEL,
349
+ prompt,
350
+ feedback=feedback,
351
+ max_tokens=max_tokens,
352
+ )
353
+ cached = cache().get(key)
354
+ if cached is not None:
355
+ return cached.completion
356
+ try:
357
+ out = _openai_compatible_generate(
358
+ DEFAULT_OLLAMA_MODEL,
359
+ DEFAULT_OLLAMA_BASE_URL,
360
+ DEFAULT_OLLAMA_API_KEY,
361
+ prompt,
362
+ feedback,
363
+ max_tokens,
364
+ )
365
+ except Exception as exc: # noqa: BLE001 - default local path falls back to GGUF
366
+ try:
367
+ return _generate_local_cached(
368
+ prompt,
369
+ feedback,
370
+ LOCAL_MODEL_PREFIX + "default",
371
+ max_tokens,
372
+ cache_full_prompt,
373
+ )
374
+ except SystemExit as fallback_exc:
375
+ raise SystemExit(
376
+ "simplicio: default local Ollama model "
377
+ f"{DEFAULT_OLLAMA_MODEL} failed ({exc}); fallback GGUF "
378
+ f"{LOCAL_DEFAULT_FILE} also failed ({fallback_exc})"
379
+ )
380
+ _charge_if_budgeted(DEFAULT_OLLAMA_MODEL, cache_full_prompt, out)
381
+ cache().put(
382
+ key,
383
+ CacheEntry(out, provider_id=provider_id, model=DEFAULT_OLLAMA_MODEL),
384
+ )
385
+ return out
386
+
387
+
299
388
  def generate(prompt, feedback=None, max_tokens=4000, template_version=None):
300
389
  # Cache lookup BEFORE provider config. Key uses just SIMPLICIO_MODEL
301
390
  # (no credential check) so a hit returns without requiring an API key
302
391
  # to be set in the environment.
303
- from ._cache import cache, make_key, CacheEntry
392
+ from ._cache import cache, make_key
304
393
  model_name = os.environ.get("SIMPLICIO_MODEL", "").strip()
305
394
  cache_full_prompt = _inline_feedback(prompt, feedback)
306
395
  cache_key = make_key(
@@ -315,35 +404,21 @@ def generate(prompt, feedback=None, max_tokens=4000, template_version=None):
315
404
  c = _cfg()
316
405
  model = c["model"]
317
406
 
318
- # Path 4: in-process local inference. Explicit `local-llama/` model, or the
319
- # offline-first default when nothing is configured. No API key, no HTTP.
320
- if _is_local(model, c["base"]):
321
- eff_model = model or (LOCAL_MODEL_PREFIX + "default")
322
- # Fold the resolved weights into the cache key: two different GGUFs can
323
- # both route as `local-llama/default` (via SIMPLICIO_LOCAL_MODEL_PATH /
324
- # _REPO / _FILE), and must NOT share cached completions.
325
- repo, fname, path = _local_spec(eff_model)
326
- weights = path or f"{repo}/{fname}"
327
- key = make_key(
328
- "local-llama",
329
- eff_model,
330
- prompt,
331
- feedback=feedback,
332
- max_tokens=max_tokens,
333
- weights=weights,
407
+ # Path 4: no config means local Ollama first, then GGUF fallback.
408
+ if _is_default_ollama(model, c["base"]):
409
+ return _generate_default_ollama_with_fallback(
410
+ prompt, feedback, max_tokens, cache_full_prompt
334
411
  )
335
- cached = cache().get(key)
336
- if cached is not None:
337
- return cached.completion
338
- out = _local_generate(prompt, feedback, eff_model, max_tokens)
339
- _charge_if_budgeted(eff_model, cache_full_prompt, out)
340
- cache().put(key, CacheEntry(out, provider_id="local-llama", model=eff_model))
341
- return out
412
+
413
+ # Path 5: in-process local inference via explicit `local-llama/` model.
414
+ if _is_local(model, c["base"]):
415
+ return _generate_local_cached(prompt, feedback, model, max_tokens, cache_full_prompt)
342
416
 
343
417
  if not model:
344
418
  raise SystemExit(
345
419
  "set SIMPLICIO_MODEL (e.g. anthropic/claude-opus-4, claude-cli/sonnet, "
346
- "codex-cli/gpt-5, local-llama/default, glm-4.6, llama3, claude-opus-4-7)"
420
+ "codex-cli/gpt-5, openbmb/minicpm5:latest, local-llama/default, "
421
+ "glm-4.6, llama3, claude-opus-4-7)"
347
422
  )
348
423
  provider_id = _provider_id(model, c["base"])
349
424
  key = make_key(
@@ -394,13 +469,9 @@ def generate(prompt, feedback=None, max_tokens=4000, template_version=None):
394
469
  return out
395
470
 
396
471
  # Any OpenAI-compatible endpoint (OpenRouter, GLM, DeepSeek, local...)
397
- from openai import OpenAI
398
-
399
- cli = OpenAI(base_url=c["base"], api_key=c["key"])
400
- r = cli.chat.completions.create(
401
- model=model, max_tokens=max_tokens, messages=_msgs(prompt, feedback)
472
+ out = _openai_compatible_generate(
473
+ model, c["base"], c["key"], prompt, feedback, max_tokens
402
474
  )
403
- out = r.choices[0].message.content
404
475
  _charge_if_budgeted(model, cache_full_prompt, out)
405
476
  cache().put(key, CacheEntry(out, provider_id=provider_id, model=model))
406
477
  return out
@@ -408,6 +479,12 @@ def generate(prompt, feedback=None, max_tokens=4000, template_version=None):
408
479
 
409
480
  def info():
410
481
  c = _cfg()
482
+ if _is_default_ollama(c["model"], c["base"]):
483
+ return (
484
+ f"model={DEFAULT_OLLAMA_MODEL} provider=ollama "
485
+ f"base={DEFAULT_OLLAMA_BASE_URL} fallback={LOCAL_DEFAULT_FILE} "
486
+ "key=not-needed"
487
+ )
411
488
  if _is_local(c["model"], c["base"]):
412
489
  eff_model = c["model"] or (LOCAL_MODEL_PREFIX + "default (auto)")
413
490
  repo, fname, path = _local_spec(c["model"] or "")