imperal-sdk 6.3.3__tar.gz → 6.3.4__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 (453) hide show
  1. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/CHANGELOG.md +8 -0
  2. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/PKG-INFO +1 -1
  3. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/sdk-reference.json +1 -1
  4. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/sdk_claims.json +1 -1
  5. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/__init__.py +1 -1
  6. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/code_index.py +24 -12
  7. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_code_index_indexer.py +37 -3
  8. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/.cm.txt +0 -0
  9. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/.github/workflows/identity-contract.yml +0 -0
  10. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/.github/workflows/publish.yml +0 -0
  11. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/.github/workflows/test.yml +0 -0
  12. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/.gitignore +0 -0
  13. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/LICENSE +0 -0
  14. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/README.md +0 -0
  15. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/docs/sdl-facets.md +0 -0
  16. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/pyproject.toml +0 -0
  17. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/sdl_roles.json +0 -0
  18. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/.codebase-index-cache.pkl +0 -0
  19. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/_gateway.py +0 -0
  20. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/_http_retry.py +0 -0
  21. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/_shared_http.py +0 -0
  22. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/adversarial_oracle.py +0 -0
  23. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ai/__init__.py +0 -0
  24. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ai/client.py +0 -0
  25. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/app.py +0 -0
  26. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/apps/__init__.py +0 -0
  27. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/apps/client.py +0 -0
  28. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/auth/__init__.py +0 -0
  29. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/auth/client.py +0 -0
  30. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/auth/middleware.py +0 -0
  31. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/auto_ui.py +0 -0
  32. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/billing/__init__.py +0 -0
  33. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/billing/client.py +0 -0
  34. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/bom_extractor.py +0 -0
  35. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/cache/__init__.py +0 -0
  36. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/cache/client.py +0 -0
  37. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/cache/protocol.py +0 -0
  38. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/catalog.py +0 -0
  39. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/chat/__init__.py +0 -0
  40. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/chat/action_result.py +0 -0
  41. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/chat/error_codes.py +0 -0
  42. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/chat/exceptions.py +0 -0
  43. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/chat/extension.py +0 -0
  44. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/chat/filters.py +0 -0
  45. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/chat/guards.py +0 -0
  46. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/chat/kernel_primitives.py +0 -0
  47. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/chat/narration.py +0 -0
  48. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/chat/narration_guard.py +0 -0
  49. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/chat/prompt.py +0 -0
  50. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/chat/refusal.py +0 -0
  51. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/cli/__init__.py +0 -0
  52. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/cli/linter.py +0 -0
  53. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/cli/main.py +0 -0
  54. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/config/__init__.py +0 -0
  55. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/config/client.py +0 -0
  56. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/context.py +0 -0
  57. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/conversations/__init__.py +0 -0
  58. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/conversations/client.py +0 -0
  59. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/core.py +0 -0
  60. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/cross_surface_bus.py +0 -0
  61. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/devtools/__init__.py +0 -0
  62. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/devtools/contract_checks.py +0 -0
  63. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/devtools/generate_api_surface.py +0 -0
  64. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/devtools/generate_reference.py +0 -0
  65. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/devtools/generate_sdk_claims.py +0 -0
  66. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/devtools/reference/__init__.py +0 -0
  67. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/devtools/reference/_flags.py +0 -0
  68. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/devtools/reference/_introspect.py +0 -0
  69. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/devtools/reference/client_methods.py +0 -0
  70. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/devtools/reference/dataclasses_kind.py +0 -0
  71. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/devtools/reference/decorators.py +0 -0
  72. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/devtools/reference/sdl_funcs.py +0 -0
  73. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/devtools/reference/sdl_roles.py +0 -0
  74. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/devtools/reference/ui_components.py +0 -0
  75. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/devtools/validate_identity_contract.py +0 -0
  76. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/errors.py +0 -0
  77. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/extension.py +0 -0
  78. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/extensions/__init__.py +0 -0
  79. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/extensions/client.py +0 -0
  80. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/gnc_guard.py +0 -0
  81. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/http/__init__.py +0 -0
  82. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/http/client.py +0 -0
  83. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ir/__init__.py +0 -0
  84. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ir/_impl.py +0 -0
  85. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ir/actions.py +0 -0
  86. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ir/custom_roles.py +0 -0
  87. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ir/migrate.py +0 -0
  88. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ir/produce.py +0 -0
  89. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ir/schema.py +0 -0
  90. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ir/skeleton.py +0 -0
  91. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ir/ui.py +0 -0
  92. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ir/ui_children.py +0 -0
  93. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ir/ui_template.py +0 -0
  94. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ir/validator.py +0 -0
  95. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/manifest.py +0 -0
  96. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/manifest_schema.py +0 -0
  97. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/manifest_schema_ui.py +0 -0
  98. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/notify/__init__.py +0 -0
  99. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/notify/client.py +0 -0
  100. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/oauth_state.py +0 -0
  101. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/oauth_tokens.py +0 -0
  102. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/pipes.py +0 -0
  103. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/prompts/__init__.py +0 -0
  104. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/prompts/icnli_integrity_rules.txt +0 -0
  105. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/prompts/kernel_formatting_rule.txt +0 -0
  106. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/prompts/kernel_proactivity_rule.txt +0 -0
  107. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/protocols.py +0 -0
  108. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/rbac/__init__.py +0 -0
  109. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/rbac/client.py +0 -0
  110. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/rpc/__init__.py +0 -0
  111. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/rpc/codec.py +0 -0
  112. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/rpc/contract.py +0 -0
  113. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/runtime/__init__.py +0 -0
  114. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/runtime/_platform.py +0 -0
  115. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/runtime/canon.py +0 -0
  116. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/runtime/engine.py +0 -0
  117. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/runtime/executor.py +0 -0
  118. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/runtime/hosted_client.py +0 -0
  119. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/runtime/interpreter.py +0 -0
  120. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/runtime/llm_provider.py +0 -0
  121. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/runtime/local_engine.py +0 -0
  122. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/runtime/message_adapter.py +0 -0
  123. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/runtime/template.py +0 -0
  124. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/runtime/verbs.py +0 -0
  125. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schema/marathon_ram.sql +0 -0
  126. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/action_result.schema.json +0 -0
  127. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/actions/__init__.py +0 -0
  128. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/actions/ai_complete.json +0 -0
  129. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/actions/call.json +0 -0
  130. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/actions/conditional.json +0 -0
  131. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/actions/navigate.json +0 -0
  132. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/actions/open.json +0 -0
  133. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/actions/send.json +0 -0
  134. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/actions/store_create.json +0 -0
  135. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/actions/store_delete.json +0 -0
  136. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/actions/store_get.json +0 -0
  137. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/actions/store_list.json +0 -0
  138. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/actions/store_update.json +0 -0
  139. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/balance_info.schema.json +0 -0
  140. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/chat_result.schema.json +0 -0
  141. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/completion_result.schema.json +0 -0
  142. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/document.schema.json +0 -0
  143. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/event.schema.json +0 -0
  144. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/file_info.schema.json +0 -0
  145. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/function_call.schema.json +0 -0
  146. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/http_response.schema.json +0 -0
  147. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/imperal.schema.json +0 -0
  148. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/ir.schema.json +0 -0
  149. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/limits_result.schema.json +0 -0
  150. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/metered_event.schema.json +0 -0
  151. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/subscription_info.schema.json +0 -0
  152. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/ui_children/__init__.py +0 -0
  153. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/ui_children/accordion.json +0 -0
  154. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/ui_children/datatable_columns.json +0 -0
  155. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/ui_children/datatable_rows.json +0 -0
  156. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/ui_children/menu.json +0 -0
  157. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/ui_children/select.json +0 -0
  158. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/ui_children/tabs.json +0 -0
  159. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/ui_children/timeline.json +0 -0
  160. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/schemas/ui_children/tree.json +0 -0
  161. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/sdl/__init__.py +0 -0
  162. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/sdl/_generate_roles_json.py +0 -0
  163. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/sdl/entity.py +0 -0
  164. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/sdl/facet_resolve.py +0 -0
  165. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/sdl/facets/__init__.py +0 -0
  166. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/sdl/facets/catalog.py +0 -0
  167. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/sdl/facets/comm.py +0 -0
  168. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/sdl/facets/content.py +0 -0
  169. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/sdl/facets/device.py +0 -0
  170. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/sdl/facets/event.py +0 -0
  171. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/sdl/facets/geo.py +0 -0
  172. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/sdl/facets/identity.py +0 -0
  173. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/sdl/facets/media.py +0 -0
  174. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/sdl/facets/metric.py +0 -0
  175. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/sdl/facets/money.py +0 -0
  176. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/sdl/facets/net.py +0 -0
  177. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/sdl/facets/people.py +0 -0
  178. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/sdl/facets/quantity.py +0 -0
  179. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/sdl/facets/rating.py +0 -0
  180. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/sdl/facets/security.py +0 -0
  181. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/sdl/facets/task.py +0 -0
  182. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/sdl/facets/time.py +0 -0
  183. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/sdl/field.py +0 -0
  184. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/sdl/roles.py +0 -0
  185. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/search.py +0 -0
  186. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/secrets/__init__.py +0 -0
  187. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/secrets/client.py +0 -0
  188. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/secrets/exceptions.py +0 -0
  189. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/secrets/panel_handler.py +0 -0
  190. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/secrets/spec.py +0 -0
  191. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/security/__init__.py +0 -0
  192. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/security/call_token.py +0 -0
  193. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/security/deactivation_guard.py +0 -0
  194. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/signals/__init__.py +0 -0
  195. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/signals/client.py +0 -0
  196. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/skeleton/__init__.py +0 -0
  197. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/skeleton/client.py +0 -0
  198. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/storage/__init__.py +0 -0
  199. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/storage/client.py +0 -0
  200. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/store/__init__.py +0 -0
  201. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/store/client.py +0 -0
  202. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/store/exceptions.py +0 -0
  203. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/testing/__init__.py +0 -0
  204. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/testing/autonomous_mock.py +0 -0
  205. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/testing/mock_context.py +0 -0
  206. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/testing/mock_secrets.py +0 -0
  207. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/transport.py +0 -0
  208. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/typed_context.py +0 -0
  209. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/types/__init__.py +0 -0
  210. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/types/action_result.py +0 -0
  211. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/types/chat_result.py +0 -0
  212. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/types/client_contracts.py +0 -0
  213. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/types/contracts.py +0 -0
  214. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/types/contributions.py +0 -0
  215. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/types/events.py +0 -0
  216. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/types/health.py +0 -0
  217. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/types/identity.py +0 -0
  218. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/types/metered_event.py +0 -0
  219. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/types/models.py +0 -0
  220. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/types/pagination.py +0 -0
  221. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/types/store_contracts.py +0 -0
  222. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ui/__init__.py +0 -0
  223. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ui/actions.py +0 -0
  224. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ui/base.py +0 -0
  225. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ui/canvas.py +0 -0
  226. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ui/data.py +0 -0
  227. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ui/display.py +0 -0
  228. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ui/feedback.py +0 -0
  229. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ui/graph.py +0 -0
  230. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ui/input_components.py +0 -0
  231. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ui/interactive.py +0 -0
  232. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ui/layout.py +0 -0
  233. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ui/liquid.py +0 -0
  234. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ui/signals.py +0 -0
  235. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ui/stage.py +0 -0
  236. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/ui/theme.py +0 -0
  237. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/users/__init__.py +0 -0
  238. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/users/client.py +0 -0
  239. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/validator.py +0 -0
  240. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/validator_v1_6_0.py +0 -0
  241. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/src/imperal_sdk/vault_ram_client.py +0 -0
  242. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/conftest.py +0 -0
  243. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/contract/__init__.py +0 -0
  244. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/contract/test_action_schemas.py +0 -0
  245. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/contract/test_artifacts_freshness.py +0 -0
  246. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/contract/test_contract_checks_selftest.py +0 -0
  247. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/contract/test_generate_sdk_claims.py +0 -0
  248. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/contract/test_identity_nonempty.py +0 -0
  249. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/contract/test_ir_schema_fresh.py +0 -0
  250. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/contract/test_meter_lua_contract.py +0 -0
  251. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/contract/test_metered_event_contract.py +0 -0
  252. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/contract/test_notify_wire_payload.py +0 -0
  253. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/contract/test_public_docstrings_engine_neutral.py +0 -0
  254. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/contract/test_reference_completeness.py +0 -0
  255. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/contract/test_reference_no_leak.py +0 -0
  256. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/contract/test_sample_contract_shape.py +0 -0
  257. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/contract/test_sdk_matches_kernel_contract.py +0 -0
  258. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/contracts/__init__.py +0 -0
  259. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/contracts/test_store_contracts.py +0 -0
  260. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/fixtures/contract/kernel-contract.sample.json +0 -0
  261. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/fixtures/ir/README.md +0 -0
  262. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/fixtures/ir/archive_ended.ir.json +0 -0
  263. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/fixtures/ir/link_saver.ir.json +0 -0
  264. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/fixtures/ir/test_fixtures_valid.py +0 -0
  265. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/fixtures/openapi/auth-gateway.json +0 -0
  266. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/fixtures/openapi/registry.json +0 -0
  267. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/fixtures/openapi/sharelock-cases.json +0 -0
  268. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/ir/__init__.py +0 -0
  269. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/ir/test_custom_roles.py +0 -0
  270. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/ir/test_ir_impl.py +0 -0
  271. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/ir/test_ir_mapping_real_ext.py +0 -0
  272. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/ir/test_ir_migrate.py +0 -0
  273. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/ir/test_ir_produce.py +0 -0
  274. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/ir/test_ir_schema.py +0 -0
  275. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/ir/test_ir_skeleton.py +0 -0
  276. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/ir/test_ir_ui.py +0 -0
  277. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/ir/test_ir_ui_produce.py +0 -0
  278. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/ir/test_ir_validator.py +0 -0
  279. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/ir/test_ir_versions.py +0 -0
  280. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/ir/test_ui_children.py +0 -0
  281. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/ir/test_ui_template.py +0 -0
  282. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/rpc/__init__.py +0 -0
  283. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/rpc/test_boundary_seal.py +0 -0
  284. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/rpc/test_codec.py +0 -0
  285. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/rpc/test_contract.py +0 -0
  286. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/runtime/__init__.py +0 -0
  287. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/runtime/test_canon.py +0 -0
  288. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/runtime/test_canon_template.py +0 -0
  289. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/runtime/test_engine_abc.py +0 -0
  290. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/runtime/test_engine_parity.py +0 -0
  291. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/runtime/test_executor_neutral.py +0 -0
  292. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/runtime/test_hosted_client.py +0 -0
  293. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/runtime/test_interpreter.py +0 -0
  294. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/runtime/test_llm_provider_config_store.py +0 -0
  295. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/runtime/test_llm_provider_ctx_injection.py +0 -0
  296. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/runtime/test_local_engine.py +0 -0
  297. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/runtime/test_platform_shim.py +0 -0
  298. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/runtime/test_template.py +0 -0
  299. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/runtime/test_verb_ai.py +0 -0
  300. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/runtime/test_verb_call_directives.py +0 -0
  301. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/runtime/test_verb_conditional.py +0 -0
  302. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/runtime/test_verb_store.py +0 -0
  303. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/store/__init__.py +0 -0
  304. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/store/test_list_users_client.py +0 -0
  305. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/store/test_query_all_client.py +0 -0
  306. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_action_result_time_travel.py +0 -0
  307. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_action_result_typed.py +0 -0
  308. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_agent_presence.py +0 -0
  309. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_as_user.py +0 -0
  310. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_auth.py +0 -0
  311. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_autonomous_mock.py +0 -0
  312. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_billing.py +0 -0
  313. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_cache_client.py +0 -0
  314. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_cache_model.py +0 -0
  315. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_call_token.py +0 -0
  316. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_callable_surface_single_source.py +0 -0
  317. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_chat_extension_deprecation.py +0 -0
  318. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_chat_extension_no_llm_router.py +0 -0
  319. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_chat_filters.py +0 -0
  320. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_chat_function_background_flag.py +0 -0
  321. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_chat_guards.py +0 -0
  322. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_chat_guards_bleed.py +0 -0
  323. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_chat_prompt.py +0 -0
  324. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_chat_result.py +0 -0
  325. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_cli.py +0 -0
  326. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_cli_sdk_commands.py +0 -0
  327. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_client_contracts.py +0 -0
  328. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_client_emit_neutral.py +0 -0
  329. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_code_index_contracts.py +0 -0
  330. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_config_client.py +0 -0
  331. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_context.py +0 -0
  332. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_context_background_task.py +0 -0
  333. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_context_deliver_chat_message.py +0 -0
  334. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_context_guards.py +0 -0
  335. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_contracts.py +0 -0
  336. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_contracts_live.py +0 -0
  337. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_contributions.py +0 -0
  338. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_core_primitives.py +0 -0
  339. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_data_model_kwarg.py +0 -0
  340. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_document_contract.py +0 -0
  341. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_emits_decorator.py +0 -0
  342. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_error_codes.py +0 -0
  343. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_errors.py +0 -0
  344. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_event_schema_v2.py +0 -0
  345. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_events_health.py +0 -0
  346. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_extension.py +0 -0
  347. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_extension_pipes.py +0 -0
  348. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_extension_v2.py +0 -0
  349. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_extensions_emit.py +0 -0
  350. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_gateway_namespaces.py +0 -0
  351. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_http_json_and_mock.py +0 -0
  352. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_http_retry.py +0 -0
  353. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_http_timeout_override.py +0 -0
  354. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_id_shape_guard.py +0 -0
  355. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_identity_contract.py +0 -0
  356. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_imperal_schema_v2.py +0 -0
  357. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_import_light.py +0 -0
  358. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_init_onboarding.py +0 -0
  359. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_kernel_primitives.py +0 -0
  360. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_liquid_ui.py +0 -0
  361. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_manifest.py +0 -0
  362. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_manifest_file_sinks.py +0 -0
  363. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_manifest_linter.py +0 -0
  364. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_manifest_no_orchestrator_tool.py +0 -0
  365. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_manifest_oauth.py +0 -0
  366. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_manifest_panels.py +0 -0
  367. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_manifest_roundtrip_gate.py +0 -0
  368. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_manifest_schema.py +0 -0
  369. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_manifest_v2_events.py +0 -0
  370. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_manifest_v2_other_sections.py +0 -0
  371. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_manifest_v2_webhooks.py +0 -0
  372. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_manifest_validator_v2.py +0 -0
  373. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_mock_context.py +0 -0
  374. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_models.py +0 -0
  375. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_narration_emission.py +0 -0
  376. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_narration_guard.py +0 -0
  377. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_oauth_authorize_url.py +0 -0
  378. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_oauth_tokens_shared.py +0 -0
  379. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_openai_max_completion_tokens.py +0 -0
  380. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_pagination.py +0 -0
  381. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_panel_rendering_contract.py +0 -0
  382. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_panel_swr_caching.py +0 -0
  383. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_panels.py +0 -0
  384. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_phase_a_dead_removal.py +0 -0
  385. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_phase_a_drift.py +0 -0
  386. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_phase_a_text.py +0 -0
  387. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_quantum_app.py +0 -0
  388. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdk_version_stamp.py +0 -0
  389. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_entity.py +0 -0
  390. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_entity_marker.py +0 -0
  391. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_exports.py +0 -0
  392. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_facet_catalog.py +0 -0
  393. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_facet_collisions.py +0 -0
  394. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_facet_comm.py +0 -0
  395. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_facet_content.py +0 -0
  396. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_facet_device.py +0 -0
  397. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_facet_event.py +0 -0
  398. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_facet_exports.py +0 -0
  399. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_facet_field.py +0 -0
  400. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_facet_geo.py +0 -0
  401. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_facet_identity.py +0 -0
  402. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_facet_media.py +0 -0
  403. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_facet_metric.py +0 -0
  404. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_facet_money.py +0 -0
  405. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_facet_net.py +0 -0
  406. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_facet_people.py +0 -0
  407. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_facet_quantity.py +0 -0
  408. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_facet_rating.py +0 -0
  409. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_facet_resolve.py +0 -0
  410. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_facet_security.py +0 -0
  411. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_facet_task.py +0 -0
  412. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_facet_time.py +0 -0
  413. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_facets_catalog.py +0 -0
  414. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_facets_doc.py +0 -0
  415. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_facets_pkg.py +0 -0
  416. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_field.py +0 -0
  417. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_roles.py +0 -0
  418. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_roles_json.py +0 -0
  419. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_roles_of_facets.py +0 -0
  420. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sdl_vocab_version.py +0 -0
  421. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_search_provider.py +0 -0
  422. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_secret_scope_decorator.py +0 -0
  423. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_secret_spec_scope.py +0 -0
  424. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_skeleton_decorator.py +0 -0
  425. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_spec_validation.py +0 -0
  426. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_stage.py +0 -0
  427. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_surface_adaptation.py +0 -0
  428. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_sync_async_parity.py +0 -0
  429. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_transport_isolation.py +0 -0
  430. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_ui.py +0 -0
  431. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_ui_canvas.py +0 -0
  432. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_ui_fileupload_enhanced.py +0 -0
  433. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_ui_html.py +0 -0
  434. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_ui_image_enhanced.py +0 -0
  435. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_ui_modal.py +0 -0
  436. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_ui_open.py +0 -0
  437. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_ui_signals.py +0 -0
  438. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_ui_theme.py +0 -0
  439. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_user.py +0 -0
  440. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_v7_emit_refusal.py +0 -0
  441. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_validator.py +0 -0
  442. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_validator_drift.py +0 -0
  443. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_validator_pep563.py +0 -0
  444. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_validator_v1_6_0_rules.py +0 -0
  445. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_validator_v25.py +0 -0
  446. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/test_write_arg_bleed.py +0 -0
  447. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/tools/__init__.py +0 -0
  448. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/tools/test_generate_api_surface.py +0 -0
  449. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/tools/test_generate_reference.py +0 -0
  450. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/tools/test_reference_description.py +0 -0
  451. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/tools/test_reference_flags.py +0 -0
  452. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/tools/test_reference_typegraph.py +0 -0
  453. {imperal_sdk-6.3.3 → imperal_sdk-6.3.4}/tests/ui/test_input_type_enum.py +0 -0
