simplicio-cli 0.18.2__tar.gz → 0.18.3__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 (500) hide show
  1. {simplicio_cli-0.18.2/simplicio_cli.egg-info → simplicio_cli-0.18.3}/PKG-INFO +2 -2
  2. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/pyproject.toml +2 -2
  3. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/__init__.py +1 -1
  4. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/checkpoint_store.py +2 -1
  5. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/cli.py +2 -0
  6. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/codex_hooks.py +65 -65
  7. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/delivery_auth.py +2 -3
  8. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/effect_transaction.py +2 -4
  9. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/execution_mode.py +1 -3
  10. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/hardware.py +7 -3
  11. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/litert_cli.py +1 -1
  12. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/map_view.py +7 -3
  13. simplicio_cli-0.18.3/simplicio/mutation_dispatch.py +45 -0
  14. simplicio_cli-0.18.3/simplicio/mutation_lifecycle.py +96 -0
  15. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/mutation_worker.py +59 -19
  16. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/pipeline.py +4 -3
  17. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/pipeline_task_result.py +1 -5
  18. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/plan_compiler/execution_contracts.py +7 -19
  19. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/plan_compiler/mapper_context.py +20 -6
  20. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/prism_envelope.py +3 -4
  21. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/prism_receipts.py +4 -4
  22. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/prism_transaction.py +2 -2
  23. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/progressive_verify.py +2 -1
  24. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/scratch/cli.py +3 -1
  25. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/stage_abi.py +6 -4
  26. simplicio_cli-0.18.3/simplicio/stage_main.py +52 -0
  27. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/utils/fs.py +18 -1
  28. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/write_set_lock.py +2 -2
  29. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3/simplicio_cli.egg-info}/PKG-INFO +2 -2
  30. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio_cli.egg-info/SOURCES.txt +0 -18
  31. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio_cli.egg-info/requires.txt +1 -1
  32. simplicio_cli-0.18.2/simplicio/mutation_dispatch.py +0 -35
  33. simplicio_cli-0.18.2/simplicio/mutation_lifecycle.py +0 -58
  34. simplicio_cli-0.18.2/simplicio/stage_main.py +0 -34
  35. simplicio_cli-0.18.2/simplicio/templates/stacks/py-cli/tree/src/app/__pycache__/__init__.cpython-314.pyc +0 -0
  36. simplicio_cli-0.18.2/simplicio/templates/stacks/py-cli/tree/src/app/__pycache__/cli.cpython-314.pyc +0 -0
  37. simplicio_cli-0.18.2/simplicio/templates/stacks/py-cli/tree/tests/__pycache__/test_cli.cpython-314.pyc +0 -0
  38. simplicio_cli-0.18.2/simplicio/templates/stacks/py-django/tree/__pycache__/manage.cpython-314.pyc +0 -0
  39. simplicio_cli-0.18.2/simplicio/templates/stacks/py-django/tree/app/__pycache__/__init__.cpython-314.pyc +0 -0
  40. simplicio_cli-0.18.2/simplicio/templates/stacks/py-django/tree/app/__pycache__/apps.cpython-314.pyc +0 -0
  41. simplicio_cli-0.18.2/simplicio/templates/stacks/py-django/tree/app/__pycache__/tests.cpython-314.pyc +0 -0
  42. simplicio_cli-0.18.2/simplicio/templates/stacks/py-django/tree/app/__pycache__/views.cpython-314.pyc +0 -0
  43. simplicio_cli-0.18.2/simplicio/templates/stacks/py-django/tree/config/__pycache__/__init__.cpython-314.pyc +0 -0
  44. simplicio_cli-0.18.2/simplicio/templates/stacks/py-django/tree/config/__pycache__/asgi.cpython-314.pyc +0 -0
  45. simplicio_cli-0.18.2/simplicio/templates/stacks/py-django/tree/config/__pycache__/settings.cpython-314.pyc +0 -0
  46. simplicio_cli-0.18.2/simplicio/templates/stacks/py-django/tree/config/__pycache__/urls.cpython-314.pyc +0 -0
  47. simplicio_cli-0.18.2/simplicio/templates/stacks/py-django/tree/config/__pycache__/wsgi.cpython-314.pyc +0 -0
  48. simplicio_cli-0.18.2/simplicio/templates/stacks/py-fastapi/tree/src/__pycache__/main.cpython-314.pyc +0 -0
  49. simplicio_cli-0.18.2/simplicio/templates/stacks/py-fastapi/tree/src/api/__pycache__/__init__.cpython-314.pyc +0 -0
  50. simplicio_cli-0.18.2/simplicio/templates/stacks/py-fastapi/tree/tests/__pycache__/test_health.cpython-314.pyc +0 -0
  51. simplicio_cli-0.18.2/simplicio/templates/stacks/py-flask/tree/src/__pycache__/app.cpython-314.pyc +0 -0
  52. simplicio_cli-0.18.2/simplicio/templates/stacks/py-flask/tree/tests/__pycache__/test_health.cpython-314.pyc +0 -0
  53. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/LICENSE +0 -0
  54. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/README.md +0 -0
  55. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/setup.cfg +0 -0
  56. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/_cache.py +0 -0
  57. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/adaptive.py +0 -0
  58. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/atomic_execution.py +0 -0
  59. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/bench.py +0 -0
  60. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/cache.py +0 -0
  61. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/cache_cli.py +0 -0
  62. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/changeset_v2.py +0 -0
  63. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/__init__.py +0 -0
  64. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/_shared.py +0 -0
  65. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/bench.py +0 -0
  66. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/cache.py +0 -0
  67. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/changeset.py +0 -0
  68. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/claims.py +0 -0
  69. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/detect.py +0 -0
  70. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/doctor.py +0 -0
  71. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/edit.py +0 -0
  72. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/env_export.py +0 -0
  73. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/fast.py +0 -0
  74. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/file.py +0 -0
  75. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/file_read.py +0 -0
  76. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/gate.py +0 -0
  77. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/index.py +0 -0
  78. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/init.py +0 -0
  79. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/inspect.py +0 -0
  80. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/intake.py +0 -0
  81. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/memory.py +0 -0
  82. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/nest.py +0 -0
  83. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/prototype.py +0 -0
  84. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/run.py +0 -0
  85. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/runtime.py +0 -0
  86. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/scenarios/claims-gate.json +0 -0
  87. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/score_skill.py +0 -0
  88. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/smoke.py +0 -0
  89. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/status.py +0 -0
  90. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/task.py +0 -0
  91. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/test.py +0 -0
  92. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/test_run.py +0 -0
  93. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/token.py +0 -0
  94. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/commands/versions.py +0 -0
  95. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/component_manifest.py +0 -0
  96. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/detect.py +0 -0
  97. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/doctor.py +0 -0
  98. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/dod.py +0 -0
  99. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/ecosystem.py +0 -0
  100. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/evidence_ledger.py +0 -0
  101. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/execution_contract.py +0 -0
  102. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/execution_receipts.py +0 -0
  103. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/fast_contracts.py +0 -0
  104. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/hbp.py +0 -0
  105. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/hub_adapter.py +0 -0
  106. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/init.py +0 -0
  107. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/intent.py +0 -0
  108. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/legacy_json_adapter.py +0 -0
  109. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/local_models.py +0 -0
  110. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/mapper.py +0 -0
  111. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/mapper_api.py +0 -0
  112. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/mechanical_edit.py +0 -0
  113. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/memory_store.py +0 -0
  114. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/observability.py +0 -0
  115. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/orchestrator/__init__.py +0 -0
  116. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/orchestrator/cost_governor.py +0 -0
  117. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/orchestrator/feature.py +0 -0
  118. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/orchestrator/multi_task.py +0 -0
  119. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/orientation_plan.py +0 -0
  120. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/pipeline_fixers.py +0 -0
  121. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/pipeline_integrated.py +0 -0
  122. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/pipeline_stages.py +0 -0
  123. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/plan_compiler/__init__.py +0 -0
  124. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/plan_compiler/authority.py +0 -0
  125. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/plan_compiler/canonical_hash.py +0 -0
  126. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/plan_compiler/compat_adapter.py +0 -0
  127. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/plan_compiler/compile_task_spec.py +0 -0
  128. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/plan_compiler/conformance.py +0 -0
  129. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/plan_compiler/effect_sink.py +0 -0
  130. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/plan_compiler/errors.py +0 -0
  131. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/plan_compiler/models.py +0 -0
  132. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/plan_compiler/runtime_effect_sink.py +0 -0
  133. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/plan_discovery.py +0 -0
  134. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/precedent.py +0 -0
  135. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/prompt.py +0 -0
  136. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/prompt_envelope.py +0 -0
  137. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/provider_cache_receipt.py +0 -0
  138. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/providers.py +0 -0
  139. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/py.typed +0 -0
  140. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/runtime_async.py +0 -0
  141. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/runtime_bridge.py +0 -0
  142. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/runtime_contracts.py +0 -0
  143. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/runtime_env.py +0 -0
  144. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/scratch/__init__.py +0 -0
  145. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/scratch/_pipeline_adapter.py +0 -0
  146. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/scratch/codegen/__init__.py +0 -0
  147. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/scratch/codegen/go_gin.py +0 -0
  148. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/scratch/codegen/markdown_document.py +0 -0
  149. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/scratch/codegen/php_laravel.py +0 -0
  150. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/scratch/codegen/python_cst.py +0 -0
  151. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/scratch/codegen/python_fastapi.py +0 -0
  152. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/scratch/codegen/python_orm.py +0 -0
  153. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/scratch/codegen/python_pydantic.py +0 -0
  154. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/scratch/codegen/python_pytest.py +0 -0
  155. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/scratch/codegen/registry.py +0 -0
  156. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/scratch/codegen/rust_axum.py +0 -0
  157. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/scratch/codegen/types.py +0 -0
  158. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/scratch/codegen/typescript_next_page.py +0 -0
  159. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/scratch/codegen/typescript_next_route.py +0 -0
  160. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/scratch/executor.py +0 -0
  161. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/scratch/plan_schema.py +0 -0
  162. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/scratch/planner.py +0 -0
  163. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/scratch/recipes.py +0 -0
  164. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/scratch/skill_opt.py +0 -0
  165. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/scratch/stack_registry.py +0 -0
  166. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/skill_router.py +0 -0
  167. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/sprint_loader.py +0 -0
  168. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/standalone_migration.py +0 -0
  169. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/task_operator.py +0 -0
  170. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/task_spec.py +0 -0
  171. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/SKILL.md +0 -0
  172. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/recipes/go-gin/admin-crud.yaml +0 -0
  173. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/recipes/go-gin/auth-jwt.yaml +0 -0
  174. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/recipes/go-gin/crud-resource.yaml +0 -0
  175. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/recipes/php-laravel/admin-crud.yaml +0 -0
  176. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/recipes/php-laravel/auth-jwt.yaml +0 -0
  177. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/recipes/php-laravel/crud-resource.yaml +0 -0
  178. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/recipes/php-vanilla/docs-marker.yaml +0 -0
  179. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/recipes/py-fastapi/admin-crud.yaml +0 -0
  180. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/recipes/py-fastapi/auth-jwt.yaml +0 -0
  181. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/recipes/py-fastapi/background-worker.yaml +0 -0
  182. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/recipes/py-fastapi/crud-resource.yaml +0 -0
  183. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/recipes/py-fastapi/file-upload.yaml +0 -0
  184. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/recipes/py-fastapi/oauth-integration.yaml +0 -0
  185. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/recipes/py-fastapi/scheduled-job.yaml +0 -0
  186. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/recipes/py-fastapi/websocket.yaml +0 -0
  187. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/recipes/rust-axum/admin-crud.yaml +0 -0
  188. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/recipes/rust-axum/auth-jwt.yaml +0 -0
  189. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/recipes/rust-axum/crud-resource.yaml +0 -0
  190. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/recipes/ts-nextjs/admin-crud.yaml +0 -0
  191. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/recipes/ts-nextjs/auth-jwt.yaml +0 -0
  192. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/recipes/ts-nextjs/crud-resource.yaml +0 -0
  193. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/simplicio_prompt.md +0 -0
  194. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/bash-cli/README.md +0 -0
  195. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/bash-cli/practices.md +0 -0
  196. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/bash-cli/stack.json +0 -0
  197. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/bash-cli/tree/README.md +0 -0
  198. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/bash-cli/tree/bin/app.sh +0 -0
  199. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/bash-cli/tree/test/app.bats +0 -0
  200. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/bash-cli/verify.json +0 -0
  201. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/csharp-aspnet/README.md +0 -0
  202. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/csharp-aspnet/practices.md +0 -0
  203. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/csharp-aspnet/stack.json +0 -0
  204. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/csharp-aspnet/tree/README.md +0 -0
  205. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/csharp-aspnet/tree/src/App.Api/App.Api.csproj +0 -0
  206. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/csharp-aspnet/tree/src/App.Api/Program.cs +0 -0
  207. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/csharp-aspnet/tree/tests/App.Tests/App.Tests.csproj +0 -0
  208. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/csharp-aspnet/tree/tests/App.Tests/HealthTests.cs +0 -0
  209. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/csharp-aspnet/verify.json +0 -0
  210. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/csharp-blazor/README.md +0 -0
  211. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/csharp-blazor/practices.md +0 -0
  212. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/csharp-blazor/stack.json +0 -0
  213. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/csharp-blazor/tree/README.md +0 -0
  214. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/App.Web.csproj +0 -0
  215. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Components/App.razor +0 -0
  216. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Components/Pages/Home.razor +0 -0
  217. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Program.cs +0 -0
  218. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/csharp-blazor/tree/tests/App.Tests/App.Tests.csproj +0 -0
  219. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/csharp-blazor/tree/tests/App.Tests/HealthTests.cs +0 -0
  220. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/csharp-blazor/verify.json +0 -0
  221. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/dart-flutter/README.md +0 -0
  222. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/dart-flutter/practices.md +0 -0
  223. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/dart-flutter/stack.json +0 -0
  224. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/dart-flutter/tree/README.md +0 -0
  225. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/dart-flutter/tree/lib/main.dart +0 -0
  226. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/dart-flutter/tree/pubspec.yaml +0 -0
  227. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/dart-flutter/tree/test/widget_test.dart +0 -0
  228. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/dart-flutter/verify.json +0 -0
  229. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/elixir-phoenix/README.md +0 -0
  230. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/elixir-phoenix/practices.md +0 -0
  231. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/elixir-phoenix/stack.json +0 -0
  232. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/elixir-phoenix/tree/README.md +0 -0
  233. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/elixir-phoenix/tree/config/config.exs +0 -0
  234. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app/application.ex +0 -0
  235. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/controllers/health_controller.ex +0 -0
  236. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/endpoint.ex +0 -0
  237. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/router.ex +0 -0
  238. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/elixir-phoenix/tree/mix.exs +0 -0
  239. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/elixir-phoenix/tree/test/health_controller_test.exs +0 -0
  240. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/elixir-phoenix/tree/test/test_helper.exs +0 -0
  241. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/elixir-phoenix/verify.json +0 -0
  242. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-cli/README.md +0 -0
  243. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-cli/practices.md +0 -0
  244. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-cli/stack.json +0 -0
  245. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-cli/tree/README.md +0 -0
  246. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-cli/tree/cmd/root.go +0 -0
  247. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-cli/tree/cmd/root_test.go +0 -0
  248. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-cli/tree/go.mod +0 -0
  249. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-cli/tree/main.go +0 -0
  250. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-cli/verify.json +0 -0
  251. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-echo/README.md +0 -0
  252. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-echo/practices.md +0 -0
  253. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-echo/stack.json +0 -0
  254. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-echo/tree/README.md +0 -0
  255. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-echo/tree/cmd/server/main.go +0 -0
  256. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-echo/tree/go.mod +0 -0
  257. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-echo/tree/internal/http/router.go +0 -0
  258. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-echo/tree/internal/http/router_test.go +0 -0
  259. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-echo/verify.json +0 -0
  260. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-gin/README.md +0 -0
  261. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-gin/practices.md +0 -0
  262. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-gin/stack.json +0 -0
  263. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-gin/tree/README.md +0 -0
  264. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-gin/tree/cmd/server/main.go +0 -0
  265. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-gin/tree/go.mod +0 -0
  266. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-gin/tree/internal/http/router.go +0 -0
  267. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-gin/tree/internal/http/router_test.go +0 -0
  268. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/go-gin/verify.json +0 -0
  269. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/java-spring/README.md +0 -0
  270. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/java-spring/practices.md +0 -0
  271. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/java-spring/stack.json +0 -0
  272. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/java-spring/tree/README.md +0 -0
  273. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/java-spring/tree/build.gradle.kts +0 -0
  274. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/java-spring/tree/settings.gradle.kts +0 -0
  275. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/java-spring/tree/src/main/java/com/example/Application.java +0 -0
  276. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/java-spring/tree/src/main/java/com/example/HealthController.java +0 -0
  277. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/java-spring/tree/src/test/java/com/example/HealthControllerTest.java +0 -0
  278. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/java-spring/verify.json +0 -0
  279. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/js-express/README.md +0 -0
  280. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/js-express/practices.md +0 -0
  281. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/js-express/stack.json +0 -0
  282. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/js-express/tree/README.md +0 -0
  283. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/js-express/tree/package.json +0 -0
  284. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/js-express/tree/src/app.js +0 -0
  285. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/js-express/tree/src/server.js +0 -0
  286. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/js-express/tree/tests/health.test.js +0 -0
  287. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/js-express/verify.json +0 -0
  288. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-android/README.md +0 -0
  289. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-android/practices.md +0 -0
  290. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-android/stack.json +0 -0
  291. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-android/tree/README.md +0 -0
  292. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-android/tree/app/build.gradle.kts +0 -0
  293. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/AndroidManifest.xml +0 -0
  294. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/java/com/example/app/MainActivity.kt +0 -0
  295. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/res/values/styles.xml +0 -0
  296. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-android/tree/app/src/test/java/com/example/app/SmokeTest.kt +0 -0
  297. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-android/tree/build.gradle.kts +0 -0
  298. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-android/tree/settings.gradle.kts +0 -0
  299. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-android/verify.json +0 -0
  300. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-ktor/README.md +0 -0
  301. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-ktor/practices.md +0 -0
  302. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-ktor/stack.json +0 -0
  303. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-ktor/tree/README.md +0 -0
  304. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-ktor/tree/build.gradle.kts +0 -0
  305. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-ktor/tree/settings.gradle.kts +0 -0
  306. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-ktor/tree/src/main/kotlin/com/example/Application.kt +0 -0
  307. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-ktor/tree/src/test/kotlin/com/example/ApplicationTest.kt +0 -0
  308. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-ktor/verify.json +0 -0
  309. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-spring/README.md +0 -0
  310. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-spring/practices.md +0 -0
  311. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-spring/stack.json +0 -0
  312. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-spring/tree/README.md +0 -0
  313. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-spring/tree/build.gradle.kts +0 -0
  314. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-spring/tree/settings.gradle.kts +0 -0
  315. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-spring/tree/src/main/kotlin/com/example/Application.kt +0 -0
  316. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-spring/tree/src/main/kotlin/com/example/HealthController.kt +0 -0
  317. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-spring/tree/src/test/kotlin/com/example/HealthControllerTest.kt +0 -0
  318. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/kotlin-spring/verify.json +0 -0
  319. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-laravel/README.md +0 -0
  320. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-laravel/practices.md +0 -0
  321. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-laravel/stack.json +0 -0
  322. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-laravel/tree/README.md +0 -0
  323. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-laravel/tree/artisan +0 -0
  324. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-laravel/tree/bootstrap/app.php +0 -0
  325. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-laravel/tree/composer.json +0 -0
  326. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-laravel/tree/phpunit.xml +0 -0
  327. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-laravel/tree/routes/api.php +0 -0
  328. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-laravel/tree/routes/console.php +0 -0
  329. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-laravel/tree/tests/Feature/HealthTest.php +0 -0
  330. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-laravel/tree/tests/TestCase.php +0 -0
  331. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-laravel/verify.json +0 -0
  332. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-symfony/README.md +0 -0
  333. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-symfony/practices.md +0 -0
  334. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-symfony/stack.json +0 -0
  335. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-symfony/tree/README.md +0 -0
  336. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-symfony/tree/composer.json +0 -0
  337. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-symfony/tree/src/Controller/HealthController.php +0 -0
  338. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-symfony/tree/tests/HealthControllerTest.php +0 -0
  339. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-symfony/verify.json +0 -0
  340. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-vanilla/README.md +0 -0
  341. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-vanilla/practices.md +0 -0
  342. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-vanilla/stack.json +0 -0
  343. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-vanilla/tree/README.md +0 -0
  344. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-vanilla/tree/composer.json +0 -0
  345. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-vanilla/tree/phpunit.xml +0 -0
  346. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-vanilla/tree/src/Health.php +0 -0
  347. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-vanilla/tree/tests/HealthTest.php +0 -0
  348. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/php-vanilla/verify.json +0 -0
  349. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-cli/README.md +0 -0
  350. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-cli/practices.md +0 -0
  351. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-cli/stack.json +0 -0
  352. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-cli/tree/README.md +0 -0
  353. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-cli/tree/pyproject.toml +0 -0
  354. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-cli/tree/src/app/__init__.py +0 -0
  355. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-cli/tree/src/app/cli.py +0 -0
  356. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-cli/tree/tests/test_cli.py +0 -0
  357. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-cli/verify.json +0 -0
  358. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-django/README.md +0 -0
  359. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-django/practices.md +0 -0
  360. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-django/stack.json +0 -0
  361. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-django/tree/README.md +0 -0
  362. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-django/tree/app/__init__.py +0 -0
  363. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-django/tree/app/apps.py +0 -0
  364. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-django/tree/app/tests.py +0 -0
  365. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-django/tree/app/views.py +0 -0
  366. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-django/tree/config/__init__.py +0 -0
  367. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-django/tree/config/asgi.py +0 -0
  368. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-django/tree/config/settings.py +0 -0
  369. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-django/tree/config/urls.py +0 -0
  370. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-django/tree/config/wsgi.py +0 -0
  371. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-django/tree/manage.py +0 -0
  372. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-django/tree/pyproject.toml +0 -0
  373. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-django/verify.json +0 -0
  374. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-fastapi/README.md +0 -0
  375. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-fastapi/practices.md +0 -0
  376. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-fastapi/stack.json +0 -0
  377. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-fastapi/tree/.gitignore +0 -0
  378. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-fastapi/tree/README.template.md +0 -0
  379. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-fastapi/tree/pyproject.toml +0 -0
  380. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-fastapi/tree/ruff.toml +0 -0
  381. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-fastapi/tree/src/api/__init__.py +0 -0
  382. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-fastapi/tree/src/main.py +0 -0
  383. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-fastapi/tree/tests/test_health.py +0 -0
  384. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-fastapi/verify.json +0 -0
  385. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-flask/README.md +0 -0
  386. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-flask/practices.md +0 -0
  387. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-flask/stack.json +0 -0
  388. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-flask/tree/README.md +0 -0
  389. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-flask/tree/pyproject.toml +0 -0
  390. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-flask/tree/ruff.toml +0 -0
  391. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-flask/tree/src/app.py +0 -0
  392. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-flask/tree/tests/test_health.py +0 -0
  393. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/py-flask/verify.json +0 -0
  394. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/react-vite/README.md +0 -0
  395. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/react-vite/practices.md +0 -0
  396. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/react-vite/stack.json +0 -0
  397. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/react-vite/tree/README.md +0 -0
  398. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/react-vite/tree/index.html +0 -0
  399. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/react-vite/tree/package.json +0 -0
  400. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/react-vite/tree/src/App.test.tsx +0 -0
  401. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/react-vite/tree/src/App.tsx +0 -0
  402. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/react-vite/tree/src/main.tsx +0 -0
  403. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/react-vite/tree/tsconfig.json +0 -0
  404. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/react-vite/verify.json +0 -0
  405. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ruby-rails/README.md +0 -0
  406. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ruby-rails/practices.md +0 -0
  407. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ruby-rails/stack.json +0 -0
  408. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ruby-rails/tree/Gemfile +0 -0
  409. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ruby-rails/tree/README.md +0 -0
  410. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ruby-rails/tree/app/controllers/health_controller.rb +0 -0
  411. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ruby-rails/tree/bin/rails +0 -0
  412. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ruby-rails/tree/config/application.rb +0 -0
  413. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ruby-rails/tree/config/boot.rb +0 -0
  414. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ruby-rails/tree/config/routes.rb +0 -0
  415. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ruby-rails/tree/test/controllers/health_controller_test.rb +0 -0
  416. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ruby-rails/tree/test/test_helper.rb +0 -0
  417. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ruby-rails/verify.json +0 -0
  418. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/rust-axum/README.md +0 -0
  419. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/rust-axum/practices.md +0 -0
  420. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/rust-axum/stack.json +0 -0
  421. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/rust-axum/tree/Cargo.toml +0 -0
  422. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/rust-axum/tree/README.md +0 -0
  423. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/rust-axum/tree/src/main.rs +0 -0
  424. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/rust-axum/verify.json +0 -0
  425. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/rust-cli/README.md +0 -0
  426. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/rust-cli/practices.md +0 -0
  427. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/rust-cli/stack.json +0 -0
  428. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/rust-cli/tree/Cargo.toml +0 -0
  429. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/rust-cli/tree/README.md +0 -0
  430. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/rust-cli/tree/src/main.rs +0 -0
  431. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/rust-cli/verify.json +0 -0
  432. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/rust-leptos/README.md +0 -0
  433. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/rust-leptos/practices.md +0 -0
  434. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/rust-leptos/stack.json +0 -0
  435. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/rust-leptos/tree/Cargo.toml +0 -0
  436. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/rust-leptos/tree/README.md +0 -0
  437. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/rust-leptos/tree/src/main.rs +0 -0
  438. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/rust-leptos/verify.json +0 -0
  439. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/swift-ios/README.md +0 -0
  440. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/swift-ios/practices.md +0 -0
  441. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/swift-ios/stack.json +0 -0
  442. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/swift-ios/tree/README.md +0 -0
  443. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/swift-ios/tree/Sources/App/App.swift +0 -0
  444. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/swift-ios/tree/Sources/App/ContentView.swift +0 -0
  445. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/swift-ios/tree/Tests/AppTests/AppTests.swift +0 -0
  446. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/swift-ios/verify.json +0 -0
  447. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/swift-vapor/README.md +0 -0
  448. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/swift-vapor/practices.md +0 -0
  449. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/swift-vapor/stack.json +0 -0
  450. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/swift-vapor/tree/Package.swift +0 -0
  451. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/swift-vapor/tree/README.md +0 -0
  452. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/swift-vapor/tree/Sources/App/main.swift +0 -0
  453. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/swift-vapor/tree/Tests/AppTests/HealthTests.swift +0 -0
  454. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/swift-vapor/verify.json +0 -0
  455. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-nestjs/README.md +0 -0
  456. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-nestjs/practices.md +0 -0
  457. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-nestjs/stack.json +0 -0
  458. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-nestjs/tree/README.md +0 -0
  459. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-nestjs/tree/package.json +0 -0
  460. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-nestjs/tree/src/app.controller.spec.ts +0 -0
  461. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-nestjs/tree/src/app.controller.ts +0 -0
  462. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-nestjs/tree/src/app.module.ts +0 -0
  463. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-nestjs/tree/src/main.ts +0 -0
  464. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-nestjs/tree/tsconfig.json +0 -0
  465. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-nestjs/verify.json +0 -0
  466. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-nextjs/README.md +0 -0
  467. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-nextjs/practices.md +0 -0
  468. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-nextjs/stack.json +0 -0
  469. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-nextjs/tree/.eslintrc.json +0 -0
  470. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-nextjs/tree/.gitignore +0 -0
  471. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-nextjs/tree/next.config.mjs +0 -0
  472. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-nextjs/tree/package.json +0 -0
  473. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-nextjs/tree/pnpm-workspace.yaml +0 -0
  474. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-nextjs/tree/src/app/layout.tsx +0 -0
  475. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-nextjs/tree/src/app/page.tsx +0 -0
  476. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-nextjs/tree/tsconfig.json +0 -0
  477. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-nextjs/verify.json +0 -0
  478. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-remix/README.md +0 -0
  479. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-remix/practices.md +0 -0
  480. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-remix/stack.json +0 -0
  481. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-remix/tree/README.md +0 -0
  482. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-remix/tree/app/root.tsx +0 -0
  483. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-remix/tree/app/routes/_index.tsx +0 -0
  484. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-remix/tree/app/routes/health.test.ts +0 -0
  485. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-remix/tree/app/routes/health.ts +0 -0
  486. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-remix/tree/package.json +0 -0
  487. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-remix/tree/tsconfig.json +0 -0
  488. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/stacks/ts-remix/verify.json +0 -0
  489. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/templates/userpromptsubmit-hook.sh +0 -0
  490. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/token_primitives.py +0 -0
  491. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/toon_codec.py +0 -0
  492. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/transaction.py +0 -0
  493. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/utils/__init__.py +0 -0
  494. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/utils/cache.py +0 -0
  495. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/utils/http_client.py +0 -0
  496. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio/utils/serialization.py +0 -0
  497. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio_cli.egg-info/dependency_links.txt +0 -0
  498. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio_cli.egg-info/entry_points.txt +0 -0
  499. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/simplicio_cli.egg-info/top_level.txt +0 -0
  500. {simplicio_cli-0.18.2 → simplicio_cli-0.18.3}/tests/test_json_boundaries.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: simplicio-cli
3
- Version: 0.18.2
3
+ Version: 0.18.3
4
4
  Summary: Deterministic task-to-code contract and verification CLI. It never executes or provisions an LLM.
5
5
  Author-email: Wesley Simplicio <wesleybob4@gmail.com>
6
6
  License: MIT
@@ -28,7 +28,7 @@ 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.26.1
31
+ Requires-Dist: simplicio-mapper>=0.26.2
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "simplicio-cli"
3
- version = "0.18.2"
3
+ version = "0.18.3"
4
4
  description = "Deterministic task-to-code contract and verification CLI. It never executes or provisions an LLM."
5
5
  readme = "README.md"
6
6
  license = { text = "MIT" }
@@ -45,7 +45,7 @@ classifiers = [
45
45
  # (generated, `--check`-able) for the full graph and #99 for the audit.
46
46
  dependencies = [
47
47
  "numpy>=2.1.0",
48
- "simplicio-mapper>=0.26.1",
48
+ "simplicio-mapper>=0.26.2",
49
49
  "simplicio-prompt>=1.14.1",
50
50
  "httpx>=0.28.1",
51
51
  "orjson>=3.11.9",
@@ -1,4 +1,4 @@
1
- __version__ = "0.18.2"
1
+ __version__ = "0.18.3"
2
2
 
3
3
  from .mapper_api import mapper_module, mapper_version
4
4
 
@@ -6,8 +6,9 @@ import hashlib
6
6
  import json
7
7
  import os
8
8
  import shutil
9
+ from collections.abc import Sequence
9
10
  from pathlib import Path
10
- from typing import Any, Sequence
11
+ from typing import Any
11
12
 
12
13
 
13
14
  class CheckpointError(RuntimeError):
@@ -692,6 +692,7 @@ def _main_unwrapped(argv=None):
692
692
 
693
693
  # Stage ABI mutations fail closed before verbosity/parser/dispatch can run.
694
694
  from .mutation_dispatch import guard_mutable_dispatch
695
+
695
696
  guard_mutable_dispatch(argv)
696
697
 
697
698
  quiet, verbose, argv = _extract_global_verbosity(argv)
@@ -769,6 +770,7 @@ def main(argv=None):
769
770
  """Run legacy commands directly or wrap Stage ABI mutations pre-to-post."""
770
771
  args = list(sys.argv[1:] if argv is None else argv)
771
772
  from .stage_main import run_stage_or_legacy
773
+
772
774
  return run_stage_or_legacy(args, _main_unwrapped)
773
775
 
774
776
 
@@ -1,65 +1,65 @@
1
- """Portable Codex hook bridge for the installed Simplicio CLI.
2
-
3
- Codex sends hook context as JSON on stdin. This module deliberately keeps
4
- the hook observational: malformed input, unsupported events, and detector
5
- errors never block the host agent. UserPromptSubmit is the one event with a
6
- useful side effect: it emits the existing deterministic task hint on stderr.
7
- """
8
-
9
- from __future__ import annotations
10
-
11
- import json
12
- import os
13
- import sys
14
- from typing import Any
15
-
16
- from .detect import detect
17
-
18
-
19
- def _payload(raw: str) -> dict[str, Any]:
20
- if not raw.strip():
21
- return {}
22
- try:
23
- value = json.loads(raw)
24
- except (TypeError, ValueError):
25
- return {}
26
- return value if isinstance(value, dict) else {}
27
-
28
-
29
- def _event(payload: dict[str, Any]) -> str:
30
- value = payload.get("hook_event_name") or payload.get("event") or payload.get("type")
31
- return str(value or "").strip().lower()
32
-
33
-
34
- def _prompt(payload: dict[str, Any]) -> str:
35
- for key in ("prompt", "user_prompt", "text"):
36
- value = payload.get(key)
37
- if isinstance(value, str):
38
- return value
39
- return ""
40
-
41
-
42
- def main() -> int:
43
- if os.environ.get("SIMPLICIO_HOOK_GUARD"):
44
- return 0
45
-
46
- payload = _payload(sys.stdin.read())
47
- if _event(payload) not in {"userpromptsubmit", "user_prompt_submit"}:
48
- return 0
49
-
50
- prompt = _prompt(payload)
51
- if not prompt:
52
- return 0
53
-
54
- try:
55
- result = detect(prompt)
56
- if result.is_code_task:
57
- print(result.hint, file=sys.stderr)
58
- except Exception:
59
- # Hooks must never take down or block the host agent.
60
- return 0
61
- return 0
62
-
63
-
64
- if __name__ == "__main__":
65
- raise SystemExit(main())
1
+ """Portable Codex hook bridge for the installed Simplicio CLI.
2
+
3
+ Codex sends hook context as JSON on stdin. This module deliberately keeps
4
+ the hook observational: malformed input, unsupported events, and detector
5
+ errors never block the host agent. UserPromptSubmit is the one event with a
6
+ useful side effect: it emits the existing deterministic task hint on stderr.
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ import json
12
+ import os
13
+ import sys
14
+ from typing import Any
15
+
16
+ from .detect import detect
17
+
18
+
19
+ def _payload(raw: str) -> dict[str, Any]:
20
+ if not raw.strip():
21
+ return {}
22
+ try:
23
+ value = json.loads(raw)
24
+ except (TypeError, ValueError):
25
+ return {}
26
+ return value if isinstance(value, dict) else {}
27
+
28
+
29
+ def _event(payload: dict[str, Any]) -> str:
30
+ value = payload.get("hook_event_name") or payload.get("event") or payload.get("type")
31
+ return str(value or "").strip().lower()
32
+
33
+
34
+ def _prompt(payload: dict[str, Any]) -> str:
35
+ for key in ("prompt", "user_prompt", "text"):
36
+ value = payload.get(key)
37
+ if isinstance(value, str):
38
+ return value
39
+ return ""
40
+
41
+
42
+ def main() -> int:
43
+ if os.environ.get("SIMPLICIO_HOOK_GUARD"):
44
+ return 0
45
+
46
+ payload = _payload(sys.stdin.read())
47
+ if _event(payload) not in {"userpromptsubmit", "user_prompt_submit"}:
48
+ return 0
49
+
50
+ prompt = _prompt(payload)
51
+ if not prompt:
52
+ return 0
53
+
54
+ try:
55
+ result = detect(prompt)
56
+ if result.is_code_task:
57
+ sys.stderr.write(f"{result.hint}\n")
58
+ except Exception:
59
+ # Hooks must never take down or block the host agent.
60
+ return 0
61
+ return 0
62
+
63
+
64
+ if __name__ == "__main__":
65
+ raise SystemExit(main())
@@ -2,11 +2,10 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- import hashlib
6
- import json
7
5
  import time
6
+ from collections.abc import Callable, Mapping
8
7
  from dataclasses import dataclass, field
9
- from typing import Any, Callable, Mapping, Sequence
8
+ from typing import Any
10
9
 
11
10
  from simplicio.plan_compiler.canonical_hash import canonical_hash
12
11
 
@@ -58,8 +58,7 @@ class EffectTransaction:
58
58
  with self._db() as database:
59
59
  database.execute("BEGIN IMMEDIATE")
60
60
  database.execute(
61
- "UPDATE transactions SET state=?, receipt=COALESCE(?, receipt) "
62
- "WHERE idempotency_key=?",
61
+ "UPDATE transactions SET state=?, receipt=COALESCE(?, receipt) WHERE idempotency_key=?",
63
62
  (state, encoded, key),
64
63
  )
65
64
  database.execute(
@@ -82,8 +81,7 @@ class EffectTransaction:
82
81
  with self._db() as database:
83
82
  database.execute("BEGIN IMMEDIATE")
84
83
  row = database.execute(
85
- "SELECT change_set_hash,state,receipt FROM transactions "
86
- "WHERE idempotency_key=?",
84
+ "SELECT change_set_hash,state,receipt FROM transactions WHERE idempotency_key=?",
87
85
  (key,),
88
86
  ).fetchone()
89
87
  if row:
@@ -240,9 +240,7 @@ def prepare_execution_inputs(
240
240
  # Previously the path arguments were silently ignored in this branch, so
241
241
  # Loop's local degraded context never reached the task precondition gate.
242
242
  resolved_pack = (
243
- context_pack
244
- if context_pack is not None
245
- else _load_context_pack(root, context_pack_path)
243
+ context_pack if context_pack is not None else _load_context_pack(root, context_pack_path)
246
244
  )
247
245
  return PreparedExecutionInputs(
248
246
  context_snapshot,
@@ -65,7 +65,7 @@ def _ram_macos() -> float | None:
65
65
  if out.returncode != 0:
66
66
  return None
67
67
  return int(out.stdout.strip()) / (1024**3)
68
- except (FileNotFoundError, subprocess.TimeoutExpired, ValueError):
68
+ except (OSError, subprocess.TimeoutExpired, ValueError):
69
69
  return None
70
70
 
71
71
 
@@ -95,7 +95,11 @@ def _gpu_nvidia() -> tuple[float, str] | None:
95
95
  text=True,
96
96
  timeout=5,
97
97
  )
98
- except (FileNotFoundError, subprocess.TimeoutExpired):
98
+ # Captured console handles can be invalid under Windows test runners
99
+ # (WinError 6/50). Hardware probing is advisory, so every OS-level
100
+ # process-launch failure must degrade to "no GPU" instead of failing
101
+ # `doctor --json`.
102
+ except (OSError, subprocess.TimeoutExpired):
99
103
  return None
100
104
  if out.returncode != 0 or not out.stdout.strip():
101
105
  return None
@@ -129,7 +133,7 @@ def _gpu_apple_silicon() -> tuple[float, str] | None:
129
133
  text=True,
130
134
  timeout=3,
131
135
  )
132
- except (FileNotFoundError, subprocess.TimeoutExpired):
136
+ except (OSError, subprocess.TimeoutExpired):
133
137
  return None
134
138
  if out.returncode != 0:
135
139
  return None
@@ -11,7 +11,7 @@ import platform
11
11
  import shutil
12
12
  import sys
13
13
  from pathlib import Path
14
- from typing import Any, Mapping
14
+ from typing import Any
15
15
 
16
16
 
17
17
  class LiteRTError(RuntimeError):
@@ -366,7 +366,13 @@ def get_effective_map_view(root: str | os.PathLike[str], *, force_remap: bool =
366
366
  manifest + worktree overlay from disk when the live git identity still
367
367
  matches them — this is the "no redundant full remap" path (issue #213).
368
368
  """
369
- identity = resolve_git_identity(root)
369
+ root_path = Path(root).resolve()
370
+ # Mapper inspection may materialize its own cache under ``.simplicio``.
371
+ # Resolve that state before fingerprinting the worktree, otherwise the
372
+ # cache write changes ``git status`` after the overlay path is chosen and
373
+ # makes the just-created overlay unreachable on the next call.
374
+ artifacts = artifact_status(root_path)
375
+ identity = resolve_git_identity(root_path)
370
376
  cache_key = _cache_key(identity)
371
377
  if not force_remap and cache_key in _VIEW_CACHE:
372
378
  return _VIEW_CACHE[cache_key]
@@ -390,8 +396,6 @@ def get_effective_map_view(root: str | os.PathLike[str], *, force_remap: bool =
390
396
  if overlay_candidate.matches(identity):
391
397
  overlay = overlay_candidate
392
398
 
393
- artifacts = artifact_status(identity.root)
394
-
395
399
  if canonical is not None and overlay is not None:
396
400
  source = SOURCE_CANONICAL_OVERLAY_HIT
397
401
  else:
@@ -0,0 +1,45 @@
1
+ """Mandatory pre-dispatch Hookwall guard for every Stage ABI mutation route."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import json
6
+ import os
7
+ from collections.abc import Mapping, Sequence
8
+ from pathlib import Path
9
+
10
+ from .mutation_lifecycle import MUTABLE_ENTRYPOINTS
11
+ from .mutation_worker import MutationBlocked, validate
12
+
13
+ READ_ONLY = {"status", "claims", "inspect", "doctor", "versions", "file", "detect", "runtime", "fast"}
14
+
15
+
16
+ def route_name(argv: Sequence[str]) -> str:
17
+ if not argv:
18
+ return ""
19
+ for length in range(min(3, len(argv)), 0, -1):
20
+ candidate = ".".join(argv[:length])
21
+ if candidate in MUTABLE_ENTRYPOINTS:
22
+ return candidate
23
+ return argv[0]
24
+
25
+
26
+ def guard_mutable_dispatch(argv: Sequence[str], environ: Mapping[str, str] | None = None) -> None:
27
+ env = dict(os.environ if environ is None else environ)
28
+ route = route_name(argv)
29
+ if route in READ_ONLY or route not in MUTABLE_ENTRYPOINTS:
30
+ return
31
+ if env.get("SIMPLICIO_STAGE_ABI") != "1":
32
+ return # compatibility lane; never presented as Stage ABI
33
+ path = env.get("SIMPLICIO_MECHANICAL_PLAN", "")
34
+ if not path:
35
+ raise MutationBlocked("MECHANICAL_PLAN_REQUIRED")
36
+ plan_path = Path(path)
37
+ try:
38
+ plan = json.loads(plan_path.read_text(encoding="utf-8"))
39
+ except (OSError, ValueError) as exc:
40
+ raise MutationBlocked("MECHANICAL_PLAN_INVALID") from exc
41
+ root = Path(env.get("SIMPLICIO_WORKSPACE", ".")).resolve()
42
+ sealed = validate(plan, root)
43
+ expected = env.get("SIMPLICIO_IDEMPOTENCY_KEY")
44
+ if not expected or sealed["idempotency_key"] != expected:
45
+ raise MutationBlocked("IDEMPOTENCY_KEY_REQUIRED")
@@ -0,0 +1,96 @@
1
+ """Recovery, verification and rollback lifecycle for the Stage ABI worker."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import json
6
+ from collections.abc import Callable
7
+ from typing import Any
8
+
9
+ from .mutation_worker import RECEIPT, MutationBlocked, MutationWorker, digest
10
+
11
+ MUTABLE_ENTRYPOINTS = {
12
+ "index",
13
+ "task",
14
+ "run",
15
+ "cache.clear",
16
+ "init",
17
+ "env-export",
18
+ "mechanical-edit",
19
+ "changeset",
20
+ "edit",
21
+ "test.run",
22
+ "prototype.apply",
23
+ "prototype.scaffold",
24
+ "prototype.plan",
25
+ "prototype.promote",
26
+ "prototype.reject",
27
+ "prototype.batch",
28
+ "memory.init",
29
+ "memory.store",
30
+ "memory.handoff",
31
+ "token.context-cache.put",
32
+ "token.context-cache.invalidate",
33
+ }
34
+
35
+
36
+ def verify_receipt(receipt: dict[str, Any]) -> bool:
37
+ if receipt.get("schema") != RECEIPT:
38
+ return False
39
+ supplied = receipt.get("receipt_hash")
40
+ return isinstance(supplied, str) and supplied == digest(
41
+ {key: value for key, value in receipt.items() if key != "receipt_hash"}
42
+ )
43
+
44
+
45
+ def recover(worker: MutationWorker, key: str, observer: Callable[[], dict[str, Any]]) -> dict[str, Any]:
46
+ with worker._db() as db:
47
+ row = db.execute("SELECT plan_hash,state,receipt FROM mutations WHERE key=?", (key,)).fetchone()
48
+ if not row or row[1] not in {"RESERVED", "UNCERTAIN"}:
49
+ raise MutationBlocked("RECOVERY_NOT_REQUIRED")
50
+ observed = observer()
51
+ if observed.get("status") == "committed":
52
+ receipt = {
53
+ "schema": RECEIPT,
54
+ "plan_id": observed["plan_id"],
55
+ "plan_hash": row[0],
56
+ "idempotency_key": key,
57
+ "before_hash": observed["before_hash"],
58
+ "after_hash": observed["after_hash"],
59
+ "status": "committed",
60
+ "operations": observed.get("operations", []),
61
+ }
62
+ receipt["receipt_hash"] = digest(receipt)
63
+ with worker._db() as db:
64
+ db.execute(
65
+ "UPDATE mutations SET state='VERIFIED',receipt=? WHERE key=?",
66
+ (json.dumps(receipt, sort_keys=True), key),
67
+ )
68
+ return receipt
69
+ raise MutationBlocked("RECOVERY_OBSERVATION_INSUFFICIENT")
70
+
71
+
72
+ def rollback(
73
+ worker: MutationWorker, key: str, restorer: Callable[[dict[str, Any]], dict[str, Any]]
74
+ ) -> dict[str, Any]:
75
+ with worker._db() as db:
76
+ row = db.execute("SELECT state,receipt FROM mutations WHERE key=?", (key,)).fetchone()
77
+ if not row or row[0] not in {"VERIFIED", "UNCERTAIN"}:
78
+ raise MutationBlocked("ROLLBACK_NOT_ALLOWED")
79
+ prior = json.loads(row[1]) if row[1] else {}
80
+ result = restorer(prior)
81
+ if result.get("status") != "restored":
82
+ raise MutationBlocked("ROLLBACK_UNVERIFIED")
83
+ receipt = {
84
+ "schema": "simplicio.rollback-receipt/v1",
85
+ "idempotency_key": key,
86
+ "mutation_receipt_hash": prior.get("receipt_hash"),
87
+ "restored_hash": result["restored_hash"],
88
+ "status": "restored",
89
+ }
90
+ receipt["receipt_hash"] = digest(receipt)
91
+ with worker._db() as db:
92
+ db.execute(
93
+ "UPDATE mutations SET state='ROLLED_BACK',receipt=? WHERE key=?",
94
+ (json.dumps(receipt, sort_keys=True), key),
95
+ )
96
+ return receipt
@@ -1,23 +1,38 @@
1
1
  """Fail-closed Stage ABI mutation worker for MechanicalPlanV1."""
2
+
2
3
  from __future__ import annotations
3
- import hashlib, json, os, sqlite3
4
+
5
+ import hashlib
6
+ import json
7
+ import sqlite3
8
+ from collections.abc import Callable
4
9
  from pathlib import Path
5
- from typing import Any, Callable
10
+ from typing import Any
6
11
 
7
12
  SCHEMA = "simplicio.mechanical-plan/v1"
8
13
  RECEIPT = "simplicio.mutation-receipt/v1"
9
14
 
15
+
10
16
  class MutationBlocked(RuntimeError):
11
17
  def __init__(self, reason_code: str):
12
18
  self.reason_code = reason_code
13
19
  super().__init__(reason_code)
14
20
 
21
+
15
22
  def digest(value: Any) -> str:
16
23
  return hashlib.sha256(json.dumps(value, sort_keys=True, separators=(",", ":")).encode()).hexdigest()
17
24
 
25
+
18
26
  def validate(plan: dict[str, Any], root: Path) -> dict[str, Any]:
19
- required = ("schema", "plan_id", "source_hash", "idempotency_key", "operations",
20
- "effect_set", "hookwall_pre")
27
+ required = (
28
+ "schema",
29
+ "plan_id",
30
+ "source_hash",
31
+ "idempotency_key",
32
+ "operations",
33
+ "effect_set",
34
+ "hookwall_pre",
35
+ )
21
36
  if any(not plan.get(key) for key in required) or plan["schema"] != SCHEMA:
22
37
  raise MutationBlocked("MECHANICAL_PLAN_INVALID")
23
38
  pre = plan["hookwall_pre"]
@@ -29,51 +44,76 @@ def validate(plan: dict[str, Any], root: Path) -> dict[str, Any]:
29
44
  if not isinstance(value, str) or Path(value).is_absolute() or ".." in Path(value).parts:
30
45
  raise MutationBlocked("PATH_ESCAPE")
31
46
  candidate = (root.resolve() / value).resolve()
32
- try: candidate.relative_to(root.resolve())
33
- except ValueError as exc: raise MutationBlocked("SYMLINK_ESCAPE") from exc
47
+ try:
48
+ candidate.relative_to(root.resolve())
49
+ except ValueError as exc:
50
+ raise MutationBlocked("SYMLINK_ESCAPE") from exc
34
51
  normalized["plan_hash"] = digest({k: normalized[k] for k in normalized if k != "plan_hash"})
35
52
  if plan.get("plan_hash") and plan["plan_hash"] != normalized["plan_hash"]:
36
53
  raise MutationBlocked("PLAN_TAMPERED")
37
54
  return normalized
38
55
 
56
+
39
57
  class MutationWorker:
40
58
  def __init__(self, root: str | Path):
41
59
  self.root = Path(root)
42
60
  self.db_path = self.root / ".simplicio" / "mutation-worker.sqlite3"
43
61
  self.db_path.parent.mkdir(parents=True, exist_ok=True)
44
62
  with self._db() as db:
45
- db.execute("CREATE TABLE IF NOT EXISTS mutations(key TEXT PRIMARY KEY, plan_hash TEXT, state TEXT, receipt TEXT)")
63
+ db.execute(
64
+ "CREATE TABLE IF NOT EXISTS mutations("
65
+ "key TEXT PRIMARY KEY, plan_hash TEXT, state TEXT, receipt TEXT)"
66
+ )
67
+
46
68
  def _db(self):
47
69
  db = sqlite3.connect(self.db_path, isolation_level=None)
48
- db.execute("PRAGMA journal_mode=WAL"); db.execute("PRAGMA synchronous=FULL")
70
+ db.execute("PRAGMA journal_mode=WAL")
71
+ db.execute("PRAGMA synchronous=FULL")
49
72
  return db
50
- def execute(self, plan: dict[str, Any], executor: Callable[[dict[str, Any]], dict[str, Any]]) -> dict[str, Any]:
51
- sealed = validate(plan, self.root); key = sealed["idempotency_key"]
73
+
74
+ def execute(
75
+ self, plan: dict[str, Any], executor: Callable[[dict[str, Any]], dict[str, Any]]
76
+ ) -> dict[str, Any]:
77
+ sealed = validate(plan, self.root)
78
+ key = sealed["idempotency_key"]
52
79
  with self._db() as db:
53
80
  db.execute("BEGIN IMMEDIATE")
54
81
  row = db.execute("SELECT plan_hash,state,receipt FROM mutations WHERE key=?", (key,)).fetchone()
55
82
  if row:
56
83
  db.execute("COMMIT")
57
- if row[0] != sealed["plan_hash"]: raise MutationBlocked("IDEMPOTENCY_LINEAGE_MISMATCH")
58
- if row[1] == "VERIFIED": return json.loads(row[2])
84
+ if row[0] != sealed["plan_hash"]:
85
+ raise MutationBlocked("IDEMPOTENCY_LINEAGE_MISMATCH")
86
+ if row[1] == "VERIFIED":
87
+ return json.loads(row[2])
59
88
  raise MutationBlocked("RECOVERY_REQUIRED")
60
89
  db.execute("INSERT INTO mutations VALUES(?,?,?,NULL)", (key, sealed["plan_hash"], "RESERVED"))
61
90
  db.execute("COMMIT")
62
91
  try:
63
92
  result = executor(sealed)
64
93
  except BaseException:
65
- with self._db() as db: db.execute("UPDATE mutations SET state='UNCERTAIN' WHERE key=?", (key,))
94
+ with self._db() as db:
95
+ db.execute("UPDATE mutations SET state='UNCERTAIN' WHERE key=?", (key,))
66
96
  raise
67
97
  if result.get("status") != "ok" or not result.get("applied"):
68
- with self._db() as db: db.execute("UPDATE mutations SET state='ROLLED_BACK' WHERE key=?", (key,))
98
+ with self._db() as db:
99
+ db.execute("UPDATE mutations SET state='ROLLED_BACK' WHERE key=?", (key,))
69
100
  raise MutationBlocked("EFFECT_NOT_COMMITTED")
70
- receipt = {"schema": RECEIPT, "plan_id": sealed["plan_id"], "plan_hash": sealed["plan_hash"],
71
- "idempotency_key": key, "before_hash": result["before_hash"],
72
- "after_hash": result["after_hash"], "status": "committed",
73
- "operations": result.get("operations", [])}
101
+ receipt = {
102
+ "schema": RECEIPT,
103
+ "plan_id": sealed["plan_id"],
104
+ "plan_hash": sealed["plan_hash"],
105
+ "idempotency_key": key,
106
+ "before_hash": result["before_hash"],
107
+ "after_hash": result["after_hash"],
108
+ "status": "committed",
109
+ "operations": result.get("operations", []),
110
+ }
74
111
  receipt["receipt_hash"] = digest(receipt)
75
112
  with self._db() as db:
76
113
  db.execute("BEGIN IMMEDIATE")
77
- db.execute("UPDATE mutations SET state='VERIFIED',receipt=? WHERE key=?", (json.dumps(receipt, sort_keys=True), key))
114
+ db.execute(
115
+ "UPDATE mutations SET state='VERIFIED',receipt=? WHERE key=?",
116
+ (json.dumps(receipt, sort_keys=True), key),
117
+ )
78
118
  db.execute("COMMIT")
79
119
  return receipt
@@ -470,7 +470,10 @@ def run_task(
470
470
  target_kind=target_kind(root, target),
471
471
  )
472
472
  if os.environ.get("SIMPLICIO_STANDALONE_PREFLIGHT", "").strip().lower() in {
473
- "1", "true", "yes", "on",
473
+ "1",
474
+ "true",
475
+ "yes",
476
+ "on",
474
477
  }:
475
478
  return _task_result(
476
479
  target,
@@ -941,8 +944,6 @@ def run_task_spec(root, stack, task_spec: TaskSpec, **kwargs: Any) -> dict[str,
941
944
  """
942
945
  if not isinstance(task_spec, TaskSpec):
943
946
  raise TypeError("run_task_spec requires a simplicio.task_spec.TaskSpec")
944
- if "task_spec" in kwargs:
945
- raise TypeError("run_task_spec does not accept a second task_spec argument")
946
947
  narrative = task_spec.narrative
947
948
  goal = str(narrative.get("goal") or narrative.get("want") or task_spec.functionality or task_spec.task_id)
948
949
  criteria = "\n".join(
@@ -144,11 +144,7 @@ def _dry_run_preconditions(
144
144
  # Prefer the canonical Runtime-bound pack already supplied by the
145
145
  # caller. A generic mapper re-handoff here can discard task-aware fidelity
146
146
  # and is not authoritative for an integrated execution.
147
- handoff = (
148
- {"context_pack": context_pack}
149
- if context_pack is not None
150
- else map_handoff(root_path)
151
- )
147
+ handoff = {"context_pack": context_pack} if context_pack is not None else map_handoff(root_path)
152
148
  if handoff is None:
153
149
  if not new_file_ready:
154
150
  blockers.append(