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.
Files changed (206) hide show
  1. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/CHANGELOG.md +13 -0
  2. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/PKG-INFO +1 -1
  3. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/__init__.py +1 -1
  4. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/imperal.schema.json +73 -1
  5. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/.github/workflows/identity-contract.yml +0 -0
  6. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/.github/workflows/publish.yml +0 -0
  7. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/.github/workflows/test.yml +0 -0
  8. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/.gitignore +0 -0
  9. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/LICENSE +0 -0
  10. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/README.md +0 -0
  11. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/api_surface.json +0 -0
  12. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/pyproject.toml +0 -0
  13. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/.codebase-index-cache.pkl +0 -0
  14. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ai/__init__.py +0 -0
  15. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ai/client.py +0 -0
  16. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/auth/__init__.py +0 -0
  17. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/auth/client.py +0 -0
  18. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/auth/middleware.py +0 -0
  19. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/billing/__init__.py +0 -0
  20. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/billing/client.py +0 -0
  21. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/cache/__init__.py +0 -0
  22. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/cache/client.py +0 -0
  23. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/cache/protocol.py +0 -0
  24. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/__init__.py +0 -0
  25. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/action_result.py +0 -0
  26. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/error_codes.py +0 -0
  27. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/extension.py +0 -0
  28. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/filters.py +0 -0
  29. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/guards.py +0 -0
  30. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/handler.py +0 -0
  31. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/kernel_primitives.py +0 -0
  32. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/narration.py +0 -0
  33. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/narration_guard.py +0 -0
  34. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/prompt.py +0 -0
  35. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/refusal.py +0 -0
  36. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/chat/retry.py +0 -0
  37. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/cli/__init__.py +0 -0
  38. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/cli/main.py +0 -0
  39. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/config/__init__.py +0 -0
  40. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/config/client.py +0 -0
  41. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/context.py +0 -0
  42. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/db/__init__.py +0 -0
  43. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/db/client.py +0 -0
  44. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/errors.py +0 -0
  45. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/extension.py +0 -0
  46. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/extensions/__init__.py +0 -0
  47. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/extensions/client.py +0 -0
  48. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/http/__init__.py +0 -0
  49. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/http/client.py +0 -0
  50. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/manifest.py +0 -0
  51. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/manifest_schema.py +0 -0
  52. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/notify/__init__.py +0 -0
  53. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/notify/client.py +0 -0
  54. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/prompts/__init__.py +0 -0
  55. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/prompts/icnli_integrity_rules.txt +0 -0
  56. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/prompts/kernel_formatting_rule.txt +0 -0
  57. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/prompts/kernel_proactivity_rule.txt +0 -0
  58. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/protocols.py +0 -0
  59. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/rpc/__init__.py +0 -0
  60. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/rpc/codec.py +0 -0
  61. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/rpc/contract.py +0 -0
  62. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/runtime/__init__.py +0 -0
  63. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/runtime/executor.py +0 -0
  64. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/runtime/llm_provider.py +0 -0
  65. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/runtime/message_adapter.py +0 -0
  66. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/action_result.schema.json +0 -0
  67. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/balance_info.schema.json +0 -0
  68. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/chat_result.schema.json +0 -0
  69. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/completion_result.schema.json +0 -0
  70. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/document.schema.json +0 -0
  71. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/event.schema.json +0 -0
  72. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/file_info.schema.json +0 -0
  73. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/function_call.schema.json +0 -0
  74. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/http_response.schema.json +0 -0
  75. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/limits_result.schema.json +0 -0
  76. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/schemas/subscription_info.schema.json +0 -0
  77. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/secrets/__init__.py +0 -0
  78. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/secrets/client.py +0 -0
  79. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/secrets/exceptions.py +0 -0
  80. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/secrets/panel_handler.py +0 -0
  81. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/secrets/spec.py +0 -0
  82. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/security/__init__.py +0 -0
  83. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/security/call_token.py +0 -0
  84. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/skeleton/__init__.py +0 -0
  85. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/skeleton/client.py +0 -0
  86. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/storage/__init__.py +0 -0
  87. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/storage/client.py +0 -0
  88. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/store/__init__.py +0 -0
  89. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/store/client.py +0 -0
  90. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/store/exceptions.py +0 -0
  91. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/testing/__init__.py +0 -0
  92. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/testing/mock_context.py +0 -0
  93. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/testing/mock_secrets.py +0 -0
  94. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/tools/__init__.py +0 -0
  95. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/tools/client.py +0 -0
  96. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/tools/generate_api_surface.py +0 -0
  97. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/tools/validate_identity_contract.py +0 -0
  98. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/types/__init__.py +0 -0
  99. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/types/action_result.py +0 -0
  100. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/types/chat_result.py +0 -0
  101. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/types/client_contracts.py +0 -0
  102. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/types/contracts.py +0 -0
  103. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/types/contributions.py +0 -0
  104. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/types/events.py +0 -0
  105. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/types/health.py +0 -0
  106. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/types/identity.py +0 -0
  107. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/types/models.py +0 -0
  108. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/types/pagination.py +0 -0
  109. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/types/store_contracts.py +0 -0
  110. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ui/__init__.py +0 -0
  111. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ui/actions.py +0 -0
  112. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ui/base.py +0 -0
  113. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ui/data.py +0 -0
  114. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ui/display.py +0 -0
  115. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ui/feedback.py +0 -0
  116. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ui/graph.py +0 -0
  117. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ui/input_components.py +0 -0
  118. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ui/interactive.py +0 -0
  119. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ui/layout.py +0 -0
  120. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/ui/theme.py +0 -0
  121. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/validator.py +0 -0
  122. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/src/imperal_sdk/validator_v1_6_0.py +0 -0
  123. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/conftest.py +0 -0
  124. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/contracts/__init__.py +0 -0
  125. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/contracts/test_store_contracts.py +0 -0
  126. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/fixtures/openapi/auth-gateway.json +0 -0
  127. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/fixtures/openapi/registry.json +0 -0
  128. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/fixtures/openapi/sharelock-cases.json +0 -0
  129. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/rpc/__init__.py +0 -0
  130. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/rpc/test_codec.py +0 -0
  131. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/rpc/test_contract.py +0 -0
  132. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/runtime/__init__.py +0 -0
  133. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/runtime/test_llm_provider_config_store.py +0 -0
  134. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/runtime/test_llm_provider_ctx_injection.py +0 -0
  135. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/store/__init__.py +0 -0
  136. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/store/test_list_users_client.py +0 -0
  137. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/store/test_query_all_client.py +0 -0
  138. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_action_result_typed.py +0 -0
  139. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_as_user.py +0 -0
  140. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_auth.py +0 -0
  141. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_billing.py +0 -0
  142. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_cache_client.py +0 -0
  143. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_cache_model.py +0 -0
  144. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_call_token.py +0 -0
  145. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_chat_extension_deprecation.py +0 -0
  146. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_chat_filters.py +0 -0
  147. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_chat_guards.py +0 -0
  148. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_chat_guards_bleed.py +0 -0
  149. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_chat_prompt.py +0 -0
  150. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_chat_pydantic_retry.py +0 -0
  151. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_chat_result.py +0 -0
  152. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_cli.py +0 -0
  153. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_client_contracts.py +0 -0
  154. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_config_client.py +0 -0
  155. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_context.py +0 -0
  156. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_context_guards.py +0 -0
  157. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_contracts.py +0 -0
  158. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_contracts_live.py +0 -0
  159. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_contributions.py +0 -0
  160. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_document_contract.py +0 -0
  161. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_emits_decorator.py +0 -0
  162. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_error_codes.py +0 -0
  163. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_errors.py +0 -0
  164. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_event_schema_v2.py +0 -0
  165. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_events_health.py +0 -0
  166. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_extension.py +0 -0
  167. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_extension_v2.py +0 -0
  168. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_extensions_emit.py +0 -0
  169. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_handler_p2.py +0 -0
  170. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_id_shape_guard.py +0 -0
  171. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_identity_contract.py +0 -0
  172. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_imperal_schema_v2.py +0 -0
  173. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_kernel_primitives.py +0 -0
  174. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_manifest.py +0 -0
  175. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_manifest_roundtrip_gate.py +0 -0
  176. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_manifest_schema.py +0 -0
  177. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_manifest_v2_events.py +0 -0
  178. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_manifest_v2_other_sections.py +0 -0
  179. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_manifest_v2_webhooks.py +0 -0
  180. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_manifest_validator_v2.py +0 -0
  181. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_mock_context.py +0 -0
  182. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_models.py +0 -0
  183. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_narration_emission.py +0 -0
  184. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_narration_guard.py +0 -0
  185. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_openai_max_completion_tokens.py +0 -0
  186. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_pagination.py +0 -0
  187. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_panel_rendering_contract.py +0 -0
  188. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_panels.py +0 -0
  189. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_skeleton_decorator.py +0 -0
  190. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_spec_validation.py +0 -0
  191. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_tools_client.py +0 -0
  192. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_ui.py +0 -0
  193. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_ui_fileupload_enhanced.py +0 -0
  194. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_ui_html.py +0 -0
  195. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_ui_image_enhanced.py +0 -0
  196. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_ui_open.py +0 -0
  197. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_ui_theme.py +0 -0
  198. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_user.py +0 -0
  199. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_v7_emit_refusal.py +0 -0
  200. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_validator.py +0 -0
  201. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_validator_drift.py +0 -0
  202. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_validator_pep563.py +0 -0
  203. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_validator_v1_6_0_rules.py +0 -0
  204. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/test_write_arg_bleed.py +0 -0
  205. {imperal_sdk-4.2.8 → imperal_sdk-4.2.9}/tests/tools/__init__.py +0 -0
  206. {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**
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: imperal-sdk
3
- Version: 4.2.8
3
+ Version: 4.2.9
4
4
  Summary: SDK for building Imperal Cloud extensions
5
5
  Author: Valentin Scerbacov, Imperal, Inc.
6
6
  License-Expression: AGPL-3.0-or-later
@@ -39,7 +39,7 @@ from imperal_sdk.secrets import (
39
39
  SecretValueTooLarge, SecretDeclarationConflict,
40
40
  )
41
41
 
42
- __version__ = "4.2.8"
42
+ __version__ = "4.2.9"
43
43
 
44
44
  __all__ = [
45
45
  # Core
@@ -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 \u2014 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.",
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