@@ -2,6 +2,14 @@
2
2
 
3
3
  All notable changes to `imperal-sdk` are documented here.
4
4
 
5
+ ## 6.3.4 — 2026-10-20
6
+
7
+ ### Changed
8
+ - Cloud OS limits for the code index: a file up to 10 MB (`MAX_FILE_BYTES`); an apply part up to 10 MB as sent
9
+ and at most 20 file versions (`APPLY_BATCH_FILES`); a file bigger than one part travels alone.
10
+ - A huge generated file whose facts would not fit one apply is stored as text only and named in
11
+ `partial_reason` -- a sync never fails on it.
12
+
5
13
  ## 6.3.3 — 2026-10-20
6
14
 
7
15
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: imperal-sdk
3
- Version: 6.3.3
3
+ Version: 6.3.4
4
4
  Summary: SDK for building Imperal Cloud extensions
5
5
  Author: Valentin Scerbacov, Imperal, Inc.
6
6
  License-Expression: Apache-2.0
@@ -1,5 +1,5 @@
1
1
  {
2
- "sdk_version": "6.3.3",
2
+ "sdk_version": "6.3.4",
3
3
  "symbols": {
4
4
  "ActionResult": {
5
5
  "action_vocab_safe": false,
@@ -1,5 +1,5 @@
1
1
  {
2
- "_sdk_version": "6.3.3",
2
+ "_sdk_version": "6.3.4",
3
3
  "constants": {
4
4
  "max_call_depth": {
5
5
  "counts_root": true,
@@ -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.3"
4
+ __version__ = "6.3.4"
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
@@ -642,7 +642,7 @@ def _lang_for(path: str) -> str:
642
642
  # ---- what any source may index (spec 4.2: one list, enforced by every source, refused by the vault) ----
643
643
 
644
644
  EXTRACTOR_VERSION = "2"
645
- MAX_FILE_BYTES = 1_048_576
645
+ MAX_FILE_BYTES = 10 * 1024 * 1024 # one file in the code index (Cloud OS: shared vault, many users)
646
646
  MAX_REPO_FILES = 20_000
647
647
  INDEXABLE_EXT = (".py", ".pyi", ".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs")
648
648
  # the resolution configs (read and stored parsed); setup.py is code to execute -- never read
@@ -1610,15 +1610,24 @@ def embed_query(text: str) -> bytes:
1610
1610
  # normalised and hashed, only blobs the repo does not hold are extracted (and their chunks embedded),
1611
1611
  # and the apply goes in size-bounded parts -- the last one stitches the links.
1612
1612
 
1613
- APPLY_BATCH_BYTES = 4_000_000 # one apply body as sent (JSON) -- half the vault's 8 MiB request cap
1613
+ APPLY_BATCH_BYTES = 10_000_000 # one apply body as sent (JSON); the vault and nginx take 32 MiB on sync/apply --
1614
+ # a part holds one file alone when that file is bigger (up to MAX_FILE_BYTES as text)
1615
+ APPLY_BATCH_FILES = 20 # and at most this many new file versions per apply
1614
1616
  READ_BATCH = 200
1615
1617
 
1616
1618
 
1617
- def apply_batches(files: list, blobs: list, chunks: list, limit: int = APPLY_BATCH_BYTES) -> list:
1619
+ def _sent_size(blob: dict, chunks) -> int:
1620
+ """A blob's size as an apply sends it: the blob with its text and facts, and its chunks with their vectors."""
1621
+ import json as _json
1622
+ return len(_json.dumps(blob, default=str).encode("utf-8")) + sum(
1623
+ len(_json.dumps(c, default=str).encode("utf-8")) for c in chunks or ())
1624
+
1625
+
1626
+ def apply_batches(files: list, blobs: list, chunks: list, limit: int = APPLY_BATCH_BYTES,
1627
+ max_blobs: int = APPLY_BATCH_FILES) -> list:
1618
1628
  """One sync's apply split by size (a big first sync never goes as one HTTP body): each part carries
1619
1629
  its blobs, the files that point at them and their chunks; files of blobs the repo already holds go
1620
1630
  first. ``[{files, blobs, chunks}]`` -- the last part stitches."""
1621
- import json as _json
1622
1631
  parts: list = [{"files": [], "blobs": [], "chunks": []}]
1623
1632
  where: dict = {}
1624
1633
  size = 0
@@ -1626,10 +1635,8 @@ def apply_batches(files: list, blobs: list, chunks: list, limit: int = APPLY_BAT
1626
1635
  for c in chunks:
1627
1636
  by_blob.setdefault(c.get("blob"), []).append(c)
1628
1637
  for b in blobs:
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"], ()))
1632
- if parts[-1]["blobs"] and size + n > limit:
1638
+ n = _sent_size(b, by_blob.get(b["hash"], ()))
1639
+ if parts[-1]["blobs"] and (size + n > limit or len(parts[-1]["blobs"]) >= max_blobs):
1633
1640
  parts.append({"files": [], "blobs": [], "chunks": []})
1634
1641
  size = 0
1635
1642
  parts[-1]["blobs"].append(b)
@@ -1673,7 +1680,7 @@ async def sync_source(plan, apply, meta: dict, listing: list, read, *, embed_chu
1673
1680
  if not p or not indexable(p):
1674
1681
  continue
1675
1682
  if int(it.get("size") or 0) > MAX_FILE_BYTES:
1676
- partial.append(f"{p} over 1 MB")
1683
+ partial.append(f"{p} over {MAX_FILE_BYTES // 1048576} MB")
1677
1684
  continue
1678
1685
  items.append({"path": p, "size": int(it.get("size") or 0), "mtime": float(it.get("mtime") or 0.0)})
1679
1686
  if len(items) > MAX_REPO_FILES:
@@ -1708,7 +1715,7 @@ async def sync_source(plan, apply, meta: dict, listing: list, read, *, embed_chu
1708
1715
  data = raw if isinstance(raw, (bytes, bytearray)) else str(raw or "").encode("utf-8")
1709
1716
  read_bytes += len(data)
1710
1717
  if len(data) > MAX_FILE_BYTES:
1711
- partial.append(f"{p} over 1 MB")
1718
+ partial.append(f"{p} over {MAX_FILE_BYTES // 1048576} MB")
1712
1719
  continue
1713
1720
  text = normalise_text(bytes(data))
1714
1721
  if text is None:
@@ -1725,9 +1732,14 @@ async def sync_source(plan, apply, meta: dict, listing: list, read, *, embed_chu
1725
1732
  facts = scope_facts(p, text)
1726
1733
  body = facts.to_dict() if facts is not None else {"lang": "", "lines": text.count("\n") + 1}
1727
1734
  extract_ms += (_time.monotonic() - e0) * 1000
1735
+ mine = chunks_for(h, facts, text) if embed_chunks else []
1736
+ if _sent_size({"hash": h, "text": text, "facts": body}, mine) > APPLY_BATCH_BYTES:
1737
+ # a huge generated file (a bundle, a dump): its facts would not fit one apply -- kept as text,
1738
+ # never parsed into the graph, and said
1739
+ body, mine = {"lang": body.get("lang") or "", "lines": text.count("\n") + 1}, []
1740
+ partial.append(f"{p} kept as text only (too large to parse)")
1728
1741
  blobs.append({"hash": h, "lang": body.get("lang") or "", "text": text, "facts": body})
1729
- if embed_chunks:
1730
- chunks += chunks_for(h, facts, text)
1742
+ chunks += mine
1731
1743
  meta["partial_reason"] = ("; ".join(dict.fromkeys(partial)))[:1000] or None
1732
1744
  removed = list(planned.get("removed") or [])
1733
1745
  counts: dict = {}
@@ -95,7 +95,7 @@ def test_one_table_and_the_old_private_names_stay_aliases():
95
95
  assert indexer.DEF_NODES["typescript"]["type_alias_declaration"] == "type"
96
96
  assert indexer.DEF_NODES["typescript"]["enum_declaration"] == "class"
97
97
  assert indexer._DEF_NODES is indexer.DEF_NODES and indexer._get_language is indexer.language
98
- assert indexer.EXTRACTOR_VERSION == "2" and indexer.MAX_FILE_BYTES == 1_048_576
98
+ assert indexer.EXTRACTOR_VERSION == "2" and indexer.MAX_FILE_BYTES == 10 * 1024 * 1024
99
99
  assert indexer.MAX_REPO_FILES == 20_000
100
100
 
101
101
 
@@ -252,7 +252,7 @@ def test_sync_source_reads_only_changed_and_batches_the_apply(tmp_path):
252
252
  assert ".env" not in [i["path"] for i in plans[0][0]] and "same.py" not in reads[0]
253
253
  assert len(applies) == 1 and len(applies[0]["blobs"]) == 1 and len(applies[0]["files"]) == 2 # one blob, two files
254
254
  assert applies[0]["removed"] == ["gone.py"] and applies[0]["configs"][0]["path"] == "pyproject.toml"
255
- assert "lost.py" in out["partial_reason"] and "big.py over 1 MB" in out["partial_reason"]
255
+ assert "lost.py" in out["partial_reason"] and "big.py over 10 MB" in out["partial_reason"]
256
256
  parts = ci.apply_batches([{"path": "a", "blob": "h1"}, {"path": "b", "blob": "h2"}],
257
257
  [{"hash": "h1", "text": "x" * 10}, {"hash": "h2", "text": "y" * 10}], [], limit=15)
258
258
  assert [len(p["blobs"]) for p in parts] == [1, 1] and parts[1]["files"][0]["path"] == "b"
@@ -408,4 +408,38 @@ def test_every_apply_part_fits_the_vault_body_cap_as_sent():
408
408
  assert len(parts) > 1 and sum(len(p["blobs"]) for p in parts) == 40
409
409
  for p in parts:
410
410
  assert len(json.dumps(p).encode("utf-8")) <= ci.APPLY_BATCH_BYTES + 64_000
411
- assert ci.APPLY_BATCH_BYTES <= 4_200_000
411
+ assert len(p["blobs"]) <= ci.APPLY_BATCH_FILES == 20
412
+ assert ci.APPLY_BATCH_BYTES <= 10_000_000 < 16 * 1024 * 1024 # under the vault / nginx sync bound
413
+ small = ci.apply_batches([{"path": f"s{i}", "blob": f"s{i}"} for i in range(45)],
414
+ [{"hash": f"s{i}", "text": "x"} for i in range(45)], [])
415
+ assert [len(p["blobs"]) for p in small] == [20, 20, 5]
416
+
417
+
418
+ def test_a_file_whose_facts_do_not_fit_an_apply_is_kept_as_text_and_said(monkeypatch):
419
+ """Cloud OS limits: a file up to 10 MB is indexed; a huge generated one whose facts would not fit one
420
+ apply is stored as text only -- never a failed sync."""
421
+ import asyncio
422
+ from imperal_sdk import code_index as ci
423
+ assert ci.MAX_FILE_BYTES == 10 * 1024 * 1024
424
+ monkeypatch.setattr(ci, "APPLY_BATCH_BYTES", 20_000)
425
+ applies = []
426
+
427
+ async def plan(items, meta):
428
+ return {"changed": [i["path"] for i in items], "removed": [], "have_blobs": []}
429
+
430
+ async def apply(**payload):
431
+ applies.append(payload)
432
+ return {"files": len(payload["files"])}
433
+
434
+ big = "".join(f"def f{i}(a):\n return g{i}(a)\n" for i in range(800))
435
+ files = {"small.py": "def a():\n return 1\n", "bundle.py": big}
436
+
437
+ async def read(paths):
438
+ return {p: files[p].encode() for p in paths}
439
+ out = asyncio.run(ci.sync_source(plan, apply, {"source": "t"}, [{"path": p, "size": len(t), "mtime": 1.0}
440
+ for p, t in files.items()], read, embed_chunks=False))
441
+ sent = {b["hash"]: b for a in applies for b in a["blobs"]}
442
+ bundle = next(b for b in sent.values() if b["text"] == big)
443
+ assert "defs" not in bundle["facts"] and bundle["facts"]["lines"] > 1000
444
+ assert any(b["facts"].get("defs") for b in sent.values() if b["text"] != big)
445
+ assert "bundle.py kept as text only" in out["partial_reason"]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes