simplicio-cli 0.11.0__tar.gz → 0.16.2__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 (453) hide show
  1. {simplicio_cli-0.11.0/simplicio_cli.egg-info → simplicio_cli-0.16.2}/PKG-INFO +70 -41
  2. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/README.md +62 -39
  3. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/pyproject.toml +69 -3
  4. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/__init__.py +1 -1
  5. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/bench.py +8 -1
  6. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/cache.py +23 -1
  7. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/cache_cli.py +18 -13
  8. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/cli.py +131 -0
  9. simplicio_cli-0.16.2/simplicio/commands/edit.py +189 -0
  10. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/commands/file_read.py +2 -2
  11. simplicio_cli-0.16.2/simplicio/commands/intake.py +236 -0
  12. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/commands/memory.py +35 -2
  13. simplicio_cli-0.16.2/simplicio/commands/prototype.py +735 -0
  14. simplicio_cli-0.16.2/simplicio/commands/runtime.py +51 -0
  15. simplicio_cli-0.16.2/simplicio/commands/scenarios/claims-gate.json +68 -0
  16. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/commands/status.py +45 -0
  17. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/commands/task.py +6 -2
  18. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/commands/test_run.py +2 -6
  19. simplicio_cli-0.16.2/simplicio/commands/versions.py +149 -0
  20. simplicio_cli-0.16.2/simplicio/component_manifest.py +673 -0
  21. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/doctor.py +47 -0
  22. simplicio_cli-0.16.2/simplicio/evidence_ledger.py +275 -0
  23. simplicio_cli-0.16.2/simplicio/execution_contract.py +859 -0
  24. simplicio_cli-0.16.2/simplicio/hub_adapter.py +185 -0
  25. simplicio_cli-0.16.2/simplicio/map_view.py +455 -0
  26. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/mapper.py +74 -15
  27. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/mechanical_edit.py +34 -9
  28. simplicio_cli-0.16.2/simplicio/memory_store.py +490 -0
  29. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/observability.py +76 -13
  30. simplicio_cli-0.16.2/simplicio/orchestrator/multi_task.py +637 -0
  31. simplicio_cli-0.16.2/simplicio/orientation_plan.py +392 -0
  32. simplicio_cli-0.16.2/simplicio/pipeline.py +704 -0
  33. simplicio_cli-0.16.2/simplicio/pipeline_integrated.py +171 -0
  34. simplicio_cli-0.16.2/simplicio/pipeline_stages.py +763 -0
  35. simplicio_cli-0.16.2/simplicio/pipeline_task_result.py +300 -0
  36. simplicio_cli-0.16.2/simplicio/plan_compiler/__init__.py +87 -0
  37. simplicio_cli-0.16.2/simplicio/plan_compiler/canonical_hash.py +18 -0
  38. simplicio_cli-0.16.2/simplicio/plan_compiler/compat_adapter.py +189 -0
  39. simplicio_cli-0.16.2/simplicio/plan_compiler/compile_task_spec.py +151 -0
  40. simplicio_cli-0.16.2/simplicio/plan_compiler/effect_sink.py +93 -0
  41. simplicio_cli-0.16.2/simplicio/plan_compiler/errors.py +27 -0
  42. simplicio_cli-0.16.2/simplicio/plan_compiler/models.py +436 -0
  43. simplicio_cli-0.16.2/simplicio/plan_discovery.py +424 -0
  44. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/precedent.py +8 -0
  45. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/prompt.py +37 -0
  46. simplicio_cli-0.16.2/simplicio/prompt_envelope.py +397 -0
  47. simplicio_cli-0.16.2/simplicio/provider_cache_receipt.py +138 -0
  48. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/providers.py +421 -44
  49. simplicio_cli-0.16.2/simplicio/runtime_async.py +137 -0
  50. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/runtime_bridge.py +19 -1
  51. simplicio_cli-0.16.2/simplicio/runtime_contracts.py +476 -0
  52. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/scratch/_pipeline_adapter.py +10 -1
  53. simplicio_cli-0.16.2/simplicio/task_operator.py +345 -0
  54. simplicio_cli-0.16.2/simplicio/task_spec.py +722 -0
  55. simplicio_cli-0.16.2/simplicio/transaction.py +431 -0
  56. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/utils/http_client.py +43 -0
  57. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2/simplicio_cli.egg-info}/PKG-INFO +70 -41
  58. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio_cli.egg-info/SOURCES.txt +28 -0
  59. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio_cli.egg-info/requires.txt +10 -1
  60. simplicio_cli-0.11.0/simplicio/commands/edit.py +0 -78
  61. simplicio_cli-0.11.0/simplicio/commands/runtime.py +0 -30
  62. simplicio_cli-0.11.0/simplicio/memory_store.py +0 -205
  63. simplicio_cli-0.11.0/simplicio/pipeline.py +0 -578
  64. simplicio_cli-0.11.0/simplicio/runtime_contracts.py +0 -128
  65. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/LICENSE +0 -0
  66. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/setup.cfg +0 -0
  67. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/_cache.py +0 -0
  68. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/adaptive.py +0 -0
  69. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/commands/__init__.py +0 -0
  70. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/commands/_shared.py +0 -0
  71. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/commands/bench.py +0 -0
  72. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/commands/cache.py +0 -0
  73. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/commands/claims.py +0 -0
  74. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/commands/detect.py +0 -0
  75. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/commands/doctor.py +0 -0
  76. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/commands/env_export.py +0 -0
  77. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/commands/file.py +0 -0
  78. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/commands/gate.py +0 -0
  79. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/commands/index.py +0 -0
  80. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/commands/init.py +0 -0
  81. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/commands/inspect.py +0 -0
  82. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/commands/nest.py +0 -0
  83. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/commands/run.py +0 -0
  84. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/commands/score_skill.py +0 -0
  85. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/commands/smoke.py +0 -0
  86. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/commands/test.py +0 -0
  87. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/commands/token.py +0 -0
  88. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/detect.py +0 -0
  89. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/dod.py +0 -0
  90. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/ecosystem.py +0 -0
  91. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/hardware.py +0 -0
  92. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/init.py +0 -0
  93. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/intent.py +0 -0
  94. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/local_models.py +0 -0
  95. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/mapper_api.py +0 -0
  96. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/orchestrator/__init__.py +0 -0
  97. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/orchestrator/cost_governor.py +0 -0
  98. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/orchestrator/feature.py +0 -0
  99. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/pipeline_fixers.py +0 -0
  100. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/py.typed +0 -0
  101. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/runtime_env.py +0 -0
  102. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/scratch/__init__.py +0 -0
  103. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/scratch/cli.py +0 -0
  104. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/scratch/codegen/__init__.py +0 -0
  105. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/scratch/codegen/go_gin.py +0 -0
  106. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/scratch/codegen/markdown_document.py +0 -0
  107. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/scratch/codegen/php_laravel.py +0 -0
  108. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/scratch/codegen/python_cst.py +0 -0
  109. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/scratch/codegen/python_fastapi.py +0 -0
  110. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/scratch/codegen/python_orm.py +0 -0
  111. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/scratch/codegen/python_pydantic.py +0 -0
  112. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/scratch/codegen/python_pytest.py +0 -0
  113. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/scratch/codegen/registry.py +0 -0
  114. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/scratch/codegen/rust_axum.py +0 -0
  115. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/scratch/codegen/types.py +0 -0
  116. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/scratch/codegen/typescript_next_page.py +0 -0
  117. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/scratch/codegen/typescript_next_route.py +0 -0
  118. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/scratch/executor.py +0 -0
  119. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/scratch/plan_schema.py +0 -0
  120. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/scratch/planner.py +0 -0
  121. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/scratch/recipes.py +0 -0
  122. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/scratch/skill_opt.py +0 -0
  123. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/scratch/stack_registry.py +0 -0
  124. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/skill_router.py +0 -0
  125. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/sprint_loader.py +0 -0
  126. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/SKILL.md +0 -0
  127. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/recipes/go-gin/admin-crud.yaml +0 -0
  128. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/recipes/go-gin/auth-jwt.yaml +0 -0
  129. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/recipes/go-gin/crud-resource.yaml +0 -0
  130. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/recipes/php-laravel/admin-crud.yaml +0 -0
  131. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/recipes/php-laravel/auth-jwt.yaml +0 -0
  132. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/recipes/php-laravel/crud-resource.yaml +0 -0
  133. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/recipes/php-vanilla/docs-marker.yaml +0 -0
  134. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/recipes/py-fastapi/admin-crud.yaml +0 -0
  135. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/recipes/py-fastapi/auth-jwt.yaml +0 -0
  136. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/recipes/py-fastapi/background-worker.yaml +0 -0
  137. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/recipes/py-fastapi/crud-resource.yaml +0 -0
  138. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/recipes/py-fastapi/file-upload.yaml +0 -0
  139. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/recipes/py-fastapi/oauth-integration.yaml +0 -0
  140. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/recipes/py-fastapi/scheduled-job.yaml +0 -0
  141. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/recipes/py-fastapi/websocket.yaml +0 -0
  142. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/recipes/rust-axum/admin-crud.yaml +0 -0
  143. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/recipes/rust-axum/auth-jwt.yaml +0 -0
  144. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/recipes/rust-axum/crud-resource.yaml +0 -0
  145. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/recipes/ts-nextjs/admin-crud.yaml +0 -0
  146. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/recipes/ts-nextjs/auth-jwt.yaml +0 -0
  147. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/recipes/ts-nextjs/crud-resource.yaml +0 -0
  148. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/simplicio_prompt.md +0 -0
  149. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/bash-cli/README.md +0 -0
  150. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/bash-cli/practices.md +0 -0
  151. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/bash-cli/stack.json +0 -0
  152. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/bash-cli/tree/README.md +0 -0
  153. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/bash-cli/tree/bin/app.sh +0 -0
  154. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/bash-cli/tree/test/app.bats +0 -0
  155. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/bash-cli/verify.json +0 -0
  156. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/csharp-aspnet/README.md +0 -0
  157. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/csharp-aspnet/practices.md +0 -0
  158. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/csharp-aspnet/stack.json +0 -0
  159. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/csharp-aspnet/tree/README.md +0 -0
  160. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/csharp-aspnet/tree/src/App.Api/App.Api.csproj +0 -0
  161. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/csharp-aspnet/tree/src/App.Api/Program.cs +0 -0
  162. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/csharp-aspnet/tree/tests/App.Tests/App.Tests.csproj +0 -0
  163. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/csharp-aspnet/tree/tests/App.Tests/HealthTests.cs +0 -0
  164. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/csharp-aspnet/verify.json +0 -0
  165. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/csharp-blazor/README.md +0 -0
  166. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/csharp-blazor/practices.md +0 -0
  167. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/csharp-blazor/stack.json +0 -0
  168. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/csharp-blazor/tree/README.md +0 -0
  169. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/App.Web.csproj +0 -0
  170. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Components/App.razor +0 -0
  171. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Components/Pages/Home.razor +0 -0
  172. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Program.cs +0 -0
  173. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/csharp-blazor/tree/tests/App.Tests/App.Tests.csproj +0 -0
  174. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/csharp-blazor/tree/tests/App.Tests/HealthTests.cs +0 -0
  175. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/csharp-blazor/verify.json +0 -0
  176. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/dart-flutter/README.md +0 -0
  177. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/dart-flutter/practices.md +0 -0
  178. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/dart-flutter/stack.json +0 -0
  179. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/dart-flutter/tree/README.md +0 -0
  180. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/dart-flutter/tree/lib/main.dart +0 -0
  181. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/dart-flutter/tree/pubspec.yaml +0 -0
  182. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/dart-flutter/tree/test/widget_test.dart +0 -0
  183. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/dart-flutter/verify.json +0 -0
  184. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/elixir-phoenix/README.md +0 -0
  185. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/elixir-phoenix/practices.md +0 -0
  186. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/elixir-phoenix/stack.json +0 -0
  187. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/elixir-phoenix/tree/README.md +0 -0
  188. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/elixir-phoenix/tree/config/config.exs +0 -0
  189. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app/application.ex +0 -0
  190. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/controllers/health_controller.ex +0 -0
  191. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/endpoint.ex +0 -0
  192. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/router.ex +0 -0
  193. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/elixir-phoenix/tree/mix.exs +0 -0
  194. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/elixir-phoenix/tree/test/health_controller_test.exs +0 -0
  195. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/elixir-phoenix/tree/test/test_helper.exs +0 -0
  196. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/elixir-phoenix/verify.json +0 -0
  197. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-cli/README.md +0 -0
  198. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-cli/practices.md +0 -0
  199. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-cli/stack.json +0 -0
  200. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-cli/tree/README.md +0 -0
  201. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-cli/tree/cmd/root.go +0 -0
  202. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-cli/tree/cmd/root_test.go +0 -0
  203. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-cli/tree/go.mod +0 -0
  204. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-cli/tree/main.go +0 -0
  205. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-cli/verify.json +0 -0
  206. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-echo/README.md +0 -0
  207. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-echo/practices.md +0 -0
  208. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-echo/stack.json +0 -0
  209. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-echo/tree/README.md +0 -0
  210. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-echo/tree/cmd/server/main.go +0 -0
  211. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-echo/tree/go.mod +0 -0
  212. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-echo/tree/internal/http/router.go +0 -0
  213. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-echo/tree/internal/http/router_test.go +0 -0
  214. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-echo/verify.json +0 -0
  215. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-gin/README.md +0 -0
  216. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-gin/practices.md +0 -0
  217. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-gin/stack.json +0 -0
  218. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-gin/tree/README.md +0 -0
  219. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-gin/tree/cmd/server/main.go +0 -0
  220. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-gin/tree/go.mod +0 -0
  221. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-gin/tree/internal/http/router.go +0 -0
  222. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-gin/tree/internal/http/router_test.go +0 -0
  223. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/go-gin/verify.json +0 -0
  224. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/java-spring/README.md +0 -0
  225. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/java-spring/practices.md +0 -0
  226. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/java-spring/stack.json +0 -0
  227. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/java-spring/tree/README.md +0 -0
  228. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/java-spring/tree/build.gradle.kts +0 -0
  229. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/java-spring/tree/settings.gradle.kts +0 -0
  230. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/java-spring/tree/src/main/java/com/example/Application.java +0 -0
  231. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/java-spring/tree/src/main/java/com/example/HealthController.java +0 -0
  232. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/java-spring/tree/src/test/java/com/example/HealthControllerTest.java +0 -0
  233. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/java-spring/verify.json +0 -0
  234. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/js-express/README.md +0 -0
  235. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/js-express/practices.md +0 -0
  236. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/js-express/stack.json +0 -0
  237. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/js-express/tree/README.md +0 -0
  238. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/js-express/tree/package.json +0 -0
  239. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/js-express/tree/src/app.js +0 -0
  240. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/js-express/tree/src/server.js +0 -0
  241. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/js-express/tree/tests/health.test.js +0 -0
  242. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/js-express/verify.json +0 -0
  243. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-android/README.md +0 -0
  244. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-android/practices.md +0 -0
  245. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-android/stack.json +0 -0
  246. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-android/tree/README.md +0 -0
  247. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-android/tree/app/build.gradle.kts +0 -0
  248. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/AndroidManifest.xml +0 -0
  249. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/java/com/example/app/MainActivity.kt +0 -0
  250. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/res/values/styles.xml +0 -0
  251. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-android/tree/app/src/test/java/com/example/app/SmokeTest.kt +0 -0
  252. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-android/tree/build.gradle.kts +0 -0
  253. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-android/tree/settings.gradle.kts +0 -0
  254. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-android/verify.json +0 -0
  255. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-ktor/README.md +0 -0
  256. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-ktor/practices.md +0 -0
  257. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-ktor/stack.json +0 -0
  258. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-ktor/tree/README.md +0 -0
  259. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-ktor/tree/build.gradle.kts +0 -0
  260. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-ktor/tree/settings.gradle.kts +0 -0
  261. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-ktor/tree/src/main/kotlin/com/example/Application.kt +0 -0
  262. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-ktor/tree/src/test/kotlin/com/example/ApplicationTest.kt +0 -0
  263. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-ktor/verify.json +0 -0
  264. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-spring/README.md +0 -0
  265. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-spring/practices.md +0 -0
  266. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-spring/stack.json +0 -0
  267. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-spring/tree/README.md +0 -0
  268. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-spring/tree/build.gradle.kts +0 -0
  269. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-spring/tree/settings.gradle.kts +0 -0
  270. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-spring/tree/src/main/kotlin/com/example/Application.kt +0 -0
  271. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-spring/tree/src/main/kotlin/com/example/HealthController.kt +0 -0
  272. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-spring/tree/src/test/kotlin/com/example/HealthControllerTest.kt +0 -0
  273. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/kotlin-spring/verify.json +0 -0
  274. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-laravel/README.md +0 -0
  275. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-laravel/practices.md +0 -0
  276. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-laravel/stack.json +0 -0
  277. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-laravel/tree/README.md +0 -0
  278. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-laravel/tree/artisan +0 -0
  279. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-laravel/tree/bootstrap/app.php +0 -0
  280. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-laravel/tree/composer.json +0 -0
  281. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-laravel/tree/phpunit.xml +0 -0
  282. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-laravel/tree/routes/api.php +0 -0
  283. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-laravel/tree/routes/console.php +0 -0
  284. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-laravel/tree/tests/Feature/HealthTest.php +0 -0
  285. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-laravel/tree/tests/TestCase.php +0 -0
  286. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-laravel/verify.json +0 -0
  287. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-symfony/README.md +0 -0
  288. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-symfony/practices.md +0 -0
  289. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-symfony/stack.json +0 -0
  290. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-symfony/tree/README.md +0 -0
  291. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-symfony/tree/composer.json +0 -0
  292. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-symfony/tree/src/Controller/HealthController.php +0 -0
  293. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-symfony/tree/tests/HealthControllerTest.php +0 -0
  294. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-symfony/verify.json +0 -0
  295. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-vanilla/README.md +0 -0
  296. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-vanilla/practices.md +0 -0
  297. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-vanilla/stack.json +0 -0
  298. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-vanilla/tree/README.md +0 -0
  299. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-vanilla/tree/composer.json +0 -0
  300. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-vanilla/tree/phpunit.xml +0 -0
  301. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-vanilla/tree/src/Health.php +0 -0
  302. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-vanilla/tree/tests/HealthTest.php +0 -0
  303. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/php-vanilla/verify.json +0 -0
  304. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-cli/README.md +0 -0
  305. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-cli/practices.md +0 -0
  306. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-cli/stack.json +0 -0
  307. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-cli/tree/README.md +0 -0
  308. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-cli/tree/pyproject.toml +0 -0
  309. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-cli/tree/src/app/__init__.py +0 -0
  310. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-cli/tree/src/app/cli.py +0 -0
  311. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-cli/tree/tests/test_cli.py +0 -0
  312. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-cli/verify.json +0 -0
  313. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-django/README.md +0 -0
  314. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-django/practices.md +0 -0
  315. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-django/stack.json +0 -0
  316. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-django/tree/README.md +0 -0
  317. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-django/tree/app/__init__.py +0 -0
  318. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-django/tree/app/apps.py +0 -0
  319. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-django/tree/app/tests.py +0 -0
  320. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-django/tree/app/views.py +0 -0
  321. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-django/tree/config/__init__.py +0 -0
  322. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-django/tree/config/asgi.py +0 -0
  323. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-django/tree/config/settings.py +0 -0
  324. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-django/tree/config/urls.py +0 -0
  325. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-django/tree/config/wsgi.py +0 -0
  326. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-django/tree/manage.py +0 -0
  327. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-django/tree/pyproject.toml +0 -0
  328. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-django/verify.json +0 -0
  329. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-fastapi/README.md +0 -0
  330. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-fastapi/practices.md +0 -0
  331. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-fastapi/stack.json +0 -0
  332. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-fastapi/tree/.gitignore +0 -0
  333. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-fastapi/tree/README.template.md +0 -0
  334. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-fastapi/tree/pyproject.toml +0 -0
  335. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-fastapi/tree/ruff.toml +0 -0
  336. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-fastapi/tree/src/api/__init__.py +0 -0
  337. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-fastapi/tree/src/main.py +0 -0
  338. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-fastapi/tree/tests/test_health.py +0 -0
  339. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-fastapi/verify.json +0 -0
  340. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-flask/README.md +0 -0
  341. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-flask/practices.md +0 -0
  342. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-flask/stack.json +0 -0
  343. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-flask/tree/README.md +0 -0
  344. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-flask/tree/pyproject.toml +0 -0
  345. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-flask/tree/ruff.toml +0 -0
  346. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-flask/tree/src/app.py +0 -0
  347. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-flask/tree/tests/test_health.py +0 -0
  348. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/py-flask/verify.json +0 -0
  349. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/react-vite/README.md +0 -0
  350. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/react-vite/practices.md +0 -0
  351. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/react-vite/stack.json +0 -0
  352. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/react-vite/tree/README.md +0 -0
  353. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/react-vite/tree/index.html +0 -0
  354. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/react-vite/tree/package.json +0 -0
  355. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/react-vite/tree/src/App.test.tsx +0 -0
  356. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/react-vite/tree/src/App.tsx +0 -0
  357. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/react-vite/tree/src/main.tsx +0 -0
  358. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/react-vite/tree/tsconfig.json +0 -0
  359. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/react-vite/verify.json +0 -0
  360. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ruby-rails/README.md +0 -0
  361. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ruby-rails/practices.md +0 -0
  362. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ruby-rails/stack.json +0 -0
  363. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ruby-rails/tree/Gemfile +0 -0
  364. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ruby-rails/tree/README.md +0 -0
  365. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ruby-rails/tree/app/controllers/health_controller.rb +0 -0
  366. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ruby-rails/tree/bin/rails +0 -0
  367. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ruby-rails/tree/config/application.rb +0 -0
  368. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ruby-rails/tree/config/boot.rb +0 -0
  369. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ruby-rails/tree/config/routes.rb +0 -0
  370. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ruby-rails/tree/test/controllers/health_controller_test.rb +0 -0
  371. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ruby-rails/tree/test/test_helper.rb +0 -0
  372. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ruby-rails/verify.json +0 -0
  373. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/rust-axum/README.md +0 -0
  374. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/rust-axum/practices.md +0 -0
  375. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/rust-axum/stack.json +0 -0
  376. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/rust-axum/tree/Cargo.toml +0 -0
  377. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/rust-axum/tree/README.md +0 -0
  378. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/rust-axum/tree/src/main.rs +0 -0
  379. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/rust-axum/verify.json +0 -0
  380. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/rust-cli/README.md +0 -0
  381. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/rust-cli/practices.md +0 -0
  382. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/rust-cli/stack.json +0 -0
  383. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/rust-cli/tree/Cargo.toml +0 -0
  384. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/rust-cli/tree/README.md +0 -0
  385. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/rust-cli/tree/src/main.rs +0 -0
  386. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/rust-cli/verify.json +0 -0
  387. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/rust-leptos/README.md +0 -0
  388. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/rust-leptos/practices.md +0 -0
  389. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/rust-leptos/stack.json +0 -0
  390. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/rust-leptos/tree/Cargo.toml +0 -0
  391. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/rust-leptos/tree/README.md +0 -0
  392. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/rust-leptos/tree/src/main.rs +0 -0
  393. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/rust-leptos/verify.json +0 -0
  394. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/swift-ios/README.md +0 -0
  395. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/swift-ios/practices.md +0 -0
  396. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/swift-ios/stack.json +0 -0
  397. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/swift-ios/tree/README.md +0 -0
  398. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/swift-ios/tree/Sources/App/App.swift +0 -0
  399. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/swift-ios/tree/Sources/App/ContentView.swift +0 -0
  400. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/swift-ios/tree/Tests/AppTests/AppTests.swift +0 -0
  401. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/swift-ios/verify.json +0 -0
  402. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/swift-vapor/README.md +0 -0
  403. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/swift-vapor/practices.md +0 -0
  404. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/swift-vapor/stack.json +0 -0
  405. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/swift-vapor/tree/Package.swift +0 -0
  406. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/swift-vapor/tree/README.md +0 -0
  407. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/swift-vapor/tree/Sources/App/main.swift +0 -0
  408. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/swift-vapor/tree/Tests/AppTests/HealthTests.swift +0 -0
  409. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/swift-vapor/verify.json +0 -0
  410. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-nestjs/README.md +0 -0
  411. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-nestjs/practices.md +0 -0
  412. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-nestjs/stack.json +0 -0
  413. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-nestjs/tree/README.md +0 -0
  414. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-nestjs/tree/package.json +0 -0
  415. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-nestjs/tree/src/app.controller.spec.ts +0 -0
  416. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-nestjs/tree/src/app.controller.ts +0 -0
  417. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-nestjs/tree/src/app.module.ts +0 -0
  418. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-nestjs/tree/src/main.ts +0 -0
  419. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-nestjs/tree/tsconfig.json +0 -0
  420. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-nestjs/verify.json +0 -0
  421. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-nextjs/README.md +0 -0
  422. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-nextjs/practices.md +0 -0
  423. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-nextjs/stack.json +0 -0
  424. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-nextjs/tree/.eslintrc.json +0 -0
  425. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-nextjs/tree/.gitignore +0 -0
  426. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-nextjs/tree/next.config.mjs +0 -0
  427. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-nextjs/tree/package.json +0 -0
  428. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-nextjs/tree/pnpm-workspace.yaml +0 -0
  429. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-nextjs/tree/src/app/layout.tsx +0 -0
  430. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-nextjs/tree/src/app/page.tsx +0 -0
  431. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-nextjs/tree/tsconfig.json +0 -0
  432. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-nextjs/verify.json +0 -0
  433. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-remix/README.md +0 -0
  434. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-remix/practices.md +0 -0
  435. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-remix/stack.json +0 -0
  436. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-remix/tree/README.md +0 -0
  437. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-remix/tree/app/root.tsx +0 -0
  438. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-remix/tree/app/routes/_index.tsx +0 -0
  439. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-remix/tree/app/routes/health.test.ts +0 -0
  440. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-remix/tree/app/routes/health.ts +0 -0
  441. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-remix/tree/package.json +0 -0
  442. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-remix/tree/tsconfig.json +0 -0
  443. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/stacks/ts-remix/verify.json +0 -0
  444. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/templates/userpromptsubmit-hook.sh +0 -0
  445. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/token_primitives.py +0 -0
  446. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/toon_codec.py +0 -0
  447. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/utils/__init__.py +0 -0
  448. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/utils/cache.py +0 -0
  449. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/utils/fs.py +0 -0
  450. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio/utils/serialization.py +0 -0
  451. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio_cli.egg-info/dependency_links.txt +0 -0
  452. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/simplicio_cli.egg-info/entry_points.txt +0 -0
  453. {simplicio_cli-0.11.0 → simplicio_cli-0.16.2}/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.11.0
