imperal-sdk 6.3.1__tar.gz → 6.3.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-6.3.1 → imperal_sdk-6.3.3}/CHANGELOG.md +14 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/PKG-INFO +1 -1
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/sdk-reference.json +1 -1
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/sdk_claims.json +1 -1
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/__init__.py +1 -1
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/code_index.py +32 -4
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_code_index_indexer.py +27 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/.cm.txt +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/.github/workflows/identity-contract.yml +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/.github/workflows/publish.yml +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/.github/workflows/test.yml +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/.gitignore +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/LICENSE +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/README.md +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/docs/sdl-facets.md +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/pyproject.toml +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/sdl_roles.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/.codebase-index-cache.pkl +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/_gateway.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/_http_retry.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/_shared_http.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/adversarial_oracle.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ai/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ai/client.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/app.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/apps/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/apps/client.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/auth/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/auth/client.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/auth/middleware.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/auto_ui.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/billing/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/billing/client.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/bom_extractor.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/cache/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/cache/client.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/cache/protocol.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/catalog.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/chat/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/chat/action_result.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/chat/error_codes.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/chat/exceptions.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/chat/extension.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/chat/filters.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/chat/guards.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/chat/kernel_primitives.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/chat/narration.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/chat/narration_guard.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/chat/prompt.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/chat/refusal.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/cli/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/cli/linter.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/cli/main.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/config/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/config/client.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/context.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/conversations/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/conversations/client.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/core.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/cross_surface_bus.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/devtools/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/devtools/contract_checks.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/devtools/generate_api_surface.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/devtools/generate_reference.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/devtools/generate_sdk_claims.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/devtools/reference/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/devtools/reference/_flags.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/devtools/reference/_introspect.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/devtools/reference/client_methods.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/devtools/reference/dataclasses_kind.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/devtools/reference/decorators.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/devtools/reference/sdl_funcs.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/devtools/reference/sdl_roles.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/devtools/reference/ui_components.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/devtools/validate_identity_contract.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/errors.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/extension.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/extensions/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/extensions/client.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/gnc_guard.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/http/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/http/client.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ir/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ir/_impl.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ir/actions.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ir/custom_roles.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ir/migrate.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ir/produce.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ir/schema.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ir/skeleton.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ir/ui.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ir/ui_children.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ir/ui_template.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ir/validator.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/manifest.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/manifest_schema.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/manifest_schema_ui.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/notify/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/notify/client.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/oauth_state.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/oauth_tokens.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/pipes.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/prompts/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/prompts/icnli_integrity_rules.txt +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/prompts/kernel_formatting_rule.txt +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/prompts/kernel_proactivity_rule.txt +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/protocols.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/rbac/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/rbac/client.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/rpc/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/rpc/codec.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/rpc/contract.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/runtime/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/runtime/_platform.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/runtime/canon.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/runtime/engine.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/runtime/executor.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/runtime/hosted_client.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/runtime/interpreter.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/runtime/llm_provider.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/runtime/local_engine.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/runtime/message_adapter.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/runtime/template.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/runtime/verbs.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schema/marathon_ram.sql +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/action_result.schema.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/actions/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/actions/ai_complete.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/actions/call.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/actions/conditional.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/actions/navigate.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/actions/open.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/actions/send.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/actions/store_create.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/actions/store_delete.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/actions/store_get.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/actions/store_list.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/actions/store_update.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/balance_info.schema.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/chat_result.schema.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/completion_result.schema.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/document.schema.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/event.schema.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/file_info.schema.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/function_call.schema.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/http_response.schema.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/imperal.schema.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/ir.schema.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/limits_result.schema.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/metered_event.schema.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/subscription_info.schema.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/ui_children/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/ui_children/accordion.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/ui_children/datatable_columns.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/ui_children/datatable_rows.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/ui_children/menu.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/ui_children/select.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/ui_children/tabs.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/ui_children/timeline.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/ui_children/tree.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/sdl/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/sdl/_generate_roles_json.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/sdl/entity.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/sdl/facet_resolve.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/sdl/facets/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/sdl/facets/catalog.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/sdl/facets/comm.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/sdl/facets/content.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/sdl/facets/device.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/sdl/facets/event.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/sdl/facets/geo.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/sdl/facets/identity.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/sdl/facets/media.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/sdl/facets/metric.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/sdl/facets/money.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/sdl/facets/net.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/sdl/facets/people.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/sdl/facets/quantity.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/sdl/facets/rating.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/sdl/facets/security.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/sdl/facets/task.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/sdl/facets/time.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/sdl/field.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/sdl/roles.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/search.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/secrets/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/secrets/client.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/secrets/exceptions.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/secrets/panel_handler.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/secrets/spec.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/security/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/security/call_token.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/security/deactivation_guard.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/signals/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/signals/client.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/skeleton/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/skeleton/client.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/storage/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/storage/client.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/store/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/store/client.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/store/exceptions.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/testing/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/testing/autonomous_mock.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/testing/mock_context.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/testing/mock_secrets.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/transport.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/typed_context.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/types/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/types/action_result.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/types/chat_result.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/types/client_contracts.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/types/contracts.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/types/contributions.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/types/events.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/types/health.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/types/identity.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/types/metered_event.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/types/models.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/types/pagination.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/types/store_contracts.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ui/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ui/actions.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ui/base.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ui/canvas.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ui/data.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ui/display.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ui/feedback.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ui/graph.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ui/input_components.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ui/interactive.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ui/layout.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ui/liquid.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ui/signals.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ui/stage.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/ui/theme.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/users/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/users/client.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/validator.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/validator_v1_6_0.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/vault_ram_client.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/conftest.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/contract/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/contract/test_action_schemas.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/contract/test_artifacts_freshness.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/contract/test_contract_checks_selftest.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/contract/test_generate_sdk_claims.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/contract/test_identity_nonempty.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/contract/test_ir_schema_fresh.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/contract/test_meter_lua_contract.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/contract/test_metered_event_contract.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/contract/test_notify_wire_payload.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/contract/test_public_docstrings_engine_neutral.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/contract/test_reference_completeness.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/contract/test_reference_no_leak.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/contract/test_sample_contract_shape.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/contract/test_sdk_matches_kernel_contract.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/contracts/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/contracts/test_store_contracts.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/fixtures/contract/kernel-contract.sample.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/fixtures/ir/README.md +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/fixtures/ir/archive_ended.ir.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/fixtures/ir/link_saver.ir.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/fixtures/ir/test_fixtures_valid.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/fixtures/openapi/auth-gateway.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/fixtures/openapi/registry.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/fixtures/openapi/sharelock-cases.json +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/ir/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/ir/test_custom_roles.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/ir/test_ir_impl.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/ir/test_ir_mapping_real_ext.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/ir/test_ir_migrate.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/ir/test_ir_produce.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/ir/test_ir_schema.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/ir/test_ir_skeleton.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/ir/test_ir_ui.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/ir/test_ir_ui_produce.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/ir/test_ir_validator.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/ir/test_ir_versions.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/ir/test_ui_children.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/ir/test_ui_template.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/rpc/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/rpc/test_boundary_seal.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/rpc/test_codec.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/rpc/test_contract.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/runtime/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/runtime/test_canon.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/runtime/test_canon_template.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/runtime/test_engine_abc.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/runtime/test_engine_parity.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/runtime/test_executor_neutral.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/runtime/test_hosted_client.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/runtime/test_interpreter.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/runtime/test_llm_provider_config_store.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/runtime/test_llm_provider_ctx_injection.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/runtime/test_local_engine.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/runtime/test_platform_shim.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/runtime/test_template.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/runtime/test_verb_ai.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/runtime/test_verb_call_directives.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/runtime/test_verb_conditional.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/runtime/test_verb_store.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/store/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/store/test_list_users_client.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/store/test_query_all_client.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_action_result_time_travel.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_action_result_typed.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_agent_presence.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_as_user.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_auth.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_autonomous_mock.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_billing.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_cache_client.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_cache_model.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_call_token.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_callable_surface_single_source.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_chat_extension_deprecation.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_chat_extension_no_llm_router.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_chat_filters.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_chat_function_background_flag.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_chat_guards.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_chat_guards_bleed.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_chat_prompt.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_chat_result.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_cli.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_cli_sdk_commands.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_client_contracts.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_client_emit_neutral.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_code_index_contracts.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_config_client.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_context.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_context_background_task.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_context_deliver_chat_message.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_context_guards.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_contracts.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_contracts_live.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_contributions.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_core_primitives.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_data_model_kwarg.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_document_contract.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_emits_decorator.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_error_codes.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_errors.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_event_schema_v2.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_events_health.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_extension.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_extension_pipes.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_extension_v2.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_extensions_emit.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_gateway_namespaces.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_http_json_and_mock.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_http_retry.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_http_timeout_override.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_id_shape_guard.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_identity_contract.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_imperal_schema_v2.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_import_light.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_init_onboarding.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_kernel_primitives.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_liquid_ui.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_manifest.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_manifest_file_sinks.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_manifest_linter.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_manifest_no_orchestrator_tool.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_manifest_oauth.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_manifest_panels.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_manifest_roundtrip_gate.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_manifest_schema.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_manifest_v2_events.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_manifest_v2_other_sections.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_manifest_v2_webhooks.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_manifest_validator_v2.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_mock_context.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_models.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_narration_emission.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_narration_guard.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_oauth_authorize_url.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_oauth_tokens_shared.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_openai_max_completion_tokens.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_pagination.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_panel_rendering_contract.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_panel_swr_caching.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_panels.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_phase_a_dead_removal.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_phase_a_drift.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_phase_a_text.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_quantum_app.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdk_version_stamp.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_entity.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_entity_marker.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_exports.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_facet_catalog.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_facet_collisions.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_facet_comm.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_facet_content.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_facet_device.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_facet_event.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_facet_exports.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_facet_field.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_facet_geo.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_facet_identity.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_facet_media.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_facet_metric.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_facet_money.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_facet_net.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_facet_people.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_facet_quantity.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_facet_rating.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_facet_resolve.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_facet_security.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_facet_task.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_facet_time.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_facets_catalog.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_facets_doc.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_facets_pkg.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_field.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_roles.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_roles_json.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_roles_of_facets.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sdl_vocab_version.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_search_provider.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_secret_scope_decorator.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_secret_spec_scope.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_skeleton_decorator.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_spec_validation.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_stage.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_surface_adaptation.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_sync_async_parity.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_transport_isolation.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_ui.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_ui_canvas.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_ui_fileupload_enhanced.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_ui_html.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_ui_image_enhanced.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_ui_modal.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_ui_open.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_ui_signals.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_ui_theme.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_user.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_v7_emit_refusal.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_validator.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_validator_drift.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_validator_pep563.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_validator_v1_6_0_rules.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_validator_v25.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/test_write_arg_bleed.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/tools/__init__.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/tools/test_generate_api_surface.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/tools/test_generate_reference.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/tools/test_reference_description.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/tools/test_reference_flags.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/tools/test_reference_typegraph.py +0 -0
- {imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/tests/ui/test_input_type_enum.py +0 -0
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `imperal-sdk` are documented here.
|
|
4
4
|
|
|
5
|
+
## 6.3.3 — 2026-10-20
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
- `apply_batches` sizes each part as it is sent (the blob's text and facts, its chunks' vectors) against
|
|
9
|
+
`APPLY_BATCH_BYTES` = 4 MB, half the vault's request cap: a first sync of a large repo no longer gets 413.
|
|
10
|
+
|
|
11
|
+
## 6.3.2 — 2026-10-20
|
|
12
|
+
|
|
13
|
+
### Security
|
|
14
|
+
- `clean_remote` (new, public): a git remote is cleaned by parsing it — a URL rebuilt from scheme, host,
|
|
15
|
+
port and path (userinfo split on its last `@`, query and fragment dropped), a `user:secret` dropped from
|
|
16
|
+
an scp-like remote, `""` for what does not parse. `git_identity` and `sftp_read_meta` use it (6.3.1's
|
|
17
|
+
regex could leave part of a password behind).
|
|
18
|
+
|
|
5
19
|
## 6.3.1 — 2026-10-20
|
|
6
20
|
|
|
7
21
|
### Security
|
|
@@ -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__ = "6.3.
|
|
4
|
+
__version__ = "6.3.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
|
|
@@ -1351,7 +1351,29 @@ def build_index(root: str, files: list[str]) -> ProjectIndex:
|
|
|
1351
1351
|
|
|
1352
1352
|
_HEAD_REF = re.compile(r"ref:\s*refs/heads/(\S+)")
|
|
1353
1353
|
_SHA = re.compile(r"^[0-9a-f]{40}$")
|
|
1354
|
-
|
|
1354
|
+
def clean_remote(url) -> str:
|
|
1355
|
+
"""A git remote without any credentials: a URL is rebuilt from scheme, host, port and path (the userinfo
|
|
1356
|
+
split on its LAST ``@`` and dropped, query and fragment dropped); an scp-like ``user@host:path`` keeps a
|
|
1357
|
+
plain user and drops a ``user:secret``; a value that does not parse is ``""``. Shared word for word
|
|
1358
|
+
by the vault (``stores/repos.clean_remote``)."""
|
|
1359
|
+
from urllib.parse import urlsplit, urlunsplit
|
|
1360
|
+
u = str(url or "").strip().strip('"').strip("'").strip()
|
|
1361
|
+
if not u or any(c.isspace() for c in u):
|
|
1362
|
+
return ""
|
|
1363
|
+
if "://" in u:
|
|
1364
|
+
try:
|
|
1365
|
+
parts = urlsplit(u)
|
|
1366
|
+
host, port = parts.hostname or "", parts.port
|
|
1367
|
+
except ValueError:
|
|
1368
|
+
return ""
|
|
1369
|
+
if not parts.scheme or (not host and parts.scheme != "file"):
|
|
1370
|
+
return ""
|
|
1371
|
+
netloc = (f"[{host}]" if ":" in host else host) + (f":{port}" if port else "")
|
|
1372
|
+
return urlunsplit((parts.scheme, netloc, parts.path, "", ""))
|
|
1373
|
+
user, at, rest = u.rpartition("@")
|
|
1374
|
+
if at and ":" in user:
|
|
1375
|
+
return rest # "user:secret@host:path": the secret never leaves
|
|
1376
|
+
return u
|
|
1355
1377
|
|
|
1356
1378
|
|
|
1357
1379
|
def _meta_text(meta: dict, key: str) -> str:
|
|
@@ -1390,7 +1412,7 @@ def git_identity(meta: dict) -> dict:
|
|
|
1390
1412
|
first = first or url
|
|
1391
1413
|
if section == '[remote"origin"]':
|
|
1392
1414
|
remote = url
|
|
1393
|
-
remote =
|
|
1415
|
+
remote = clean_remote(remote or first)
|
|
1394
1416
|
return {"remote": remote, "branch": branch, "commit": commit}
|
|
1395
1417
|
|
|
1396
1418
|
|
|
@@ -1588,7 +1610,7 @@ def embed_query(text: str) -> bytes:
|
|
|
1588
1610
|
# normalised and hashed, only blobs the repo does not hold are extracted (and their chunks embedded),
|
|
1589
1611
|
# and the apply goes in size-bounded parts -- the last one stitches the links.
|
|
1590
1612
|
|
|
1591
|
-
APPLY_BATCH_BYTES =
|
|
1613
|
+
APPLY_BATCH_BYTES = 4_000_000 # one apply body as sent (JSON) -- half the vault's 8 MiB request cap
|
|
1592
1614
|
READ_BATCH = 200
|
|
1593
1615
|
|
|
1594
1616
|
|
|
@@ -1596,11 +1618,17 @@ def apply_batches(files: list, blobs: list, chunks: list, limit: int = APPLY_BAT
|
|
|
1596
1618
|
"""One sync's apply split by size (a big first sync never goes as one HTTP body): each part carries
|
|
1597
1619
|
its blobs, the files that point at them and their chunks; files of blobs the repo already holds go
|
|
1598
1620
|
first. ``[{files, blobs, chunks}]`` -- the last part stitches."""
|
|
1621
|
+
import json as _json
|
|
1599
1622
|
parts: list = [{"files": [], "blobs": [], "chunks": []}]
|
|
1600
1623
|
where: dict = {}
|
|
1601
1624
|
size = 0
|
|
1625
|
+
by_blob: dict = {}
|
|
1626
|
+
for c in chunks:
|
|
1627
|
+
by_blob.setdefault(c.get("blob"), []).append(c)
|
|
1602
1628
|
for b in blobs:
|
|
1603
|
-
|
|
1629
|
+
# the size as sent: the blob with its text and facts, and its chunks with their vectors
|
|
1630
|
+
n = len(_json.dumps(b, default=str).encode("utf-8")) + sum(
|
|
1631
|
+
len(_json.dumps(c, default=str).encode("utf-8")) for c in by_blob.get(b["hash"], ()))
|
|
1604
1632
|
if parts[-1]["blobs"] and size + n > limit:
|
|
1605
1633
|
parts.append({"files": [], "blobs": [], "chunks": []})
|
|
1606
1634
|
size = 0
|
|
@@ -382,3 +382,30 @@ def test_sftp_reads_never_follow_a_link_and_never_ship_git_credentials():
|
|
|
382
382
|
assert ci.git_identity(meta["files"])["remote"] == "https://git.x/r.git"
|
|
383
383
|
many = asyncio.run(ci.sftp_read_many(S(), "/r", ["app/x.py", "out/passwd", "tsconfig.json"]))
|
|
384
384
|
assert many["files"] == {"app/x.py": b"x = 1\n"} and set(many["skipped"]) == {"out/passwd", "tsconfig.json"}
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
def test_a_remote_never_carries_credentials_however_it_is_written():
|
|
388
|
+
from imperal_sdk.code_index import clean_remote
|
|
389
|
+
assert clean_remote("https://u:p@ss@host.x/r.git") == "https://host.x/r.git"
|
|
390
|
+
assert clean_remote('"https://bob:tok@git.x:8443/r.git?x=1#f"') == "https://git.x:8443/r.git"
|
|
391
|
+
assert clean_remote("ssh://git@host/r.git") == "ssh://host/r.git"
|
|
392
|
+
assert clean_remote("git@github.com:org/r.git") == "git@github.com:org/r.git"
|
|
393
|
+
assert clean_remote("bob:secret@host:r.git") == "host:r.git"
|
|
394
|
+
assert clean_remote("https://[::1]:9/r") == "https://[::1]:9/r" and clean_remote("http://h:bad/r") == ""
|
|
395
|
+
assert clean_remote("") == "" and clean_remote("a b") == ""
|
|
396
|
+
|
|
397
|
+
|
|
398
|
+
def test_every_apply_part_fits_the_vault_body_cap_as_sent():
|
|
399
|
+
"""Live 2026-10-20: a first sync of the kernel repo hit the vault's 8 MiB body cap (413) -- the parts
|
|
400
|
+
were sized by file text alone while each blob also carries its facts and its chunks' vectors."""
|
|
401
|
+
import json
|
|
402
|
+
from imperal_sdk import code_index as ci
|
|
403
|
+
blobs = [{"hash": f"h{i}", "text": "x" * 200_000,
|
|
404
|
+
"facts": {"defs": [{"name": f"d{j}", "qualname": f"q{j}" * 20} for j in range(4000)]}} for i in range(40)]
|
|
405
|
+
files = [{"path": f"f{i}.py", "blob": f"h{i}"} for i in range(40)]
|
|
406
|
+
chunks = [{"blob": f"h{i}", "vector": "A" * 2000, "start_line": k} for i in range(40) for k in range(50)]
|
|
407
|
+
parts = ci.apply_batches(files, blobs, chunks)
|
|
408
|
+
assert len(parts) > 1 and sum(len(p["blobs"]) for p in parts) == 40
|
|
409
|
+
for p in parts:
|
|
410
|
+
assert len(json.dumps(p).encode("utf-8")) <= ci.APPLY_BATCH_BYTES + 64_000
|
|
411
|
+
assert ci.APPLY_BATCH_BYTES <= 4_200_000
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/devtools/reference/client_methods.py
RENAMED
|
File without changes
|
{imperal_sdk-6.3.1 → imperal_sdk-6.3.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-6.3.1 → imperal_sdk-6.3.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
|
|
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-6.3.1 → imperal_sdk-6.3.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-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/subscription_info.schema.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{imperal_sdk-6.3.1 → imperal_sdk-6.3.3}/src/imperal_sdk/schemas/ui_children/datatable_columns.json
RENAMED
|
File without changes
|
{imperal_sdk-6.3.1 → imperal_sdk-6.3.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
|