imperal-sdk 5.7.2__tar.gz → 5.7.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/CHANGELOG.md +7 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/PKG-INFO +1 -1
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/sdk-reference.json +1 -1
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/sdk_claims.json +1 -1
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/__init__.py +1 -1
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ir/actions.py +14 -2
- imperal_sdk-5.7.3/tests/fixtures/ir/README.md +26 -0
- imperal_sdk-5.7.3/tests/fixtures/ir/archive_ended.ir.json +20 -0
- imperal_sdk-5.7.3/tests/fixtures/ir/link_saver.ir.json +24 -0
- imperal_sdk-5.7.3/tests/fixtures/ir/test_fixtures_valid.py +19 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/runtime/test_verb_store.py +13 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/.github/workflows/identity-contract.yml +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/.github/workflows/publish.yml +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/.github/workflows/test.yml +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/.gitignore +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/LICENSE +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/README.md +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/docs/sdl-facets.md +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/pyproject.toml +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/sdl_roles.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/.codebase-index-cache.pkl +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ai/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ai/client.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/auth/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/auth/client.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/auth/middleware.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/billing/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/billing/client.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/cache/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/cache/client.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/cache/protocol.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/chat/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/chat/action_result.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/chat/error_codes.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/chat/exceptions.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/chat/extension.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/chat/filters.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/chat/guards.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/chat/kernel_primitives.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/chat/narration.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/chat/narration_guard.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/chat/prompt.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/chat/refusal.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/cli/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/cli/main.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/config/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/config/client.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/context.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/devtools/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/devtools/contract_checks.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/devtools/generate_api_surface.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/devtools/generate_reference.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/devtools/generate_sdk_claims.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/devtools/reference/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/devtools/reference/_flags.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/devtools/reference/_introspect.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/devtools/reference/client_methods.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/devtools/reference/dataclasses_kind.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/devtools/reference/decorators.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/devtools/reference/sdl_funcs.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/devtools/reference/sdl_roles.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/devtools/reference/ui_components.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/devtools/validate_identity_contract.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/errors.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/extension.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/extensions/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/extensions/client.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/http/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/http/client.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ir/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ir/_impl.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ir/custom_roles.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ir/migrate.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ir/produce.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ir/schema.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ir/skeleton.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ir/ui.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ir/ui_children.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ir/ui_template.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ir/validator.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/manifest.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/manifest_schema.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/manifest_schema_ui.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/notify/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/notify/client.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/prompts/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/prompts/icnli_integrity_rules.txt +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/prompts/kernel_formatting_rule.txt +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/prompts/kernel_proactivity_rule.txt +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/protocols.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/rpc/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/rpc/codec.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/rpc/contract.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/runtime/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/runtime/_platform.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/runtime/canon.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/runtime/engine.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/runtime/executor.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/runtime/hosted_client.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/runtime/interpreter.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/runtime/llm_provider.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/runtime/local_engine.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/runtime/message_adapter.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/runtime/template.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/runtime/verbs.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/action_result.schema.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/actions/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/actions/ai_complete.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/actions/call.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/actions/conditional.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/actions/navigate.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/actions/open.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/actions/send.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/actions/store_create.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/actions/store_delete.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/actions/store_get.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/actions/store_list.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/actions/store_update.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/balance_info.schema.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/chat_result.schema.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/completion_result.schema.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/document.schema.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/event.schema.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/file_info.schema.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/function_call.schema.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/http_response.schema.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/imperal.schema.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/ir.schema.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/limits_result.schema.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/metered_event.schema.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/subscription_info.schema.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/ui_children/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/ui_children/accordion.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/ui_children/datatable_columns.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/ui_children/datatable_rows.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/ui_children/menu.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/ui_children/select.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/ui_children/tabs.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/ui_children/timeline.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/ui_children/tree.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/sdl/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/sdl/_generate_roles_json.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/sdl/entity.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/sdl/facet_resolve.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/sdl/facets/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/sdl/facets/catalog.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/sdl/facets/comm.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/sdl/facets/content.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/sdl/facets/device.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/sdl/facets/event.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/sdl/facets/geo.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/sdl/facets/identity.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/sdl/facets/media.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/sdl/facets/metric.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/sdl/facets/money.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/sdl/facets/net.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/sdl/facets/people.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/sdl/facets/quantity.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/sdl/facets/rating.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/sdl/facets/security.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/sdl/facets/task.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/sdl/facets/time.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/sdl/field.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/sdl/roles.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/secrets/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/secrets/client.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/secrets/exceptions.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/secrets/panel_handler.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/secrets/spec.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/security/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/security/call_token.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/skeleton/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/skeleton/client.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/storage/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/storage/client.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/store/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/store/client.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/store/exceptions.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/testing/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/testing/mock_context.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/testing/mock_secrets.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/types/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/types/action_result.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/types/chat_result.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/types/client_contracts.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/types/contracts.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/types/contributions.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/types/events.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/types/health.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/types/identity.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/types/metered_event.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/types/models.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/types/pagination.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/types/store_contracts.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ui/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ui/actions.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ui/base.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ui/data.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ui/display.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ui/feedback.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ui/graph.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ui/input_components.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ui/interactive.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ui/layout.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/ui/theme.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/validator.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/validator_v1_6_0.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/conftest.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/contract/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/contract/test_action_schemas.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/contract/test_artifacts_freshness.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/contract/test_contract_checks_selftest.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/contract/test_generate_sdk_claims.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/contract/test_identity_nonempty.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/contract/test_ir_schema_fresh.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/contract/test_meter_lua_contract.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/contract/test_metered_event_contract.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/contract/test_public_docstrings_engine_neutral.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/contract/test_reference_completeness.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/contract/test_reference_no_leak.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/contract/test_sample_contract_shape.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/contract/test_sdk_matches_kernel_contract.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/contracts/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/contracts/test_store_contracts.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/fixtures/contract/kernel-contract.sample.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/fixtures/openapi/auth-gateway.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/fixtures/openapi/registry.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/fixtures/openapi/sharelock-cases.json +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/ir/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/ir/test_custom_roles.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/ir/test_ir_impl.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/ir/test_ir_mapping_real_ext.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/ir/test_ir_migrate.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/ir/test_ir_produce.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/ir/test_ir_schema.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/ir/test_ir_skeleton.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/ir/test_ir_ui.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/ir/test_ir_ui_produce.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/ir/test_ir_validator.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/ir/test_ir_versions.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/ir/test_ui_children.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/ir/test_ui_template.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/rpc/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/rpc/test_boundary_seal.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/rpc/test_codec.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/rpc/test_contract.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/runtime/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/runtime/test_canon.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/runtime/test_canon_template.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/runtime/test_engine_abc.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/runtime/test_engine_parity.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/runtime/test_executor_neutral.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/runtime/test_hosted_client.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/runtime/test_interpreter.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/runtime/test_llm_provider_config_store.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/runtime/test_llm_provider_ctx_injection.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/runtime/test_local_engine.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/runtime/test_platform_shim.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/runtime/test_template.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/runtime/test_verb_ai.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/runtime/test_verb_call_directives.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/runtime/test_verb_conditional.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/store/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/store/test_list_users_client.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/store/test_query_all_client.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_action_result_typed.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_as_user.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_auth.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_billing.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_cache_client.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_cache_model.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_call_token.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_chat_extension_deprecation.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_chat_extension_no_llm_router.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_chat_filters.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_chat_function_background_flag.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_chat_guards.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_chat_guards_bleed.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_chat_prompt.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_chat_result.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_cli.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_client_contracts.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_client_emit_neutral.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_config_client.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_context.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_context_background_task.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_context_deliver_chat_message.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_context_guards.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_contracts.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_contracts_live.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_contributions.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_data_model_kwarg.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_document_contract.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_emits_decorator.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_error_codes.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_errors.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_event_schema_v2.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_events_health.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_extension.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_extension_v2.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_extensions_emit.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_http_json_and_mock.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_http_timeout_override.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_id_shape_guard.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_identity_contract.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_imperal_schema_v2.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_import_light.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_kernel_primitives.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_manifest.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_manifest_no_orchestrator_tool.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_manifest_panels.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_manifest_roundtrip_gate.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_manifest_schema.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_manifest_v2_events.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_manifest_v2_other_sections.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_manifest_v2_webhooks.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_manifest_validator_v2.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_mock_context.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_models.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_narration_emission.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_narration_guard.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_openai_max_completion_tokens.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_pagination.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_panel_rendering_contract.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_panels.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_phase_a_dead_removal.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_phase_a_drift.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_phase_a_text.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdk_version_stamp.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_entity.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_entity_marker.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_exports.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_facet_catalog.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_facet_collisions.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_facet_comm.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_facet_content.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_facet_device.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_facet_event.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_facet_exports.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_facet_field.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_facet_geo.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_facet_identity.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_facet_media.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_facet_metric.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_facet_money.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_facet_net.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_facet_people.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_facet_quantity.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_facet_rating.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_facet_resolve.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_facet_security.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_facet_task.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_facet_time.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_facets_catalog.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_facets_doc.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_facets_pkg.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_field.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_roles.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_roles_json.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_roles_of_facets.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_sdl_vocab_version.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_skeleton_decorator.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_spec_validation.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_ui.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_ui_fileupload_enhanced.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_ui_html.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_ui_image_enhanced.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_ui_open.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_ui_theme.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_user.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_v7_emit_refusal.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_validator.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_validator_drift.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_validator_pep563.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_validator_v1_6_0_rules.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_validator_v25.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/test_write_arg_bleed.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/tools/__init__.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/tools/test_generate_api_surface.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/tools/test_generate_reference.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/tools/test_reference_description.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/tools/test_reference_flags.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/tools/test_reference_typegraph.py +0 -0
- {imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/tests/ui/test_input_type_enum.py +0 -0
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `imperal-sdk` are documented here.
|
|
4
4
|
|
|
5
|
+
## 5.7.3 — 2026-06-21 — Fix: validate_step is now binding-DSL-aware
|
|
6
|
+
|
|
7
|
+
Patch — declarative validation; no API change.
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
- **`validate_step` accepts a whole-match binding-DSL value (`{{ path }}`) in any typed field.** A binding resolves at runtime to the raw referenced object (any type), so its static type is unknowable. E.g. `store.update`'s `ids: "{{steps.s1.ids}}"` (resolves to a list) previously failed with `ids: expected array, got str`, blocking every declarative flow that binds a prior step's list into an array field. Whole-match `{{...}}` now skips the static type-check; interpolated strings (`"...{{x}}..."`) still type-check as `str` (they always resolve to a string). The interpreter already handled bindings at runtime — this aligns the validator (`ir/actions.py`).
|
|
11
|
+
|
|
5
12
|
## 5.7.2 — 2026-06-21 — Fix: store.create schema required `set`, interpreter reads `data`
|
|
6
13
|
|
|
7
14
|
Patch — declarative action-schema ↔ interpreter alignment; no API change.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""Imperal Cloud SDK — build extensions for the Imperal platform."""
|
|
2
2
|
from typing import TYPE_CHECKING
|
|
3
3
|
|
|
4
|
-
__version__ = "5.7.
|
|
4
|
+
__version__ = "5.7.3"
|
|
5
5
|
|
|
6
6
|
# 5.2.2 (2026-06-11): the package root resolves its public surface lazily
|
|
7
7
|
# (PEP 562). The eager imports pulled the HTTP transport (Context / client
|
|
@@ -16,6 +16,7 @@ Design note — no jsonschema at runtime:
|
|
|
16
16
|
from __future__ import annotations
|
|
17
17
|
|
|
18
18
|
import json
|
|
19
|
+
import re
|
|
19
20
|
from functools import lru_cache
|
|
20
21
|
from importlib import resources
|
|
21
22
|
from typing import Any
|
|
@@ -87,6 +88,13 @@ def _type_ok(value: Any, type_name: str) -> bool:
|
|
|
87
88
|
return isinstance(value, py_type)
|
|
88
89
|
|
|
89
90
|
|
|
91
|
+
# A whole-match binding-DSL token ({{ path.to.value }}) resolves at runtime to
|
|
92
|
+
# the raw referenced object (any type), so its static type is unknowable here.
|
|
93
|
+
# Mirrors runtime/template.py:_WHOLE. Interpolated strings ("...{{x}}...") are
|
|
94
|
+
# NOT whole-match — they always resolve to str and still type-check as string.
|
|
95
|
+
_WHOLE_BINDING = re.compile(r"^\s*\{\{\s*[\w.]+\s*\}\}\s*$")
|
|
96
|
+
|
|
97
|
+
|
|
90
98
|
def _validate_object(value: Any, schema: dict) -> list[str]:
|
|
91
99
|
"""Validate *value* against a ``type:object`` schema fragment.
|
|
92
100
|
|
|
@@ -105,11 +113,15 @@ def _validate_object(value: Any, schema: dict) -> list[str]:
|
|
|
105
113
|
for prop_name, prop_schema in schema.get("properties", {}).items():
|
|
106
114
|
if prop_name not in value:
|
|
107
115
|
continue
|
|
116
|
+
val = value[prop_name]
|
|
117
|
+
# Deferred binding-DSL value — type resolved at runtime; accept statically.
|
|
118
|
+
if isinstance(val, str) and _WHOLE_BINDING.match(val):
|
|
119
|
+
continue
|
|
108
120
|
prop_type = prop_schema.get("type")
|
|
109
|
-
if prop_type is not None and not _type_ok(
|
|
121
|
+
if prop_type is not None and not _type_ok(val, prop_type):
|
|
110
122
|
errors.append(
|
|
111
123
|
f"'{prop_name}': expected {prop_type}, "
|
|
112
|
-
f"got {type(
|
|
124
|
+
f"got {type(val).__name__}"
|
|
113
125
|
)
|
|
114
126
|
|
|
115
127
|
return errors
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# L1 declarative app fixtures + smoke-run contract
|
|
2
|
+
|
|
3
|
+
Committed, validator-clean `impl=declarative` apps used as (a) conformance fixtures and
|
|
4
|
+
(b) few-shot exemplars for the L1 compose loop.
|
|
5
|
+
|
|
6
|
+
- `link_saver.ir.json` — CRUD: `save_link` (store.create), `list_links` (store.list),
|
|
7
|
+
`delete_link` (store.delete).
|
|
8
|
+
- `archive_ended.ir.json` — conditional flow: store.list → conditional(count>0) →
|
|
9
|
+
store.update → send (exercises the binding-DSL + conditional).
|
|
10
|
+
|
|
11
|
+
Together they cover the full non-Turing vocabulary.
|
|
12
|
+
|
|
13
|
+
## Smoke-run contract
|
|
14
|
+
|
|
15
|
+
A composed app **passes smoke-run** iff, for the probed function, `HostedEngine.run_function`
|
|
16
|
+
returns without error AND — for a `write` function — a follow-up `read` in the **same isolated
|
|
17
|
+
store** reflects the write (e.g. after `save_link`, `list_links` count increases). Smoke-run
|
|
18
|
+
writes go to an isolated store namespace (a fresh per-run `MockContext` tenant), **never real
|
|
19
|
+
data**.
|
|
20
|
+
|
|
21
|
+
## Compose loop (intent → IR → validate → repair → deploy → smoke)
|
|
22
|
+
|
|
23
|
+
The composer is handed the enriched catalog (`sdk-reference.json`), the IR JSON Schema, these
|
|
24
|
+
exemplars, and the validator as a tool. It emits IR, validates, repairs on `ValidationIssue`s
|
|
25
|
+
(bounded cycles), deploys via the registration API, and smoke-runs — **declarative-only** (the
|
|
26
|
+
generated artifact is non-Turing, validated, executes no arbitrary code).
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ir_version": "1.0",
|
|
3
|
+
"app": {
|
|
4
|
+
"id": "campaign-archiver",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"title": "Campaign Archiver",
|
|
7
|
+
"description": "Archive ended ad campaigns and report how many.",
|
|
8
|
+
"capabilities": ["store:write"],
|
|
9
|
+
"functions": [
|
|
10
|
+
{"name": "archive_ended", "description": "Archive all ended campaigns", "action_type": "write",
|
|
11
|
+
"params_schema": {"type": "object", "properties": {}},
|
|
12
|
+
"impl": {"kind": "declarative", "steps": [
|
|
13
|
+
{"id": "s1", "op": "store.list", "args": {"kind": "campaign", "where": {"status": "ended"}}},
|
|
14
|
+
{"id": "s2", "op": "conditional", "if": {"field": "{{steps.s1.count}}", "gt": 0}, "then": "s3"},
|
|
15
|
+
{"id": "s3", "op": "store.update", "args": {"kind": "campaign", "ids": "{{steps.s1.ids}}", "set": {"archived": true}}},
|
|
16
|
+
{"id": "s4", "op": "send", "args": {"message": "Archived {{steps.s3.count}} ended campaign(s)."}}
|
|
17
|
+
]}}
|
|
18
|
+
]
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ir_version": "1.0",
|
|
3
|
+
"app": {
|
|
4
|
+
"id": "link-saver",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"title": "Link Saver",
|
|
7
|
+
"description": "Save, list, and delete links.",
|
|
8
|
+
"capabilities": ["store:write"],
|
|
9
|
+
"functions": [
|
|
10
|
+
{"name": "save_link", "description": "Save a link", "action_type": "write",
|
|
11
|
+
"params_schema": {"type": "object", "properties": {"url": {"type": "string"}, "title": {"type": "string"}}, "required": ["url"]},
|
|
12
|
+
"impl": {"kind": "declarative", "steps": [
|
|
13
|
+
{"id": "s1", "op": "store.create", "args": {"kind": "link", "data": {"url": "{{event.url}}", "title": "{{event.title}}"}}}]}},
|
|
14
|
+
{"name": "list_links", "description": "List saved links", "action_type": "read",
|
|
15
|
+
"params_schema": {"type": "object", "properties": {}},
|
|
16
|
+
"impl": {"kind": "declarative", "steps": [
|
|
17
|
+
{"id": "s1", "op": "store.list", "args": {"kind": "link"}}]}},
|
|
18
|
+
{"name": "delete_link", "description": "Delete a link by id", "action_type": "destructive",
|
|
19
|
+
"params_schema": {"type": "object", "properties": {"id": {"type": "string"}}, "required": ["id"]},
|
|
20
|
+
"impl": {"kind": "declarative", "steps": [
|
|
21
|
+
{"id": "s1", "op": "store.delete", "args": {"kind": "link", "id": "{{event.id}}"}}]}}
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import json
|
|
2
|
+
import pathlib
|
|
3
|
+
|
|
4
|
+
import pytest
|
|
5
|
+
|
|
6
|
+
from imperal_sdk.ir.validator import validate_ir_dict
|
|
7
|
+
from imperal_sdk.ir.actions import validate_step
|
|
8
|
+
|
|
9
|
+
FIX = pathlib.Path(__file__).parent
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@pytest.mark.parametrize("name", ["link_saver", "archive_ended"])
|
|
13
|
+
def test_fixture_is_valid_declarative(name):
|
|
14
|
+
ir = json.loads((FIX / f"{name}.ir.json").read_text())
|
|
15
|
+
assert validate_ir_dict(ir) == [], f"{name}: envelope invalid"
|
|
16
|
+
for fn in ir["app"]["functions"]:
|
|
17
|
+
assert fn["impl"]["kind"] == "declarative", f"{name}/{fn['name']}: not declarative"
|
|
18
|
+
for step in fn["impl"].get("steps", []):
|
|
19
|
+
assert validate_step(step) == [], (name, fn["name"], step.get("op"), validate_step(step))
|
|
@@ -101,3 +101,16 @@ def test_store_create_schema_agrees_with_interpreter():
|
|
|
101
101
|
assert validate_step(good) == []
|
|
102
102
|
missing_data = {"id": "s1", "op": "store.create", "args": {"kind": "c"}}
|
|
103
103
|
assert validate_step(missing_data) # non-empty: missing required 'data'
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
def test_validate_step_accepts_whole_binding_in_typed_field():
|
|
107
|
+
"""A whole-match {{binding}} resolves to a runtime value of unknown type, so
|
|
108
|
+
validate_step must accept it in any typed field (e.g. ids: array). An
|
|
109
|
+
interpolated string still type-checks as str."""
|
|
110
|
+
from imperal_sdk.ir.actions import validate_step
|
|
111
|
+
bound = {"id": "s3", "op": "store.update",
|
|
112
|
+
"args": {"kind": "c", "ids": "{{steps.s1.ids}}", "set": {"archived": True}}}
|
|
113
|
+
assert validate_step(bound) == []
|
|
114
|
+
interpolated = {"id": "s3", "op": "store.update",
|
|
115
|
+
"args": {"kind": "c", "ids": "x{{steps.s1.ids}}", "set": {}}}
|
|
116
|
+
assert validate_step(interpolated) # ids interpolated -> str -> expected array -> error
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/devtools/reference/client_methods.py
RENAMED
|
File without changes
|
{imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/devtools/reference/dataclasses_kind.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/devtools/validate_identity_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/completion_result.schema.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/subscription_info.schema.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/ui_children/datatable_columns.json
RENAMED
|
File without changes
|
{imperal_sdk-5.7.2 → imperal_sdk-5.7.3}/src/imperal_sdk/schemas/ui_children/datatable_rows.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|