simplicio-cli 0.18.9__tar.gz → 0.18.11__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/PKG-INFO +11 -9
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/README.md +8 -6
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/pyproject.toml +3 -4
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/__init__.py +1 -1
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/cli.py +16 -3
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/intake.py +81 -44
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/runtime.py +14 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/smoke.py +4 -6
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/task.py +4 -2
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/execution_mode.py +106 -2
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/execution_receipts.py +11 -0
- simplicio_cli-0.18.11/simplicio/llm_policy.py +78 -0
- simplicio_cli-0.18.11/simplicio/local_inference.py +76 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/local_models.py +21 -32
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/mechanical_edit.py +193 -8
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/pipeline.py +5 -17
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/pipeline_integrated.py +4 -1
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/pipeline_stages.py +48 -9
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/plan_compiler/__init__.py +10 -0
- simplicio_cli-0.18.11/simplicio/plan_compiler/ad_hoc_edit.py +359 -0
- simplicio_cli-0.18.11/simplicio/plugin_effect_bridge.py +473 -0
- simplicio_cli-0.18.11/simplicio/plugin_reconcile.py +351 -0
- simplicio_cli-0.18.11/simplicio/providers.py +1487 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/runtime_env.py +14 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio_cli.egg-info/PKG-INFO +11 -9
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio_cli.egg-info/SOURCES.txt +7 -1
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio_cli.egg-info/requires.txt +2 -2
- simplicio_cli-0.18.11/tests/test_json_boundaries.py +18 -0
- simplicio_cli-0.18.9/simplicio/providers.py +0 -139
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/LICENSE +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/setup.cfg +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/_cache.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/adaptive.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/atomic_execution.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/bench.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/cache.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/cache_cli.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/changeset_transaction.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/changeset_v2.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/checkpoint_store.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/codex_hooks.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/codex_wrapper.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/__init__.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/_shared.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/bench.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/cache.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/changeset.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/claims.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/detect.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/doctor.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/edit.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/env_export.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/fast.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/file.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/file_read.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/gate.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/index.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/init.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/inspect.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/memory.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/nest.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/proposal.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/prototype.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/reconcile.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/run.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/scenarios/claims-gate.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/score_skill.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/status.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/test.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/test_run.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/token.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/commands/versions.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/component_manifest.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/delivery_auth.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/detect.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/dev_cli_contracts.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/doctor.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/dod.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/ecosystem.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/effect_transaction.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/evidence_ledger.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/execution_contract.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/fast_contracts.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/hardware.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/hbp.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/hub_adapter.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/init.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/intent.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/legacy_json_adapter.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/litert_cli.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/map_view.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/mapper.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/mapper_api.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/memory_migration.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/memory_store.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/mutation_dispatch.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/mutation_lifecycle.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/mutation_worker.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/observability.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/orchestrator/__init__.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/orchestrator/cost_governor.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/orchestrator/feature.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/orchestrator/multi_task.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/orientation_plan.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/pipeline_fixers.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/pipeline_input.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/pipeline_preparation.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/pipeline_state.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/pipeline_task_result.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/plan_compiler/authority.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/plan_compiler/canonical_hash.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/plan_compiler/compat_adapter.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/plan_compiler/compile_task_spec.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/plan_compiler/conformance.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/plan_compiler/effect_sink.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/plan_compiler/errors.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/plan_compiler/execution_contracts.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/plan_compiler/mapper_context.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/plan_compiler/models.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/plan_compiler/runtime_effect_sink.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/plan_discovery.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/precedent.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/prism_envelope.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/prism_receipts.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/prism_transaction.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/progressive_verify.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/prompt.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/prompt_envelope.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/provider_cache_receipt.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/py.typed +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/runtime_async.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/runtime_bridge.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/runtime_contracts.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/scratch/__init__.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/scratch/_pipeline_adapter.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/scratch/cli.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/scratch/codegen/__init__.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/scratch/codegen/go_gin.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/scratch/codegen/markdown_document.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/scratch/codegen/php_laravel.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/scratch/codegen/python_cst.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/scratch/codegen/python_fastapi.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/scratch/codegen/python_orm.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/scratch/codegen/python_pydantic.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/scratch/codegen/python_pytest.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/scratch/codegen/registry.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/scratch/codegen/rust_axum.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/scratch/codegen/types.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/scratch/codegen/typescript_next_page.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/scratch/codegen/typescript_next_route.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/scratch/executor.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/scratch/plan_schema.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/scratch/planner.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/scratch/recipes.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/scratch/skill_opt.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/scratch/stack_registry.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/skill_router.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/sprint_loader.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/stage_abi.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/stage_main.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/standalone_migration.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/store_adapter.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/task_context.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/task_operator.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/task_spec.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/SKILL.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/recipes/go-gin/admin-crud.yaml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/recipes/go-gin/auth-jwt.yaml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/recipes/go-gin/crud-resource.yaml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/recipes/php-laravel/admin-crud.yaml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/recipes/php-laravel/auth-jwt.yaml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/recipes/php-laravel/crud-resource.yaml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/recipes/php-vanilla/docs-marker.yaml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/recipes/py-fastapi/admin-crud.yaml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/recipes/py-fastapi/auth-jwt.yaml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/recipes/py-fastapi/background-worker.yaml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/recipes/py-fastapi/crud-resource.yaml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/recipes/py-fastapi/file-upload.yaml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/recipes/py-fastapi/oauth-integration.yaml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/recipes/py-fastapi/scheduled-job.yaml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/recipes/py-fastapi/websocket.yaml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/recipes/rust-axum/admin-crud.yaml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/recipes/rust-axum/auth-jwt.yaml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/recipes/rust-axum/crud-resource.yaml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/recipes/ts-nextjs/admin-crud.yaml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/recipes/ts-nextjs/auth-jwt.yaml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/recipes/ts-nextjs/crud-resource.yaml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/simplicio_prompt.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/bash-cli/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/bash-cli/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/bash-cli/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/bash-cli/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/bash-cli/tree/bin/app.sh +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/bash-cli/tree/test/app.bats +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/bash-cli/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/csharp-aspnet/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/csharp-aspnet/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/csharp-aspnet/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/csharp-aspnet/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/csharp-aspnet/tree/src/App.Api/App.Api.csproj +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/csharp-aspnet/tree/src/App.Api/Program.cs +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/csharp-aspnet/tree/tests/App.Tests/App.Tests.csproj +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/csharp-aspnet/tree/tests/App.Tests/HealthTests.cs +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/csharp-aspnet/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/csharp-blazor/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/csharp-blazor/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/csharp-blazor/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/csharp-blazor/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/App.Web.csproj +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Components/App.razor +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Components/Pages/Home.razor +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Program.cs +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/csharp-blazor/tree/tests/App.Tests/App.Tests.csproj +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/csharp-blazor/tree/tests/App.Tests/HealthTests.cs +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/csharp-blazor/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/dart-flutter/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/dart-flutter/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/dart-flutter/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/dart-flutter/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/dart-flutter/tree/lib/main.dart +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/dart-flutter/tree/pubspec.yaml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/dart-flutter/tree/test/widget_test.dart +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/dart-flutter/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/elixir-phoenix/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/elixir-phoenix/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/elixir-phoenix/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/elixir-phoenix/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/elixir-phoenix/tree/config/config.exs +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app/application.ex +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/controllers/health_controller.ex +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/endpoint.ex +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/router.ex +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/elixir-phoenix/tree/mix.exs +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/elixir-phoenix/tree/test/health_controller_test.exs +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/elixir-phoenix/tree/test/test_helper.exs +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/elixir-phoenix/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-cli/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-cli/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-cli/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-cli/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-cli/tree/cmd/root.go +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-cli/tree/cmd/root_test.go +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-cli/tree/go.mod +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-cli/tree/main.go +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-cli/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-echo/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-echo/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-echo/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-echo/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-echo/tree/cmd/server/main.go +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-echo/tree/go.mod +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-echo/tree/internal/http/router.go +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-echo/tree/internal/http/router_test.go +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-echo/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-gin/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-gin/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-gin/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-gin/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-gin/tree/cmd/server/main.go +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-gin/tree/go.mod +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-gin/tree/internal/http/router.go +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-gin/tree/internal/http/router_test.go +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/go-gin/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/java-spring/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/java-spring/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/java-spring/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/java-spring/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/java-spring/tree/build.gradle.kts +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/java-spring/tree/settings.gradle.kts +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/java-spring/tree/src/main/java/com/example/Application.java +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/java-spring/tree/src/main/java/com/example/HealthController.java +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/java-spring/tree/src/test/java/com/example/HealthControllerTest.java +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/java-spring/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/js-express/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/js-express/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/js-express/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/js-express/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/js-express/tree/package.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/js-express/tree/src/app.js +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/js-express/tree/src/server.js +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/js-express/tree/tests/health.test.js +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/js-express/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-android/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-android/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-android/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-android/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-android/tree/app/build.gradle.kts +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/AndroidManifest.xml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/java/com/example/app/MainActivity.kt +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/res/values/styles.xml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-android/tree/app/src/test/java/com/example/app/SmokeTest.kt +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-android/tree/build.gradle.kts +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-android/tree/settings.gradle.kts +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-android/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-ktor/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-ktor/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-ktor/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-ktor/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-ktor/tree/build.gradle.kts +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-ktor/tree/settings.gradle.kts +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-ktor/tree/src/main/kotlin/com/example/Application.kt +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-ktor/tree/src/test/kotlin/com/example/ApplicationTest.kt +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-ktor/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-spring/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-spring/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-spring/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-spring/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-spring/tree/build.gradle.kts +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-spring/tree/settings.gradle.kts +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-spring/tree/src/main/kotlin/com/example/Application.kt +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-spring/tree/src/main/kotlin/com/example/HealthController.kt +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-spring/tree/src/test/kotlin/com/example/HealthControllerTest.kt +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/kotlin-spring/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-laravel/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-laravel/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-laravel/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-laravel/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-laravel/tree/artisan +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-laravel/tree/bootstrap/app.php +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-laravel/tree/composer.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-laravel/tree/phpunit.xml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-laravel/tree/routes/api.php +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-laravel/tree/routes/console.php +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-laravel/tree/tests/Feature/HealthTest.php +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-laravel/tree/tests/TestCase.php +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-laravel/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-symfony/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-symfony/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-symfony/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-symfony/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-symfony/tree/composer.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-symfony/tree/src/Controller/HealthController.php +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-symfony/tree/tests/HealthControllerTest.php +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-symfony/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-vanilla/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-vanilla/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-vanilla/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-vanilla/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-vanilla/tree/composer.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-vanilla/tree/phpunit.xml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-vanilla/tree/src/Health.php +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-vanilla/tree/tests/HealthTest.php +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/php-vanilla/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-cli/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-cli/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-cli/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-cli/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-cli/tree/pyproject.toml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-cli/tree/src/app/__init__.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-cli/tree/src/app/cli.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-cli/tree/tests/test_cli.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-cli/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-django/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-django/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-django/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-django/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-django/tree/app/__init__.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-django/tree/app/apps.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-django/tree/app/tests.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-django/tree/app/views.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-django/tree/config/__init__.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-django/tree/config/asgi.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-django/tree/config/settings.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-django/tree/config/urls.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-django/tree/config/wsgi.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-django/tree/manage.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-django/tree/pyproject.toml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-django/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-fastapi/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-fastapi/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-fastapi/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-fastapi/tree/.gitignore +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-fastapi/tree/README.template.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-fastapi/tree/pyproject.toml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-fastapi/tree/ruff.toml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-fastapi/tree/src/api/__init__.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-fastapi/tree/src/main.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-fastapi/tree/tests/test_health.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-fastapi/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-flask/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-flask/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-flask/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-flask/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-flask/tree/pyproject.toml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-flask/tree/ruff.toml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-flask/tree/src/app.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-flask/tree/tests/test_health.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/py-flask/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/react-vite/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/react-vite/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/react-vite/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/react-vite/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/react-vite/tree/index.html +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/react-vite/tree/package.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/react-vite/tree/src/App.test.tsx +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/react-vite/tree/src/App.tsx +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/react-vite/tree/src/main.tsx +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/react-vite/tree/tsconfig.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/react-vite/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ruby-rails/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ruby-rails/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ruby-rails/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ruby-rails/tree/Gemfile +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ruby-rails/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ruby-rails/tree/app/controllers/health_controller.rb +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ruby-rails/tree/bin/rails +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ruby-rails/tree/config/application.rb +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ruby-rails/tree/config/boot.rb +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ruby-rails/tree/config/routes.rb +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ruby-rails/tree/test/controllers/health_controller_test.rb +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ruby-rails/tree/test/test_helper.rb +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ruby-rails/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/rust-axum/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/rust-axum/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/rust-axum/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/rust-axum/tree/Cargo.toml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/rust-axum/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/rust-axum/tree/src/main.rs +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/rust-axum/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/rust-cli/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/rust-cli/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/rust-cli/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/rust-cli/tree/Cargo.toml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/rust-cli/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/rust-cli/tree/src/main.rs +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/rust-cli/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/rust-leptos/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/rust-leptos/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/rust-leptos/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/rust-leptos/tree/Cargo.toml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/rust-leptos/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/rust-leptos/tree/src/main.rs +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/rust-leptos/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/swift-ios/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/swift-ios/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/swift-ios/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/swift-ios/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/swift-ios/tree/Sources/App/App.swift +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/swift-ios/tree/Sources/App/ContentView.swift +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/swift-ios/tree/Tests/AppTests/AppTests.swift +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/swift-ios/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/swift-vapor/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/swift-vapor/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/swift-vapor/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/swift-vapor/tree/Package.swift +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/swift-vapor/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/swift-vapor/tree/Sources/App/main.swift +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/swift-vapor/tree/Tests/AppTests/HealthTests.swift +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/swift-vapor/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-nestjs/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-nestjs/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-nestjs/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-nestjs/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-nestjs/tree/package.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-nestjs/tree/src/app.controller.spec.ts +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-nestjs/tree/src/app.controller.ts +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-nestjs/tree/src/app.module.ts +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-nestjs/tree/src/main.ts +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-nestjs/tree/tsconfig.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-nestjs/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-nextjs/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-nextjs/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-nextjs/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-nextjs/tree/.eslintrc.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-nextjs/tree/.gitignore +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-nextjs/tree/next.config.mjs +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-nextjs/tree/package.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-nextjs/tree/pnpm-workspace.yaml +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-nextjs/tree/src/app/layout.tsx +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-nextjs/tree/src/app/page.tsx +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-nextjs/tree/tsconfig.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-nextjs/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-remix/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-remix/practices.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-remix/stack.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-remix/tree/README.md +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-remix/tree/app/root.tsx +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-remix/tree/app/routes/_index.tsx +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-remix/tree/app/routes/health.test.ts +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-remix/tree/app/routes/health.ts +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-remix/tree/package.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-remix/tree/tsconfig.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/stacks/ts-remix/verify.json +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/templates/userpromptsubmit-hook.sh +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/token_primitives.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/toon_codec.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/transaction.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/utils/__init__.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/utils/cache.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/utils/fs.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/utils/http_client.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/utils/serialization.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio/write_set_lock.py +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio_cli.egg-info/dependency_links.txt +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/simplicio_cli.egg-info/entry_points.txt +0 -0
- {simplicio_cli-0.18.9 → simplicio_cli-0.18.11}/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.18.
|
|
3
|
+
Version: 0.18.11
|
|
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.27,>=0.26.
|
|
31
|
+
Requires-Dist: simplicio-mapper<0.27,>=0.26.20
|
|
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
|
|
@@ -40,7 +40,7 @@ Requires-Dist: sentence-transformers>=5.6.0; extra == "ml"
|
|
|
40
40
|
Provides-Extra: bench
|
|
41
41
|
Requires-Dist: fpdf2>=2.8.7; extra == "bench"
|
|
42
42
|
Provides-Extra: fast
|
|
43
|
-
Requires-Dist: simplicio-fast<3,>=2.0.
|
|
43
|
+
Requires-Dist: simplicio-fast<3,>=2.0.28; python_version >= "3.11" and extra == "fast"
|
|
44
44
|
Provides-Extra: performance
|
|
45
45
|
Requires-Dist: uvloop>=0.21.0; sys_platform != "win32" and extra == "performance"
|
|
46
46
|
Provides-Extra: all
|
|
@@ -94,6 +94,10 @@ Turn a one-line task into a verified code change: mapper context, six-layer cont
|
|
|
94
94
|
|
|
95
95
|
> **Deterministic-only boundary:** `simplicio-py` never sends prompts or completions to a local model, OpenRouter, Anthropic, OpenAI-compatible endpoint, or CLI provider. It does not load or download model weights. Provider execution has been removed; the adapter only performs local contracts, edits, tests, and evidence.
|
|
96
96
|
|
|
97
|
+
> **Operational boundary:** no local or remote LLM is required. The supported mutation inputs are an explicit mechanical-edit plan, a Fast changeset, or a Runtime EffectTransaction proposal. The CLI validates, applies, tests, and records evidence.
|
|
98
|
+
>
|
|
99
|
+
> The provider/model benchmark and setup material later in this file is historical evidence only; those routes are no longer supported by the package.
|
|
100
|
+
|
|
97
101
|
## Project DNA
|
|
98
102
|
|
|
99
103
|
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.
|
|
@@ -192,7 +196,7 @@ flowchart LR
|
|
|
192
196
|
|
|
193
197
|
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.
|
|
194
198
|
|
|
195
|
-
**A focused execution operator for turning decided engineering tasks into verified changes
|
|
199
|
+
**A focused execution operator for turning decided engineering tasks into verified deterministic changes.**
|
|
196
200
|
|
|
197
201
|
[](https://pypi.org/project/simplicio-cli/)
|
|
198
202
|
[](https://pypi.org/project/simplicio-cli/)
|
|
@@ -201,9 +205,7 @@ The section below restores the project-specific README material that existed bef
|
|
|
201
205
|
[](output/imagegen/simplicio-cli-readme-hero.png)
|
|
202
206
|
|
|
203
207
|
> *"hide the Delete button for non-admins"* → diff + test + applied + verified.
|
|
204
|
-
> **
|
|
205
|
-
> bring your own key for any provider: OpenRouter, OpenAI, Anthropic, GLM,
|
|
206
|
-
> DeepSeek, Ollama.
|
|
208
|
+
> **No model or API key is required by the deterministic executor.** External coordinators may provide an explicit plan or changeset.
|
|
207
209
|
|
|
208
210
|
```bash
|
|
209
211
|
pip install simplicio-cli
|
|
@@ -707,7 +709,7 @@ simplicio-py task "hide Delete button for non-admins" \
|
|
|
707
709
|
- build passes"
|
|
708
710
|
```
|
|
709
711
|
|
|
710
|
-
Provider
|
|
712
|
+
Provider configuration is legacy documentation; the package no longer executes model providers.
|
|
711
713
|
|
|
712
714
|
---
|
|
713
715
|
|
|
@@ -820,7 +822,7 @@ the machine-readable reason `LOCAL_INFERENCE_PAUSED`; it does not read a
|
|
|
820
822
|
cached completion, load a model, download weights, start a process, or open a
|
|
821
823
|
socket. Existing GGUF artifacts are preserved.
|
|
822
824
|
|
|
823
|
-
Use an explicit
|
|
825
|
+
Use an explicit mechanical-edit plan, changeset, or Runtime Effect API for normal operation. To intentionally enable
|
|
824
826
|
the local route for a process, set `SIMPLICIO_LOCAL_INFERENCE=enabled` first.
|
|
825
827
|
The in-process [`llama-cpp-python`](https://github.com/abetlen/llama-cpp-python)
|
|
826
828
|
backend then uses `openbmb/minicpm5:latest`, backed by
|
|
@@ -34,6 +34,10 @@ Turn a one-line task into a verified code change: mapper context, six-layer cont
|
|
|
34
34
|
|
|
35
35
|
> **Deterministic-only boundary:** `simplicio-py` never sends prompts or completions to a local model, OpenRouter, Anthropic, OpenAI-compatible endpoint, or CLI provider. It does not load or download model weights. Provider execution has been removed; the adapter only performs local contracts, edits, tests, and evidence.
|
|
36
36
|
|
|
37
|
+
> **Operational boundary:** no local or remote LLM is required. The supported mutation inputs are an explicit mechanical-edit plan, a Fast changeset, or a Runtime EffectTransaction proposal. The CLI validates, applies, tests, and records evidence.
|
|
38
|
+
>
|
|
39
|
+
> The provider/model benchmark and setup material later in this file is historical evidence only; those routes are no longer supported by the package.
|
|
40
|
+
|
|
37
41
|
## Project DNA
|
|
38
42
|
|
|
39
43
|
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.
|
|
@@ -132,7 +136,7 @@ flowchart LR
|
|
|
132
136
|
|
|
133
137
|
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.
|
|
134
138
|
|
|
135
|
-
**A focused execution operator for turning decided engineering tasks into verified changes
|
|
139
|
+
**A focused execution operator for turning decided engineering tasks into verified deterministic changes.**
|
|
136
140
|
|
|
137
141
|
[](https://pypi.org/project/simplicio-cli/)
|
|
138
142
|
[](https://pypi.org/project/simplicio-cli/)
|
|
@@ -141,9 +145,7 @@ The section below restores the project-specific README material that existed bef
|
|
|
141
145
|
[](output/imagegen/simplicio-cli-readme-hero.png)
|
|
142
146
|
|
|
143
147
|
> *"hide the Delete button for non-admins"* → diff + test + applied + verified.
|
|
144
|
-
> **
|
|
145
|
-
> bring your own key for any provider: OpenRouter, OpenAI, Anthropic, GLM,
|
|
146
|
-
> DeepSeek, Ollama.
|
|
148
|
+
> **No model or API key is required by the deterministic executor.** External coordinators may provide an explicit plan or changeset.
|
|
147
149
|
|
|
148
150
|
```bash
|
|
149
151
|
pip install simplicio-cli
|
|
@@ -647,7 +649,7 @@ simplicio-py task "hide Delete button for non-admins" \
|
|
|
647
649
|
- build passes"
|
|
648
650
|
```
|
|
649
651
|
|
|
650
|
-
Provider
|
|
652
|
+
Provider configuration is legacy documentation; the package no longer executes model providers.
|
|
651
653
|
|
|
652
654
|
---
|
|
653
655
|
|
|
@@ -760,7 +762,7 @@ the machine-readable reason `LOCAL_INFERENCE_PAUSED`; it does not read a
|
|
|
760
762
|
cached completion, load a model, download weights, start a process, or open a
|
|
761
763
|
socket. Existing GGUF artifacts are preserved.
|
|
762
764
|
|
|
763
|
-
Use an explicit
|
|
765
|
+
Use an explicit mechanical-edit plan, changeset, or Runtime Effect API for normal operation. To intentionally enable
|
|
764
766
|
the local route for a process, set `SIMPLICIO_LOCAL_INFERENCE=enabled` first.
|
|
765
767
|
The in-process [`llama-cpp-python`](https://github.com/abetlen/llama-cpp-python)
|
|
766
768
|
backend then uses `openbmb/minicpm5:latest`, backed by
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "simplicio-cli"
|
|
3
|
-
version = "0.18.
|
|
3
|
+
version = "0.18.11"
|
|
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.
|
|
48
|
+
"simplicio-mapper>=0.26.20,<0.27",
|
|
49
49
|
"simplicio-prompt>=1.14.1",
|
|
50
50
|
"httpx>=0.28.1",
|
|
51
51
|
"orjson>=3.11.9",
|
|
@@ -62,7 +62,7 @@ ml = ["sentence-transformers>=5.6.0"]
|
|
|
62
62
|
bench = ["fpdf2>=2.8.7"]
|
|
63
63
|
# Optional canonical Fast adapter. It remains outside the base install until
|
|
64
64
|
# its release train is formally promoted.
|
|
65
|
-
fast = ["simplicio-fast>=2.0.
|
|
65
|
+
fast = ["simplicio-fast>=2.0.28,<3; python_version >= '3.11'"]
|
|
66
66
|
# Opt-in faster asyncio event loop for the structured-concurrency runtime
|
|
67
67
|
# (simplicio.runtime_async, issue #212). Never required: `install_uvloop()`
|
|
68
68
|
# no-ops on Windows or when this extra is absent, falling back to stdlib
|
|
@@ -269,4 +269,3 @@ module = [
|
|
|
269
269
|
"simplicio.scratch.cli",
|
|
270
270
|
]
|
|
271
271
|
ignore_errors = true
|
|
272
|
-
|
|
@@ -344,6 +344,11 @@ def _build_parser() -> argparse.ArgumentParser:
|
|
|
344
344
|
"--batch-path",
|
|
345
345
|
help="persist the frozen multi-task batch at this path (explicitly mutating)",
|
|
346
346
|
)
|
|
347
|
+
p_intake.add_argument(
|
|
348
|
+
"--print-contract-example",
|
|
349
|
+
action="store_true",
|
|
350
|
+
help="print a minimal simplicio.task-spec/v2 stdin example and exit",
|
|
351
|
+
)
|
|
347
352
|
p_intake.add_argument("--json", action="store_true", help="emit stable structured JSON")
|
|
348
353
|
|
|
349
354
|
p_doctor = sub.add_parser(
|
|
@@ -635,14 +640,22 @@ def _build_parser() -> argparse.ArgumentParser:
|
|
|
635
640
|
p_runtime_capabilities.add_argument("--coordinator-kind")
|
|
636
641
|
p_runtime_capabilities.add_argument("--coordinator-id")
|
|
637
642
|
p_runtime_capabilities.add_argument("--json", action="store_true")
|
|
643
|
+
p_runtime_acquire = runtime_sub.add_parser(
|
|
644
|
+
"acquire-coordinator-context",
|
|
645
|
+
help="acquire or diagnose the integrated coordinator tuple without fabricating a lease",
|
|
646
|
+
)
|
|
647
|
+
p_runtime_acquire.add_argument("--root", default=".")
|
|
648
|
+
p_runtime_acquire.add_argument("--context-snapshot", help="canonical Mapper ContextSnapshot JSON path")
|
|
649
|
+
p_runtime_acquire.add_argument(
|
|
650
|
+
"--execution-context", help="Mapper execution-context/v1 provenance JSON path"
|
|
651
|
+
)
|
|
652
|
+
p_runtime_acquire.add_argument("--json", action="store_true")
|
|
638
653
|
|
|
639
654
|
p_prototype = sub.add_parser(
|
|
640
655
|
"prototype", help="Prototype-First plan, scaffold, validate and promotion gate"
|
|
641
656
|
)
|
|
642
657
|
prototype_sub = p_prototype.add_subparsers(dest="prototype_cmd", required=True)
|
|
643
|
-
p_proto_plan = prototype_sub.add_parser(
|
|
644
|
-
"plan", help="compile and freeze a prototype plan"
|
|
645
|
-
)
|
|
658
|
+
p_proto_plan = prototype_sub.add_parser("plan", help="compile and freeze a prototype plan")
|
|
646
659
|
p_proto_plan.add_argument("--input", help="Loop/Mapper prototype-plan JSON")
|
|
647
660
|
p_proto_plan.add_argument("--goal", default="")
|
|
648
661
|
p_proto_plan.add_argument(
|
|
@@ -10,14 +10,43 @@ from urllib.error import HTTPError, URLError
|
|
|
10
10
|
from urllib.parse import urlparse
|
|
11
11
|
from urllib.request import Request, urlopen
|
|
12
12
|
|
|
13
|
-
from ..execution_contract import
|
|
13
|
+
from ..execution_contract import (
|
|
14
|
+
SCHEMA as EXECUTION_CONTRACT_SCHEMA,
|
|
15
|
+
)
|
|
16
|
+
from ..execution_contract import (
|
|
17
|
+
ContractCompilationError,
|
|
18
|
+
ExecutionBlockedError,
|
|
19
|
+
compile_execution_contracts,
|
|
20
|
+
)
|
|
14
21
|
from ..orchestrator.multi_task import BatchBuildError, TaskBatch, build_batch_preview
|
|
15
22
|
from ..plan_discovery import PlanDiscoveryError, build_plan_preview
|
|
16
|
-
from ..task_spec import SourceRef, TaskSpecValidationError, parse_task_document
|
|
23
|
+
from ..task_spec import TASK_SPEC_SCHEMA, SourceRef, TaskSpecValidationError, parse_task_document
|
|
17
24
|
|
|
18
25
|
CLI_PROG = "simplicio-py"
|
|
19
26
|
_URL_TIMEOUT_SECONDS = 10
|
|
20
27
|
_MAX_URL_BYTES = 2 * 1024 * 1024
|
|
28
|
+
CONTRACT_EXAMPLE = """System: Example
|
|
29
|
+
Feature: Typed contract intake
|
|
30
|
+
Tipo: Evolucao
|
|
31
|
+
|
|
32
|
+
AS A operator,
|
|
33
|
+
I WANT a valid simplicio.task-spec/v2 card,
|
|
34
|
+
SO THAT unattended intake can compile an execution contract.
|
|
35
|
+
|
|
36
|
+
## Acceptance criteria
|
|
37
|
+
|
|
38
|
+
Scenario 1: typed card compiles
|
|
39
|
+
Given a TaskSpec v2 card with system, feature, type, narrative, and one AC
|
|
40
|
+
When intake runs with --contract --execution-mode --json
|
|
41
|
+
Then the result schema is simplicio.intake-result/v1
|
|
42
|
+
"""
|
|
43
|
+
ACCEPTED_SYNTAX = [
|
|
44
|
+
"System: / Sistema:",
|
|
45
|
+
"Feature: / Funcionalidade:",
|
|
46
|
+
"Tipo: / Task type:",
|
|
47
|
+
"AS A / I WANT / SO THAT or COMO / QUERO / PARA",
|
|
48
|
+
"Acceptance criteria section with Given/When/Then scenarios",
|
|
49
|
+
]
|
|
21
50
|
|
|
22
51
|
|
|
23
52
|
def _decode(raw: bytes) -> tuple[str, str]:
|
|
@@ -73,27 +102,58 @@ def _read_input(a: argparse.Namespace) -> tuple[str, SourceRef]:
|
|
|
73
102
|
return text, SourceRef(kind="stdin", locator=a.source_url, encoding=encoding)
|
|
74
103
|
|
|
75
104
|
|
|
105
|
+
def _contract_guidance() -> dict[str, object]:
|
|
106
|
+
return {
|
|
107
|
+
"required_schema": TASK_SPEC_SCHEMA,
|
|
108
|
+
"contract_schema": EXECUTION_CONTRACT_SCHEMA,
|
|
109
|
+
"accepted_syntax": list(ACCEPTED_SYNTAX),
|
|
110
|
+
"example": CONTRACT_EXAMPLE,
|
|
111
|
+
"print_contract_example": f"{CLI_PROG} intake --print-contract-example",
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
def _emit_rejection(a: argparse.Namespace, schema: str, diagnostics: list[str]) -> None:
|
|
116
|
+
if a.json:
|
|
117
|
+
payload = {
|
|
118
|
+
"schema": schema,
|
|
119
|
+
"valid": False,
|
|
120
|
+
"errors": list(diagnostics),
|
|
121
|
+
**_contract_guidance(),
|
|
122
|
+
}
|
|
123
|
+
print(json.dumps(payload, ensure_ascii=False, sort_keys=True))
|
|
124
|
+
return
|
|
125
|
+
for diagnostic in diagnostics:
|
|
126
|
+
print(f"{CLI_PROG} intake: {diagnostic}", file=sys.stderr)
|
|
127
|
+
print(
|
|
128
|
+
f"{CLI_PROG} intake: required schema is {TASK_SPEC_SCHEMA} "
|
|
129
|
+
f"(compile with {EXECUTION_CONTRACT_SCHEMA}); "
|
|
130
|
+
f"run `{CLI_PROG} intake --print-contract-example`",
|
|
131
|
+
file=sys.stderr,
|
|
132
|
+
)
|
|
133
|
+
|
|
134
|
+
|
|
76
135
|
def run(a: argparse.Namespace) -> int:
|
|
77
|
-
|
|
78
|
-
text, source = _read_input(a)
|
|
79
|
-
document = parse_task_document(text, source=source)
|
|
80
|
-
except (TaskSpecValidationError, ContractCompilationError) as exc:
|
|
81
|
-
diagnostics = getattr(exc, "diagnostics", None) or getattr(exc, "errors", None) or [str(exc)]
|
|
136
|
+
if getattr(a, "print_contract_example", False):
|
|
82
137
|
if a.json:
|
|
83
138
|
print(
|
|
84
139
|
json.dumps(
|
|
85
140
|
{
|
|
86
|
-
"schema": "simplicio.
|
|
87
|
-
|
|
88
|
-
"errors": list(diagnostics),
|
|
141
|
+
"schema": "simplicio.intake-contract-example/v1",
|
|
142
|
+
**_contract_guidance(),
|
|
89
143
|
},
|
|
90
144
|
ensure_ascii=False,
|
|
91
145
|
sort_keys=True,
|
|
92
146
|
)
|
|
93
147
|
)
|
|
94
148
|
else:
|
|
95
|
-
|
|
96
|
-
|
|
149
|
+
print(CONTRACT_EXAMPLE, end="")
|
|
150
|
+
return 0
|
|
151
|
+
try:
|
|
152
|
+
text, source = _read_input(a)
|
|
153
|
+
document = parse_task_document(text, source=source)
|
|
154
|
+
except (TaskSpecValidationError, ContractCompilationError) as exc:
|
|
155
|
+
diagnostics = getattr(exc, "diagnostics", None) or getattr(exc, "errors", None) or [str(exc)]
|
|
156
|
+
_emit_rejection(a, "simplicio.task-spec-validation/v1", list(diagnostics))
|
|
97
157
|
return 2
|
|
98
158
|
|
|
99
159
|
payload = document.to_dict()
|
|
@@ -114,41 +174,18 @@ def run(a: argparse.Namespace) -> int:
|
|
|
114
174
|
document, execution_mode=getattr(a, "execution_mode", False)
|
|
115
175
|
)
|
|
116
176
|
batch_preview = build_batch_preview(document)
|
|
177
|
+
except ExecutionBlockedError as exc:
|
|
178
|
+
_emit_rejection(
|
|
179
|
+
a,
|
|
180
|
+
"simplicio.execution-contract-validation/v1",
|
|
181
|
+
list(exc.gate_ids) or [str(exc)],
|
|
182
|
+
)
|
|
183
|
+
return 2
|
|
117
184
|
except ContractCompilationError as exc:
|
|
118
|
-
|
|
119
|
-
if a.json:
|
|
120
|
-
print(
|
|
121
|
-
json.dumps(
|
|
122
|
-
{
|
|
123
|
-
"schema": "simplicio.execution-contract-validation/v1",
|
|
124
|
-
"valid": False,
|
|
125
|
-
"errors": diagnostics,
|
|
126
|
-
},
|
|
127
|
-
ensure_ascii=False,
|
|
128
|
-
sort_keys=True,
|
|
129
|
-
)
|
|
130
|
-
)
|
|
131
|
-
else:
|
|
132
|
-
for diagnostic in diagnostics:
|
|
133
|
-
print(f"{CLI_PROG} intake: {diagnostic}", file=sys.stderr)
|
|
185
|
+
_emit_rejection(a, "simplicio.execution-contract-validation/v1", list(exc.errors))
|
|
134
186
|
return 2
|
|
135
187
|
except BatchBuildError as exc:
|
|
136
|
-
|
|
137
|
-
if a.json:
|
|
138
|
-
print(
|
|
139
|
-
json.dumps(
|
|
140
|
-
{
|
|
141
|
-
"schema": "simplicio.task-batch-validation/v1",
|
|
142
|
-
"valid": False,
|
|
143
|
-
"errors": diagnostics,
|
|
144
|
-
},
|
|
145
|
-
ensure_ascii=False,
|
|
146
|
-
sort_keys=True,
|
|
147
|
-
)
|
|
148
|
-
)
|
|
149
|
-
else:
|
|
150
|
-
for diagnostic in diagnostics:
|
|
151
|
-
print(f"{CLI_PROG} intake: {diagnostic}", file=sys.stderr)
|
|
188
|
+
_emit_rejection(a, "simplicio.task-batch-validation/v1", list(exc.diagnostics))
|
|
152
189
|
return 2
|
|
153
190
|
contracts_payload = [contract.to_dict() for contract in contracts]
|
|
154
191
|
if getattr(a, "batch_path", None):
|
|
@@ -58,6 +58,20 @@ def run(a: argparse.Namespace) -> int:
|
|
|
58
58
|
json.dumps(payload, sort_keys=True) if a.json else json.dumps(payload, indent=2, sort_keys=True)
|
|
59
59
|
)
|
|
60
60
|
return 0
|
|
61
|
+
if a.runtime_cmd == "acquire-coordinator-context":
|
|
62
|
+
from ..execution_mode import acquire_coordinator_context
|
|
63
|
+
|
|
64
|
+
payload = acquire_coordinator_context(
|
|
65
|
+
root=getattr(a, "root", "."),
|
|
66
|
+
context_snapshot_path=getattr(a, "context_snapshot", None),
|
|
67
|
+
execution_context_path=getattr(a, "execution_context", None),
|
|
68
|
+
)
|
|
69
|
+
if a.json:
|
|
70
|
+
print(json.dumps(payload, sort_keys=True))
|
|
71
|
+
else:
|
|
72
|
+
print(json.dumps(payload, indent=2, sort_keys=True))
|
|
73
|
+
return 0 if payload.get("status") == "ready_for_runtime_lease" else 2
|
|
74
|
+
|
|
61
75
|
if a.runtime_cmd == "doctor":
|
|
62
76
|
payload = doctor_contract(a.root)
|
|
63
77
|
if a.json:
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
"""``simplicio-py smoke`` —
|
|
1
|
+
"""``simplicio-py smoke`` — one proof call: connect+generate.
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
command reports that policy without making a network, subprocess, or model
|
|
5
|
-
load attempt.
|
|
3
|
+
Extracted from `cli.py`'s `main()` body (issue #103); behavior unchanged.
|
|
6
4
|
"""
|
|
7
5
|
|
|
8
6
|
from __future__ import annotations
|
|
@@ -12,11 +10,11 @@ import json
|
|
|
12
10
|
|
|
13
11
|
|
|
14
12
|
def run(a: argparse.Namespace) -> int:
|
|
15
|
-
from ..providers import info
|
|
13
|
+
from ..providers import generate, info
|
|
16
14
|
from ..runtime_contracts import smoke_contract
|
|
17
15
|
|
|
18
16
|
provider = info()
|
|
19
|
-
out = "
|
|
17
|
+
out = generate("Reply exactly: OK simplicio connected.")
|
|
20
18
|
if a.json:
|
|
21
19
|
print(json.dumps(smoke_contract(provider=provider, reply=out, root=a.root), sort_keys=True))
|
|
22
20
|
else:
|
|
@@ -30,9 +30,9 @@ def _emit_blocked_diagnostics(result: dict) -> None:
|
|
|
30
30
|
|
|
31
31
|
def _run_verification_only(a: argparse.Namespace) -> int:
|
|
32
32
|
from ..pipeline_stages import _configured_test_command, _verification_timeout_seconds
|
|
33
|
-
from ..runtime_env import prepare_project_command
|
|
33
|
+
from ..runtime_env import prepare_project_command, project_subprocess_env
|
|
34
34
|
|
|
35
|
-
command, configuration_error = _configured_test_command()
|
|
35
|
+
command, configuration_error = _configured_test_command(getattr(a, "root", None))
|
|
36
36
|
if configuration_error:
|
|
37
37
|
payload = {
|
|
38
38
|
"schema": "simplicio.dev-cli.verification-only/v1",
|
|
@@ -70,6 +70,7 @@ def _run_verification_only(a: argparse.Namespace) -> int:
|
|
|
70
70
|
text=True,
|
|
71
71
|
timeout=_verification_timeout_seconds(),
|
|
72
72
|
check=False,
|
|
73
|
+
env=project_subprocess_env(a.root),
|
|
73
74
|
)
|
|
74
75
|
exit_code = completed.returncode
|
|
75
76
|
stdout_tail = completed.stdout[-2000:]
|
|
@@ -188,6 +189,7 @@ def run(a: argparse.Namespace) -> int:
|
|
|
188
189
|
)
|
|
189
190
|
if a.json:
|
|
190
191
|
print(json.dumps(result, sort_keys=True))
|
|
192
|
+
_emit_blocked_diagnostics(result)
|
|
191
193
|
else:
|
|
192
194
|
status = (
|
|
193
195
|
"BLOCKED" if result.get("status") == "blocked" else ("DRY-RUN" if a.dry_run_task else "DONE")
|
|
@@ -22,6 +22,15 @@ from .standalone_migration import StandalonePolicy, effect_unknown_pending, stan
|
|
|
22
22
|
ExecutionMode = Literal["auto", "integrated", "standalone"]
|
|
23
23
|
RUNTIME_EFFECT_CAPABILITY = "simplicio.effect-transaction/v1"
|
|
24
24
|
MAPPER_CONTEXT_SCHEMA = MAPPER_CONTEXT_SNAPSHOT_SCHEMA
|
|
25
|
+
COORDINATOR_CONTEXT_SCHEMA = "simplicio.dev-cli.coordinator-context/v1"
|
|
26
|
+
ACQUIRE_COORDINATOR_CONTEXT_COMMAND = "simplicio-py runtime acquire-coordinator-context --json"
|
|
27
|
+
COORDINATOR_CONTEXT_FIELDS = ("attempt_id", "lease_id", "fencing_token", "context_handle")
|
|
28
|
+
COORDINATOR_CONTEXT_LIFECYCLE = (
|
|
29
|
+
"acquire-coordinator-context",
|
|
30
|
+
"proposal --mode integrated",
|
|
31
|
+
"runtime effect authorize",
|
|
32
|
+
"mutate only with a Runtime lease",
|
|
33
|
+
)
|
|
25
34
|
|
|
26
35
|
|
|
27
36
|
@dataclass(frozen=True)
|
|
@@ -207,7 +216,8 @@ def _attempt_context(
|
|
|
207
216
|
if not all(value and value.strip() for value in values):
|
|
208
217
|
raise ExecutionInputError(
|
|
209
218
|
"COORDINATOR_CONTEXT_REQUIRED",
|
|
210
|
-
"all coordinator attempt fields are required: attempt, lease, fence, and context handle"
|
|
219
|
+
"all coordinator attempt fields are required: attempt, lease, fence, and context handle; "
|
|
220
|
+
f"run `{ACQUIRE_COORDINATOR_CONTEXT_COMMAND}`",
|
|
211
221
|
)
|
|
212
222
|
return AttemptContext(*cast(tuple[str, str, str, str], values))
|
|
213
223
|
|
|
@@ -351,12 +361,106 @@ def require_coordinator_attempt(
|
|
|
351
361
|
return replace(
|
|
352
362
|
profile,
|
|
353
363
|
effective_mode="blocked",
|
|
354
|
-
coordinator={
|
|
364
|
+
coordinator={
|
|
365
|
+
**profile.coordinator,
|
|
366
|
+
"attempt_ready": False,
|
|
367
|
+
"acquisition_command": ACQUIRE_COORDINATOR_CONTEXT_COMMAND,
|
|
368
|
+
"lifecycle": list(COORDINATOR_CONTEXT_LIFECYCLE),
|
|
369
|
+
},
|
|
355
370
|
default_eligible=False,
|
|
356
371
|
reason_code="COORDINATOR_CONTEXT_REQUIRED",
|
|
357
372
|
)
|
|
358
373
|
|
|
359
374
|
|
|
375
|
+
def acquire_coordinator_context(
|
|
376
|
+
*,
|
|
377
|
+
root: str | os.PathLike[str] = ".",
|
|
378
|
+
context_snapshot: dict[str, Any] | None = None,
|
|
379
|
+
execution_context: dict[str, Any] | None = None,
|
|
380
|
+
context_snapshot_path: str | os.PathLike[str] | None = None,
|
|
381
|
+
execution_context_path: str | os.PathLike[str] | None = None,
|
|
382
|
+
runtime_handshake: dict[str, Any] | None = None,
|
|
383
|
+
) -> dict[str, Any]:
|
|
384
|
+
"""Documented local path to acquire the integrated coordinator tuple.
|
|
385
|
+
|
|
386
|
+
Mapper artifacts may yield a canonical ``context_handle``. Attempt, lease,
|
|
387
|
+
and fencing token remain Runtime-issued; this command never fabricates
|
|
388
|
+
those protected fields.
|
|
389
|
+
"""
|
|
390
|
+
snapshot = (
|
|
391
|
+
context_snapshot
|
|
392
|
+
if context_snapshot is not None
|
|
393
|
+
else _load_context_snapshot(root, context_snapshot_path)
|
|
394
|
+
)
|
|
395
|
+
exec_ctx = (
|
|
396
|
+
execution_context
|
|
397
|
+
if execution_context is not None
|
|
398
|
+
else _load_execution_context(root, execution_context_path)
|
|
399
|
+
)
|
|
400
|
+
handle = _derived_context_handle(snapshot, exec_ctx)
|
|
401
|
+
from .runtime_contracts import runtime_verify_contract
|
|
402
|
+
|
|
403
|
+
handshake = runtime_handshake if runtime_handshake is not None else runtime_verify_contract()
|
|
404
|
+
runtime_ready = bool(isinstance(handshake, dict) and handshake.get("verified"))
|
|
405
|
+
payload: dict[str, Any] = {
|
|
406
|
+
"schema": COORDINATOR_CONTEXT_SCHEMA,
|
|
407
|
+
"status": "blocked",
|
|
408
|
+
"reason_code": "COORDINATOR_CONTEXT_REQUIRED",
|
|
409
|
+
"required_fields": list(COORDINATOR_CONTEXT_FIELDS),
|
|
410
|
+
"lifecycle": list(COORDINATOR_CONTEXT_LIFECYCLE),
|
|
411
|
+
"acquisition_command": ACQUIRE_COORDINATOR_CONTEXT_COMMAND,
|
|
412
|
+
"next_command": (
|
|
413
|
+
"simplicio-py proposal --mode integrated "
|
|
414
|
+
"--attempt-id <attempt_id> --lease-id <lease_id> "
|
|
415
|
+
"--fencing-token <fencing_token> --context-handle <context_handle>"
|
|
416
|
+
),
|
|
417
|
+
"context_handle": handle,
|
|
418
|
+
"attempt_id": None,
|
|
419
|
+
"lease_id": None,
|
|
420
|
+
"fencing_token": None,
|
|
421
|
+
"mutation_authorized": False,
|
|
422
|
+
"runtime": {
|
|
423
|
+
"verified": runtime_ready,
|
|
424
|
+
"reason": handshake.get("reason") if isinstance(handshake, dict) else "RUNTIME_HANDSHAKE_INVALID",
|
|
425
|
+
},
|
|
426
|
+
"mapper": {
|
|
427
|
+
"snapshot_present": snapshot is not None,
|
|
428
|
+
"execution_context_present": exec_ctx is not None,
|
|
429
|
+
},
|
|
430
|
+
}
|
|
431
|
+
if handle and runtime_ready:
|
|
432
|
+
payload["status"] = "ready_for_runtime_lease"
|
|
433
|
+
payload["reason_code"] = "RUNTIME_LEASE_REQUIRED"
|
|
434
|
+
payload["next_command"] = (
|
|
435
|
+
f"simplicio effect authorize --json --context-handle {handle} && "
|
|
436
|
+
f"{ACQUIRE_COORDINATOR_CONTEXT_COMMAND} --context-snapshot "
|
|
437
|
+
"<snapshot> --execution-context <execution-context>"
|
|
438
|
+
)
|
|
439
|
+
elif handle:
|
|
440
|
+
payload["reason_code"] = "RUNTIME_LEASE_UNAVAILABLE"
|
|
441
|
+
payload["next_command"] = (
|
|
442
|
+
f"{ACQUIRE_COORDINATOR_CONTEXT_COMMAND} --context-snapshot <snapshot> "
|
|
443
|
+
"--execution-context <execution-context>"
|
|
444
|
+
)
|
|
445
|
+
return payload
|
|
446
|
+
|
|
447
|
+
|
|
448
|
+
def _derived_context_handle(
|
|
449
|
+
snapshot: dict[str, Any] | None, execution_context: dict[str, Any] | None
|
|
450
|
+
) -> str | None:
|
|
451
|
+
for payload in (execution_context, snapshot):
|
|
452
|
+
if not isinstance(payload, dict):
|
|
453
|
+
continue
|
|
454
|
+
for key in ("context_handle", "snapshot_id", "id"):
|
|
455
|
+
value = payload.get(key)
|
|
456
|
+
if isinstance(value, str) and value.strip():
|
|
457
|
+
return value.strip()
|
|
458
|
+
if isinstance(snapshot, dict):
|
|
459
|
+
canonical = json.dumps(snapshot, ensure_ascii=False, sort_keys=True, separators=(",", ":"))
|
|
460
|
+
return "sha256:" + hashlib.sha256(canonical.encode("utf-8")).hexdigest()
|
|
461
|
+
return None
|
|
462
|
+
|
|
463
|
+
|
|
360
464
|
def negotiate_execution_mode(
|
|
361
465
|
mode: str | None = None,
|
|
362
466
|
*,
|
|
@@ -36,6 +36,17 @@ def execution_mode_blocker(profile: Any) -> dict[str, Any]:
|
|
|
36
36
|
"next_action": "provide --context-snapshot and retry",
|
|
37
37
|
}
|
|
38
38
|
)
|
|
39
|
+
elif code == "COORDINATOR_CONTEXT_REQUIRED":
|
|
40
|
+
from .execution_mode import ACQUIRE_COORDINATOR_CONTEXT_COMMAND, COORDINATOR_CONTEXT_LIFECYCLE
|
|
41
|
+
|
|
42
|
+
blocker.update(
|
|
43
|
+
{
|
|
44
|
+
"message": "coordinator attempt, lease, fence, and context handle are required",
|
|
45
|
+
"retryable": True,
|
|
46
|
+
"next_action": f"run `{ACQUIRE_COORDINATOR_CONTEXT_COMMAND}`",
|
|
47
|
+
"lifecycle": list(COORDINATOR_CONTEXT_LIFECYCLE),
|
|
48
|
+
}
|
|
49
|
+
)
|
|
39
50
|
elif code == "RUNTIME_SINK_REQUIRED":
|
|
40
51
|
blocker.update(
|
|
41
52
|
{
|