slipwai 1.3.0.dev5__tar.gz → 1.3.0.dev8__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.
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/PKG-INFO +1 -1
- slipwai-1.3.0.dev8/VERSION +1 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/docs/agent-harnesses.md +4 -2
- slipwai-1.3.0.dev8/assets/toolkit/scripts/agents/code_index.py +481 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/agents/cruise.py +35 -35
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/agents/registry.json +5 -2
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/check-codegraph.py +76 -15
- slipwai-1.3.0.dev8/assets/toolkit/scripts/codegraph +28 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/extensions/codegraph/init.py +48 -36
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/extensions/guidance.py +5 -1
- slipwai-1.3.0.dev8/changelog.d/code-index-held.md +35 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/agent_settings.py +21 -3
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/agents.py +10 -12
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/commands.py +2 -2
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/cruise.py +3 -3
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/stage_models.py +7 -8
- slipwai-1.3.0.dev5/VERSION +0 -1
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/.gitignore +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/CHANGELOG.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/LICENSE +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/NOTICE +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/README.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/README.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/adoption/docs/change-strategy.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/adoption/scripts/check-convergence.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/adoption/scripts/ratchet.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/adoption/support.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/adoption/wrappers/gradle/gradle-wrapper.jar.base64 +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/adoption/wrappers/gradle/gradle-wrapper.properties +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/adoption/wrappers/gradle/gradlew +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/adoption/wrappers/gradle/gradlew.bat +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/adoption/wrappers/gradle/source-notes.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/docker-compose.yml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/env.example +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/checkpoint_store_contract.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/checkpoint_store_memory.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/checkpoint_store_memory_test.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/checkpoint_store_postgres.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/checkpoint_store_postgres_integration_test.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/checkpoint_store_sqlite.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/checkpoint_store_sqlite_test.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/config.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/config_test.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/event_store_contract.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/event_store_memory.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/event_store_memory_test.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/event_store_postgres.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/event_store_postgres_integration_test.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/event_store_sqlite.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/event_store_sqlite_test.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/events.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/http_app.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/http_app_test.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/http_openapi_test.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/http_security.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/http_security_test.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/migrate_main.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/migrate_main_test.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/migrations_embed.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/migrations_keep +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/oidc_keycloak.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/oidc_keycloak_test.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/openapi.yaml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/projections.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/projections_test.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/projections_ticker.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/projections_ticker_test.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/read_models.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/serve_main.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/tracing.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/tracing_test.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/users_oidc_keycloak.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/go/users_oidc_keycloak_test.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/actor.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/append_result.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/causation_id.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/checkpoint_store_memory.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/checkpoint_store_postgres.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/checkpoint_store_sqlite.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/committed_event.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/condition.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/conditional_append_result.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/correlation_id.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/database_url.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/domain_event.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/event_store.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/event_store_exception.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/event_store_memory.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/event_store_memory_database.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/event_store_postgres.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/event_store_sqlite.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/event_visitor.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/http_schema_failure.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/migrate_main.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/oidc_keycloak.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/projection.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/projections.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/read_models.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/tag_query.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/tagged_read.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/tags_of.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/tests/checkpoint_store_contract.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/tests/checkpoint_store_memory_test.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/tests/checkpoint_store_sqlite_test.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/tests/database_url_test.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/tests/event_store_contract.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/tests/event_store_memory_test.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/tests/event_store_sqlite_test.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/tests/oidc_keycloak_test.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/tests/projections_test.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/tests/users_oidc_keycloak_test.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/transactions.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java/users_oidc_keycloak.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java-quarkus/config_source_registration +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java-quarkus/database_url_config_source.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java-quarkus/http_flags_resource.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java-quarkus/http_health_check.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java-quarkus/http_not_found_mapper.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java-quarkus/jta_transactions.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java-quarkus/oidc_keycloak_augmentor.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java-quarkus/scheduled_projections.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java-quarkus/tests/checkpoint_store_postgres_it.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java-quarkus/tests/event_store_postgres_it.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java-quarkus/tests/http_app_test.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java-quarkus/users_current_customer.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java-spring/database_url_environment_post_processor.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java-spring/environment_post_processor_registration +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java-spring/http_flags_controller.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java-spring/http_health_indicator.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java-spring/http_not_found_advice.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java-spring/oidc_keycloak_security.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java-spring/scheduled_projections.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java-spring/spring_transactions.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java-spring/tests/checkpoint_store_postgres_it.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java-spring/tests/event_store_postgres_it.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java-spring/tests/http_app_test.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/java-spring/users_security.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/keycloak/README.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/keycloak/realms/app.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/keycloak/realms/customers.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/prune.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/checkpoint_store_memory.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/checkpoint_store_postgres.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/checkpoint_store_sqlite.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/event_store_memory.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/event_store_postgres.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/event_store_sqlite.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/events.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/http_app.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/logging_setup.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/main.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/migrations_apply.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/oidc_keycloak.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/openapi-flags.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/openapi.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/openapi_export.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/projections.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/projections_lifespan.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/read_models.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/settings.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/tests/checkpoint_store_contract.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/tests/conftest.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/tests/event_store_contract.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/tests/test_checkpoint_store_memory.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/tests/test_checkpoint_store_postgres.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/tests/test_checkpoint_store_sqlite.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/tests/test_event_store_memory.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/tests/test_event_store_postgres.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/tests/test_event_store_sqlite.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/tests/test_http_app.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/tests/test_logging_setup.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/tests/test_oidc_keycloak.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/tests/test_projections.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/tests/test_projections_lifespan.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/tests/test_settings.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/tests/test_tracing.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/tests/test_users_oidc_keycloak.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/tracing.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/python/users_oidc_keycloak.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/sql/001_events.sql +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/sql/002_events_append_only.sql +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/sql/003_projection_checkpoints.sql +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/sql/004_event_tags.sql +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/checkpoint-store-memory.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/checkpoint-store-postgres.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/checkpoint-store-sqlite.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/config.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/event-store-memory.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/event-store-postgres.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/event-store-sqlite.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/events.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/http-app.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/main.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/migrations/001_events.js +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/migrations/002_events_append_only.js +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/migrations/003_projection_checkpoints.js +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/migrations/004_event_tags.js +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/oidc-keycloak.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/openapi-export.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/openapi-flags.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/openapi.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/projections-plugin.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/projections.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/read-models.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/tests/checkpoint-store-contract.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/tests/checkpoint-store-memory.test.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/tests/checkpoint-store-postgres.test.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/tests/checkpoint-store-sqlite.test.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/tests/event-store-contract.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/tests/event-store-memory.test.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/tests/event-store-postgres.test.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/tests/event-store-sqlite.test.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/tests/http-app.test.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/tests/oidc-keycloak.test.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/tests/projections-plugin.test.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/tests/projections.test.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/tests/tracing.test.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/tests/users-oidc-keycloak.test.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/tracing.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/users-oidc-keycloak.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/backing-services/typescript/vitest.integration.config.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/api-client/package.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/api-client/src/index.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/app/index.html +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/app/package.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/app/src/App.tsx +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/app/src/main.tsx +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/app/src/styles/base.css +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/app/src/styles/tokens.css +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/app/tests/App.test.tsx +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/app/tests/setup.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/app/tsconfig.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/app/vite.config.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/app-flags-local/flags.test.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/app-flags-local/flags.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/app-flags-target/flags.test.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/app-flags-target/flags.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/app-route-client/Home.test.tsx +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/app-route-client/Home.tsx +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/app-route-plain/Home.test.tsx +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/app-route-plain/Home.tsx +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/features/users-keycloak/src/auth/Account.tsx +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/features/users-keycloak/src/auth/users.tsx +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/features/users-keycloak/tests/auth/Account.test.tsx +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/features/users-keycloak/tests/auth/users.test.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/locks/frontend-only-users-keycloak.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/locks/frontend-only.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/locks/typescript-backend-fastify-postgres-users-keycloak.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/locks/typescript-backend-fastify-postgres.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/locks/typescript-backend-fastify-users-keycloak.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/locks/typescript-backend-fastify.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/locks/typescript-backend-postgres-users-keycloak.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/locks/typescript-backend-postgres.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/locks/typescript-backend-users-keycloak.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/frontends/react-vite/locks/typescript-backend.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/app/.gremlins.yaml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/app/application/README.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/app/domain/README.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/app/health/health.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/app/health/health_test.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/event-port/application/ports/events/events.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/event-port/application/ports/events/events_test.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/branded-id-types.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/create-child-through-root.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/decider-pattern-order.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/entity-rename-occasion.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/exception-vs-result-type.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/integration-test-order-repository.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/money-value-object-factory.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/naming-signature-domain-vs-use-case.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/occasion-repository-interface.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/order-lifecycle-union.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/pledge-result-types.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/specification-can-pledge.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/test-decide-order-events.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/test-error-funding-closed.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/account-decider-and-evolve.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/balance-view-apply-fold.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/balance-view-projection.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/command-handler-loop.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/command-handler-retry-loop.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/decide-withdraw-example.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/decider-behaviour-tests.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/decider-type.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/decision-result-type.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/event-envelope-type.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/event-store-port-interface.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/event-store-port.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/live-view-bounded-fold.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/order-placed-upcaster.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/projection-behaviour-tests.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/rehydrate-left-fold.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/todo-list-claiming.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/testing/correct-complete-factory-object.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/testing/correct-fresh-state-per-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/testing/correct-import-real-schema.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/testing/correct-inline-tested-through-behavior.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/testing/correct-testing-behavior-public-api.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/testing/factory-basic-pattern.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/testing/factory-complete-example.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/testing/factory-composition.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/testing/reach-validation-through-behavior.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/testing/wrong-incomplete-factory-object.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/testing/wrong-redefine-schema-in-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/testing/wrong-shared-mutable-fixture.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/examples/testing/wrong-testing-implementation-detail.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/flags/flags/flags.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/flags/flags/flags_test.go +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/modules/base/go.mod +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/modules/base/go.sum +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/modules/postgres/go.mod +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/modules/postgres/go.sum +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/modules/sqlite/go.mod +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/modules/sqlite/go.sum +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/scripts/go-coverage.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/go/scripts/go-mutation.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/build/.gitattributes +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/build/.mvn/wrapper/maven-wrapper.properties +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/build/config/checkstyle.xml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/build/config/pmd-ruleset.xml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/build/config/spotbugs-exclude.xml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/build/mvnw +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/build/mvnw.cmd +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/branded-id-types.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/create-child-through-root.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/decider-pattern-order.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/entity-rename-occasion.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/exception-vs-result-type.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/integration-test-order-repository.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/money-value-object-factory.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/naming-signature-domain-vs-use-case.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/occasion-repository-interface.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/order-lifecycle-union.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/pledge-result-types.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/specification-can-pledge.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/test-decide-order-events.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/test-error-funding-closed.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/account-decider-and-evolve.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/balance-view-apply-fold.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/balance-view-projection.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/command-handler-loop.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/command-handler-retry-loop.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/decide-withdraw-example.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/decider-behaviour-tests.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/decider-type.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/decision-result-type.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/event-envelope-type.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/event-store-port-interface.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/event-store-port.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/live-view-bounded-fold.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/order-placed-upcaster.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/projection-behaviour-tests.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/rehydrate-left-fold.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/todo-list-claiming.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/testing/correct-complete-factory-object.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/testing/correct-fresh-state-per-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/testing/correct-import-real-schema.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/testing/correct-inline-tested-through-behavior.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/testing/correct-testing-behavior-public-api.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/testing/factory-basic-pattern.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/testing/factory-complete-example.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/testing/factory-composition.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/testing/reach-validation-through-behavior.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/testing/wrong-incomplete-factory-object.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/testing/wrong-redefine-schema-in-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/testing/wrong-shared-mutable-fixture.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/examples/testing/wrong-testing-implementation-detail.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/flags/src/main/java/com/example/deliverystarter/flags/Flags.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java/flags/src/test/java/com/example/deliverystarter/flags/FlagsTest.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java-quarkus/app/pom.xml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java-quarkus/app/src/main/java/com/example/deliverystarter/application/README.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java-quarkus/app/src/main/java/com/example/deliverystarter/domain/README.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java-quarkus/app/src/main/java/com/example/deliverystarter/health/HealthStatus.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java-quarkus/app/src/main/resources/application.properties +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java-quarkus/app/src/test/java/com/example/deliverystarter/health/HealthStatusTest.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java-spring/app/pom.xml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java-spring/app/src/main/java/com/example/deliverystarter/ServiceApplication.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java-spring/app/src/main/java/com/example/deliverystarter/application/README.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java-spring/app/src/main/java/com/example/deliverystarter/domain/README.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java-spring/app/src/main/java/com/example/deliverystarter/health/HealthStatus.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java-spring/app/src/main/resources/application.properties +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/java-spring/app/src/test/java/com/example/deliverystarter/health/HealthStatusTest.java +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/app/pyproject.toml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/app/src/delivery_starter/__init__.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/app/src/delivery_starter/application/README.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/app/src/delivery_starter/domain/README.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/app/tests/test_health.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/event-port/src/delivery_starter/application/ports/events.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/event-port/tests/test_events.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/branded-id-types.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/create-child-through-root.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/decider-pattern-order.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/entity-rename-occasion.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/exception-vs-result-type.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/integration-test-order-repository.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/money-value-object-factory.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/naming-signature-domain-vs-use-case.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/occasion-repository-interface.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/order-lifecycle-union.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/pledge-result-types.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/specification-can-pledge.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/test-decide-order-events.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/test-error-funding-closed.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/account-decider-and-evolve.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/balance-view-apply-fold.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/balance-view-projection.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/command-handler-loop.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/command-handler-retry-loop.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/decide-withdraw-example.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/decider-behaviour-tests.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/decider-type.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/decision-result-type.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/event-envelope-type.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/event-store-port-interface.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/event-store-port.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/live-view-bounded-fold.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/order-placed-upcaster.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/projection-behaviour-tests.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/rehydrate-left-fold.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/todo-list-claiming.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/testing/correct-complete-factory-object.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/testing/correct-fresh-state-per-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/testing/correct-import-real-schema.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/testing/correct-inline-tested-through-behavior.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/testing/correct-testing-behavior-public-api.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/testing/factory-basic-pattern.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/testing/factory-complete-example.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/testing/factory-composition.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/testing/reach-validation-through-behavior.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/testing/wrong-incomplete-factory-object.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/testing/wrong-redefine-schema-in-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/testing/wrong-shared-mutable-fixture.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/examples/testing/wrong-testing-implementation-detail.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/flags/src/delivery_starter/flags.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/flags/tests/test_flags.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/locks/uv-fastapi-postgres.lock +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/locks/uv-fastapi.lock +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/locks/uv-postgres.lock +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/python/locks/uv.lock +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/app/package.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/app/src/application/README.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/app/src/domain/README.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/app/src/health.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/app/tests/health.test.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/biome/biome.jsonc +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/biome/domain-purity.grit +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/branded-id-types.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/create-child-through-root.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/decider-pattern-order.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/entity-rename-occasion.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/exception-vs-result-type.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/integration-test-order-repository.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/money-value-object-factory.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/naming-signature-domain-vs-use-case.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/occasion-repository-interface.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/order-lifecycle-union.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/pledge-result-types.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/specification-can-pledge.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/test-decide-order-events.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/test-error-funding-closed.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/account-decider-and-evolve.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/balance-view-apply-fold.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/balance-view-projection.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/command-handler-loop.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/command-handler-retry-loop.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/decide-withdraw-example.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/decider-behaviour-tests.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/decider-type.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/decision-result-type.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/event-envelope-type.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/event-store-port-interface.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/event-store-port.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/live-view-bounded-fold.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/order-placed-upcaster.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/projection-behaviour-tests.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/rehydrate-left-fold.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/todo-list-claiming.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/testing/correct-complete-factory-object.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/testing/correct-fresh-state-per-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/testing/correct-import-real-schema.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/testing/correct-inline-tested-through-behavior.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/testing/correct-testing-behavior-public-api.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/testing/factory-basic-pattern.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/testing/factory-complete-example.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/testing/factory-composition.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/testing/reach-validation-through-behavior.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/testing/wrong-incomplete-factory-object.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/testing/wrong-redefine-schema-in-test.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/testing/wrong-shared-mutable-fixture.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/examples/testing/wrong-testing-implementation-detail.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/flags/src/flags.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/flags/tests/flags.test.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/locks/package-lock-fastify-postgres.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/locks/package-lock-fastify.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/locks/package-lock-postgres.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/languages/typescript/locks/package-lock.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/profiles/event-modelling/.specify/presets/.registry +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/profiles/event-modelling/.specify/presets/event-modelling/preset.yml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/profiles/event-modelling/.specify/presets/event-modelling/templates/constitution-template.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/profiles/event-modelling/.specify/presets/event-modelling/templates/plan-template.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/profiles/event-modelling/.specify/presets/event-modelling/templates/tasks-template.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/profiles/event-modelling/commands/example-map.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/profiles/event-modelling/commands/validate-code-against-model.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/profiles/event-modelling/docs/speckit-preset.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/profiles/standard/.specify/presets/.registry +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/profiles/standard/.specify/presets/standard/preset.yml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/profiles/standard/.specify/presets/standard/templates/constitution-template.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/profiles/standard/docs/adr/0001-record-architecture-decisions.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/profiles/standard/docs/speckit-preset.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/profiles/standard/skills/adversarial-testing/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/profiles/standard/skills/adversarial-testing/resources/attack-catalogue.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/profiles/standard/skills/architecture-decisions/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/README.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/bootstrap/main.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/bootstrap/outputs.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/bootstrap/variables.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/scripts/bootstrap.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/scripts/check-deploy-role.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/scripts/check-flags.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/scripts/deploy.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/service/auth0.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/service/cognito_customers.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/service/cognito_staff.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/service/flags.auto.tfvars +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/service/flags.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/service/frontend.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/service/ingress.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/service/main.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/service/network.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/service/no-auth0.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/service/no-frontend.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/service/outputs.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/service/production.tfvars +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/service/rds.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/service/staging.tfvars +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/service/variables.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/aws/service/versions.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/azure/README.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/azure/bootstrap/main.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/azure/bootstrap/outputs.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/azure/bootstrap/variables.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/azure/scripts/bootstrap.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/azure/scripts/check-flags.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/azure/scripts/deploy.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/azure/service/auth0.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/azure/service/entra_staff.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/azure/service/flags.auto.tfvars +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/azure/service/flags.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/azure/service/frontend.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/azure/service/ingress.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/azure/service/main.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/azure/service/no-auth0.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/azure/service/no-frontend.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/azure/service/outputs.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/azure/service/postgres.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/azure/service/production.tfvars +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/azure/service/staging.tfvars +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/azure/service/variables.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/targets/azure/service/versions.tf +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/.specify/extensions.yml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/docs/adr/0001-record-architecture-decisions.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/docs/delegated-agent-safety.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/docs/event-model/README.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/docs/event-model/model.yaml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/docs/event-modeling-to-code.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/docs/first-slice.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/agents/benchmark.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/agents/drive.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/agents/models.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/agents/project.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/check-constitution.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/check-decisions.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/check-imports.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/check-migrations.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/check-slice-scope.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/check-speckit.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/check-styles.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/check-ux-gates.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/event-model/board-plan.test.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/event-model/board-plan.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/event-model/check.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/event-model/check.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/event-model/drawio.test.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/event-model/drawio.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/event-model/example-model.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/event-model/mermaid.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/event-model/model.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/event-model/package.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/event-model/page.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/event-model/palette.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/event-model/patch-mermaid-swimlanes.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/event-model/readme.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/event-model/render-drawio.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/event-model/render.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/event-model/requirements.txt +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/event-model/validate.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/event-model/workspace.ts +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/extensions/menu.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/extensions/project.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/extensions/uipro/init.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/extensions/ux-gates/init.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/scripts/test_benchmark.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/LICENSE +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/REFERENCES.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/acceptance-review/LICENSE +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/acceptance-review/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/acceptance-review/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/acceptance-review/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/adversarial-testing/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/adversarial-testing/resources/attack-catalogue.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/api-design/LICENSE +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/api-design/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/api-design/resources/api-evolution.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/api-design/resources/api-security.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/api-design/resources/auth-security.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/api-design/resources/http-fundamentals.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/api-design/resources/problem-details.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/api-design/resources/source-notes.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/architecture-decisions/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/bff-design/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/bff-design/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/bff-design/references/adoption-and-granularity.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/bff-design/references/aggregation-and-resilience.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/bff-design/references/alternatives.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/bff-design/references/upstream-identity.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/bff-entry-points/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/bff-entry-points/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/bff-entry-points/references/browser-session-coordination.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/bff-entry-points/references/endpoint-protection.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/bff-entry-points/references/enforcement-and-testing.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/bff-entry-points/references/hexagonal-auth-boundaries.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/bff-entry-points/references/hono-example.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/bff-entry-points/references/realtime-entry-points.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/characterisation-tests/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/characterisation-tests/resources/modern-tooling.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/characterisation-tests/resources/writing-process.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/ci-debugging/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/cli-design/LICENSE +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/cli-design/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/cli-design/resources/composability.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/cli-design/resources/output-architecture.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/cli-design/resources/source-notes.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/cli-design/resources/stream-contracts.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/cli-design/resources/testing-cli.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/codebase-design/LICENSE +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/codebase-design/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/codebase-design/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/codebase-design/references/deepening.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/codebase-design/references/design-it-twice.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/codebase-design/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/debugging/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/debugging/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/debugging/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/diagrams/NOTICE +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/diagrams/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/diagrams/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/domain-driven-design/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/domain-driven-design/resources/aggregate-design.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/domain-driven-design/resources/bounded-contexts.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/domain-driven-design/resources/domain-events.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/domain-driven-design/resources/domain-services.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/domain-driven-design/resources/error-modeling.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/domain-driven-design/resources/modelling-process.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/domain-driven-design/resources/references.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/domain-driven-design/resources/testing-by-layer.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/double-check/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/double-check/resources/brief-template.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/double-check/resources/providers.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/evaluate-existing-solutions/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/evaluate-existing-solutions/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/evaluate-existing-solutions/assets/solution-decision-template.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/evaluate-existing-solutions/references/evaluation-dimensions.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/evaluate-existing-solutions/references/evidence-and-currentness.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/event-modeling/NOTICE +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/event-modeling/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/event-modeling/references/gwt-template.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/event-modeling/references/nine-steps.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/event-sourcing/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/event-sourcing/resources/decider-and-rehydration.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/event-sourcing/resources/event-store.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/event-sourcing/resources/event-versioning.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/event-sourcing/resources/modelling-events.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/event-sourcing/resources/production-concerns.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/event-sourcing/resources/projections-and-read-models.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/event-sourcing/resources/references.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/event-sourcing/resources/testing-event-sourced-systems.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/event-sourcing/resources/when-to-use-event-sourcing.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/expectations/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/find-gaps/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/find-skills/LICENSE +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/find-skills/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/find-skills/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/finding-seams/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/finding-seams/resources/creating-seams.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/finding-seams/resources/oop-patterns.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/finding-seams/resources/seam-types.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/folder-structure/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/folder-structure/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/front-end-testing/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/front-end-testing/resources/async-patterns.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/front-end-testing/resources/dom-testing-library-legacy.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/front-end-testing/resources/msw.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/front-end-testing/resources/playwright-e2e.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/frontend-design/LICENSE +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/frontend-design/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/frontend-design/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/functional/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/functional/resources/composition-patterns.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/functional/resources/immutability-catalog.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/global-event-model/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/hexagonal-architecture/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/hexagonal-architecture/resources/cqrs-lite.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/hexagonal-architecture/resources/cross-cutting-concerns.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/hexagonal-architecture/resources/greenfield-sequence.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/hexagonal-architecture/resources/incremental-adoption.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/hexagonal-architecture/resources/references.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/hexagonal-architecture/resources/testing-hex-arch.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/hexagonal-architecture/resources/worked-example.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/improve-codebase-architecture/LICENSE +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/improve-codebase-architecture/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/improve-codebase-architecture/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/improve-codebase-architecture/references/html-report.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/improve-codebase-architecture/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/mutation-testing/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/mutation-testing/resources/mutator-rules.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/observability/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/observability/resources/node-patterns.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/observability/resources/references.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/observability/resources/slo-alerting.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/observability/resources/testing-telemetry.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/planning/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/production-parity-skill-builder/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/production-parity-skill-builder/resources/generated-skill-template.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/production-parity-skill-builder/resources/parity-surface-catalog.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/production-parity-skill-builder/resources/question-patterns.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/react-testing/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/react-testing/resources/testing-library-react-legacy.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/reduce-system-complexity/LICENSE +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/reduce-system-complexity/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/reduce-system-complexity/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/reduce-system-complexity/references/ledger-template.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/reduce-system-complexity/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/refactoring/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/secure-oauth-oidc/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/secure-oauth-oidc/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/secure-oauth-oidc/references/attack-and-test-catalog.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/secure-oauth-oidc/references/oidc-validation.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/secure-oauth-oidc/references/review-and-delivery.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/secure-oauth-oidc/references/rfc9700-control-catalog.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/secure-oauth-oidc/references/standards-map.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/specification/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/specification/resources/references.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/specification/resources/spec-review-template.html +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/stack-pull-requests/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/stack-pull-requests/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/stack-pull-requests/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/story-splitting/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/story-splitting/resources/pattern-catalog.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/story-splitting/resources/source-notes.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/storyboard/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/structure-codebase/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/structure-codebase/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/structure-codebase/references/backend-patterns.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/structure-codebase/references/enforcement-and-migration.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/structure-codebase/references/frontend-patterns.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/structure-codebase/references/research-notes.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/structure-codebase/references/visible-hexagon.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/tdd/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/tdd/resources/vitest-watch-feedback.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/teach-me/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/teach-me/resources/assessment-patterns.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/teach-me/resources/course-generation.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/teach-me/resources/html-lessons.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/teach-me/resources/learning-science.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/teach-me/resources/session-management.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/technical-writing/LICENSE +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/technical-writing/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/technical-writing/resources/agent-docs.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/technical-writing/resources/doc-types.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/technical-writing/resources/docs-quality.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/technical-writing/resources/formatting.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/technical-writing/resources/readme.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/technical-writing/resources/references.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/technical-writing/resources/source-notes.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/test-design-reviewer/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/test-design-reviewer/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/testing/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/twelve-factor/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/twelve-factor/resources/node-patterns.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/typescript-strict/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/ubiquitous-language/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/ubiquitous-language/resources/glossary-format.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/ubiquitous-language/resources/language-protocol.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/web-interface-guidelines/LICENSE +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/web-interface-guidelines/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/web-interface-guidelines/references/guidelines.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/web-interface-guidelines/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/wtf/LICENSE +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/wtf/SKILL.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/wtf/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/assets/toolkit/skills/wtf/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/catalog.json +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/changelog.d/README.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/changelog.d/deploy-role-scope.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/changelog.d/setup-go-workspace-cache.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/changelog.d/ux-gates-at-scale.md +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/pyproject.toml +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/__init__.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/__main__.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/add_service.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/adopt.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/adopt_report.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/assets.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/axes.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/backends.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/capabilities.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/catalog.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/catch_up.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/changelog.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/cli.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/cli_add.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/cli_adopt.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/cli_prompts.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/converge.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/convergence.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/delivery_facts.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/ecosystems.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/errors.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/examples.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/extensions.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/features.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/images.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/layout.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/manifest.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/migrate.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/naming.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/origin.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/platform.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/preflight.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/probes.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/programme.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/__init__.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/add_commands.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/adopted.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/adopted_ci.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/adopted_targets.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/adversary.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/agent_targets.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/aws_docs.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/azure_docs.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/backing_service_prose.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/backing_services.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/benchmark.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/biome.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/ci_services.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/ci_workflows.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/compose.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/composition.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/constitution_journey.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/converge_stage.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/convergence_page.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/cruise_agents.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/cruise_hand.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/cruise_record.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/cruise_seat.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/cruise_stops.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/cruise_told.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/cruise_unblock.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/decisions.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/demo_stop.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/deploy_workflow.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/design_page.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/docs.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/docs_index.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/drive_adoption.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/drive_settings.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/entry_stores.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/event_model.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/evolving.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/existing.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/flag_route.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/flags.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/frontend.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/gitignore.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/ground_command.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/guidance.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/infra.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/init_production.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/init_script.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/integration.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/languages/__init__.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/languages/go.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/languages/java.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/languages/java_quarkus.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/languages/java_spring.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/languages/python.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/languages/typescript.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/makefile.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/metadata.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/model_targets.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/model_to_code.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/mutation.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/native_commands.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/openapi.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/parallel_slices.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/pin_commands.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/pins.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/production.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/provisioning.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/read_side_layouts.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/readme.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/renovate.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/repository.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/rules.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/run_skill.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/service_layouts.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/shared_packages.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/skills_page.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/strangle_command.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/structure_page.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/target_docs.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/whats_next.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/project/where_are_we.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/quick_wins.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/replay.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/resurvey.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/scaffold.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/selection.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/services.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/strategy.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/structure.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/survey.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/targets.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/tooling.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/toolkit.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/upgrade.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/versions.py +0 -0
- {slipwai-1.3.0.dev5 → slipwai-1.3.0.dev8}/src/slipwai/wrappers.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: slipwai
|
|
3
|
-
Version: 1.3.0.
|
|
3
|
+
Version: 1.3.0.dev8
|
|
4
4
|
Summary: One-shot scaffolder for product monorepos: a walking skeleton, a verify gate, a path to production, and a repository set up for coding agents.
|
|
5
5
|
Project-URL: Homepage, https://github.com/ROBCOATVG/slipwai
|
|
6
6
|
Project-URL: Repository, https://git.treyco.dev/ROBCOATVG/slipwai
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.3.0.dev8
|
|
@@ -86,8 +86,10 @@ project with no index. Both lists name the route back (`mcp_*` on Gemini, one `<
|
|
|
86
86
|
this project's extensions install on Copilot), which costs nothing that was being held, because both already
|
|
87
87
|
carry the whole shell. The other four reach the session's servers whatever the file says — Claude Code and
|
|
88
88
|
Codex inherit them, Cursor inherits every tool, opencode's `permission` map is a denylist — and on Claude Code
|
|
89
|
-
|
|
90
|
-
before it can call it
|
|
89
|
+
an MCP tool arrives *deferred*, a bare name the delegate has to load through the harness's own tool-search step
|
|
90
|
+
before it can call it — unless the server's `.mcp.json` entry carries `alwaysLoad: true`, which the registry's
|
|
91
|
+
`projectMcp.serverFields` has the CodeGraph extension write, so its tool is loaded at session start. Every
|
|
92
|
+
harness also has `scripts/codegraph`, the pinned CLI, through the shell. `registry.json` records all of that under `agentFile.mcp`, with the source and the date
|
|
91
93
|
it was read, and every projection's stamp carries it, so a route a harness withholds is one somebody can read.
|
|
92
94
|
|
|
93
95
|
Because the model lives in these files on five of the six harnesses, `/model-delegation-settings` rewrites them as part of the
|
|
@@ -0,0 +1,481 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""The code index kept healthy, kept current and asked first — by the harness and the runner, not by a brief.
|
|
3
|
+
|
|
4
|
+
A `/cruise` iteration met all four ways an adopted index fails to be used, with nobody making a mistake. The
|
|
5
|
+
database was corrupt when the iteration started, and CodeGraph's own commands did not say so: on a malformed
|
|
6
|
+
`codegraph.db`, `codegraph status` reports the index up to date and `codegraph sync` exits 0, and only a query
|
|
7
|
+
fails. The watcher that keeps it current was off, which CodeGraph decides for itself in a sandbox. Delegates
|
|
8
|
+
reached the index as a deferred tool they had to load by name first, and grepped instead. And nothing counted
|
|
9
|
+
which delegate asked it. Each of those is a place a sentence in a brief was the only control.
|
|
10
|
+
|
|
11
|
+
So this script holds the index at the points the harness and the runner already own:
|
|
12
|
+
|
|
13
|
+
python3 scripts/agents/code_index.py health # open it, integrity-check it, rebuild a corrupt one, sync a stale one
|
|
14
|
+
python3 scripts/agents/code_index.py session # Claude Code's SessionStart hook: `health`, said only when it acted
|
|
15
|
+
python3 scripts/agents/code_index.py sync # Claude Code's PostToolUse hook: a delegate came back; sync
|
|
16
|
+
python3 scripts/agents/code_index.py guard # Claude Code's PreToolUse hook: a symbol search before the index
|
|
17
|
+
|
|
18
|
+
`health` is what `scripts/agents/cruise.py` runs before every iteration, what `make check-codegraph` runs on a corrupt
|
|
19
|
+
database before it judges one, and what a person runs to repair an index by hand. `session` is the same step at the
|
|
20
|
+
start of a Claude Code session — a person's `/drive` has no runner in front of it — and prints only what it did or
|
|
21
|
+
could not do, since a hook's output lands in the session's context. The database is ignored by Git and derived from the source, so a corrupt one loses nothing by being moved
|
|
22
|
+
aside (to `.codegraph/corrupt/`, the latest only) and rebuilt. `sync` keeps the index current while an iteration is
|
|
23
|
+
still editing: after each delegate returns rather than on CodeGraph's watcher, because the watcher is what was off.
|
|
24
|
+
`guard` refuses a search of the source for a symbol — the Grep tool, or `grep`, `rg`, `ag`, `ack`, `git grep` or a
|
|
25
|
+
`sed -n '/pattern/p'` through the shell — from a session or a delegate that has not asked the index yet, and names
|
|
26
|
+
the route that answers instead. A symbol is a name the index holds a definition for, or a name shaped like one
|
|
27
|
+
(camelCase, PascalCase with a second hump, snake_case). Words and phrases are prose, and a search confined to
|
|
28
|
+
documents is text search, which is right for them: `spec.md`, `decisions.md`, the PRD, `model.yaml`, a test's string.
|
|
29
|
+
Once the agent has asked the index, its greps are its own business.
|
|
30
|
+
|
|
31
|
+
Every route here runs the version the MCP server runs (`CODEGRAPH`), so two versions never write one database.
|
|
32
|
+
Standard library only, like every script the toolkit ships. Nothing here fails a command it hooks: a hook that
|
|
33
|
+
cannot decide allows the call.
|
|
34
|
+
"""
|
|
35
|
+
from __future__ import annotations
|
|
36
|
+
|
|
37
|
+
import json
|
|
38
|
+
import os
|
|
39
|
+
import re
|
|
40
|
+
import shlex
|
|
41
|
+
import shutil
|
|
42
|
+
import sqlite3
|
|
43
|
+
import subprocess
|
|
44
|
+
import sys
|
|
45
|
+
import time
|
|
46
|
+
from pathlib import Path
|
|
47
|
+
from typing import Any
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def project_root(script: Path, depth: int) -> Path:
|
|
51
|
+
"""The repository root: the nearest directory above this script holding `project.json` (see models.py)."""
|
|
52
|
+
for candidate in script.parents:
|
|
53
|
+
if (candidate / "project.json").is_file():
|
|
54
|
+
return candidate
|
|
55
|
+
return script.parents[depth]
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
SCRIPT = Path(__file__).resolve()
|
|
59
|
+
ROOT = project_root(SCRIPT, 2)
|
|
60
|
+
# The one pin: the MCP server `./init --extension codegraph` writes, the repo-local `scripts/codegraph`, and every
|
|
61
|
+
# command below all run this release. `codegraph help` in it lists the query verbs INDEX_QUERY names.
|
|
62
|
+
CODEGRAPH = "@colbymchenry/codegraph@1.6.0"
|
|
63
|
+
DIRECTORY = ROOT / ".codegraph"
|
|
64
|
+
DATABASE = DIRECTORY / "codegraph.db"
|
|
65
|
+
ASIDE = DIRECTORY / "corrupt"
|
|
66
|
+
# Which session and delegate has asked the index, for `guard`: inside the index's own ignored directory.
|
|
67
|
+
ASKED = DIRECTORY / "asked.json"
|
|
68
|
+
EXTENSIONS = ROOT / ".slipwai/extensions.json"
|
|
69
|
+
# The gate beside this script's directory, whose reading of index against tree `health` shares.
|
|
70
|
+
GATE = SCRIPT.parents[1] / "check-codegraph.py"
|
|
71
|
+
# A command that asks the index something, as against one that maintains it (`sync`, `init`, `index`, `serve`).
|
|
72
|
+
INDEX_QUERY = re.compile(
|
|
73
|
+
r"\bcodegraph(?:@[\w.-]+)?\s+(query|explore|context|node|files|callers|callees|impact|affected)\b")
|
|
74
|
+
# How long a sync or a rebuild may take before the step gives up and says so.
|
|
75
|
+
SYNC_SECONDS, BUILD_SECONDS = 120, 900
|
|
76
|
+
# The words a refusal starts with, which is how the stream shows where `guard` refused a call.
|
|
77
|
+
REFUSED = "code-index: refused"
|
|
78
|
+
SEARCHERS = {"grep", "egrep", "fgrep", "rg", "ag", "ack"}
|
|
79
|
+
# Documents, whose words a text search is right for: a search confined to these is never a symbol search.
|
|
80
|
+
DOCUMENT = re.compile(r"(^|/)(docs|specs|\.specify)(/|$)|\.(md|mdx|txt|ya?ml|json|feature|csv|drawio|html)$")
|
|
81
|
+
IDENTIFIER = re.compile(r"[A-Za-z_$][A-Za-z0-9_$]*")
|
|
82
|
+
SHAPED = re.compile(r"[a-z0-9][A-Z]|[A-Za-z0-9]_[A-Za-z0-9]")
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
def adopted() -> bool:
|
|
86
|
+
"""An index is here, or the extension was elected and the index is due."""
|
|
87
|
+
if DIRECTORY.is_dir():
|
|
88
|
+
return True
|
|
89
|
+
try:
|
|
90
|
+
return "codegraph" in (json.loads(EXTENSIONS.read_text()).get("extensions") or [])
|
|
91
|
+
except (OSError, ValueError, AttributeError):
|
|
92
|
+
return False
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def route() -> list[str] | None:
|
|
96
|
+
"""How to run the pinned CLI: through `npx` where Node is, or an installed `codegraph` where it is not."""
|
|
97
|
+
if shutil.which("npx"):
|
|
98
|
+
return ["npx", "-y", CODEGRAPH]
|
|
99
|
+
if shutil.which("codegraph"):
|
|
100
|
+
return ["codegraph"]
|
|
101
|
+
return None
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
def cli(*arguments: str, seconds: int = SYNC_SECONDS) -> tuple[bool, str]:
|
|
105
|
+
command = route()
|
|
106
|
+
if command is None:
|
|
107
|
+
return False, "neither `npx` nor `codegraph` is on PATH"
|
|
108
|
+
try:
|
|
109
|
+
done = subprocess.run([*command, *arguments], cwd=ROOT, text=True, capture_output=True, timeout=seconds,
|
|
110
|
+
stdin=subprocess.DEVNULL, env={**os.environ, "CODEGRAPH_NO_UPDATE_CHECK": "1"})
|
|
111
|
+
except subprocess.TimeoutExpired:
|
|
112
|
+
return False, f"`codegraph {' '.join(arguments)}` took longer than {seconds}s"
|
|
113
|
+
except OSError as error:
|
|
114
|
+
return False, str(error)
|
|
115
|
+
said = (done.stdout + done.stderr).strip().splitlines()
|
|
116
|
+
return done.returncode == 0, said[-1].strip("│└● ").strip() if said else ""
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
def damage() -> str | None:
|
|
120
|
+
"""Why the database cannot be trusted — it does not open, or SQLite's integrity check fails — or None."""
|
|
121
|
+
try:
|
|
122
|
+
with sqlite3.connect(f"{DATABASE.as_uri()}?mode=ro", uri=True) as connection:
|
|
123
|
+
verdict = connection.execute("PRAGMA integrity_check").fetchone()
|
|
124
|
+
except sqlite3.Error as error:
|
|
125
|
+
return str(error)
|
|
126
|
+
if verdict and verdict[0] == "ok":
|
|
127
|
+
return None
|
|
128
|
+
# SQLite reports every damaged cell on its own line; the first says what kind of damage, the count how much.
|
|
129
|
+
lines = [line for line in str(verdict[0] if verdict else "no verdict").splitlines() if line.strip()
|
|
130
|
+
and "in database main" not in line]
|
|
131
|
+
return lines[0] + (f", and {len(lines) - 1} more" if len(lines) > 1 else "") if lines else "no verdict"
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
def gate() -> Any:
|
|
135
|
+
"""`check-codegraph.py`, loaded, for its reading of which tracked files the index is behind on."""
|
|
136
|
+
import importlib.util
|
|
137
|
+
sys.dont_write_bytecode = True # no `__pycache__/` beside the gate in the project
|
|
138
|
+
specification = importlib.util.spec_from_file_location("check_codegraph", GATE)
|
|
139
|
+
assert specification is not None and specification.loader is not None
|
|
140
|
+
module = importlib.util.module_from_spec(specification)
|
|
141
|
+
specification.loader.exec_module(module)
|
|
142
|
+
return module
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
def behind() -> int | None:
|
|
146
|
+
"""How many tracked files the index has never seen or read before they changed; None where it cannot say."""
|
|
147
|
+
found = gate().drift()
|
|
148
|
+
return None if found is None else len(found[1]) + len(found[2])
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
def set_aside() -> str:
|
|
152
|
+
"""Move the database and its journal files under `.codegraph/corrupt/`, keeping only this latest copy."""
|
|
153
|
+
shutil.rmtree(ASIDE, ignore_errors=True)
|
|
154
|
+
ASIDE.mkdir(parents=True)
|
|
155
|
+
stamp = time.strftime("%Y%m%dT%H%M%S")
|
|
156
|
+
for suffix in ("", "-wal", "-shm", "-journal"):
|
|
157
|
+
source = DATABASE.with_name(DATABASE.name + suffix)
|
|
158
|
+
if source.exists():
|
|
159
|
+
source.rename(ASIDE / f"{stamp}-{source.name}")
|
|
160
|
+
return (ASIDE.relative_to(ROOT)).as_posix()
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
def health() -> dict[str, Any]:
|
|
164
|
+
"""Make the index one an iteration can query, and say what that took: `current`, `synced`, `built`, `rebuilt`,
|
|
165
|
+
`unreachable` (no route to the CLI) or `failed` (the step ran and the index is still not right). Nothing where
|
|
166
|
+
no index was adopted."""
|
|
167
|
+
if not adopted():
|
|
168
|
+
return {}
|
|
169
|
+
began = time.monotonic()
|
|
170
|
+
result: dict[str, Any] = {}
|
|
171
|
+
if route() is None:
|
|
172
|
+
result = {"state": "unreachable", "detail": "neither `npx` nor `codegraph` is on PATH, so nothing can "
|
|
173
|
+
"maintain or query the index"}
|
|
174
|
+
elif not DATABASE.is_file():
|
|
175
|
+
done, said = cli("init", "-y", ".", seconds=BUILD_SECONDS)
|
|
176
|
+
result = {"state": "built", "detail": "there was no database; built it with `codegraph init`"}
|
|
177
|
+
if not done:
|
|
178
|
+
result = {"state": "failed", "detail": f"no database, and `codegraph init` failed: {said}"}
|
|
179
|
+
elif (problem := damage()) is not None:
|
|
180
|
+
where = set_aside()
|
|
181
|
+
done, said = cli("init", "-y", ".", seconds=BUILD_SECONDS)
|
|
182
|
+
result = {"state": "rebuilt", "detail": f"the database failed its integrity check ({problem}); moved it "
|
|
183
|
+
f"to {where}/ and rebuilt it with `codegraph init`"}
|
|
184
|
+
if not done:
|
|
185
|
+
result = {"state": "failed", "detail": f"the database failed its integrity check ({problem}), was moved "
|
|
186
|
+
f"to {where}/, and `codegraph init` failed: {said}"}
|
|
187
|
+
else:
|
|
188
|
+
stale = behind()
|
|
189
|
+
if stale:
|
|
190
|
+
done, said = cli("sync", ".")
|
|
191
|
+
result = {"state": "synced", "detail": f"{stale} tracked file(s) were ahead of the index; synced it"}
|
|
192
|
+
if not done:
|
|
193
|
+
result = {"state": "failed", "detail": f"{stale} tracked file(s) ahead of the index, and `codegraph "
|
|
194
|
+
f"sync` failed: {said}"}
|
|
195
|
+
else:
|
|
196
|
+
result = {"state": "current", "detail": "opens, passes its integrity check, and describes the tree"}
|
|
197
|
+
if result["state"] in ("built", "rebuilt", "synced"):
|
|
198
|
+
problem, stale = (damage() if DATABASE.is_file() else "no database was written"), None
|
|
199
|
+
if problem is None:
|
|
200
|
+
stale = behind()
|
|
201
|
+
if problem is not None or stale:
|
|
202
|
+
result = {"state": "failed", "detail": f"{result['detail']}, and it is still "
|
|
203
|
+
+ (f"not sound ({problem})" if problem else f"behind on {stale} file(s)")}
|
|
204
|
+
result["seconds"] = round(time.monotonic() - began, 1)
|
|
205
|
+
return result
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
# --- which calls search the source for a symbol ---------------------------------------------------------------------
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
def symbols(names: list[str]) -> set[str]:
|
|
212
|
+
"""Which of these names the index holds a definition of."""
|
|
213
|
+
if not names or not DATABASE.is_file():
|
|
214
|
+
return set()
|
|
215
|
+
try:
|
|
216
|
+
with sqlite3.connect(f"{DATABASE.as_uri()}?mode=ro", uri=True) as connection:
|
|
217
|
+
marks = ",".join("?" * len(names))
|
|
218
|
+
return {row[0] for row in connection.execute(
|
|
219
|
+
f"SELECT DISTINCT name FROM nodes WHERE kind NOT IN ('file', 'import') AND name IN ({marks})", names)}
|
|
220
|
+
except sqlite3.Error:
|
|
221
|
+
return set()
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
def symbol_of(pattern: str) -> str | None:
|
|
225
|
+
"""The pattern as the symbol(s) it names, or None where it is words: every alternative must be one identifier,
|
|
226
|
+
and each must be shaped like a symbol or be a name the index defines."""
|
|
227
|
+
stripped = re.sub(r"\\[bB<>]|[\^$()]|\\\(|\\\)", "", pattern)
|
|
228
|
+
parts = [part for part in re.split(r"\\?\|", stripped) if part]
|
|
229
|
+
if not parts or not all(IDENTIFIER.fullmatch(part) for part in parts):
|
|
230
|
+
return None
|
|
231
|
+
known = symbols(parts)
|
|
232
|
+
if all(SHAPED.search(part) or part in known for part in parts):
|
|
233
|
+
return "|".join(parts)
|
|
234
|
+
return None
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
def documents_only(paths: list[str], globs: list[str]) -> bool:
|
|
238
|
+
"""A search confined to documents: every path and every include pattern names one, and at least one was given."""
|
|
239
|
+
named = [item for item in [*paths, *globs] if item]
|
|
240
|
+
return bool(named) and all(DOCUMENT.search(item.rstrip("/*").replace("**", "")) or DOCUMENT.search(item)
|
|
241
|
+
for item in named)
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
def commands_of(command: str) -> list[list[list[str]]]:
|
|
245
|
+
"""The command's pipelines, each a list of the words of its stages, split where the shell splits them: on `;`,
|
|
246
|
+
`&&`, `||` and newlines between pipelines and on `|` between stages — never inside a quoted pattern."""
|
|
247
|
+
lexer = shlex.shlex(command.replace("\n", " ; "), posix=True, punctuation_chars=";&|")
|
|
248
|
+
lexer.whitespace_split = True
|
|
249
|
+
pipelines: list[list[list[str]]] = [[[]]]
|
|
250
|
+
try:
|
|
251
|
+
for token in lexer:
|
|
252
|
+
if token in (";", "&&", "||", "&", ";;"):
|
|
253
|
+
pipelines.append([[]])
|
|
254
|
+
elif token == "|":
|
|
255
|
+
pipelines[-1].append([])
|
|
256
|
+
else:
|
|
257
|
+
pipelines[-1][-1].append(token)
|
|
258
|
+
except ValueError:
|
|
259
|
+
return []
|
|
260
|
+
return [[words for words in pipeline if words] for pipeline in pipelines if any(pipeline)]
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
def shell_searches(command: str) -> list[tuple[str, list[str], list[str]]]:
|
|
264
|
+
"""Each search the command runs over files: its pattern, the paths it names and its include patterns. A search
|
|
265
|
+
reading another command's output — `git ls-files | grep Cue` — is over names, not source, and is not one."""
|
|
266
|
+
found = []
|
|
267
|
+
for pipeline in commands_of(command):
|
|
268
|
+
for position, words in enumerate(pipeline):
|
|
269
|
+
while words and "=" in words[0] and not words[0].startswith("-"):
|
|
270
|
+
words = words[1:]
|
|
271
|
+
if not words:
|
|
272
|
+
continue
|
|
273
|
+
program = Path(words[0]).name
|
|
274
|
+
if program == "git" and len(words) > 1 and words[1] == "grep":
|
|
275
|
+
program, words = "grep", words[1:]
|
|
276
|
+
if program == "sed":
|
|
277
|
+
scripts = [word for word in words[1:] if not word.startswith("-")]
|
|
278
|
+
address = re.match(r"^/((?:\\.|[^/])+)/", scripts[0]) if scripts else None
|
|
279
|
+
if address:
|
|
280
|
+
found.append((address.group(1), scripts[1:], []))
|
|
281
|
+
continue
|
|
282
|
+
if program not in SEARCHERS:
|
|
283
|
+
continue
|
|
284
|
+
pattern, paths, globs, rest = None, [], [], words[1:]
|
|
285
|
+
index = 0
|
|
286
|
+
while index < len(rest):
|
|
287
|
+
word = rest[index]
|
|
288
|
+
if word in ("-e", "--regexp") and index + 1 < len(rest):
|
|
289
|
+
pattern, index = rest[index + 1], index + 2
|
|
290
|
+
continue
|
|
291
|
+
if word.startswith("--include=") or word.startswith("--glob="):
|
|
292
|
+
globs.append(word.split("=", 1)[1])
|
|
293
|
+
elif word in ("-g", "--glob", "--include", "-t", "--type") and index + 1 < len(rest):
|
|
294
|
+
globs.append(rest[index + 1] if word not in ("-t", "--type") else f"*.{rest[index + 1]}")
|
|
295
|
+
index += 1
|
|
296
|
+
elif word.startswith("-"):
|
|
297
|
+
pass
|
|
298
|
+
elif pattern is None:
|
|
299
|
+
pattern = word
|
|
300
|
+
else:
|
|
301
|
+
paths.append(word)
|
|
302
|
+
index += 1
|
|
303
|
+
if pattern is not None and (paths or position == 0):
|
|
304
|
+
found.append((pattern, paths, globs))
|
|
305
|
+
return found
|
|
306
|
+
|
|
307
|
+
|
|
308
|
+
def symbol_search(tool: str, given: dict[str, Any]) -> str | None:
|
|
309
|
+
"""The symbol a tool call searches the source for, or None where it searches documents, words, or nothing."""
|
|
310
|
+
if tool == "Grep":
|
|
311
|
+
glob = given.get("glob") or (f"*.{given['type']}" if given.get("type") else "")
|
|
312
|
+
if documents_only([str(given.get("path") or "")], [str(glob)]):
|
|
313
|
+
return None
|
|
314
|
+
return symbol_of(str(given.get("pattern", "")))
|
|
315
|
+
if tool == "Bash":
|
|
316
|
+
for pattern, paths, globs in shell_searches(str(given.get("command", ""))):
|
|
317
|
+
if not documents_only(paths, globs) and (symbol := symbol_of(pattern)):
|
|
318
|
+
return symbol
|
|
319
|
+
return None
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
def index_query(tool: str, given: dict[str, Any]) -> bool:
|
|
323
|
+
return tool.startswith("mcp__codegraph__") or (tool == "Bash" and bool(INDEX_QUERY.search(str(given.get("command", "")))))
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
# --- the hooks ------------------------------------------------------------------------------------------------------
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
def event() -> dict[str, Any]:
|
|
330
|
+
try:
|
|
331
|
+
read = json.loads(sys.stdin.read() or "{}")
|
|
332
|
+
except ValueError:
|
|
333
|
+
return {}
|
|
334
|
+
return read if isinstance(read, dict) else {}
|
|
335
|
+
|
|
336
|
+
|
|
337
|
+
def asker(happened: dict[str, Any]) -> str:
|
|
338
|
+
"""Whose call this is: the session, and the delegate inside it where there is one."""
|
|
339
|
+
return f"{happened.get('session_id', '?')}:{happened.get('agent_id') or 'host'}"
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
def load_asked() -> dict[str, float]:
|
|
343
|
+
try:
|
|
344
|
+
read = json.loads(ASKED.read_text())
|
|
345
|
+
except (OSError, ValueError):
|
|
346
|
+
return {}
|
|
347
|
+
return read if isinstance(read, dict) else {}
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
def guard() -> int:
|
|
351
|
+
"""Refuse a symbol search of the source from whoever has not asked the index yet; record who has."""
|
|
352
|
+
happened = event()
|
|
353
|
+
tool = str(happened.get("tool_name", ""))
|
|
354
|
+
given = happened.get("tool_input") if isinstance(happened.get("tool_input"), dict) else {}
|
|
355
|
+
if not DATABASE.is_file() or route() is None:
|
|
356
|
+
return 0
|
|
357
|
+
asked = load_asked()
|
|
358
|
+
who = asker(happened)
|
|
359
|
+
if index_query(tool, given):
|
|
360
|
+
asked[who] = time.time()
|
|
361
|
+
try:
|
|
362
|
+
ASKED.write_text(json.dumps(dict(sorted(asked.items(), key=lambda pair: pair[1])[-200:])) + "\n")
|
|
363
|
+
except OSError:
|
|
364
|
+
pass
|
|
365
|
+
return 0
|
|
366
|
+
if who in asked:
|
|
367
|
+
return 0
|
|
368
|
+
symbol = symbol_search(tool, given)
|
|
369
|
+
if symbol is None:
|
|
370
|
+
return 0
|
|
371
|
+
first = symbol.split("|")[0]
|
|
372
|
+
print(f"{REFUSED}: `{symbol}` is a symbol, and this repository's code index answers who calls it, what it calls "
|
|
373
|
+
f"and what a change to it reaches. Ask it first: `scripts/codegraph callers {first}`, `scripts/codegraph "
|
|
374
|
+
f"impact {first}` or `scripts/codegraph explore {first}` through the shell, or the codegraph_explore tool. "
|
|
375
|
+
"A text search is for words in documents — spec.md, decisions.md, model.yaml, a test's string — and once "
|
|
376
|
+
"the index has been asked in this context a search for a symbol is allowed too.", file=sys.stderr)
|
|
377
|
+
return 2
|
|
378
|
+
|
|
379
|
+
|
|
380
|
+
def sync() -> int:
|
|
381
|
+
"""A delegate came back, having edited what it edited: bring the index up to it. Never fails the call."""
|
|
382
|
+
if DATABASE.is_file() and route() is not None:
|
|
383
|
+
cli("sync", ".")
|
|
384
|
+
return 0
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
# --- what the stream says each delegate did --------------------------------------------------------------------------
|
|
388
|
+
|
|
389
|
+
|
|
390
|
+
def delegate_use(stream: Path, only: int | None = None) -> dict[int, list[dict[str, Any]]]:
|
|
391
|
+
"""Per iteration of a runner's stream, per agent — the host session, then each delegate in the order it was sent —
|
|
392
|
+
how often it asked the index, which symbols it searched the source for before it had, and how often `guard`
|
|
393
|
+
refused it. Claude Code marks a delegate's events with `parent_tool_use_id`; a harness whose stream does not
|
|
394
|
+
is counted as the host alone."""
|
|
395
|
+
found: dict[int, list[dict[str, Any]]] = {}
|
|
396
|
+
if not stream.is_file():
|
|
397
|
+
return found
|
|
398
|
+
iteration, agents = 0, {}
|
|
399
|
+
for line in stream.read_text(errors="replace").splitlines():
|
|
400
|
+
if line.startswith("# iteration "):
|
|
401
|
+
iteration = int(line.split()[2])
|
|
402
|
+
if only is not None and iteration != only:
|
|
403
|
+
continue
|
|
404
|
+
agents = {"": {"agent": "host", "queries": 0, "searched_first": [], "refused": 0}}
|
|
405
|
+
found[iteration] = list(agents.values())
|
|
406
|
+
continue
|
|
407
|
+
if only is not None and iteration != only:
|
|
408
|
+
continue
|
|
409
|
+
try:
|
|
410
|
+
happened = json.loads(line)
|
|
411
|
+
except ValueError:
|
|
412
|
+
continue
|
|
413
|
+
if not isinstance(happened, dict) or iteration not in found:
|
|
414
|
+
continue
|
|
415
|
+
owner = agents.get(str(happened.get("parent_tool_use_id") or ""), agents[""])
|
|
416
|
+
message = happened.get("message") if isinstance(happened.get("message"), dict) else {}
|
|
417
|
+
for block in message.get("content") if isinstance(message.get("content"), list) else []:
|
|
418
|
+
if not isinstance(block, dict):
|
|
419
|
+
continue
|
|
420
|
+
given = block.get("input") if isinstance(block.get("input"), dict) else {}
|
|
421
|
+
if block.get("type") == "tool_use":
|
|
422
|
+
name = str(block.get("name", ""))
|
|
423
|
+
if name in ("Agent", "Task"):
|
|
424
|
+
agents[str(block.get("id", ""))] = {"agent": str(given.get("subagent_type") or "delegate"),
|
|
425
|
+
"queries": 0, "searched_first": [], "refused": 0}
|
|
426
|
+
found[iteration].append(agents[str(block.get("id", ""))])
|
|
427
|
+
elif index_query(name, given):
|
|
428
|
+
owner["queries"] += 1
|
|
429
|
+
elif not owner["queries"] and (symbol := symbol_search(name, given)):
|
|
430
|
+
owner["searched_first"].append(symbol)
|
|
431
|
+
# An error result carrying the hook's words: an index answer quoting this file is not a refusal.
|
|
432
|
+
elif block.get("type") == "tool_result" and block.get("is_error") and REFUSED in json.dumps(block.get("content")):
|
|
433
|
+
owner["refused"] += 1
|
|
434
|
+
item = happened.get("item") if isinstance(happened.get("item"), dict) else {}
|
|
435
|
+
if happened.get("type") == "item.started":
|
|
436
|
+
if (item.get("type") == "mcp_tool_call" and item.get("server") == "codegraph") or (
|
|
437
|
+
item.get("type") == "command_execution" and INDEX_QUERY.search(str(item.get("command", "")))):
|
|
438
|
+
owner["queries"] += 1
|
|
439
|
+
elif item.get("type") == "command_execution" and not owner["queries"]:
|
|
440
|
+
symbol = symbol_search("Bash", {"command": item.get("command", "")})
|
|
441
|
+
if symbol:
|
|
442
|
+
owner["searched_first"].append(symbol)
|
|
443
|
+
return found
|
|
444
|
+
|
|
445
|
+
|
|
446
|
+
def use_lines(iteration: int, agents: list[dict[str, Any]]) -> list[str]:
|
|
447
|
+
"""The feed's and `status`'s account of one iteration: the queries per agent, then each agent that searched the
|
|
448
|
+
source for a symbol before asking the index."""
|
|
449
|
+
counts = ", ".join(f"{agent['agent']} {agent['queries']}" for agent in agents)
|
|
450
|
+
lines = [f"cruise: iteration {iteration} asked the code index {sum(agent['queries'] for agent in agents)} time(s) — "
|
|
451
|
+
f"{counts}"]
|
|
452
|
+
for agent in agents:
|
|
453
|
+
if agent["searched_first"]:
|
|
454
|
+
shown = ", ".join(f"`{each}`" for each in dict.fromkeys(agent["searched_first"]))
|
|
455
|
+
lines.append(f"cruise: {agent['agent']} searched the source for {shown} before asking the index")
|
|
456
|
+
if agent["refused"]:
|
|
457
|
+
lines.append(f"cruise: {agent['agent']} was refused {agent['refused']} symbol search(es) until it asked")
|
|
458
|
+
return lines
|
|
459
|
+
|
|
460
|
+
|
|
461
|
+
def main(argv: list[str]) -> int:
|
|
462
|
+
verb = argv[0] if argv else ""
|
|
463
|
+
if verb == "health":
|
|
464
|
+
said = health()
|
|
465
|
+
print(f"code-index: {said['state']} — {said['detail']}" if said else "code-index: no index adopted here")
|
|
466
|
+
return 1 if said.get("state") in ("failed", "unreachable") else 0
|
|
467
|
+
if verb == "session":
|
|
468
|
+
said = health()
|
|
469
|
+
if said and said["state"] != "current":
|
|
470
|
+
print(f"code-index: at session start the index was {said['state']} — {said['detail']}")
|
|
471
|
+
return 0
|
|
472
|
+
if verb == "guard":
|
|
473
|
+
return guard()
|
|
474
|
+
if verb == "sync":
|
|
475
|
+
return sync()
|
|
476
|
+
print(__doc__, file=sys.stderr)
|
|
477
|
+
return 2
|
|
478
|
+
|
|
479
|
+
|
|
480
|
+
if __name__ == "__main__":
|
|
481
|
+
raise SystemExit(main(sys.argv[1:]))
|
|
@@ -76,6 +76,12 @@ def project_root(script: Path, depth: int) -> Path:
|
|
|
76
76
|
|
|
77
77
|
SCRIPT = Path(__file__).resolve()
|
|
78
78
|
ROOT = project_root(SCRIPT, 2)
|
|
79
|
+
# The code index's health, freshness and per-delegate use live beside this script, shared with the hooks. No bytecode:
|
|
80
|
+
# a `__pycache__/` written beside the scripts is an untracked directory in the project, which `add-service` refuses
|
|
81
|
+
# to start over and the run's fingerprint would read as progress.
|
|
82
|
+
sys.dont_write_bytecode = True
|
|
83
|
+
sys.path.insert(0, str(SCRIPT.parent))
|
|
84
|
+
import code_index # noqa: E402
|
|
79
85
|
# The delivery toolkit this script is part of: `commands/`, `scripts/`, `skills/` beside each other, at the root
|
|
80
86
|
# or under the delivery directory of an adopted repository.
|
|
81
87
|
DELIVERY = SCRIPT.parents[2]
|
|
@@ -91,10 +97,6 @@ STREAM = ROOT / ".specify/cruise-stream.jsonl"
|
|
|
91
97
|
# The code index `./init --extension codegraph` leaves, and the project MCP file that carries its server: what the
|
|
92
98
|
# runner says it can expect of them before the first iteration, rather than a feed that fell back to grep without saying.
|
|
93
99
|
CODE_INDEX = ROOT / ".codegraph/codegraph.db"
|
|
94
|
-
# A shell command that asks the index something, as against one that maintains it: `codegraph sync` keeps the gate
|
|
95
|
-
# green and answers nothing, and counting it once let a run claim the index was asked when every answer was grep
|
|
96
|
-
# (the CLI's query subcommands, `codegraph help` in the 1.6.0 bundle, read 2026-09-22).
|
|
97
|
-
INDEX_QUERY = re.compile(r"\bcodegraph\s+(query|explore|node|files|callers|callees|impact|affected)\b")
|
|
98
100
|
MCP_CONFIG = ROOT / ".mcp.json"
|
|
99
101
|
# How far into the run log the watching session has read.
|
|
100
102
|
WATCH_CURSOR = ROOT / ".specify/cruise-watch.cursor"
|
|
@@ -1224,6 +1226,12 @@ def drive(table: dict[str, Any], harness: dict[str, Any] | None, template: str,
|
|
|
1224
1226
|
feature, kickoff if attempt == "kick-off" else None, told_argument(messages)) if part))
|
|
1225
1227
|
print(f"cruise: iteration {len(entries()) + 1} carries {len(messages)} message(s) from a person", flush=True)
|
|
1226
1228
|
iteration = len(entries()) + 1
|
|
1229
|
+
# The index an iteration starts against is the runner's to make sound, not the iteration's: a corrupt one is
|
|
1230
|
+
# moved aside and rebuilt, a stale one synced, and the entry says which — before the clock starts.
|
|
1231
|
+
index = code_index.health()
|
|
1232
|
+
if index:
|
|
1233
|
+
print(f"cruise: code index before iteration {iteration} — {index['state']}: {index['detail']} "
|
|
1234
|
+
f"({index['seconds']}s)", flush=True)
|
|
1227
1235
|
started = now()
|
|
1228
1236
|
LAST_RESPONSE.unlink(missing_ok=True)
|
|
1229
1237
|
INTERRUPTED = False
|
|
@@ -1246,6 +1254,13 @@ def drive(table: dict[str, Any], harness: dict[str, Any] | None, template: str,
|
|
|
1246
1254
|
"last_line": last or "no last line", "fingerprint": seen}
|
|
1247
1255
|
if attempt is not None:
|
|
1248
1256
|
entry["attempt"] = attempt
|
|
1257
|
+
if index:
|
|
1258
|
+
entry["index"] = index
|
|
1259
|
+
use = code_index.delegate_use(STREAM, iteration).get(iteration) if index and stream else None
|
|
1260
|
+
if use:
|
|
1261
|
+
entry["index_use"] = use
|
|
1262
|
+
for line in code_index.use_lines(iteration, use):
|
|
1263
|
+
print(line, flush=True)
|
|
1249
1264
|
changed = controls_changed(controls_before, controls_signature())
|
|
1250
1265
|
if changed:
|
|
1251
1266
|
entry["controls_changed"] = changed
|
|
@@ -1531,36 +1546,9 @@ def refusals() -> dict[tuple[str, str], list[int]]:
|
|
|
1531
1546
|
def index_queries() -> dict[int, int]:
|
|
1532
1547
|
"""How many times each iteration in the stream asked the code index — an MCP tool of the codegraph server, or a
|
|
1533
1548
|
query subcommand of the CLI through the shell; never `sync`, `init` or `serve`, which maintain it — so `status`
|
|
1534
|
-
can say whether the index was used rather than only kept fresh."""
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
return asked
|
|
1538
|
-
iteration = 0
|
|
1539
|
-
for line in STREAM.read_text(errors="replace").splitlines():
|
|
1540
|
-
if line.startswith("# iteration "):
|
|
1541
|
-
iteration = int(line.split()[2])
|
|
1542
|
-
asked.setdefault(iteration, 0)
|
|
1543
|
-
continue
|
|
1544
|
-
try:
|
|
1545
|
-
event = json.loads(line)
|
|
1546
|
-
except ValueError:
|
|
1547
|
-
continue
|
|
1548
|
-
if not isinstance(event, dict):
|
|
1549
|
-
continue
|
|
1550
|
-
message = event.get("message") if isinstance(event.get("message"), dict) else {}
|
|
1551
|
-
for block in message.get("content") if isinstance(message.get("content"), list) else []:
|
|
1552
|
-
if not isinstance(block, dict) or block.get("type") != "tool_use":
|
|
1553
|
-
continue
|
|
1554
|
-
given = block.get("input") if isinstance(block.get("input"), dict) else {}
|
|
1555
|
-
if str(block.get("name", "")).startswith("mcp__codegraph__") or (
|
|
1556
|
-
block.get("name") == "Bash" and INDEX_QUERY.search(str(given.get("command", "")))):
|
|
1557
|
-
asked[iteration] = asked.get(iteration, 0) + 1
|
|
1558
|
-
item = event.get("item") if isinstance(event.get("item"), dict) else {}
|
|
1559
|
-
if event.get("type") == "item.started" and (
|
|
1560
|
-
(item.get("type") == "mcp_tool_call" and item.get("server") == "codegraph")
|
|
1561
|
-
or (item.get("type") == "command_execution" and INDEX_QUERY.search(str(item.get("command", ""))))):
|
|
1562
|
-
asked[iteration] = asked.get(iteration, 0) + 1
|
|
1563
|
-
return asked
|
|
1549
|
+
can say whether the index was used rather than only kept fresh. Summed over the host and every delegate."""
|
|
1550
|
+
return {iteration: sum(agent["queries"] for agent in agents)
|
|
1551
|
+
for iteration, agents in code_index.delegate_use(STREAM).items()}
|
|
1564
1552
|
|
|
1565
1553
|
|
|
1566
1554
|
def index_use_lines() -> list[str]:
|
|
@@ -1580,6 +1568,18 @@ def index_use_lines() -> list[str]:
|
|
|
1580
1568
|
"it was refused, and `start` says whether it can be reached at all"]
|
|
1581
1569
|
|
|
1582
1570
|
|
|
1571
|
+
def delegate_lines(last: int = 5) -> list[str]:
|
|
1572
|
+
"""`status`'s per-delegate account of the last few iterations the stream holds: each agent's queries, and each
|
|
1573
|
+
that searched the source for a symbol before asking the index."""
|
|
1574
|
+
if not CODE_INDEX.is_file():
|
|
1575
|
+
return []
|
|
1576
|
+
used = code_index.delegate_use(STREAM)
|
|
1577
|
+
lines: list[str] = []
|
|
1578
|
+
for iteration in sorted(used)[-last:]:
|
|
1579
|
+
lines += code_index.use_lines(iteration, used[iteration])
|
|
1580
|
+
return lines
|
|
1581
|
+
|
|
1582
|
+
|
|
1583
1583
|
def denials() -> None:
|
|
1584
1584
|
"""What a run needed that its permissions did not allow — the list to read after a run, before widening
|
|
1585
1585
|
anything, because the tools a build needs are measured from a build and not guessed at."""
|
|
@@ -1637,7 +1637,7 @@ def status() -> None:
|
|
|
1637
1637
|
if found:
|
|
1638
1638
|
print(f"cruise: {sum(len(its) for its in found.values())} permission refusal(s) in the stream; "
|
|
1639
1639
|
"`python3 scripts/agents/cruise.py denials` lists them")
|
|
1640
|
-
for line in index_use_lines():
|
|
1640
|
+
for line in index_use_lines() + delegate_lines():
|
|
1641
1641
|
print(line)
|
|
1642
1642
|
|
|
1643
1643
|
|
|
@@ -224,8 +224,11 @@
|
|
|
224
224
|
"file": ".mcp.json",
|
|
225
225
|
"format": "json-mcpServers",
|
|
226
226
|
"headlessFlags": "--mcp-config .mcp.json",
|
|
227
|
-
"
|
|
228
|
-
|
|
227
|
+
"serverFields": {
|
|
228
|
+
"alwaysLoad": true
|
|
229
|
+
},
|
|
230
|
+
"how": "the project-scoped MCP file Claude Code reads (code.claude.com/docs/en/mcp, the scope table): `{\"mcpServers\": {\"<name>\": {\"type\": \"stdio\", \"command\", \"args\"}}}`. A print session loads it only once the workspace is trusted and the file's servers approved (`enabledMcpjsonServers` in the project's settings, which an untrusted workspace ignores), so the runner passes the file by name; `alwaysLoad: true` on the entry loads the server's tools at session start, delegates' included, rather than behind the tool-search step a delegate otherwise has to take by name before its first call",
|
|
231
|
+
"source": "a 2.1.280 print session in an untrusted scratch checkout: `--mcp-config .mcp.json` listed the file's server as connected on its init event and the allowed tool answered; the same file without the flag, in the same checkout, was not loaded — read 2026-09-22; the file's shape also from CodeGraph 1.6.0's installer targets (`lib/dist/installer/targets/*.js` in the @colbymchenry/codegraph-linux-x64 bundle), which write the same file for `--location=local`, read 2026-09-22; `alwaysLoad`: three 2.1.281 print sessions in a scratch checkout, each sending a delegate to find a function's callers — without the key the delegate's first call was the tool-search step selecting `codegraph_explore`, with it (two sessions) its first call was `codegraph_explore` itself — read 2026-09-25"
|
|
229
232
|
}
|
|
230
233
|
},
|
|
231
234
|
{
|