3
+ Version: 0.16.2
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
@@ -28,12 +28,13 @@ Requires-Python: >=3.10
28
28
  Description-Content-Type: text/markdown
29
29
  License-File: LICENSE
30
30
  Requires-Dist: numpy>=2.1.0
31
- Requires-Dist: simplicio-mapper>=0.19.0
31
+ Requires-Dist: simplicio-mapper>=0.24.1
32
32
  Requires-Dist: simplicio-prompt>=1.14.1
33
33
  Requires-Dist: httpx>=0.28.1
34
34
  Requires-Dist: orjson>=3.11.9
35
35
  Requires-Dist: diskcache>=5.6.3
36
36
  Requires-Dist: libcst>=1.8.6
37
+ Requires-Dist: tiktoken<1,>=0.12.0
37
38
  Provides-Extra: providers
38
39
  Requires-Dist: anthropic>=0.112.0; extra == "providers"
39
40
  Requires-Dist: openai>=2.44.0; extra == "providers"
@@ -44,13 +45,18 @@ Requires-Dist: fpdf2>=2.8.7; extra == "bench"
44
45
  Provides-Extra: local
45
46
  Requires-Dist: llama-cpp-python>=0.3.32; extra == "local"
46
47
  Requires-Dist: huggingface-hub>=1.21.0; extra == "local"
