imperal-sdk 4.2.8__tar.gz → 4.2.9__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-4.2.8 → imperal_sdk-4.2.9}/CHANGELOG.md +13 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/PKG-INFO +1 -1
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/__init__.py +1 -1
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/imperal.schema.json +73 -1
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/.github/workflows/identity-contract.yml +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/.github/workflows/publish.yml +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/.github/workflows/test.yml +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/.gitignore +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/LICENSE +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/README.md +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/api_surface.json +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/pyproject.toml +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/.codebase-index-cache.pkl +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ai/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ai/client.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/auth/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/auth/client.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/auth/middleware.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/billing/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/billing/client.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/cache/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/cache/client.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/cache/protocol.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/action_result.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/error_codes.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/extension.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/filters.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/guards.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/handler.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/kernel_primitives.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/narration.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/narration_guard.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/prompt.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/refusal.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/retry.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/cli/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/cli/main.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/config/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/config/client.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/context.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/db/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/db/client.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/errors.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/extension.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/extensions/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/extensions/client.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/http/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/http/client.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/manifest.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/manifest_schema.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/notify/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/notify/client.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/prompts/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/prompts/icnli_integrity_rules.txt +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/prompts/kernel_formatting_rule.txt +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/prompts/kernel_proactivity_rule.txt +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/protocols.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/rpc/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/rpc/codec.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/rpc/contract.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/runtime/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/runtime/executor.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/runtime/llm_provider.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/runtime/message_adapter.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/action_result.schema.json +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/balance_info.schema.json +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/chat_result.schema.json +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/completion_result.schema.json +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/document.schema.json +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/event.schema.json +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/file_info.schema.json +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/function_call.schema.json +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/http_response.schema.json +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/limits_result.schema.json +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/subscription_info.schema.json +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/secrets/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/secrets/client.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/secrets/exceptions.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/secrets/panel_handler.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/secrets/spec.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/security/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/security/call_token.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/skeleton/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/skeleton/client.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/storage/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/storage/client.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/store/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/store/client.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/store/exceptions.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/testing/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/testing/mock_context.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/testing/mock_secrets.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/tools/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/tools/client.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/tools/generate_api_surface.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/tools/validate_identity_contract.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/types/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/types/action_result.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/types/chat_result.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/types/client_contracts.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/types/contracts.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/types/contributions.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/types/events.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/types/health.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/types/identity.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/types/models.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/types/pagination.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/types/store_contracts.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ui/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ui/actions.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ui/base.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ui/data.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ui/display.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ui/feedback.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ui/graph.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ui/input_components.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ui/interactive.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ui/layout.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ui/theme.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/validator.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/validator_v1_6_0.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/conftest.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/contracts/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/contracts/test_store_contracts.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/fixtures/openapi/auth-gateway.json +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/fixtures/openapi/registry.json +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/fixtures/openapi/sharelock-cases.json +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/rpc/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/rpc/test_codec.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/rpc/test_contract.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/runtime/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/runtime/test_llm_provider_config_store.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/runtime/test_llm_provider_ctx_injection.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/store/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/store/test_list_users_client.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/store/test_query_all_client.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_action_result_typed.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_as_user.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_auth.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_billing.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_cache_client.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_cache_model.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_call_token.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_chat_extension_deprecation.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_chat_filters.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_chat_guards.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_chat_guards_bleed.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_chat_prompt.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_chat_pydantic_retry.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_chat_result.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_cli.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_client_contracts.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_config_client.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_context.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_context_guards.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_contracts.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_contracts_live.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_contributions.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_document_contract.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_emits_decorator.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_error_codes.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_errors.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_event_schema_v2.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_events_health.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_extension.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_extension_v2.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_extensions_emit.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_handler_p2.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_id_shape_guard.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_identity_contract.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_imperal_schema_v2.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_kernel_primitives.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_manifest.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_manifest_roundtrip_gate.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_manifest_schema.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_manifest_v2_events.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_manifest_v2_other_sections.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_manifest_v2_webhooks.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_manifest_validator_v2.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_mock_context.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_models.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_narration_emission.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_narration_guard.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_openai_max_completion_tokens.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_pagination.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_panel_rendering_contract.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_panels.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_skeleton_decorator.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_spec_validation.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_tools_client.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_ui.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_ui_fileupload_enhanced.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_ui_html.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_ui_image_enhanced.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_ui_open.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_ui_theme.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_user.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_v7_emit_refusal.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_validator.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_validator_drift.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_validator_pep563.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_validator_v1_6_0_rules.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_write_arg_bleed.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/tools/__init__.py +0 -0
- {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/tools/test_generate_api_surface.py +0 -0
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `imperal-sdk` are documented here.
|
|
4
4
|
|
|
5
|
+
## 4.2.9 — 2026-05-13
|
|
6
|
+
|
|
7
|
+
**Fix: regenerate `src/imperal_sdk/schemas/imperal.schema.json` after SecretDecl addition**
|
|
8
|
+
|
|
9
|
+
v4.2.8 added the `SecretDecl` Pydantic model + `Manifest.secrets` field but
|
|
10
|
+
forgot to regenerate the committed static JSON Schema mirror. CI gate
|
|
11
|
+
`test_spec_validation.py::test_static_schema_matches_runtime_export[imperal]`
|
|
12
|
+
caught the drift — runtime Pydantic schema (with `SecretDecl` + `secrets[]`)
|
|
13
|
+
no longer matched the committed file.
|
|
14
|
+
|
|
15
|
+
This release ships the regenerated `imperal.schema.json` so the static
|
|
16
|
+
artifact equals the runtime model again. No public API change.
|
|
17
|
+
|
|
5
18
|
## 4.2.8 — 2026-05-13
|
|
6
19
|
|
|
7
20
|
**Fix: `secrets[]` finally in `Manifest` Pydantic schema**
|
|
@@ -224,6 +224,63 @@
|
|
|
224
224
|
"title": "Schedule",
|
|
225
225
|
"type": "object"
|
|
226
226
|
},
|
|
227
|
+
"SecretDecl": {
|
|
228
|
+
"additionalProperties": false,
|
|
229
|
+
"description": "One entry in `manifest['secrets']` — EXT-SECRETS-V1 (v4.2.2+).\n\nMirrors :class:`imperal_sdk.secrets.spec.SecretSpec` after\n``to_manifest_dict()``. The Pydantic model exists so\n:func:`validate_manifest_dict` round-trips the emitted shape — closes\nthe `I-MANIFEST-EMITTER-SCHEMA-SYMMETRIC` drift gap that lived\nsilently from v4.2.2 → v4.2.7.",
|
|
230
|
+
"properties": {
|
|
231
|
+
"name": {
|
|
232
|
+
"pattern": "^[a-z][a-z0-9_]{0,62}$",
|
|
233
|
+
"title": "Name",
|
|
234
|
+
"type": "string"
|
|
235
|
+
},
|
|
236
|
+
"description": {
|
|
237
|
+
"minLength": 1,
|
|
238
|
+
"title": "Description",
|
|
239
|
+
"type": "string"
|
|
240
|
+
},
|
|
241
|
+
"required": {
|
|
242
|
+
"default": false,
|
|
243
|
+
"title": "Required",
|
|
244
|
+
"type": "boolean"
|
|
245
|
+
},
|
|
246
|
+
"write_mode": {
|
|
247
|
+
"default": "user",
|
|
248
|
+
"enum": [
|
|
249
|
+
"user",
|
|
250
|
+
"extension",
|
|
251
|
+
"both"
|
|
252
|
+
],
|
|
253
|
+
"title": "Write Mode",
|
|
254
|
+
"type": "string"
|
|
255
|
+
},
|
|
256
|
+
"max_bytes": {
|
|
257
|
+
"default": 4096,
|
|
258
|
+
"maximum": 65536,
|
|
259
|
+
"minimum": 1,
|
|
260
|
+
"title": "Max Bytes",
|
|
261
|
+
"type": "integer"
|
|
262
|
+
},
|
|
263
|
+
"rotation_hint_days": {
|
|
264
|
+
"anyOf": [
|
|
265
|
+
{
|
|
266
|
+
"minimum": 1,
|
|
267
|
+
"type": "integer"
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
"type": "null"
|
|
271
|
+
}
|
|
272
|
+
],
|
|
273
|
+
"default": null,
|
|
274
|
+
"title": "Rotation Hint Days"
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
"required": [
|
|
278
|
+
"name",
|
|
279
|
+
"description"
|
|
280
|
+
],
|
|
281
|
+
"title": "SecretDecl",
|
|
282
|
+
"type": "object"
|
|
283
|
+
},
|
|
227
284
|
"Signal": {
|
|
228
285
|
"additionalProperties": false,
|
|
229
286
|
"description": "One entry in `manifest['signals']`.",
|
|
@@ -254,7 +311,7 @@
|
|
|
254
311
|
},
|
|
255
312
|
"Tool": {
|
|
256
313
|
"additionalProperties": false,
|
|
257
|
-
"description": "One entry in `manifest['tools']`.\n\nFederal v4.0.0
|
|
314
|
+
"description": "One entry in `manifest['tools']`.\n\nFederal v4.0.0 — typed dispatch fields (action_type, chain_callable,\neffects, params_schema, return_schema, event) declared at top level so\nthe kernel chain planner can route deterministically without\nre-deriving from extension code.",
|
|
258
315
|
"properties": {
|
|
259
316
|
"name": {
|
|
260
317
|
"minLength": 1,
|
|
@@ -704,6 +761,21 @@
|
|
|
704
761
|
"default": null,
|
|
705
762
|
"title": "System"
|
|
706
763
|
},
|
|
764
|
+
"secrets": {
|
|
765
|
+
"anyOf": [
|
|
766
|
+
{
|
|
767
|
+
"items": {
|
|
768
|
+
"$ref": "#/$defs/SecretDecl"
|
|
769
|
+
},
|
|
770
|
+
"type": "array"
|
|
771
|
+
},
|
|
772
|
+
{
|
|
773
|
+
"type": "null"
|
|
774
|
+
}
|
|
775
|
+
],
|
|
776
|
+
"default": null,
|
|
777
|
+
"title": "Secrets"
|
|
778
|
+
},
|
|
707
779
|
"name": {
|
|
708
780
|
"anyOf": [
|
|
709
781
|
{
|
|
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-4.2.8 → imperal_sdk-4.2.9}/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
|
{imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/subscription_info.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
|
|
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
|
|
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
|