imperal-sdk 6.3.5__tar.gz → 6.3.7__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 (454) hide show
  1. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/CHANGELOG.md +15 -0
  2. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/PKG-INFO +1 -1
  3. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/sdk-reference.json +1 -1
  4. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/sdk_claims.json +1 -1
  5. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/__init__.py +6 -4
  6. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/app.py +5 -4
  7. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/auto_ui.py +1 -1
  8. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/bom_extractor.py +1 -1
  9. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/code_index.py +5 -0
  10. imperal_sdk-6.3.5/src/imperal_sdk/gnc_guard.py → imperal_sdk-6.3.7/src/imperal_sdk/dwell_guard.py +30 -33
  11. imperal_sdk-6.3.7/src/imperal_sdk/gnc_guard.py +4 -0
  12. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schema/marathon_ram.sql +1 -1
  13. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/vault_ram_client.py +1 -1
  14. imperal_sdk-6.3.5/tests/test_quantum_app.py → imperal_sdk-6.3.7/tests/test_app_engine.py +1 -1
  15. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_code_index_indexer.py +25 -0
  16. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/.cm.txt +0 -0
  17. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/.github/workflows/identity-contract.yml +0 -0
  18. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/.github/workflows/publish.yml +0 -0
  19. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/.github/workflows/test.yml +0 -0
  20. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/.gitignore +0 -0
  21. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/LICENSE +0 -0
  22. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/README.md +0 -0
  23. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/docs/sdl-facets.md +0 -0
  24. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/pyproject.toml +0 -0
  25. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/sdl_roles.json +0 -0
  26. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/.codebase-index-cache.pkl +0 -0
  27. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/_gateway.py +0 -0
  28. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/_http_retry.py +0 -0
  29. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/_shared_http.py +0 -0
  30. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/adversarial_oracle.py +0 -0
  31. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ai/__init__.py +0 -0
  32. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ai/client.py +0 -0
  33. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/apps/__init__.py +0 -0
  34. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/apps/client.py +0 -0
  35. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/auth/__init__.py +0 -0
  36. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/auth/client.py +0 -0
  37. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/auth/middleware.py +0 -0
  38. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/billing/__init__.py +0 -0
  39. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/billing/client.py +0 -0
  40. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/cache/__init__.py +0 -0
  41. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/cache/client.py +0 -0
  42. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/cache/protocol.py +0 -0
  43. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/catalog.py +0 -0
  44. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/chat/__init__.py +0 -0
  45. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/chat/action_result.py +0 -0
  46. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/chat/error_codes.py +0 -0
  47. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/chat/exceptions.py +0 -0
  48. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/chat/extension.py +0 -0
  49. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/chat/filters.py +0 -0
  50. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/chat/guards.py +0 -0
  51. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/chat/kernel_primitives.py +0 -0
  52. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/chat/narration.py +0 -0
  53. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/chat/narration_guard.py +0 -0
  54. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/chat/prompt.py +0 -0
  55. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/chat/refusal.py +0 -0
  56. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/cli/__init__.py +0 -0
  57. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/cli/linter.py +0 -0
  58. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/cli/main.py +0 -0
  59. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/config/__init__.py +0 -0
  60. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/config/client.py +0 -0
  61. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/context.py +0 -0
  62. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/conversations/__init__.py +0 -0
  63. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/conversations/client.py +0 -0
  64. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/core.py +0 -0
  65. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/cross_surface_bus.py +0 -0
  66. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/devtools/__init__.py +0 -0
  67. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/devtools/contract_checks.py +0 -0
  68. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/devtools/generate_api_surface.py +0 -0
  69. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/devtools/generate_reference.py +0 -0
  70. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/devtools/generate_sdk_claims.py +0 -0
  71. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/devtools/reference/__init__.py +0 -0
  72. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/devtools/reference/_flags.py +0 -0
  73. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/devtools/reference/_introspect.py +0 -0
  74. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/devtools/reference/client_methods.py +0 -0
  75. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/devtools/reference/dataclasses_kind.py +0 -0
  76. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/devtools/reference/decorators.py +0 -0
  77. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/devtools/reference/sdl_funcs.py +0 -0
  78. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/devtools/reference/sdl_roles.py +0 -0
  79. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/devtools/reference/ui_components.py +0 -0
  80. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/devtools/validate_identity_contract.py +0 -0
  81. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/errors.py +0 -0
  82. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/extension.py +0 -0
  83. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/extensions/__init__.py +0 -0
  84. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/extensions/client.py +0 -0
  85. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/http/__init__.py +0 -0
  86. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/http/client.py +0 -0
  87. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ir/__init__.py +0 -0
  88. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ir/_impl.py +0 -0
  89. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ir/actions.py +0 -0
  90. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ir/custom_roles.py +0 -0
  91. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ir/migrate.py +0 -0
  92. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ir/produce.py +0 -0
  93. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ir/schema.py +0 -0
  94. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ir/skeleton.py +0 -0
  95. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ir/ui.py +0 -0
  96. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ir/ui_children.py +0 -0
  97. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ir/ui_template.py +0 -0
  98. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ir/validator.py +0 -0
  99. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/manifest.py +0 -0
  100. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/manifest_schema.py +0 -0
  101. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/manifest_schema_ui.py +0 -0
  102. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/notify/__init__.py +0 -0
  103. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/notify/client.py +0 -0
  104. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/oauth_state.py +0 -0
  105. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/oauth_tokens.py +0 -0
  106. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/pipes.py +0 -0
  107. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/prompts/__init__.py +0 -0
  108. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/prompts/icnli_integrity_rules.txt +0 -0
  109. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/prompts/kernel_formatting_rule.txt +0 -0
  110. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/prompts/kernel_proactivity_rule.txt +0 -0
  111. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/protocols.py +0 -0
  112. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/rbac/__init__.py +0 -0
  113. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/rbac/client.py +0 -0
  114. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/rpc/__init__.py +0 -0
  115. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/rpc/codec.py +0 -0
  116. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/rpc/contract.py +0 -0
  117. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/runtime/__init__.py +0 -0
  118. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/runtime/_platform.py +0 -0
  119. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/runtime/canon.py +0 -0
  120. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/runtime/engine.py +0 -0
  121. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/runtime/executor.py +0 -0
  122. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/runtime/hosted_client.py +0 -0
  123. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/runtime/interpreter.py +0 -0
  124. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/runtime/llm_provider.py +0 -0
  125. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/runtime/local_engine.py +0 -0
  126. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/runtime/message_adapter.py +0 -0
  127. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/runtime/template.py +0 -0
  128. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/runtime/verbs.py +0 -0
  129. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/action_result.schema.json +0 -0
  130. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/actions/__init__.py +0 -0
  131. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/actions/ai_complete.json +0 -0
  132. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/actions/call.json +0 -0
  133. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/actions/conditional.json +0 -0
  134. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/actions/navigate.json +0 -0
  135. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/actions/open.json +0 -0
  136. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/actions/send.json +0 -0
  137. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/actions/store_create.json +0 -0
  138. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/actions/store_delete.json +0 -0
  139. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/actions/store_get.json +0 -0
  140. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/actions/store_list.json +0 -0
  141. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/actions/store_update.json +0 -0
  142. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/balance_info.schema.json +0 -0
  143. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/chat_result.schema.json +0 -0
  144. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/completion_result.schema.json +0 -0
  145. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/document.schema.json +0 -0
  146. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/event.schema.json +0 -0
  147. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/file_info.schema.json +0 -0
  148. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/function_call.schema.json +0 -0
  149. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/http_response.schema.json +0 -0
  150. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/imperal.schema.json +0 -0
  151. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/ir.schema.json +0 -0
  152. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/limits_result.schema.json +0 -0
  153. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/metered_event.schema.json +0 -0
  154. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/subscription_info.schema.json +0 -0
  155. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/ui_children/__init__.py +0 -0
  156. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/ui_children/accordion.json +0 -0
  157. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/ui_children/datatable_columns.json +0 -0
  158. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/ui_children/datatable_rows.json +0 -0
  159. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/ui_children/menu.json +0 -0
  160. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/ui_children/select.json +0 -0
  161. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/ui_children/tabs.json +0 -0
  162. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/ui_children/timeline.json +0 -0
  163. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/schemas/ui_children/tree.json +0 -0
  164. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/sdl/__init__.py +0 -0
  165. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/sdl/_generate_roles_json.py +0 -0
  166. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/sdl/entity.py +0 -0
  167. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/sdl/facet_resolve.py +0 -0
  168. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/sdl/facets/__init__.py +0 -0
  169. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/sdl/facets/catalog.py +0 -0
  170. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/sdl/facets/comm.py +0 -0
  171. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/sdl/facets/content.py +0 -0
  172. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/sdl/facets/device.py +0 -0
  173. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/sdl/facets/event.py +0 -0
  174. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/sdl/facets/geo.py +0 -0
  175. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/sdl/facets/identity.py +0 -0
  176. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/sdl/facets/media.py +0 -0
  177. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/sdl/facets/metric.py +0 -0
  178. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/sdl/facets/money.py +0 -0
  179. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/sdl/facets/net.py +0 -0
  180. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/sdl/facets/people.py +0 -0
  181. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/sdl/facets/quantity.py +0 -0
  182. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/sdl/facets/rating.py +0 -0
  183. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/sdl/facets/security.py +0 -0
  184. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/sdl/facets/task.py +0 -0
  185. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/sdl/facets/time.py +0 -0
  186. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/sdl/field.py +0 -0
  187. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/sdl/roles.py +0 -0
  188. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/search.py +0 -0
  189. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/secrets/__init__.py +0 -0
  190. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/secrets/client.py +0 -0
  191. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/secrets/exceptions.py +0 -0
  192. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/secrets/panel_handler.py +0 -0
  193. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/secrets/spec.py +0 -0
  194. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/security/__init__.py +0 -0
  195. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/security/call_token.py +0 -0
  196. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/security/deactivation_guard.py +0 -0
  197. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/signals/__init__.py +0 -0
  198. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/signals/client.py +0 -0
  199. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/skeleton/__init__.py +0 -0
  200. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/skeleton/client.py +0 -0
  201. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/storage/__init__.py +0 -0
  202. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/storage/client.py +0 -0
  203. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/store/__init__.py +0 -0
  204. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/store/client.py +0 -0
  205. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/store/exceptions.py +0 -0
  206. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/testing/__init__.py +0 -0
  207. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/testing/autonomous_mock.py +0 -0
  208. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/testing/mock_context.py +0 -0
  209. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/testing/mock_secrets.py +0 -0
  210. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/transport.py +0 -0
  211. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/typed_context.py +0 -0
  212. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/types/__init__.py +0 -0
  213. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/types/action_result.py +0 -0
  214. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/types/chat_result.py +0 -0
  215. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/types/client_contracts.py +0 -0
  216. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/types/contracts.py +0 -0
  217. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/types/contributions.py +0 -0
  218. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/types/events.py +0 -0
  219. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/types/health.py +0 -0
  220. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/types/identity.py +0 -0
  221. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/types/metered_event.py +0 -0
  222. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/types/models.py +0 -0
  223. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/types/pagination.py +0 -0
  224. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/types/store_contracts.py +0 -0
  225. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ui/__init__.py +0 -0
  226. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ui/actions.py +0 -0
  227. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ui/base.py +0 -0
  228. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ui/canvas.py +0 -0
  229. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ui/data.py +0 -0
  230. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ui/display.py +0 -0
  231. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ui/feedback.py +0 -0
  232. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ui/graph.py +0 -0
  233. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ui/input_components.py +0 -0
  234. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ui/interactive.py +0 -0
  235. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ui/layout.py +0 -0
  236. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ui/liquid.py +0 -0
  237. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ui/signals.py +0 -0
  238. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ui/stage.py +0 -0
  239. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/ui/theme.py +0 -0
  240. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/users/__init__.py +0 -0
  241. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/users/client.py +0 -0
  242. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/validator.py +0 -0
  243. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/src/imperal_sdk/validator_v1_6_0.py +0 -0
  244. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/conftest.py +0 -0
  245. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/contract/__init__.py +0 -0
  246. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/contract/test_action_schemas.py +0 -0
  247. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/contract/test_artifacts_freshness.py +0 -0
  248. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/contract/test_contract_checks_selftest.py +0 -0
  249. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/contract/test_generate_sdk_claims.py +0 -0
  250. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/contract/test_identity_nonempty.py +0 -0
  251. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/contract/test_ir_schema_fresh.py +0 -0
  252. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/contract/test_meter_lua_contract.py +0 -0
  253. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/contract/test_metered_event_contract.py +0 -0
  254. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/contract/test_notify_wire_payload.py +0 -0
  255. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/contract/test_public_docstrings_engine_neutral.py +0 -0
  256. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/contract/test_reference_completeness.py +0 -0
  257. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/contract/test_reference_no_leak.py +0 -0
  258. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/contract/test_sample_contract_shape.py +0 -0
  259. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/contract/test_sdk_matches_kernel_contract.py +0 -0
  260. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/contracts/__init__.py +0 -0
  261. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/contracts/test_store_contracts.py +0 -0
  262. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/fixtures/contract/kernel-contract.sample.json +0 -0
  263. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/fixtures/ir/README.md +0 -0
  264. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/fixtures/ir/archive_ended.ir.json +0 -0
  265. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/fixtures/ir/link_saver.ir.json +0 -0
  266. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/fixtures/ir/test_fixtures_valid.py +0 -0
  267. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/fixtures/openapi/auth-gateway.json +0 -0
  268. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/fixtures/openapi/registry.json +0 -0
  269. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/fixtures/openapi/sharelock-cases.json +0 -0
  270. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/ir/__init__.py +0 -0
  271. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/ir/test_custom_roles.py +0 -0
  272. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/ir/test_ir_impl.py +0 -0
  273. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/ir/test_ir_mapping_real_ext.py +0 -0
  274. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/ir/test_ir_migrate.py +0 -0
  275. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/ir/test_ir_produce.py +0 -0
  276. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/ir/test_ir_schema.py +0 -0
  277. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/ir/test_ir_skeleton.py +0 -0
  278. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/ir/test_ir_ui.py +0 -0
  279. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/ir/test_ir_ui_produce.py +0 -0
  280. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/ir/test_ir_validator.py +0 -0
  281. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/ir/test_ir_versions.py +0 -0
  282. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/ir/test_ui_children.py +0 -0
  283. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/ir/test_ui_template.py +0 -0
  284. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/rpc/__init__.py +0 -0
  285. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/rpc/test_boundary_seal.py +0 -0
  286. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/rpc/test_codec.py +0 -0
  287. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/rpc/test_contract.py +0 -0
  288. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/runtime/__init__.py +0 -0
  289. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/runtime/test_canon.py +0 -0
  290. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/runtime/test_canon_template.py +0 -0
  291. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/runtime/test_engine_abc.py +0 -0
  292. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/runtime/test_engine_parity.py +0 -0
  293. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/runtime/test_executor_neutral.py +0 -0
  294. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/runtime/test_hosted_client.py +0 -0
  295. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/runtime/test_interpreter.py +0 -0
  296. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/runtime/test_llm_provider_config_store.py +0 -0
  297. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/runtime/test_llm_provider_ctx_injection.py +0 -0
  298. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/runtime/test_local_engine.py +0 -0
  299. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/runtime/test_platform_shim.py +0 -0
  300. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/runtime/test_template.py +0 -0
  301. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/runtime/test_verb_ai.py +0 -0
  302. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/runtime/test_verb_call_directives.py +0 -0
  303. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/runtime/test_verb_conditional.py +0 -0
  304. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/runtime/test_verb_store.py +0 -0
  305. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/store/__init__.py +0 -0
  306. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/store/test_list_users_client.py +0 -0
  307. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/store/test_query_all_client.py +0 -0
  308. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_action_result_time_travel.py +0 -0
  309. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_action_result_typed.py +0 -0
  310. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_agent_presence.py +0 -0
  311. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_as_user.py +0 -0
  312. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_auth.py +0 -0
  313. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_autonomous_mock.py +0 -0
  314. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_billing.py +0 -0
  315. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_cache_client.py +0 -0
  316. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_cache_model.py +0 -0
  317. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_call_token.py +0 -0
  318. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_callable_surface_single_source.py +0 -0
  319. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_chat_extension_deprecation.py +0 -0
  320. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_chat_extension_no_llm_router.py +0 -0
  321. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_chat_filters.py +0 -0
  322. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_chat_function_background_flag.py +0 -0
  323. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_chat_guards.py +0 -0
  324. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_chat_guards_bleed.py +0 -0
  325. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_chat_prompt.py +0 -0
  326. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_chat_result.py +0 -0
  327. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_cli.py +0 -0
  328. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_cli_sdk_commands.py +0 -0
  329. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_client_contracts.py +0 -0
  330. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_client_emit_neutral.py +0 -0
  331. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_code_index_contracts.py +0 -0
  332. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_config_client.py +0 -0
  333. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_context.py +0 -0
  334. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_context_background_task.py +0 -0
  335. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_context_deliver_chat_message.py +0 -0
  336. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_context_guards.py +0 -0
  337. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_contracts.py +0 -0
  338. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_contracts_live.py +0 -0
  339. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_contributions.py +0 -0
  340. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_core_primitives.py +0 -0
  341. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_data_model_kwarg.py +0 -0
  342. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_document_contract.py +0 -0
  343. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_emits_decorator.py +0 -0
  344. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_error_codes.py +0 -0
  345. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_errors.py +0 -0
  346. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_event_schema_v2.py +0 -0
  347. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_events_health.py +0 -0
  348. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_extension.py +0 -0
  349. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_extension_pipes.py +0 -0
  350. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_extension_v2.py +0 -0
  351. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_extensions_emit.py +0 -0
  352. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_gateway_namespaces.py +0 -0
  353. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_http_json_and_mock.py +0 -0
  354. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_http_retry.py +0 -0
  355. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_http_timeout_override.py +0 -0
  356. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_id_shape_guard.py +0 -0
  357. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_identity_contract.py +0 -0
  358. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_imperal_schema_v2.py +0 -0
  359. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_import_light.py +0 -0
  360. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_init_onboarding.py +0 -0
  361. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_kernel_primitives.py +0 -0
  362. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_liquid_ui.py +0 -0
  363. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_manifest.py +0 -0
  364. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_manifest_file_sinks.py +0 -0
  365. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_manifest_linter.py +0 -0
  366. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_manifest_no_orchestrator_tool.py +0 -0
  367. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_manifest_oauth.py +0 -0
  368. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_manifest_panels.py +0 -0
  369. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_manifest_roundtrip_gate.py +0 -0
  370. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_manifest_schema.py +0 -0
  371. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_manifest_v2_events.py +0 -0
  372. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_manifest_v2_other_sections.py +0 -0
  373. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_manifest_v2_webhooks.py +0 -0
  374. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_manifest_validator_v2.py +0 -0
  375. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_mock_context.py +0 -0
  376. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_models.py +0 -0
  377. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_narration_emission.py +0 -0
  378. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_narration_guard.py +0 -0
  379. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_oauth_authorize_url.py +0 -0
  380. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_oauth_tokens_shared.py +0 -0
  381. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_openai_max_completion_tokens.py +0 -0
  382. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_pagination.py +0 -0
  383. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_panel_rendering_contract.py +0 -0
  384. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_panel_swr_caching.py +0 -0
  385. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_panels.py +0 -0
  386. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_phase_a_dead_removal.py +0 -0
  387. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_phase_a_drift.py +0 -0
  388. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_phase_a_text.py +0 -0
  389. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdk_version_stamp.py +0 -0
  390. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_entity.py +0 -0
  391. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_entity_marker.py +0 -0
  392. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_exports.py +0 -0
  393. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_facet_catalog.py +0 -0
  394. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_facet_collisions.py +0 -0
  395. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_facet_comm.py +0 -0
  396. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_facet_content.py +0 -0
  397. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_facet_device.py +0 -0
  398. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_facet_event.py +0 -0
  399. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_facet_exports.py +0 -0
  400. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_facet_field.py +0 -0
  401. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_facet_geo.py +0 -0
  402. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_facet_identity.py +0 -0
  403. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_facet_media.py +0 -0
  404. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_facet_metric.py +0 -0
  405. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_facet_money.py +0 -0
  406. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_facet_net.py +0 -0
  407. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_facet_people.py +0 -0
  408. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_facet_quantity.py +0 -0
  409. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_facet_rating.py +0 -0
  410. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_facet_resolve.py +0 -0
  411. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_facet_security.py +0 -0
  412. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_facet_task.py +0 -0
  413. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_facet_time.py +0 -0
  414. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_facets_catalog.py +0 -0
  415. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_facets_doc.py +0 -0
  416. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_facets_pkg.py +0 -0
  417. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_field.py +0 -0
  418. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_roles.py +0 -0
  419. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_roles_json.py +0 -0
  420. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_roles_of_facets.py +0 -0
  421. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sdl_vocab_version.py +0 -0
  422. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_search_provider.py +0 -0
  423. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_secret_scope_decorator.py +0 -0
  424. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_secret_spec_scope.py +0 -0
  425. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_skeleton_decorator.py +0 -0
  426. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_spec_validation.py +0 -0
  427. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_stage.py +0 -0
  428. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_surface_adaptation.py +0 -0
  429. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_sync_async_parity.py +0 -0
  430. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_transport_isolation.py +0 -0
  431. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_ui.py +0 -0
  432. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_ui_canvas.py +0 -0
  433. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_ui_fileupload_enhanced.py +0 -0
  434. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_ui_html.py +0 -0
  435. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_ui_image_enhanced.py +0 -0
  436. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_ui_modal.py +0 -0
  437. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_ui_open.py +0 -0
  438. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_ui_signals.py +0 -0
  439. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_ui_theme.py +0 -0
  440. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_user.py +0 -0
  441. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_v7_emit_refusal.py +0 -0
  442. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_validator.py +0 -0
  443. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_validator_drift.py +0 -0
  444. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_validator_pep563.py +0 -0
  445. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_validator_v1_6_0_rules.py +0 -0
  446. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_validator_v25.py +0 -0
  447. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/test_write_arg_bleed.py +0 -0
  448. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/tools/__init__.py +0 -0
  449. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/tools/test_generate_api_surface.py +0 -0
  450. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/tools/test_generate_reference.py +0 -0
  451. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/tools/test_reference_description.py +0 -0
  452. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/tools/test_reference_flags.py +0 -0
  453. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/tools/test_reference_typegraph.py +0 -0
  454. {imperal_sdk-6.3.5 → imperal_sdk-6.3.7}/tests/ui/test_input_type_enum.py +0 -0
@@ -2,6 +2,21 @@
2
2
 
3
3
  All notable changes to `imperal-sdk` are documented here.
4
4
 
5
+ ## 6.3.7 — 2026-10-21
6
+
7
+ ### Changed
8
+ - Plain names: `DwellGuard` / `DwellGuardStep` (module `imperal_sdk.dwell_guard`) -- the dwell guard says what it
9
+ checks (nesting depth, steps on one entity without coverage gain, a growing gap) and its alarms say what to do.
10
+ `GNCLyapunovGuard` / `GNCEnergyState` (`imperal_sdk.gnc_guard`) stay as old names of the same classes.
11
+ - `DEFAULT_APP_ICON` (old name `DEFAULT_QUANTUM_ICON` kept); docstrings no longer say "ICNLI Quantum SDK".
12
+
13
+ ## 6.3.6 — 2026-10-21
14
+
15
+ ### Fixed
16
+ - Code index: a source with an embedder says so (`meta.embeds`), so the vault asks it once for the versions it
17
+ holds without vectors. A repo first synced by a source without an embedder stayed `semantic: off` forever --
18
+ a held version was never sent again.
19
+
5
20
  ## 6.3.5 — 2026-10-20
6
21
 
7
22
  ### Changed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: imperal-sdk
3
- Version: 6.3.5
3
+ Version: 6.3.7
4
4
  Summary: SDK for building Imperal Cloud extensions