48
+ Provides-Extra: performance
49
+ Requires-Dist: uvloop>=0.21.0; sys_platform != "win32" and extra == "performance"
47
50
  Provides-Extra: all
48
51
  Requires-Dist: simplicio-cli[providers]; extra == "all"
49
52
  Requires-Dist: simplicio-cli[ml]; extra == "all"
50
53
  Requires-Dist: simplicio-cli[bench]; extra == "all"
51
54
  Requires-Dist: simplicio-cli[local]; extra == "all"
55
+ Requires-Dist: simplicio-cli[performance]; extra == "all"
52
56
  Provides-Extra: test
53
57
  Requires-Dist: pytest>=8; extra == "test"
58
+ Requires-Dist: pytest-cov>=7; extra == "test"
59
+ Requires-Dist: hypothesis>=6.100; extra == "test"
54
60
  Requires-Dist: tomli>=2.0.1; python_version < "3.11" and extra == "test"
55
61
  Provides-Extra: dev
56
62
  Requires-Dist: simplicio-cli[test]; extra == "dev"
@@ -77,7 +83,11 @@ Dynamic: license-file
77
83
  </p>
78
84
 
79
85
  <p align="center">
80
- <img src="output/imagegen/simplicio-cli-readme-hero-web.png" alt="simplicio-cli preview" width="860" />
86
+ <img src="output/imagegen/simplicio-cli-readme-hero-web.png" alt="simplicio-dev-cli execution pipeline" width="860" />
87
+ </p>
88
+
89
+ <p align="center">
90
+ <img src="output/imagegen/simplicio-cli-proof-receipt.png" alt="diff, tests, and verification receipt" width="760" />
81
91
  </p>
82
92
 
83
93
  ---
@@ -88,7 +98,7 @@ Turn a one-line task into a verified code change: mapper context, six-layer cont
88
98
 
89
99
  ## Project DNA
90
100
 
91
- simplicio-cli is not just a command wrapper; it is the measured execution layer of the ecosystem. Its older README carried the hard proof: real hidden tests, benchmark tables, model comparisons, provider policy, and the honest boundary between better prompting and actual capability. That evidence belongs beside the new hero, not behind it.
101
+ simplicio-dev-cli is the focused implementation and verification operator in the Simplicio ecosystem. It receives a decided task, loads repository context, applies a bounded diff, runs tests, and emits evidence that another operator can inspect. It is not the runtime, the mapper, or the LLM itself: it is the disciplined execution layer between a plan and a trustworthy change.
92
102
 
93
103
  The new first screen is the doorway; the restored guide below is the workshop. This README should help a stranger understand the promise quickly and still give an operator enough depth to run, validate, and extend the project.
94
104
 
@@ -98,52 +108,61 @@ The new first screen is the doorway; the restored guide below is the workshop. T
98
108
  pip install -U simplicio-cli
99
109
  simplicio-py detect "hide the Delete button for non-admins"
100
110
  simplicio-py task "hide the Delete button for non-admins"
111
+ simplicio-py --version --json
101
112
  ```
102
113
 
114
+ The JSON version handshake is the canonical identity surface for runtime/agent consumers. It
115
+ includes the package version, entrypoints, mapper version, and supported contract capabilities.
116
+
103
117
  Auto-upgrade is now opt-in: set `SIMPLICIO_AUTO_UPGRADE=1` for session-start upgrades, or run `simplicio-py doctor --upgrade` explicitly.
104
118
  Python consumers can expose the bundled mapper dependency directly with
105
119
  `from simplicio import mapper_module, mapper_version` or `import simplicio.mapper_api`.
106
120
 
107
121
  ## What it does
108
122
 
109
- - Classifies the task before execution so small fixes stay small and sprint-scale work becomes a plan.
110
- - Loads simplicio-mapper artifacts before asking an LLM to edit.
111
- - Keeps a verification loop around generated diffs instead of trusting the first answer.
112
- - Works with local Simplicio1, OpenRouter, OpenAI, Anthropic, DeepSeek, Hermes, Codex and Claude-style hosts.
123
+ - Accepts a focused task from the runtime, agent, or CLI surface.
124
+ - Loads simplicio-mapper context and relevant precedent before an edit is attempted.
125
+ - Applies a bounded diff, runs the requested tests, and records a verification receipt.
126
+ - Leaves orchestration, model choice, and long-lived loop state to the surrounding Simplicio layers.
113
127
 
114
- ## Why this README is built to earn attention
128
+ ## The real product boundary
115
129
 
116
- - clear first-screen promise
117
- - language links before installation
118
- - badges and a visual hero for fast trust
119
- - copy-ready quick start
120
- - proof before long reference material
121
- - star history for social proof
130
+ - The CLI turns an already-decided engineering intention into a controlled change.
131
+ - The mapper supplies context; the operator supplies execution and proof.
132
+ - A green-looking diff is not enough: tests and evidence are part of the result.
122
133
 
123
134
  ## How it works
124
135
 
125
136
  ```mermaid
126
137
  flowchart LR
127
- mapper["simplicio-mapper
128
- repo context"] --> runtime["simplicio-runtime
129
- task and MCP surface"]
130
- loop["simplicio-loop
131
- proven task flow"] --> runtime
132
- runtime --> current["simplicio-cli
133
- focused implementation"]
134
- current --> edit["simplicio edit
135
- mechanical writes"]
136
- current --> evidence["validated evidence
137
- tests, docs, screenshots"]
138
- runtime --> sprint["simplicio-sprint
139
- delivery status"]
138
+ task(["bounded task"])
139
+ subgraph install["SIMPLICIO-DEV-CLI 0.16.1 INSTALL SURFACE"]
140
+ mapper["simplicio-mapper 0.23.1<br/>context + precedent"]
141
+ operator["focused operator"]
142
+ diff["bounded diff"]
143
+ tests["tests + gates"]
144
+ end
145
+ subgraph proof["PROOF"]
146
+ receipt[("evidence receipt")]
147
+ end
148
+ task --> mapper --> operator
149
+ operator --> diff
150
+ operator --> tests
151
+ diff --> receipt
152
+ tests --> receipt
153
+ classDef input fill:#13233f,stroke:#79d8ff,color:#ffffff
154
+ classDef action fill:#102e2a,stroke:#48e0ae,color:#ffffff
155
+ classDef proofNode fill:#3a244e,stroke:#ffb86b,color:#ffffff
156
+ class task input
157
+ class mapper,operator,diff,tests action
158
+ class receipt proofNode
140
159
  ```
141
160
 
142
161
  ## Proof and validation
143
162
 
144
- - Benchmark docs compare plain prompting vs the Simplicio contract on real code tasks.
145
- - Package metadata tests pin ecosystem dependency floors.
146
- - The CLI is the executor layer used by SendSprint and SimplicioCode flows.
163
+ - The package metadata and mapper handoff are covered by contract tests.
164
+ - Build, lint, test, and packaging gates are recorded with releases when available.
165
+ - The operator is designed to be called by simplicio-runtime, simplicio-loop, agents, or directly from the CLI.
147
166
 
148
167
  ## Simplicio ecosystem
149
168
 
@@ -158,8 +177,8 @@ delivery status"]
158
177
  - [docs/PYTHON_PACKAGE_INTERDEPENDENCE.md](docs/PYTHON_PACKAGE_INTERDEPENDENCE.md) —
159
178
  **generated, not hand-edited** (#101). Regenerate after touching
160
179
  `pyproject.toml`'s version/dependencies/extras:
161
- `python3 scripts/gen_package_interdependence.py`. CI enforces it hasn't
162
- drifted (`python3 scripts/gen_package_interdependence.py --check`, also
180
+ `python3 scripts/gen_package_interdependence.py`. The local gate enforces it
181
+ hasn't drifted (`python3 scripts/gen_package_interdependence.py --check`, also
163
182
  covered by `tests/python/test_generated_docs.py`).
164
183
  - [docs/LLM_USAGE_POLICY.md](docs/LLM_USAGE_POLICY.md)
165
184
  - [docs/readme-globalization-standard.md](docs/readme-globalization-standard.md)
@@ -168,13 +187,13 @@ delivery status"]
168
187
 
169
188
  The section below restores the project-specific README material that existed before the globalization pass. Keep this substance when refreshing the top-level narrative: add polish, do not erase operational memory.
170
189
 
171
- **Your tasks with 99% accuracy using any LLM (Claude, DeepSeek, Codex, Gemini, Hermes, OpenClaw, Cursor).**
190
+ **A focused execution operator for turning decided engineering tasks into verified changes across LLM providers.**
172
191
 
173
192
  [![PyPI](https://img.shields.io/pypi/v/simplicio-cli.svg)](https://pypi.org/project/simplicio-cli/)
174
193
  [![Python](https://img.shields.io/pypi/pyversions/simplicio-cli.svg)](https://pypi.org/project/simplicio-cli/)
175
194
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
176
195
 
177
- [![simplicio-cli pipeline hero: one-line task to verified code change](https://raw.githubusercontent.com/wesleysimplicio/simplicio-cli/master/output/imagegen/simplicio-cli-readme-hero-web.png)](output/imagegen/simplicio-cli-readme-hero.png)
196
+ [![simplicio-dev-cli pipeline: task to verified code change](https://raw.githubusercontent.com/wesleysimplicio/simplicio-dev-cli/main/output/imagegen/simplicio-cli-readme-hero-web.png)](output/imagegen/simplicio-cli-readme-hero.png)
178
197
 
179
198
  > *"hide the Delete button for non-admins"* → diff + test + applied + verified.
180
199
  > **Zero API key inside Claude Code** (auto-installs, uses your subscription) — or
@@ -519,15 +538,18 @@ Missing an extra never crashes with a raw traceback — every optional import
519
538
  is guarded and raises an actionable error naming the exact extra to install
520
539
  (e.g. `pip install 'simplicio-cli[providers]'`).
521
540
 
522
- #### Local-equivalent of the CI gate
541
+ #### Local quality gate
523
542
 
524
- `.github/workflows/ci.yml` is the primary required gate (the Node/Playwright
525
- harness in `starter-e2e.yml` validates the starter-kit template only and does
526
- not gate merges). Reproduce it locally with:
543
+ GitHub Actions is disabled for this repository and `.github/workflows/` is
544
+ intentionally absent. The reproducible merge gate runs locally; attach its
545
+ command output to the pull request:
527
546
 
528
547
  ```bash
529
- pip install -e ".[test]" # base install + pytest (+ tomli on 3.10)
530
- pytest # tests/python + tests/contracts, per pyproject.toml testpaths
548
+ python -m pip install -e ".[dev]" build twine
549
+ ruff check . && ruff format --check . && mypy simplicio
550
+ pytest --cov=simplicio --cov-report=json:coverage.json
551
+ python3 scripts/coverage_gate.py --report coverage.json
552
+ python3 scripts/token_budget.py --check
531
553
  python3 scripts/gen_package_interdependence.py --check # generated-doc drift gate (#101)
532
554
  simplicio-py --help # entrypoint smoke (x3)
533
555
  simplicio-cli --help
@@ -640,6 +662,13 @@ cost_usd, diff_summary, warnings}`. Repeat `--bound-paths <glob>` to reject
640
662
  diffs outside the allowed edit surface; violations are reported in `warnings`
641
663
  and the command exits non-zero.
642
664
 
665
+ See [structured blocked-precondition receipts](docs/blocked-preconditions.md) for the JSON `status`, `blocked_preconditions`, `reason`, and `next_surface` contract.
666
+ See [patch receipts](docs/patch-receipts.md) for parser strategy, recovery fingerprint, and requested/effective capability evidence.
667
+ See [the evidence ledger](docs/evidence-ledger.md) for append-only AC/RN receipts and stale-artifact gates.
668
+ See [multi-task batches](docs/multi-task-batches.md) for deterministic DAG state and resumable transitions.
669
+ See [prompt envelopes](docs/prompt-envelopes.md) for layer budgets, stable prefix hashes, and typed retry deltas.
670
+ The deterministic delivery corpus is available with `python -m bench.run_delivery_corpus`.
671
+
643
672
  #### Path 3 example — standalone with API key
644
673
 
645
674
  ```bash
@@ -17,7 +17,11 @@
17
17
  </p>
18
18
 
19
19
  <p align="center">
20
- <img src="output/imagegen/simplicio-cli-readme-hero-web.png" alt="simplicio-cli preview" width="860" />
20
+ <img src="output/imagegen/simplicio-cli-readme-hero-web.png" alt="simplicio-dev-cli execution pipeline" width="860" />
21
+ </p>
22
+
23
+ <p align="center">
24
+ <img src="output/imagegen/simplicio-cli-proof-receipt.png" alt="diff, tests, and verification receipt" width="760" />
21
25
  </p>
22
26
 
23
27
  ---
@@ -28,7 +32,7 @@ Turn a one-line task into a verified code change: mapper context, six-layer cont
28
32
 
29
33
  ## Project DNA
30
34
 
31
- simplicio-cli is not just a command wrapper; it is the measured execution layer of the ecosystem. Its older README carried the hard proof: real hidden tests, benchmark tables, model comparisons, provider policy, and the honest boundary between better prompting and actual capability. That evidence belongs beside the new hero, not behind it.
35
+ simplicio-dev-cli is the focused implementation and verification operator in the Simplicio ecosystem. It receives a decided task, loads repository context, applies a bounded diff, runs tests, and emits evidence that another operator can inspect. It is not the runtime, the mapper, or the LLM itself: it is the disciplined execution layer between a plan and a trustworthy change.
32
36
 
33
37
  The new first screen is the doorway; the restored guide below is the workshop. This README should help a stranger understand the promise quickly and still give an operator enough depth to run, validate, and extend the project.
34
38
 
@@ -38,52 +42,61 @@ The new first screen is the doorway; the restored guide below is the workshop. T
38
42
  pip install -U simplicio-cli
39
43
  simplicio-py detect "hide the Delete button for non-admins"
40
44
  simplicio-py task "hide the Delete button for non-admins"
45
+ simplicio-py --version --json
41
46
  ```
42
47
 
48
+ The JSON version handshake is the canonical identity surface for runtime/agent consumers. It
49
+ includes the package version, entrypoints, mapper version, and supported contract capabilities.
50
+
43
51
  Auto-upgrade is now opt-in: set `SIMPLICIO_AUTO_UPGRADE=1` for session-start upgrades, or run `simplicio-py doctor --upgrade` explicitly.
44
52
  Python consumers can expose the bundled mapper dependency directly with
45
53
  `from simplicio import mapper_module, mapper_version` or `import simplicio.mapper_api`.
46
54
 
47
55
  ## What it does
48
56
 
49
- - Classifies the task before execution so small fixes stay small and sprint-scale work becomes a plan.
50
- - Loads simplicio-mapper artifacts before asking an LLM to edit.
51
- - Keeps a verification loop around generated diffs instead of trusting the first answer.
52
- - Works with local Simplicio1, OpenRouter, OpenAI, Anthropic, DeepSeek, Hermes, Codex and Claude-style hosts.
57
+ - Accepts a focused task from the runtime, agent, or CLI surface.
58
+ - Loads simplicio-mapper context and relevant precedent before an edit is attempted.
59
+ - Applies a bounded diff, runs the requested tests, and records a verification receipt.
60
+ - Leaves orchestration, model choice, and long-lived loop state to the surrounding Simplicio layers.
53
61
 
54
- ## Why this README is built to earn attention
62
+ ## The real product boundary
55
63
 
56
- - clear first-screen promise
57
- - language links before installation
58
- - badges and a visual hero for fast trust
59
- - copy-ready quick start
60
- - proof before long reference material
61
- - star history for social proof
64
+ - The CLI turns an already-decided engineering intention into a controlled change.
65
+ - The mapper supplies context; the operator supplies execution and proof.
66
+ - A green-looking diff is not enough: tests and evidence are part of the result.
62
67
 
63
68
  ## How it works
64
69
 
65
70
  ```mermaid
66
71
  flowchart LR
67
- mapper["simplicio-mapper
68
- repo context"] --> runtime["simplicio-runtime
69
- task and MCP surface"]
70
- loop["simplicio-loop
71
- proven task flow"] --> runtime
72
- runtime --> current["simplicio-cli
73
- focused implementation"]
74
- current --> edit["simplicio edit
75
- mechanical writes"]
76
- current --> evidence["validated evidence
77
- tests, docs, screenshots"]
78
- runtime --> sprint["simplicio-sprint
79
- delivery status"]
72
+ task(["bounded task"])
73
+ subgraph install["SIMPLICIO-DEV-CLI 0.16.1 INSTALL SURFACE"]
74
+ mapper["simplicio-mapper 0.23.1<br/>context + precedent"]
75
+ operator["focused operator"]
76
+ diff["bounded diff"]
77
+ tests["tests + gates"]
78
+ end
79
+ subgraph proof["PROOF"]
80
+ receipt[("evidence receipt")]
81
+ end
82
+ task --> mapper --> operator
83
+ operator --> diff
84
+ operator --> tests
85
+ diff --> receipt
86
+ tests --> receipt
87
+ classDef input fill:#13233f,stroke:#79d8ff,color:#ffffff
88
+ classDef action fill:#102e2a,stroke:#48e0ae,color:#ffffff
89
+ classDef proofNode fill:#3a244e,stroke:#ffb86b,color:#ffffff
90
+ class task input
91
+ class mapper,operator,diff,tests action
92
+ class receipt proofNode
80
93
  ```
81
94
 
82
95
  ## Proof and validation
83
96
 
84
- - Benchmark docs compare plain prompting vs the Simplicio contract on real code tasks.
85
- - Package metadata tests pin ecosystem dependency floors.
86
- - The CLI is the executor layer used by SendSprint and SimplicioCode flows.
97
+ - The package metadata and mapper handoff are covered by contract tests.
98
+ - Build, lint, test, and packaging gates are recorded with releases when available.
99
+ - The operator is designed to be called by simplicio-runtime, simplicio-loop, agents, or directly from the CLI.
87
100
 
88
101
  ## Simplicio ecosystem
89
102
 
@@ -98,8 +111,8 @@ delivery status"]
98
111
  - [docs/PYTHON_PACKAGE_INTERDEPENDENCE.md](docs/PYTHON_PACKAGE_INTERDEPENDENCE.md) —
99
112
  **generated, not hand-edited** (#101). Regenerate after touching
100
113
  `pyproject.toml`'s version/dependencies/extras:
101
- `python3 scripts/gen_package_interdependence.py`. CI enforces it hasn't
102
- drifted (`python3 scripts/gen_package_interdependence.py --check`, also
114
+ `python3 scripts/gen_package_interdependence.py`. The local gate enforces it
115
+ hasn't drifted (`python3 scripts/gen_package_interdependence.py --check`, also
103
116
  covered by `tests/python/test_generated_docs.py`).
104
117
  - [docs/LLM_USAGE_POLICY.md](docs/LLM_USAGE_POLICY.md)
105
118
  - [docs/readme-globalization-standard.md](docs/readme-globalization-standard.md)
@@ -108,13 +121,13 @@ delivery status"]
108
121
 
109
122
  The section below restores the project-specific README material that existed before the globalization pass. Keep this substance when refreshing the top-level narrative: add polish, do not erase operational memory.
110
123
 
111
- **Your tasks with 99% accuracy using any LLM (Claude, DeepSeek, Codex, Gemini, Hermes, OpenClaw, Cursor).**
124
+ **A focused execution operator for turning decided engineering tasks into verified changes across LLM providers.**
112
125
 
113
126
  [![PyPI](https://img.shields.io/pypi/v/simplicio-cli.svg)](https://pypi.org/project/simplicio-cli/)
114
127
  [![Python](https://img.shields.io/pypi/pyversions/simplicio-cli.svg)](https://pypi.org/project/simplicio-cli/)
115
128
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
116
129
 
117
- [![simplicio-cli pipeline hero: one-line task to verified code change](https://raw.githubusercontent.com/wesleysimplicio/simplicio-cli/master/output/imagegen/simplicio-cli-readme-hero-web.png)](output/imagegen/simplicio-cli-readme-hero.png)
130
+ [![simplicio-dev-cli pipeline: task to verified code change](https://raw.githubusercontent.com/wesleysimplicio/simplicio-dev-cli/main/output/imagegen/simplicio-cli-readme-hero-web.png)](output/imagegen/simplicio-cli-readme-hero.png)
118
131
 
119
132
  > *"hide the Delete button for non-admins"* → diff + test + applied + verified.
120
133
  > **Zero API key inside Claude Code** (auto-installs, uses your subscription) — or
@@ -459,15 +472,18 @@ Missing an extra never crashes with a raw traceback — every optional import
459
472
  is guarded and raises an actionable error naming the exact extra to install
460
473
  (e.g. `pip install 'simplicio-cli[providers]'`).
461
474
 
462
- #### Local-equivalent of the CI gate
475
+ #### Local quality gate
463
476
 
464
- `.github/workflows/ci.yml` is the primary required gate (the Node/Playwright
465
- harness in `starter-e2e.yml` validates the starter-kit template only and does
466
- not gate merges). Reproduce it locally with:
477
+ GitHub Actions is disabled for this repository and `.github/workflows/` is
478
+ intentionally absent. The reproducible merge gate runs locally; attach its
479
+ command output to the pull request:
467
480
 
468
481
  ```bash
469
- pip install -e ".[test]" # base install + pytest (+ tomli on 3.10)
470
- pytest # tests/python + tests/contracts, per pyproject.toml testpaths
482
+ python -m pip install -e ".[dev]" build twine
483
+ ruff check . && ruff format --check . && mypy simplicio
484
+ pytest --cov=simplicio --cov-report=json:coverage.json
485
+ python3 scripts/coverage_gate.py --report coverage.json
486
+ python3 scripts/token_budget.py --check
471
487
  python3 scripts/gen_package_interdependence.py --check # generated-doc drift gate (#101)
472
488
  simplicio-py --help # entrypoint smoke (x3)
473
489
  simplicio-cli --help
@@ -580,6 +596,13 @@ cost_usd, diff_summary, warnings}`. Repeat `--bound-paths <glob>` to reject
580
596
  diffs outside the allowed edit surface; violations are reported in `warnings`
581
597
  and the command exits non-zero.
582
598
 
599
+ See [structured blocked-precondition receipts](docs/blocked-preconditions.md) for the JSON `status`, `blocked_preconditions`, `reason`, and `next_surface` contract.
600
+ See [patch receipts](docs/patch-receipts.md) for parser strategy, recovery fingerprint, and requested/effective capability evidence.
601
+ See [the evidence ledger](docs/evidence-ledger.md) for append-only AC/RN receipts and stale-artifact gates.
602
+ See [multi-task batches](docs/multi-task-batches.md) for deterministic DAG state and resumable transitions.
603
+ See [prompt envelopes](docs/prompt-envelopes.md) for layer budgets, stable prefix hashes, and typed retry deltas.
604
+ The deterministic delivery corpus is available with `python -m bench.run_delivery_corpus`.
605
+
583
606
  #### Path 3 example — standalone with API key
584
607
 
585
608
  ```bash
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "simplicio-cli"
3
- version = "0.11.0"
3
+ version = "0.16.2"
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" }
@@ -53,12 +53,13 @@ classifiers = [
53
53
  # (generated, `--check`-able) for the full graph and #99 for the audit.
54
54
  dependencies = [
55
55
  "numpy>=2.1.0",
56
- "simplicio-mapper>=0.19.0",
56
+ "simplicio-mapper>=0.24.1",
57
57
  "simplicio-prompt>=1.14.1",
58
58
  "httpx>=0.28.1",
59
59
  "orjson>=3.11.9",
60
60
  "diskcache>=5.6.3",
61
61
  "libcst>=1.8.6",
62
+ "tiktoken>=0.12.0,<1",
62
63
  ]
63
64
 
64
65
  [project.optional-dependencies]
@@ -74,15 +75,31 @@ bench = ["fpdf2>=2.8.7"]
74
75
  # Offline fallback in-process inference. Pulls the llama.cpp Python bindings
75
76
  # plus huggingface-hub to fetch MiniCPM5-1B-Q4_K_M.gguf.
76
77
  local = ["llama-cpp-python>=0.3.32", "huggingface-hub>=1.21.0"]
78
+ # Opt-in faster asyncio event loop for the structured-concurrency runtime
79
+ # (simplicio.runtime_async, issue #212). Never required: `install_uvloop()`
80
+ # no-ops on Windows or when this extra is absent, falling back to stdlib
81
+ # asyncio.
82
+ performance = ["uvloop>=0.21.0; sys_platform != 'win32'"]
77
83
  all = [
78
84
  "simplicio-cli[providers]",
79
85
  "simplicio-cli[ml]",
80
86
  "simplicio-cli[bench]",
81
87
  "simplicio-cli[local]",
88
+ "simplicio-cli[performance]",
82
89
  ]
83
90
  # CI/dev-only, not a product extra: pytest to run tests/python, plus tomli
84
91
  # on 3.10 (tomllib is stdlib only from 3.11+; several tests parse this file).
85
- test = ["pytest>=8", "tomli>=2.0.1; python_version < '3.11'"]
92
+ # pytest-cov (#202) backs the coverage gate: `scripts/coverage_gate.py`
93
+ # consumes the `coverage.json` report this generates. hypothesis backs
94
+ # property-based tests (e.g. tests/python/test_mechanical_edit.py's
95
+ # operation-ordering invariant, DoD Camada 2 issue #246) that fuzz random
96
+ # plan shapes instead of only asserting the one hand-written regression case.
97
+ test = [
98
+ "pytest>=8",
99
+ "pytest-cov>=7",
100
+ "hypothesis>=6.100",
101
+ "tomli>=2.0.1; python_version < '3.11'",
102
+ ]
86
103
  # CI/dev-only lint+type gate (#102): never a base/product dependency.
87
104
  # `ruff format --check .` / `ruff check .` / `mypy simplicio` is the local
88
105
  # command (see CONTRIBUTING.md / AGENTS.md "Comandos importantes").
@@ -118,12 +135,61 @@ simplicio = [
118
135
  "templates/stacks/**/*",
119
136
  "templates/stacks/*/tree/.gitignore",
120
137
  "templates/stacks/*/tree/.eslintrc.json",
138
+ # `score-skill` loads these builtin scenario fixtures at runtime from
139
+ # Path(__file__).resolve().parent / "scenarios" (see
140
+ # simplicio/commands/score_skill.py:_resolve_scenarios). Without this
141
+ # entry the wheel ships score_skill.py but not its data, so an installed
142
+ # `simplicio-py score-skill` with no --scenario silently fails outside the
143
+ # checkout (#167 AC "Package instalado contem docs/schemas esperados").
144
+ "commands/scenarios/*.json",
121
145
  ]
122
146
 
123
147
  [tool.pytest.ini_options]
124
148
  pythonpath = ["."]
125
149
  testpaths = ["tests/python", "tests/contracts"]
126
150
 
151
+ # --------------------------------------------------------------------------- #
152
+ # Coverage gate (#202): 85% global, 90% on the "critical" modules listed in
153
+ # `[tool.coverage.simplicio_critical]` below. `scripts/coverage_gate.py`
154
+ # enforces both numbers from the `coverage.json` report; the plain
155
+ # `fail_under` here is a second, redundant floor so a local
156
+ # `pytest --cov=simplicio --cov-fail-under=85` also fails fast without
157
+ # needing the extra script.
158
+ [tool.coverage.run]
159
+ source = ["simplicio"]
160
+ branch = true
161
+ omit = [
162
+ "simplicio/templates/*",
163
+ "*/tests/*",
164
+ ]
165
+
166
+ [tool.coverage.report]
167
+ fail_under = 85
168
+ show_missing = true
169
+ skip_covered = false
170
+ exclude_lines = [
171
+ "pragma: no cover",
172
+ "if TYPE_CHECKING:",
173
+ "raise NotImplementedError",
174
+ "def __repr__",
175
+ ]
176
+
177
+ # Not a standard coverage.py table -- read only by scripts/coverage_gate.py
178
+ # to apply the stricter 90% floor from issue #202 ("coverage crítico") to
179
+ # the modules an agent/task pipeline run always exercises: CLI entrypoint,
180
+ # the pipeline/mechanical-edit/mapper core, and the doctor/execution
181
+ # contracts that gate every run.
182
+ [tool.coverage.simplicio_critical]
183
+ threshold = 90
184
+ modules = [
185
+ "simplicio/cli.py",
186
+ "simplicio/pipeline.py",
187
+ "simplicio/mechanical_edit.py",
188
+ "simplicio/mapper.py",
189
+ "simplicio/execution_contract.py",
190
+ "simplicio/doctor.py",
191
+ ]
192
+
127
193
  # --------------------------------------------------------------------------- #
128
194
  # Lint / type gate (#102). Dev-only tooling — see the `dev` extra above.
129
195
  # Baseline is intentionally permissive (not `mypy --strict`); documented here
@@ -1,4 +1,4 @@
1
- __version__ = "0.11.0"
1
+ __version__ = "0.16.2"
2
2
 
3
3
  from .mapper_api import mapper_module, mapper_version
4
4
 
@@ -26,7 +26,14 @@ def _test(output: str, root: str, test_cmd: str) -> bool:
26
26
  os.makedirs(os.path.join(root, ".simplicio"), exist_ok=True)
27
27
  Path(root, ".simplicio", "bench_out.txt").write_text(output or "", encoding="utf-8")
28
28
  test_cmd = wrap_project_command(root, test_cmd)
29
- p = subprocess.run(test_cmd, shell=True, cwd=root, capture_output=True, text=True)
29
+ p = subprocess.run(
30
+ test_cmd,
31
+ shell=True,
32
+ cwd=root,
33
+ stdin=subprocess.DEVNULL,
34
+ capture_output=True,
35
+ text=True,
36
+ )
30
37
  return p.returncode == 0
31
38
 
32
39
 
@@ -15,6 +15,14 @@ import os
15
15
  import numpy as np
16
16
 
17
17
 
18
+ class EmbeddingCacheMissError(KeyError):
19
+ """Raised by EmbeddingCache.lookup() when one or more texts have no cached
20
+ vector yet (e.g. embedding indexing was skipped/disabled). Callers should
21
+ check whether indexing is enabled before calling lookup(); this exists as
22
+ a defensive guard so a miss surfaces as a clear, actionable error instead
23
+ of a raw KeyError on an opaque hash string."""
24
+
25
+
18
26
  class EmbeddingCache:
19
27
  def __init__(self, root):
20
28
  self.dir = os.path.join(root, ".simplicio")
@@ -54,7 +62,21 @@ class EmbeddingCache:
54
62
  self.index[self.h(t)] = base + i
55
63
 
56
64
  def lookup(self, texts):
57
- """Returns a matrix of vectors in the texts' order (all already cached)."""
65
+ """Returns a matrix of vectors in the texts' order (all already cached).
66
+
67
+ Raises EmbeddingCacheMissError (a KeyError subclass) instead of a raw
68
+ KeyError when a text's hash isn't cached yet, so callers get an
69
+ actionable message instead of an opaque hash lookup failure.
70
+ """
71
+ missing = [t for t in texts if self.h(t) not in self.index]
72
+ if missing:
73
+ raise EmbeddingCacheMissError(
74
+ f"{len(missing)} of {len(texts)} text block(s) are not in the "
75
+ "embedding cache yet. This usually means embedding indexing "
76
+ "was skipped (SIMPLICIO_ENABLE_EMBED_INDEX not set) or the "
77
+ "cache is stale. Enable indexing and re-run index_repo(), or "
78
+ "avoid calling lookup() when indexing is disabled."
79
+ )
58
80
  rows = [self.index[self.h(t)] for t in texts]
59
81
  return self.vectors[rows]
60
82
 
@@ -18,30 +18,35 @@ from ._cache import cache
18
18
 
19
19
 
20
20
  def _cmd_stats(args: argparse.Namespace) -> int:
21
+ # cache().stats() returns a plain dict (see _cache.py's Cache.stats):
22
+ # entries/bytes/root/enabled/bust/oldest_age_s, not an object with
23
+ # attributes — accessing it as `s.entries` etc. raised AttributeError
24
+ # on every invocation of this command.
21
25
  s = cache().stats()
26
+ oldest_age_days = round(s["oldest_age_s"] / 86400, 2) if s["oldest_age_s"] is not None else None
22
27
  if args.json:
23
28
  print(
24
29
  json.dumps(
25
30
  {
26
- "entries": s.entries,
27
- "size_bytes": s.size_bytes,
28
- "size_mb": round(s.size_bytes / (1024 * 1024), 2),
29
- "oldest_age_days": s.oldest_age_days,
30
- "enabled": s.enabled,
31
- "bust_active": s.bust_active,
32
- "root": s.root,
31
+ "entries": s["entries"],
32
+ "size_bytes": s["bytes"],
33
+ "size_mb": s["mb"],
34
+ "oldest_age_days": oldest_age_days,
35
+ "enabled": s["enabled"],
36
+ "bust_active": s["bust"],
37
+ "root": s["root"],
33
38
  },
34
39
  indent=2,
35
40
  )
36
41
  )
37
42
  return 0
38
43
  print("simplicio-py cache stats")
39
- print(f" root {s.root}")
40
- print(f" enabled {'yes' if s.enabled else 'no (SIMPLICIO_CACHE=0)'}")
41
- print(f" bust active {'YES (SIMPLICIO_BUST_CACHE=1)' if s.bust_active else 'no'}")
42
- print(f" entries {s.entries}")
43
- print(f" size {s.size_bytes / (1024 * 1024):.2f} MB")
44
- print(f" oldest entry {s.oldest_age_days} days")
44
+ print(f" root {s['root']}")
45
+ print(f" enabled {'yes' if s['enabled'] else 'no (SIMPLICIO_CACHE=0)'}")
46
+ print(f" bust active {'YES (SIMPLICIO_BUST_CACHE=1)' if s['bust'] else 'no'}")
47
+ print(f" entries {s['entries']}")
48
+ print(f" size {s['mb']:.2f} MB")
49
+ print(f" oldest entry {oldest_age_days} days")
45
50
  return 0
46
51
 
47
52