5
5
  Author: Imperal, Inc.
6
6
  Author-email: Valentin Scerbacov <valentin@imperal.io>
@@ -1,5 +1,5 @@
1
1
  {
2
- "sdk_version": "6.3.5",
2
+ "sdk_version": "6.3.7",
3
3
  "symbols": {
4
4
  "ActionResult": {
5
5
  "action_vocab_safe": false,
@@ -1,5 +1,5 @@
1
1
  {
2
- "_sdk_version": "6.3.5",
2
+ "_sdk_version": "6.3.7",
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.5"
4
+ __version__ = "6.3.7"
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
@@ -48,12 +48,14 @@ _LAZY_ATTRS = {
48
48
  # hand-roll a token_refresh.py; four divergent copies are how an expired
49
49
  # Google Analytics token turned into "please reconnect" (2026-08-21).
50
50
  "fresh_token": "imperal_sdk.oauth_tokens",
51
- # GNC Marathon Resilience & Tenant Vault Working RAM (ICNLI V17)
51
+ # Marathon dwell guard & Tenant Vault Working RAM
52
52
  "TenantVaultRAM": "imperal_sdk.vault_ram_client",
53
53
  "TargetEntity": "imperal_sdk.vault_ram_client",
54
54
  "WorkingRAMSnapshot": "imperal_sdk.vault_ram_client",
55
- "GNCLyapunovGuard": "imperal_sdk.gnc_guard",
56
- "GNCEnergyState": "imperal_sdk.gnc_guard",
55
+ "DwellGuard": "imperal_sdk.dwell_guard",
56
+ "DwellGuardStep": "imperal_sdk.dwell_guard",
57
+ "GNCLyapunovGuard": "imperal_sdk.gnc_guard", # old name of DwellGuard
58
+ "GNCEnergyState": "imperal_sdk.gnc_guard", # old name of DwellGuardStep
57
59
  "BOMExtractor": "imperal_sdk.bom_extractor",
58
60
  "BOMEntity": "imperal_sdk.bom_extractor",
59
61
  "BOMReport": "imperal_sdk.bom_extractor",
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Copyright (c) 2026 Imperal, Inc.
3
3
  # Licensed under the Apache-2.0 License.
4
- """ICNLI Quantum SDK v6.0 — The Universal Zero-Boilerplate Application Engine.
4
+ """Imperal SDK App: an extension with no boilerplate.
5
5
 
6
6
  Empowers developers to build next-generation AI Cloud OS applications with:
7
7
  1. Zero-Manifest: 100% automatic type-to-schema extraction from Python signatures.
@@ -25,7 +25,7 @@ from imperal_sdk.context import Context
25
25
  from imperal_sdk.types.identity import UserContext, TenantContext
26
26
  from imperal_sdk.auto_ui import project_to_declarative_ir
27
27
 
28
- DEFAULT_QUANTUM_ICON = (
28
+ DEFAULT_APP_ICON = (
29
29
  '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" '
30
30
  'stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-atom">'
31
31
  '<circle cx="12" cy="12" r="1"/>'
@@ -33,6 +33,7 @@ DEFAULT_QUANTUM_ICON = (
33
33
  '<path d="M15.7 15.7c4.52-4.54 6.54-9.87 4.5-11.9-2.03-2.04-7.36-.02-11.9 4.5-4.52 4.54-6.54 9.87-4.5 11.9 2.03 2.04 7.36.02 11.9-4.5Z"/>'
34
34
  '</svg>'
35
35
  )
36
+ DEFAULT_QUANTUM_ICON = DEFAULT_APP_ICON # old name
36
37
 
37
38
 
38
39
  def _python_type_to_json_schema(py_type):
@@ -75,7 +76,7 @@ def create_ambient_context(user_id="ambient_user"):
75
76
 
76
77
 
77
78
  class App(Extension):
78
- """High-level ICNLI Quantum Application.
79
+ """High-level Imperal SDK application.
79
80
 
80
81
  Zero-manifest, auto-schema, ambient-context, auto-IR enabled container.
81
82
  Inherits from `Extension` for 100% backward compatibility with all
@@ -99,7 +100,7 @@ class App(Extension):
99
100
  if len(desc) < 40:
100
101
  desc = "{} Fully compliant with the ICNLI Agentic OS specification.".format(desc)
101
102
 
102
- effective_icon = icon or DEFAULT_QUANTUM_ICON
103
+ effective_icon = icon or DEFAULT_APP_ICON
103
104
 
104
105
  super(App, self).__init__(
105
106
  app_id=app_id,
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Copyright (c) 2026 Imperal, Inc., Valentin Scerbacov, and contributors
3
3
  # Licensed under the Apache-2.0 License. See LICENSE file for details.
4
- """Auto-IR & UI-as-Data Projector for ICNLI Quantum SDK.
4
+ """Auto UI for the Imperal SDK: return values become UI components.
5
5
 
6
6
  Transforms standard Python return types (dicts, dataclasses, lists, primitives)
7
7
  into reactive Declarative IR components without writing custom frontend templates.
@@ -1,5 +1,5 @@
1
1
  """
2
- Pre-Flight BOM Extractor (RFC: ICNLI V17 / GNC Marathon Resilience Engine)
2
+ Pre-Flight BOM Extractor
3
3
 
4
4
  Scans target codebases (NodeJS: Express/Fastify/Koa/Next.js/HTML, Python: Flask/FastAPI/Django)
5
5
  to extract a ground-truth Bill-of-Materials (BOM) before coding starts:
@@ -1673,6 +1673,11 @@ async def sync_source(plan, apply, meta: dict, listing: list, read, *, embed_chu
1673
1673
  meta = dict(meta or {})
1674
1674
  meta["extractor_version"] = EXTRACTOR_VERSION
1675
1675
  meta.setdefault("listed_at", _time.time())
1676
+ # a source with an embedder says so: the vault then asks, once, for the versions it holds without vectors (a
1677
+ # repo synced by a source without one stayed "semantic: off" forever -- a held version is never sent again)
1678
+ embed_chunks = bool(embed_chunks) and _backend() is not None
1679
+ if embed_chunks:
1680
+ meta["embeds"] = True
1676
1681
  partial: list = []
1677
1682
  items: list = []
1678
1683
  for it in listing or []:
@@ -1,13 +1,15 @@
1
1
  """
2
- GNC Lyapunov Guard for Autonomous Long-Running Marathons (RFC: ICNLI V17)
2
+ Dwell guard for long-running marathons: is the agent stuck on one item?
3
3
 
4
- Replaces scalar 1D Lyapunov error V(q, p) with a composite multi-scale potential:
5
- V(S) = alpha * (1 - MacroCoverage)^2 + beta * ||x_micro||^2 + gamma * Psi(tau_dwell)
4
+ Each step scores a gap from three measured parts:
5
+ gap = alpha * (1 - coverage)^2 + beta * error^2 + gamma * excess_dwell^2
6
6
 
7
- Features:
8
- 1. Sub-manifold Limit Cycle Detection (prevents 70,000s traps like Ignat's marathon)
9
- 2. Macro-Velocity Governor (tracks coverage progress per step/time)
10
- 3. Anti-Yak-Shaving Barrier (caps recursion depth <= 2 and forces scratchpad deferral)
7
+ and raises an alarm when the agent
8
+ 1. goes deeper than ``max_subtask_depth`` nested subtasks,
9
+ 2. stays on one entity for more than ``max_dwell_steps`` steps without coverage gain, or
10
+ 3. lets the gap grow while dwelling.
11
+
12
+ (``imperal_sdk.gnc_guard`` keeps the old names ``GNCLyapunovGuard`` / ``GNCEnergyState``.)
11
13
  """
12
14
 
13
15
  from __future__ import annotations
@@ -19,7 +21,7 @@ from typing import Dict, List, Optional, Tuple, Any
19
21
 
20
22
 
21
23
  @dataclass
22
- class GNCEnergyState:
24
+ class DwellGuardStep:
23
25
  step: int
24
26
  timestamp: float
25
27
  active_entity_id: str
@@ -35,19 +37,16 @@ class GNCEnergyState:
35
37
  alarm_reason: Optional[str] = None
36
38
 
37
39
 
38
- class GNCLyapunovGuard:
39
- """
40
- Composite Multi-Scale Lyapunov Stability Guard.
41
- Directly connected to Tenant Vault Working RAM.
42
- """
40
+ class DwellGuard:
41
+ """Scores each step's gap and raises an alarm when the agent dwells on one entity."""
43
42
 
44
43
  def __init__(
45
44
  self,
46
- alpha: float = 10.0, # Macro-weight (high penalty for unfinished system)
47
- beta: float = 1.0, # Micro-weight (local syntax/test error)
48
- gamma: float = 5.0, # Barrier weight for dwelling/stalling
45
+ alpha: float = 10.0, # weight of the unfinished share of the plan
46
+ beta: float = 1.0, # weight of the local error (syntax / test)
47
+ gamma: float = 5.0, # weight of the steps over the dwell budget
49
48
  max_dwell_steps: int = 12, # Max allowed steps on one entity before alarm
50
- max_subtask_depth: int = 2 # Anti-Yak-Shaving depth barrier
49
+ max_subtask_depth: int = 2 # max nesting of subtasks
51
50
  ):
52
51
  self.alpha = alpha
53
52
  self.beta = beta
@@ -55,7 +54,7 @@ class GNCLyapunovGuard:
55
54
  self.max_dwell_steps = max_dwell_steps
56
55
  self.max_subtask_depth = max_subtask_depth
57
56
 
58
- self.history: List[GNCEnergyState] = []
57
+ self.history: List[DwellGuardStep] = []
59
58
  self._current_subtask_depth: int = 1
60
59
  self._last_active_entity: Optional[str] = None
61
60
  self._entity_dwell_counter: int = 0
@@ -67,10 +66,8 @@ class GNCLyapunovGuard:
67
66
  active_entity_id: str,
68
67
  micro_error: float = 0.0,
69
68
  subtask_depth: int = 1
70
- ) -> GNCEnergyState:
71
- """
72
- Calculates composite Lyapunov energy V(S) and checks stability criteria.
73
- """
69
+ ) -> DwellGuardStep:
70
+ """Scores this step's gap and checks the depth, dwell and growth limits."""
74
71
  now = time.time()
75
72
  step_num = len(self.history) + 1
76
73
 
@@ -110,33 +107,33 @@ class GNCLyapunovGuard:
110
107
  else:
111
108
  delta_v = 0.0
112
109
 
113
- # Detect limit cycle / stall
110
+ # Detect a stall
114
111
  is_limit_cycle = False
115
112
  alarm_reason = None
116
113
 
117
- # Check Depth Barrier (Anti-Yak-Shaving)
114
+ # Too many nested subtasks
118
115
  if subtask_depth > self.max_subtask_depth:
119
116
  is_limit_cycle = True
120
117
  alarm_reason = (
121
- f"Anti-Yak-Shaving Barrier tripped: subtask depth {subtask_depth} exceeds "
122
- f"limit {self.max_subtask_depth}. Refuse deep refactoring; defer blocker to scratchpad."
118
+ f"Subtask depth {subtask_depth} exceeds the limit {self.max_subtask_depth}: "
119
+ f"do not go deeper; note the blocker and return to the item."
123
120
  )
124
- # Check Dwell Barrier
121
+ # Too many steps on one entity
125
122
  elif dwell > self.max_dwell_steps:
126
123
  is_limit_cycle = True
127
124
  alarm_reason = (
128
- f"Limit cycle detected on '{active_entity_id}': dwell steps ({dwell}) exceeded "
129
- f"budget ({self.max_dwell_steps}) with zero macro coverage gain. Forcing phase transition!"
125
+ f"Stuck on '{active_entity_id}': {dwell} steps without coverage gain "
126
+ f"(limit {self.max_dwell_steps}). Move to another item or report the blocker."
130
127
  )
131
- # Check Energy Divergence
128
+ # The gap grows while dwelling
132
129
  elif delta_v > 0.5 and dwell > 5:
133
130
  is_limit_cycle = True
134
131
  alarm_reason = (
135
- f"Lyapunov energy diverging (Delta V = +{delta_v:.3f}): system is expanding energy "
136
- f"on secondary details without macroscopic convergence."
132
+ f"The gap grew by {delta_v:.3f} while dwelling: the steps go into side details "
133
+ f"without moving the plan."
137
134
  )
138
135
 
139
- state = GNCEnergyState(
136
+ state = DwellGuardStep(
140
137
  step=step_num,
141
138
  timestamp=now,
142
139
  active_entity_id=active_entity_id,
@@ -0,0 +1,4 @@
1
+ """Old names of :mod:`imperal_sdk.dwell_guard`, kept so existing extensions keep importing."""
2
+ from imperal_sdk.dwell_guard import DwellGuard as GNCLyapunovGuard, DwellGuardStep as GNCEnergyState
3
+
4
+ __all__ = ["GNCLyapunovGuard", "GNCEnergyState"]
@@ -1,6 +1,6 @@
1
1
  -- ============================================================================
2
2
  -- IMPERAL CLOUD OS — TENANT VAULT WORKING RAM (COGNITIVE BLACKBOARD)
3
- -- RFC: ICNLI V17 / GNC Marathon Resilience Engine
3
+ -- RFC: ICNLI V17
4
4
  -- ============================================================================
5
5
 
6
6
  -- 1. Target System Entities (BOM: screens, routes, models, services)
@@ -1,5 +1,5 @@
1
1
  """
2
- Tenant Vault Working RAM Client (RFC: ICNLI V17 / GNC Marathon Resilience Engine)
2
+ Tenant Vault Working RAM Client
3
3
 
4
4
  Provides sub-3ms working memory access for autonomous marathons.
5
5
  Separates LLM Reasoning Core (CPU/ALU) from Persistent State Store (Working RAM).
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Copyright (c) 2026 Imperal, Inc., Valentin Scerbacov, and contributors
3
3
  # Licensed under the Apache-2.0 License. See LICENSE file for details.
4
- """Tests for ICNLI Quantum SDK v6.0 App Engine."""
4
+ """Tests for the Imperal SDK App."""
5
5
  from __future__ import annotations
6
6
 
7
7
  import asyncio
@@ -443,3 +443,28 @@ def test_a_file_whose_facts_do_not_fit_an_apply_is_kept_as_text_and_said(monkeyp
443
443
  assert "defs" not in bundle["facts"] and bundle["facts"]["lines"] > 1000
444
444
  assert any(b["facts"].get("defs") for b in sent.values() if b["text"] != big)
445
445
  assert "bundle.py kept as text only" in out["partial_reason"]
446
+
447
+
448
+ def test_a_source_with_an_embedder_says_so_to_the_vault_and_one_without_never_does(monkeypatch):
449
+ """6.3.6 (frame audit 2026-10-21: every repo said "semantic: off"): ``meta.embeds`` lets the vault ask an
450
+ embedding source, once, for the versions it holds without vectors."""
451
+ import asyncio
452
+ from imperal_sdk import code_index as ci
453
+ seen = []
454
+
455
+ async def plan(items, meta):
456
+ seen.append(dict(meta))
457
+ return {"changed": [], "removed": [], "have_blobs": []}
458
+
459
+ async def apply(**payload):
460
+ return {}
461
+
462
+ async def read(paths):
463
+ return {}
464
+ listing = [{"path": "a.py", "size": 3, "mtime": 1.0}]
465
+ monkeypatch.setattr(ci, "_backend", lambda: object())
466
+ asyncio.run(ci.sync_source(plan, apply, {"source": "t"}, listing, read))
467
+ asyncio.run(ci.sync_source(plan, apply, {"source": "t"}, listing, read, embed_chunks=False))
468
+ monkeypatch.setattr(ci, "_backend", lambda: None)
469
+ asyncio.run(ci.sync_source(plan, apply, {"source": "t"}, listing, read))
470
+ assert [m.get("embeds") for m in seen] == [True, None, None]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes