arbora 0.1.8.dev4__tar.gz → 0.1.8.dev5__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 (766) hide show
  1. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/PKG-INFO +1 -1
  2. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/_version.py +1 -1
  3. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/a2a/authority.py +6 -0
  4. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/access/action_policy.py +114 -14
  5. arbora-0.1.8.dev5/arbora/access/action_policy_source.py +215 -0
  6. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/agent_runs.py +4 -1
  7. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/generated/descriptors.json +25 -1
  8. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/generated/engine_errors.py +1 -1
  9. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/generated/registry.json +396 -1
  10. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/generated/task_plan_schema.json +4 -4
  11. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/invoke/pipeline.py +53 -1
  12. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/browser.py +13 -0
  13. arbora-0.1.8.dev5/arbora/api/ops/run_graph.py +238 -0
  14. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/runs.py +27 -0
  15. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/task_plan_schema.py +17 -3
  16. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/browser_control_api.py +13 -0
  17. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/browser_control_binding.py +7 -4
  18. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/browser_control_channel.py +8 -0
  19. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/browser_control_client.py +9 -0
  20. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/browser_control_dispatch.py +9 -0
  21. arbora-0.1.8.dev5/arbora/browser_control/browser_control_proposals.py +314 -0
  22. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/browser_control_provenance.py +1 -0
  23. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/browser_control_runtime.py +3 -0
  24. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/browser_control_server.py +34 -1
  25. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/browser_control_service.py +6 -0
  26. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/browser_control_state.py +21 -0
  27. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/trace_bundle.py +33 -0
  28. arbora-0.1.8.dev5/arbora/client/__init__.py +5 -0
  29. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/client/_generated_models.py +3 -1
  30. arbora-0.1.8.dev5/arbora/client/browser_boundary.py +20 -0
  31. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/production_ops.py +21 -17
  32. arbora-0.1.8.dev5/arbora/fleet/catalog_graph.py +241 -0
  33. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/onboarding.py +28 -0
  34. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/host_bindings.py +29 -1
  35. arbora-0.1.8.dev5/arbora/identity/local_browser.py +99 -0
  36. arbora-0.1.8.dev5/arbora/local_browser_channel.py +403 -0
  37. arbora-0.1.8.dev5/arbora/mcp_server/browser_state.py +122 -0
  38. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/current_plan_reader.py +12 -9
  39. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/run_reader.py +59 -3
  40. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/runtime.py +29 -18
  41. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/served_engine.py +37 -2
  42. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/served_invocation.py +105 -6
  43. arbora-0.1.8.dev5/arbora/run_origin.py +192 -0
  44. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora.egg-info/PKG-INFO +1 -1
  45. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora.egg-info/SOURCES.txt +12 -0
  46. arbora-0.1.8.dev5/tests/test_a2a_extension_lifespan.py +158 -0
  47. arbora-0.1.8.dev5/tests/test_run_origin.py +259 -0
  48. arbora-0.1.8.dev5/tests/test_served_engine_native_labels.py +108 -0
  49. arbora-0.1.8.dev4/arbora/client/__init__.py +0 -1
  50. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/LICENSE +0 -0
  51. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/README.md +0 -0
  52. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/__init__.py +0 -0
  53. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/a2a/__init__.py +0 -0
  54. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/a2a/admission.py +0 -0
  55. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/a2a/anonymous.py +0 -0
  56. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/a2a/anonymous_native.py +0 -0
  57. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/a2a/application.py +0 -0
  58. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/a2a/approval.py +0 -0
  59. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/a2a/composition.py +0 -0
  60. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/a2a/mcp.py +0 -0
  61. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/a2a/models.py +0 -0
  62. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/a2a/routing.py +0 -0
  63. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/a2a/run_usage.py +0 -0
  64. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/a2a/sdk_app.py +0 -0
  65. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/a2a/service.py +0 -0
  66. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/a2a/terminal_event.py +0 -0
  67. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/a2a/tool_task.py +0 -0
  68. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/a2a/tool_task_dispatch.py +0 -0
  69. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/a2a/tool_task_requests.py +0 -0
  70. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/a2a/work_items.py +0 -0
  71. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/access/__init__.py +0 -0
  72. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/access/approval.py +0 -0
  73. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/access/assurance.py +0 -0
  74. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/access/external_policy_sync.py +0 -0
  75. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/access/host_start.py +0 -0
  76. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/access/priority.py +0 -0
  77. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/access/service.py +0 -0
  78. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/access/task_guard.py +0 -0
  79. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/acp/__init__.py +0 -0
  80. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/acp/coding_session.py +0 -0
  81. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/acp/session_policy.py +0 -0
  82. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/agent_host/__init__.py +0 -0
  83. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/agent_host/log_access.py +0 -0
  84. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/agent_host/log_replay.py +0 -0
  85. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/agent_host/log_routes.py +0 -0
  86. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/agent_host/log_runtime.py +0 -0
  87. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/agent_host/log_sink.py +0 -0
  88. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/agent_host/managed_web.py +0 -0
  89. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/agent_host/start_admission.py +0 -0
  90. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/agent_host/start_configuration.py +0 -0
  91. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/__init__.py +0 -0
  92. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/contracts/__init__.py +0 -0
  93. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/contracts/agent_control_contracts.py +0 -0
  94. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/contracts/agent_control_plane.py +0 -0
  95. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/contracts/catalog.py +0 -0
  96. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/contracts/messaging.py +0 -0
  97. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/contracts/provisioning.py +0 -0
  98. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/contracts/session.py +0 -0
  99. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/errors.py +0 -0
  100. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/evidence/__init__.py +0 -0
  101. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/evidence/bundle.py +0 -0
  102. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/evidence/contradiction.py +0 -0
  103. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/generated/__init__.py +0 -0
  104. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/generated/schemas/method.request.json +0 -0
  105. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/generated/schemas/result.cluster.json +0 -0
  106. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/generated/schemas/result.compute.json +0 -0
  107. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/generated/schemas/result.coordination.json +0 -0
  108. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/generated/schemas/result.graph.json +0 -0
  109. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/generated/schemas/result.ingestion.json +0 -0
  110. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/generated/schemas/result.messaging.json +0 -0
  111. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/generated/schemas/result.query.json +0 -0
  112. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/generated/schemas/result.reasoning.json +0 -0
  113. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/generated/schemas/result.security.json +0 -0
  114. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/generated/schemas/result.storage.json +0 -0
  115. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/generated/schemas/result.transactions.json +0 -0
  116. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/http/__init__.py +0 -0
  117. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/http/app.py +0 -0
  118. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/http/auth.py +0 -0
  119. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/http/browser_app.py +0 -0
  120. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/http/browser_auth.py +0 -0
  121. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/http/checkout.py +0 -0
  122. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/http/openapi.py +0 -0
  123. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/http/protocol_routes.py +0 -0
  124. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/http/routes.py +0 -0
  125. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/invoke/__init__.py +0 -0
  126. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/invoke/audit.py +0 -0
  127. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/invoke/bootstrap.py +0 -0
  128. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/invoke/eg_audit.py +0 -0
  129. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/invoke/executor.py +0 -0
  130. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/invoke/plan.py +0 -0
  131. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/invoke/steps.py +0 -0
  132. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/mcp/__init__.py +0 -0
  133. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/mcp/caller.py +0 -0
  134. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/mcp/discovery.py +0 -0
  135. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/mcp/registration.py +0 -0
  136. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/mcp/resolve.py +0 -0
  137. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/mcp/resources.py +0 -0
  138. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/mcp/serving.py +0 -0
  139. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/mcp/verbs.py +0 -0
  140. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/__init__.py +0 -0
  141. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/_common.py +0 -0
  142. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/access.py +0 -0
  143. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/agents.py +0 -0
  144. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/capacity.py +0 -0
  145. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/decide.py +0 -0
  146. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/fleet.py +0 -0
  147. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/fleet_deploy_watch.py +0 -0
  148. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/ingest.py +0 -0
  149. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/memory.py +0 -0
  150. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/messaging.py +0 -0
  151. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/ops.py +0 -0
  152. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/plans.py +0 -0
  153. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/policy.py +0 -0
  154. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/query.py +0 -0
  155. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/registry_factory.py +0 -0
  156. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/research.py +0 -0
  157. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/retrieval.py +0 -0
  158. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/run_replay.py +0 -0
  159. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/security.py +0 -0
  160. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/source.py +0 -0
  161. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/swarm.py +0 -0
  162. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/telemetry.py +0 -0
  163. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/usage.py +0 -0
  164. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/work.py +0 -0
  165. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/write_back.py +0 -0
  166. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/ops/write_back_models.py +0 -0
  167. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/policy/__init__.py +0 -0
  168. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/policy/cache.py +0 -0
  169. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/policy/default_policy.json +0 -0
  170. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/policy/defaults.py +0 -0
  171. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/policy/domain_scopes.py +0 -0
  172. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/policy/eunomia.py +0 -0
  173. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/policy/pdp_remote.py +0 -0
  174. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/registry/__init__.py +0 -0
  175. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/registry/contract_admission.py +0 -0
  176. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/registry/digest.py +0 -0
  177. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/registry/eg_binding.py +0 -0
  178. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/registry/eg_exclusions.yaml +0 -0
  179. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/registry/registry.py +0 -0
  180. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/registry/scopes.py +0 -0
  181. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/registry/spec.py +0 -0
  182. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/api/registry/surface_gate.py +0 -0
  183. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/architecture/__init__.py +0 -0
  184. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/architecture/boundary_census.py +0 -0
  185. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/architecture/capability_layers.py +0 -0
  186. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/__init__.py +0 -0
  187. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/browser_control_attendance.py +0 -0
  188. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/browser_control_attendance_api.py +0 -0
  189. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/browser_control_attended.py +0 -0
  190. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/browser_control_cancellation.py +0 -0
  191. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/browser_control_common.py +0 -0
  192. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/browser_control_descriptor.py +0 -0
  193. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/browser_control_durability.py +0 -0
  194. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/browser_control_lease.py +0 -0
  195. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/browser_control_outcome.py +0 -0
  196. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/browser_control_policy.py +0 -0
  197. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/browser_control_port.py +0 -0
  198. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/browser_control_registration.py +0 -0
  199. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/browser_control_validation.py +0 -0
  200. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/browser_control/mcp.py +0 -0
  201. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/client/_schema.py +0 -0
  202. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/client/http.py +0 -0
  203. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/client/invoke.py +0 -0
  204. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/connector_runner.py +0 -0
  205. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/console.py +0 -0
  206. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/content.py +0 -0
  207. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/__init__.py +0 -0
  208. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/_model.py +0 -0
  209. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/admission/__init__.py +0 -0
  210. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/admission/models.py +0 -0
  211. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/admission/service.py +0 -0
  212. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/agents/__init__.py +0 -0
  213. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/agents/models.py +0 -0
  214. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/agents/repository.py +0 -0
  215. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/agents/service.py +0 -0
  216. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/connectors/__init__.py +0 -0
  217. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/connectors/models.py +0 -0
  218. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/connectors/repository.py +0 -0
  219. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/connectors/service.py +0 -0
  220. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/economics/__init__.py +0 -0
  221. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/economics/models.py +0 -0
  222. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/economics/repository.py +0 -0
  223. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/economics/service.py +0 -0
  224. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/fleet_watch/__init__.py +0 -0
  225. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/fleet_watch/service.py +0 -0
  226. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/foundation/__init__.py +0 -0
  227. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/foundation/models.py +0 -0
  228. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/foundation/repository.py +0 -0
  229. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/foundation/service.py +0 -0
  230. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/migrations/__init__.py +0 -0
  231. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/migrations/authority.py +0 -0
  232. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/migrations/errors.py +0 -0
  233. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/migrations/models.py +0 -0
  234. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/policy/__init__.py +0 -0
  235. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/policy/models.py +0 -0
  236. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/policy/repository.py +0 -0
  237. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/projection/__init__.py +0 -0
  238. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/projection/authority.py +0 -0
  239. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/projection/models.py +0 -0
  240. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/projection/observability.py +0 -0
  241. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/projection/projector.py +0 -0
  242. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/projection/protocols.py +0 -0
  243. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/projection/repository.py +0 -0
  244. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/retrieval/__init__.py +0 -0
  245. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/retrieval/errors.py +0 -0
  246. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/retrieval/models.py +0 -0
  247. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/retrieval/protocols.py +0 -0
  248. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/retrieval/repository.py +0 -0
  249. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/retrieval/service.py +0 -0
  250. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/runs/__init__.py +0 -0
  251. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/runs/admission.py +0 -0
  252. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/runs/audit.py +0 -0
  253. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/runs/capacity.py +0 -0
  254. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/runs/models.py +0 -0
  255. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/runs/observations.py +0 -0
  256. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/sources/__init__.py +0 -0
  257. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/sources/models.py +0 -0
  258. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/sources/repository.py +0 -0
  259. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/sources/service.py +0 -0
  260. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/webui/__init__.py +0 -0
  261. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/webui/errors.py +0 -0
  262. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/webui/models.py +0 -0
  263. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/webui/protocols.py +0 -0
  264. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/webui/repository.py +0 -0
  265. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/webui/service.py +0 -0
  266. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/workflows/__init__.py +0 -0
  267. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/workflows/domain.py +0 -0
  268. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/control_plane/workflows/repository.py +0 -0
  269. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/core/__init__.py +0 -0
  270. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/core/agent_config_admin.py +0 -0
  271. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/core/capability_contract.py +0 -0
  272. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/core/config_admin.py +0 -0
  273. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/core/event_loop.py +0 -0
  274. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/core/provider_materialization.py +0 -0
  275. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/core/providers.py +0 -0
  276. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/core/settings.py +0 -0
  277. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/core/transport.py +0 -0
  278. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/__init__.py +0 -0
  279. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/certification_assets.py +0 -0
  280. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/cli.py +0 -0
  281. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/codex_registration.py +0 -0
  282. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/config_generator.py +0 -0
  283. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/doctor.py +0 -0
  284. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/doctor_certification.py +0 -0
  285. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/doctor_coverage.py +0 -0
  286. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/doctor_graph.py +0 -0
  287. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/doctor_lakehouse.py +0 -0
  288. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/doctor_observability.py +0 -0
  289. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/doctor_support.py +0 -0
  290. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/engine_lock.py +0 -0
  291. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/exit_criteria.py +0 -0
  292. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/file_lock.py +0 -0
  293. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/genesis_environments.py +0 -0
  294. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/host_config.py +0 -0
  295. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/host_lock.py +0 -0
  296. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/kubernetes_first_boot.py +0 -0
  297. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/live_mount_guard.py +0 -0
  298. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/local_gates.py +0 -0
  299. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/preflight.py +0 -0
  300. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/profile_guard.py +0 -0
  301. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/public_ingress_identity.py +0 -0
  302. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/release_canary.py +0 -0
  303. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/release_candidate.py +0 -0
  304. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/repo_templates.py +0 -0
  305. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/self_deploy.py +0 -0
  306. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/semantic_provisioning.py +0 -0
  307. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/venv_autosync.py +0 -0
  308. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/venv_sync.py +0 -0
  309. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/venv_sync_types.py +0 -0
  310. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/deployment/webui_reference_model.py +0 -0
  311. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/ecosystem/__init__.py +0 -0
  312. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/ecosystem/agent_manager_dashboard.py +0 -0
  313. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/ecosystem/ard_federation.py +0 -0
  314. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/ecosystem/ard_registry.py +0 -0
  315. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/ecosystem/ard_signing.py +0 -0
  316. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/ecosystem/hook_installer.py +0 -0
  317. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/epistemic.py +0 -0
  318. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/evolution/__init__.py +0 -0
  319. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/evolution/wiring_sweep.py +0 -0
  320. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/finance/__init__.py +0 -0
  321. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/finance/alerts.py +0 -0
  322. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/finance/dca.py +0 -0
  323. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/finance/markets.py +0 -0
  324. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/finance/schedule.py +0 -0
  325. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/__init__.py +0 -0
  326. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/access_contracts.py +0 -0
  327. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/catalog_composition.py +0 -0
  328. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/catalog_items.py +0 -0
  329. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/catalog_reader.py +0 -0
  330. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/catalog_sources.py +0 -0
  331. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/child_resilience.py +0 -0
  332. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/client_toolsets.py +0 -0
  333. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/connector_count_pins.py +0 -0
  334. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/declarations.py +0 -0
  335. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/discovery_authority.py +0 -0
  336. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/epistemic_adapter.py +0 -0
  337. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/error_budget.py +0 -0
  338. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/feeds.py +0 -0
  339. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/gateway_ops.py +0 -0
  340. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/health.py +0 -0
  341. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/local_skill_catalog.py +0 -0
  342. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/mcp_resource_reconciliation.py +0 -0
  343. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/multiplexer.py +0 -0
  344. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/multiplexer_ops.py +0 -0
  345. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/plan_confirmation.py +0 -0
  346. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/protocol_compat.py +0 -0
  347. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/scaling/__init__.py +0 -0
  348. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/scaling/_model.py +0 -0
  349. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/scaling/development_lane.py +0 -0
  350. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/scaling/resource_pool_authority.py +0 -0
  351. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/scaling/resource_reservation.py +0 -0
  352. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/scaling/scaling_authority.py +0 -0
  353. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/scaling/scaling_intent_reconciler.py +0 -0
  354. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/scaling/scaling_signal_authority.py +0 -0
  355. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/scaling/service_scale_units.py +0 -0
  356. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/service_child.py +0 -0
  357. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/session_loads.py +0 -0
  358. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/session_notifications.py +0 -0
  359. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/shared_multiplexer.py +0 -0
  360. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/source_executor.py +0 -0
  361. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/surfaces.py +0 -0
  362. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet/throttle_service.py +0 -0
  363. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/fleet_tool_call.py +0 -0
  364. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/__init__.py +0 -0
  365. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/aggregator.py +0 -0
  366. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/config.py +0 -0
  367. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/daemon.py +0 -0
  368. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/dashboard_api.py +0 -0
  369. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/enhanced_catalog_api.py +0 -0
  370. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/fleet.py +0 -0
  371. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/fleet_events.py +0 -0
  372. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/graph_api.py +0 -0
  373. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/models.py +0 -0
  374. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/ontology_api.py +0 -0
  375. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/ports.py +0 -0
  376. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/rate_limit.py +0 -0
  377. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/registry.py +0 -0
  378. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/registry_api.py +0 -0
  379. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/remote_oauth_api.py +0 -0
  380. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/schema_context_api.py +0 -0
  381. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/schema_context_service.py +0 -0
  382. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/schemas/__init__.py +0 -0
  383. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/schemas/connector.py +0 -0
  384. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/schemas/graph_core.py +0 -0
  385. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/schemas/schema_context.py +0 -0
  386. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/__init__.py +0 -0
  387. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/ansible_tower.py +0 -0
  388. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/archivebox.py +0 -0
  389. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/aris.py +0 -0
  390. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/arr.py +0 -0
  391. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/atlassian.py +0 -0
  392. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/audio_transcriber.py +0 -0
  393. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/audiobookshelf.py +0 -0
  394. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/base.py +0 -0
  395. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/caddy.py +0 -0
  396. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/camunda.py +0 -0
  397. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/ciso_assistant.py +0 -0
  398. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/clarity.py +0 -0
  399. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/container_manager.py +0 -0
  400. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/data_science.py +0 -0
  401. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/dockerhub.py +0 -0
  402. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/documentdb.py +0 -0
  403. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/ear.py +0 -0
  404. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/egeria.py +0 -0
  405. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/emerald_exchange.py +0 -0
  406. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/erpnext.py +0 -0
  407. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/fan_manager.py +0 -0
  408. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/firefly_iii.py +0 -0
  409. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/fleet_client.py +0 -0
  410. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/freshrss.py +0 -0
  411. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/github.py +0 -0
  412. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/gitlab.py +0 -0
  413. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/google_workspace.py +0 -0
  414. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/gramps.py +0 -0
  415. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/hdhomerun.py +0 -0
  416. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/home_assistant.py +0 -0
  417. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/jellyfin.py +0 -0
  418. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/jena.py +0 -0
  419. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/kafka.py +0 -0
  420. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/keycloak.py +0 -0
  421. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/langfuse.py +0 -0
  422. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/leanix.py +0 -0
  423. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/legal_peripherals.py +0 -0
  424. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/lgtm.py +0 -0
  425. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/listmonk.py +0 -0
  426. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/mattermost.py +0 -0
  427. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/mealie.py +0 -0
  428. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/media_downloader.py +0 -0
  429. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/microsoft.py +0 -0
  430. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/nextcloud.py +0 -0
  431. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/okta.py +0 -0
  432. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/ollama.py +0 -0
  433. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/onetrust.py +0 -0
  434. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/openbao.py +0 -0
  435. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/orchestrator.py +0 -0
  436. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/owncast.py +0 -0
  437. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/paperless_ngx.py +0 -0
  438. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/plane.py +0 -0
  439. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/portainer.py +0 -0
  440. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/postiz.py +0 -0
  441. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/pulselink.py +0 -0
  442. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/qbittorrent.py +0 -0
  443. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/repository_manager.py +0 -0
  444. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/rom_manager.py +0 -0
  445. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/scholarx.py +0 -0
  446. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/searxng.py +0 -0
  447. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/sentry.py +0 -0
  448. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/servicenow.py +0 -0
  449. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/stirlingpdf.py +0 -0
  450. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/systems_manager.py +0 -0
  451. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/technitium.py +0 -0
  452. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/teleport.py +0 -0
  453. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/tunnel_manager.py +0 -0
  454. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/twenty.py +0 -0
  455. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/uptime_kuma.py +0 -0
  456. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/vector_db.py +0 -0
  457. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/wger.py +0 -0
  458. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/gateway/widgets/zulip.py +0 -0
  459. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/identity/__init__.py +0 -0
  460. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/identity/admin_console.py +0 -0
  461. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/identity/admission.py +0 -0
  462. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/identity/api_keys.py +0 -0
  463. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/identity/approval.py +0 -0
  464. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/identity/approval_engine.py +0 -0
  465. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/identity/approval_registration.py +0 -0
  466. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/identity/bootstrap.py +0 -0
  467. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/identity/broker.py +0 -0
  468. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/identity/browser.py +0 -0
  469. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/identity/client_entry_points.py +0 -0
  470. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/identity/composition.py +0 -0
  471. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/identity/engine.py +0 -0
  472. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/identity/engine_ports.py +0 -0
  473. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/identity/issuer.py +0 -0
  474. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/identity/ldap.py +0 -0
  475. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/identity/mail_capability.py +0 -0
  476. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/identity/mfa.py +0 -0
  477. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/identity/oidc.py +0 -0
  478. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/identity/ports.py +0 -0
  479. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/identity/saml.py +0 -0
  480. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/identity/scim.py +0 -0
  481. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/ingest/__init__.py +0 -0
  482. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/ingest/connector_sources.py +0 -0
  483. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/ingest/service.py +0 -0
  484. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/ingest/source_catalog.py +0 -0
  485. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/__init__.py +0 -0
  486. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/agent_control.py +0 -0
  487. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/arbora_operations.json +0 -0
  488. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/__init__.py +0 -0
  489. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/_arbora_action_manifest.py +0 -0
  490. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/action_dispatch.py +0 -0
  491. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/arbora_capabilities.json +0 -0
  492. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/arbora_surface.py +0 -0
  493. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/client_credentials.py +0 -0
  494. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/concurrency.py +0 -0
  495. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/connector_surface.py +0 -0
  496. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/context_helpers.py +0 -0
  497. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/delegated_auth.py +0 -0
  498. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/engine_routing.py +0 -0
  499. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/engine_surface_types.py +0 -0
  500. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/eunomia_principal.py +0 -0
  501. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/httpx_boundary.py +0 -0
  502. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/intent_contract.py +0 -0
  503. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/middlewares.py +0 -0
  504. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/oauth_log_hygiene.py +0 -0
  505. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/ontology_types.py +0 -0
  506. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/optional_tool_features.py +0 -0
  507. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/remote_oauth_broker.py +0 -0
  508. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/server_factory.py +0 -0
  509. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/skill_coverage.py +0 -0
  510. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/tasks_extension.py +0 -0
  511. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/tool_specs.py +0 -0
  512. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/tools/__init__.py +0 -0
  513. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/tools/_surface_selection.py +0 -0
  514. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/tools/analysis_tools.py +0 -0
  515. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/tools/analyze_suite.py +0 -0
  516. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/tools/audit_tools.py +0 -0
  517. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/tools/candidate_claim_tools.py +0 -0
  518. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/tools/compliance_tools.py +0 -0
  519. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/tools/config_tools.py +0 -0
  520. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/tools/domain_ops_tools.py +0 -0
  521. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/tools/engine_surface_tools.py +0 -0
  522. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/tools/engine_tools.py +0 -0
  523. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/tools/epistemic_tools.py +0 -0
  524. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/tools/governance_tools.py +0 -0
  525. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/tools/graph_tools.py +0 -0
  526. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/tools/intent_tools.py +0 -0
  527. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/tools/mcp_apps.py +0 -0
  528. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/tools/ontology_tools.py +0 -0
  529. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/tools/query_tools.py +0 -0
  530. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/tools/reach_tools.py +0 -0
  531. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/tools/secret_tools.py +0 -0
  532. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/tools/state_tools.py +0 -0
  533. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/tools/write_ingest_tools.py +0 -0
  534. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/verbose_tools.py +0 -0
  535. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/backing/write_ingest_types.py +0 -0
  536. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/bootstrap.py +0 -0
  537. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/catalog_composition.py +0 -0
  538. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/composition.py +0 -0
  539. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/decide_wiring.py +0 -0
  540. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/effect_journal.py +0 -0
  541. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/fleet_composition.py +0 -0
  542. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/harness_host.py +0 -0
  543. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/hosted_invocation.py +0 -0
  544. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/legacy_action_mapping.py +0 -0
  545. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/operation_registry.py +0 -0
  546. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/routes.py +0 -0
  547. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/server.py +0 -0
  548. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/source_reader.py +0 -0
  549. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/task_plan.py +0 -0
  550. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/mcp_server/task_plan_runtime.py +0 -0
  551. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/__init__.py +0 -0
  552. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/action_dispatch.py +0 -0
  553. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/alert_intake.py +0 -0
  554. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/backends/__init__.py +0 -0
  555. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/backends/discord.py +0 -0
  556. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/backends/googlechat.py +0 -0
  557. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/backends/googlemeet.py +0 -0
  558. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/backends/imessage.py +0 -0
  559. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/backends/irc.py +0 -0
  560. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/backends/line.py +0 -0
  561. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/backends/matrix.py +0 -0
  562. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/backends/mattermost.py +0 -0
  563. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/backends/nextcloud.py +0 -0
  564. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/backends/signal.py +0 -0
  565. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/backends/slack.py +0 -0
  566. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/backends/synology.py +0 -0
  567. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/backends/teams.py +0 -0
  568. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/backends/telegram.py +0 -0
  569. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/backends/twitch.py +0 -0
  570. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/backends/voicecall.py +0 -0
  571. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/backends/whatsapp.py +0 -0
  572. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/base.py +0 -0
  573. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/capabilities.py +0 -0
  574. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/coalescer.py +0 -0
  575. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/commands.py +0 -0
  576. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/governed_send.py +0 -0
  577. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/host_ports.py +0 -0
  578. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/inbox.py +0 -0
  579. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/intake.py +0 -0
  580. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/lease.py +0 -0
  581. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/models.py +0 -0
  582. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/planner_handler.py +0 -0
  583. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/polling.py +0 -0
  584. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/reach.py +0 -0
  585. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/registry.py +0 -0
  586. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/render.py +0 -0
  587. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/router.py +0 -0
  588. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/service.py +0 -0
  589. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/supervision.py +0 -0
  590. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/messaging/transport.py +0 -0
  591. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/native_run_admission.py +0 -0
  592. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/observability/__init__.py +0 -0
  593. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/observability/correlation.py +0 -0
  594. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/observability/custom_observability.py +0 -0
  595. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/observability/error_detail_sink.py +0 -0
  596. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/observability/gateway_health.py +0 -0
  597. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/observability/gateway_metrics.py +0 -0
  598. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/observability/health.py +0 -0
  599. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/observability/langfuse_exporter.py +0 -0
  600. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/observability/langfuse_trust.py +0 -0
  601. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/observability/readiness.py +0 -0
  602. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/observability/runtime_health.py +0 -0
  603. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/observability/runtime_signals.py +0 -0
  604. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/observability/telemetry.py +0 -0
  605. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/observability/trace_ontology.py +0 -0
  606. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/ontology/shapes/runtime.shapes.ttl +0 -0
  607. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/cmdb-trm-01.json +0 -0
  608. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/cmdb-trm-02.json +0 -0
  609. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/cmdb-trm-03.json +0 -0
  610. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/cmdb-trm-04.json +0 -0
  611. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/cmdb-trm-05.json +0 -0
  612. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/cmdb-trm-06.json +0 -0
  613. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/cmdb-trm-07.json +0 -0
  614. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/cmdb-trm-08.json +0 -0
  615. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/cmdb-trm-09.json +0 -0
  616. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/cmdb-trm-10.json +0 -0
  617. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/cq-a.json +0 -0
  618. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/cq-b.json +0 -0
  619. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/cq-c.json +0 -0
  620. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/cq-d1.json +0 -0
  621. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/cq-d10.json +0 -0
  622. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/cq-d2.json +0 -0
  623. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/cq-d3.json +0 -0
  624. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/cq-d4.json +0 -0
  625. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/cq-d5.json +0 -0
  626. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/cq-d6.json +0 -0
  627. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/cq-d7.json +0 -0
  628. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/cq-d8.json +0 -0
  629. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/cq-d9.json +0 -0
  630. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/delegation-cycle-refused.json +0 -0
  631. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/delegation-fan-out.json +0 -0
  632. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/delegation-gitlab-servicenow-plane.json +0 -0
  633. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/delegation-ordered-dag.json +0 -0
  634. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/delegation-plan-persisted.json +0 -0
  635. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/prompts/incident-triage-system.json +0 -0
  636. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/__init__.py +0 -0
  637. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/actor_context.py +0 -0
  638. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/anonymous.py +0 -0
  639. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/auth.py +0 -0
  640. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/config_sensitivity.py +0 -0
  641. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/conformance/__init__.py +0 -0
  642. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/conformance/surface_inventory.py +0 -0
  643. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/conformance/surface_manifest.py +0 -0
  644. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/delegation.py +0 -0
  645. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/elevation.py +0 -0
  646. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/error_surface.py +0 -0
  647. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/http_boundary.py +0 -0
  648. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/identifiers.py +0 -0
  649. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/identity.py +0 -0
  650. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/log_redaction.py +0 -0
  651. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/oidc_discovery.py +0 -0
  652. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/operation_result.py +0 -0
  653. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/prompt_injection.py +0 -0
  654. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/request_identity.py +0 -0
  655. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/run_authority.py +0 -0
  656. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/run_token.py +0 -0
  657. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/scope_registry.py +0 -0
  658. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/secrets.py +0 -0
  659. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/security_policy_middleware.py +0 -0
  660. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/security/settings.py +0 -0
  661. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/semantic_content.py +0 -0
  662. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/__init__.py +0 -0
  663. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/agent-utilities-source-integration/SKILL.md +0 -0
  664. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/agent-utilities-source-integration/agents/arbora.yaml +0 -0
  665. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/agent-utilities-source-integration/agents/openai.yaml +0 -0
  666. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-deployment/SKILL.md +0 -0
  667. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-deployment/agents/arbora.yaml +0 -0
  668. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-deployment/agents/openai.yaml +0 -0
  669. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-deployment/references/first-boot-verification.md +0 -0
  670. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-deployment/references/fleet-and-control-plane.md +0 -0
  671. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-deployment/references/identity-and-access.md +0 -0
  672. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-deployment/references/secrets-and-federation.md +0 -0
  673. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-deployment/references/telemetry.md +0 -0
  674. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-development/SKILL.md +0 -0
  675. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-development/references/bootstrap.md +0 -0
  676. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-evolution/SKILL.md +0 -0
  677. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-evolution/agents/arbora.yaml +0 -0
  678. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-evolution/agents/openai.yaml +0 -0
  679. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-genesis/SKILL.md +0 -0
  680. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-genesis/agents/arbora.yaml +0 -0
  681. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-genesis/agents/openai.yaml +0 -0
  682. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-genesis/references/TROUBLESHOOTING.md +0 -0
  683. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-genesis/references/bare-metal.md +0 -0
  684. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-genesis/references/compose-and-podman.md +0 -0
  685. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-genesis/references/data-plane-substrate.md +0 -0
  686. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-genesis/references/deployment-contract.md +0 -0
  687. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-genesis/references/development-workspace.md +0 -0
  688. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-genesis/references/docker-swarm.md +0 -0
  689. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-genesis/references/engine-identity-admission.md +0 -0
  690. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-genesis/references/kubernetes-and-helm.md +0 -0
  691. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-genesis/references/orchestrator-migration-cutover.md +0 -0
  692. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-genesis/references/runtime-topology.md +0 -0
  693. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-genesis/references/security-and-operations.md +0 -0
  694. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/arbora-repository-development/SKILL.md +0 -0
  695. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/autonomous-contribution/SKILL.md +0 -0
  696. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/autonomous-contribution/agents/arbora.yaml +0 -0
  697. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/autonomous-contribution/agents/openai.yaml +0 -0
  698. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/core-pack.txt +0 -0
  699. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/graph-engine-and-modalities/SKILL.md +0 -0
  700. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/graph-engine-and-modalities/agents/arbora.yaml +0 -0
  701. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/graph-engine-and-modalities/agents/openai.yaml +0 -0
  702. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/graph-ingestion-and-integration/SKILL.md +0 -0
  703. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/graph-ingestion-and-integration/agents/arbora.yaml +0 -0
  704. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/graph-ingestion-and-integration/agents/openai.yaml +0 -0
  705. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/graph-ingestion-and-integration/references/ingest-connector-reference.md +0 -0
  706. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/graph-ingestion-and-integration/references/ingest_manifest.yaml +0 -0
  707. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/graph-modeling-and-mutation/SKILL.md +0 -0
  708. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/graph-modeling-and-mutation/agents/arbora.yaml +0 -0
  709. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/graph-modeling-and-mutation/agents/openai.yaml +0 -0
  710. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/graph-orchestration-and-automation/SKILL.md +0 -0
  711. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/graph-orchestration-and-automation/agents/arbora.yaml +0 -0
  712. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/graph-orchestration-and-automation/agents/openai.yaml +0 -0
  713. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/graph-query-and-explanation/SKILL.md +0 -0
  714. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/graph-query-and-explanation/agents/arbora.yaml +0 -0
  715. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/graph-query-and-explanation/agents/openai.yaml +0 -0
  716. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/graph-query-and-explanation/references/uql-reference.md +0 -0
  717. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/graph-research-and-analysis/SKILL.md +0 -0
  718. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/graph-research-and-analysis/agents/arbora.yaml +0 -0
  719. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/graph-research-and-analysis/agents/openai.yaml +0 -0
  720. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/graph-runtime-and-governance/SKILL.md +0 -0
  721. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/graph-runtime-and-governance/agents/arbora.yaml +0 -0
  722. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/graph-runtime-and-governance/agents/openai.yaml +0 -0
  723. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/skills/using-arbora/SKILL.md +0 -0
  724. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/unique_records.py +0 -0
  725. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/webui_host/__init__.py +0 -0
  726. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/webui_host/contact_delivery.py +0 -0
  727. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/webui_host/contact_governance.py +0 -0
  728. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/webui_host/mcp_delegation.py +0 -0
  729. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/webui_host/package_layout_expectation.py +0 -0
  730. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/webui_host/session_boundary.py +0 -0
  731. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/webui_host/voice_delegation.py +0 -0
  732. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/webui_host/webui_co_service.py +0 -0
  733. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora/work_items.py +0 -0
  734. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora.egg-info/dependency_links.txt +0 -0
  735. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora.egg-info/entry_points.txt +0 -0
  736. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora.egg-info/requires.txt +0 -0
  737. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/arbora.egg-info/top_level.txt +0 -0
  738. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/pyproject.toml +0 -0
  739. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/setup.cfg +0 -0
  740. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_agent_runs.py +0 -0
  741. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_agents_run_end_to_end.py +0 -0
  742. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_check_acceptance_evidence.py +0 -0
  743. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_check_connector_count_pins.py +0 -0
  744. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_check_core_skills.py +0 -0
  745. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_check_wiring.py +0 -0
  746. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_component_registry_boundary_seeds.py +0 -0
  747. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_connector_pack_typed_publisher.py +0 -0
  748. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_connector_runner_composition.py +0 -0
  749. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_dependency_manifest.py +0 -0
  750. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_docs_surface.py +0 -0
  751. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_epistemic_adapter.py +0 -0
  752. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_epistemic_loop_lifecycle.py +0 -0
  753. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_fleet_catalog_reader.py +0 -0
  754. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_host_bindings.py +0 -0
  755. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_installed_content.py +0 -0
  756. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_native_run_admission.py +0 -0
  757. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_native_run_scope.py +0 -0
  758. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_package_layout.py +0 -0
  759. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_real_anonymous_boot.py +0 -0
  760. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_real_boot.py +0 -0
  761. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_real_boot_messaging.py +0 -0
  762. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_run_event_payloads.py +0 -0
  763. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_semantic_content.py +0 -0
  764. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_served_operation_api.py +0 -0
  765. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_unique_records.py +0 -0
  766. {arbora-0.1.8.dev4 → arbora-0.1.8.dev5}/tests/test_work_items.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: arbora
3
- Version: 0.1.8.dev4
3
+ Version: 0.1.8.dev5
4
4
  Summary: The deployable MCP, REST, control-plane, fleet, WebUI, and operations composition for the Knuckles agent platform.
5
5
  Author-email: Repository Maintainers <maintainers@knuckles.team>
6
6
  License-Expression: MIT
@@ -3,4 +3,4 @@
3
3
  Updated only by `bump-my-version` (see `.bumpversion.toml`) — never hand-edited.
4
4
  """
5
5
 
6
- __version__ = "0.1.8.dev4"
6
+ __version__ = "0.1.8.dev5"
@@ -1072,10 +1072,15 @@ class WorkItemA2AAuthority:
1072
1072
  return tasks, next_cursor
1073
1073
 
1074
1074
  async def cancel(self, task_id: str) -> A2ATask:
1075
+ from arbora.run_origin import revoke_run_origins
1076
+
1077
+ cancellation_session = self._session("kg:write")
1075
1078
  item = await asyncio.to_thread(self._authorized_item, task_id, "kg:write")
1076
1079
  if item is None:
1077
1080
  raise A2ATaskNotCancelable("A2A task is not cancelable")
1081
+ run_id = str(item["metadata"].get("a2a_run_id") or task_id)
1078
1082
  if item.get("status") == "cancelled":
1083
+ revoke_run_origins(cancellation_session, run_id)
1079
1084
  return self._project(item, task_id=task_id)
1080
1085
  if item.get("status") in _TERMINAL:
1081
1086
  raise A2ATaskNotCancelable("A2A task is not cancelable")
@@ -1087,6 +1092,7 @@ class WorkItemA2AAuthority:
1087
1092
  work_items.cancel_work_item, work_engine, item_id
1088
1093
  ):
1089
1094
  raise A2ATaskNotCancelable("A2A task is not cancelable")
1095
+ revoke_run_origins(cancellation_session, run_id)
1090
1096
  current = await asyncio.to_thread(
1091
1097
  work_items.get_work_item, work_engine, item_id
1092
1098
  )
@@ -52,7 +52,7 @@ import threading
52
52
  import time
53
53
  import uuid
54
54
  from collections.abc import Callable, Mapping
55
- from dataclasses import dataclass, field
55
+ from dataclasses import dataclass, field, replace
56
56
  from enum import StrEnum
57
57
  from pathlib import Path
58
58
  from typing import Any, ClassVar
@@ -612,6 +612,18 @@ class ActionPolicy:
612
612
  setting("ACTION_IRREVERSIBILITY_AVERSION", False, cast=bool)
613
613
  )
614
614
 
615
+ def qualified_source_revision(self) -> str:
616
+ """Read explicit source evidence; this revision grants no action."""
617
+ from arbora.access.action_policy_source import qualified_policy_source
618
+
619
+ return qualified_policy_source(self).revision
620
+
621
+ async def qualified_source_revision_async(self) -> str:
622
+ """Capture source evidence without switching the native client loop."""
623
+ from arbora.access.action_policy_source import qualified_policy_source_async
624
+
625
+ return (await qualified_policy_source_async(self)).revision
626
+
615
627
  # ── policy loading ──────────────────────────────────────────────
616
628
 
617
629
  def _load_file_policy(self) -> dict[str, Any]:
@@ -686,14 +698,22 @@ class ActionPolicy:
686
698
  rules.sort(key=lambda r: -r.priority)
687
699
  return rules
688
700
 
689
- def _match(self, request: ActionRequest) -> tuple[ActionRule, dict[str, Any]]:
701
+ def _rule_inputs(self, source: Any) -> tuple[dict[str, Any], list[ActionRule]]:
702
+ """Select live policy inputs or the already captured qualified snapshot."""
703
+ if source is None:
704
+ return self._load_file_policy(), self._kg_rules()
705
+ return source.inputs()
706
+
707
+ def _match(
708
+ self, request: ActionRequest, *, source: Any = None
709
+ ) -> tuple[ActionRule, dict[str, Any]]:
690
710
  """First matching rule — KG overrides first, then file order — plus defaults."""
691
- data = self._load_file_policy()
711
+ data, graph_rules = self._rule_inputs(source)
692
712
  raw_defaults = data.get("defaults")
693
713
  defaults: dict[str, Any] = (
694
714
  raw_defaults if isinstance(raw_defaults, dict) else {}
695
715
  )
696
- for rule in self._kg_rules():
716
+ for rule in graph_rules:
697
717
  if rule.matches(request):
698
718
  return rule, defaults
699
719
  for raw in data.get("rules") or []:
@@ -721,6 +741,13 @@ class ActionPolicy:
721
741
  if self.engine is None:
722
742
  return []
723
743
  try:
744
+ legacy = self.engine.query_cypher(
745
+ "MATCH (d {type: 'ActionDecision', kind: $kind}) "
746
+ "WHERE d.node_type IS NULL RETURN d.id AS id LIMIT 1",
747
+ {"kind": kind},
748
+ )
749
+ if legacy:
750
+ return None
724
751
  rows = self.engine.query_cypher(
725
752
  "MATCH (d:ActionDecision {kind: $kind}) "
726
753
  "RETURN d.id AS id, d.target AS target, d.decision AS decision, "
@@ -777,7 +804,7 @@ class ActionPolicy:
777
804
 
778
805
  # ── assurance verifier (CONCEPT:AU-OS.governance.assurance-state-machine-verifier) ──
779
806
 
780
- def _verify(self, request: ActionRequest):
807
+ def _verify(self, request: ActionRequest, *, source: Any = None):
781
808
  """Run the deterministic invariant verifier for ``request``.
782
809
 
783
810
  The reference-existence check (invariant 4) is best-effort: it only
@@ -785,8 +812,14 @@ class ActionPolicy:
785
812
  ``known_tools``/``known_targets`` registries (empty/absent ⇒ skipped,
786
813
  never a false deny — CONCEPT:AU-OS.governance.fail-closed-claim-check).
787
814
  """
788
- known_tools = self.option("known_tools")
789
- known_targets = self.option("known_targets")
815
+ if source is None:
816
+ known_tools = self.option("known_tools")
817
+ known_targets = self.option("known_targets")
818
+ else:
819
+ document, _rules = source.inputs()
820
+ options = document.get("options") or {}
821
+ known_tools = options.get("known_tools")
822
+ known_targets = options.get("known_targets")
790
823
  return verify_action(
791
824
  request,
792
825
  known_tools=frozenset(known_tools) if known_tools else None,
@@ -930,6 +963,58 @@ class ActionPolicy:
930
963
  reason=f"policy unavailable (fail closed): {e}",
931
964
  rule_origin="unavailable",
932
965
  )
966
+ return self._finish_decision(decision)
967
+
968
+ def decide_qualified(
969
+ self, request: ActionRequest, *, expected_revision: str
970
+ ) -> ActionDecision:
971
+ """Evaluate one explicit source snapshot through the shared evaluator.
972
+
973
+ The exact request must bind its source revision. Source evidence is
974
+ rechecked after evaluation and audit, never inferred from shipped
975
+ defaults. The browser owner must still recheck after its own awaits.
976
+ """
977
+ from arbora.access.action_policy_source import qualified_policy_source
978
+
979
+ try:
980
+ digest = request.digest()
981
+ captured = replace(request, params=_canonical_policy_value(request.params))
982
+ source = qualified_policy_source(self)
983
+ if (
984
+ source.revision != expected_revision
985
+ or request.params.get("policy_source_revision") != expected_revision
986
+ ):
987
+ raise RuntimeError("Policy source revision changed")
988
+ self._check_qualified_request(request, captured, digest)
989
+ decision = self._decide_inner(captured, source=source)
990
+ self._check_qualified_request(request, captured, digest)
991
+ if self.qualified_source_revision() != expected_revision:
992
+ raise RuntimeError("Policy source changed during evaluation")
993
+ decision = self._finish_decision(decision)
994
+ if self.qualified_source_revision() != expected_revision:
995
+ raise RuntimeError("Policy source changed during audit")
996
+ self._check_qualified_request(request, captured, digest)
997
+ return decision
998
+ except Exception: # noqa: BLE001 - qualified source absence never widens authority
999
+ return self._bind_decision_receipt(
1000
+ ActionDecision(
1001
+ decision=DECISION_UNAVAILABLE,
1002
+ tier=TIER_FORBIDDEN,
1003
+ request=request,
1004
+ reason="qualified policy source unavailable or changed",
1005
+ rule_origin="unavailable",
1006
+ )
1007
+ )
1008
+
1009
+ @staticmethod
1010
+ def _check_qualified_request(
1011
+ request: ActionRequest, captured: ActionRequest, digest: str
1012
+ ) -> None:
1013
+ if request.digest() != digest or captured.digest() != digest:
1014
+ raise RuntimeError("Qualified action request changed")
1015
+
1016
+ def _finish_decision(self, decision: ActionDecision) -> ActionDecision:
1017
+ request = decision.request
933
1018
  decision = self._bind_decision_receipt(decision)
934
1019
  if decision.decision == DECISION_ALLOW_NOTIFY:
935
1020
  self._notify(
@@ -981,13 +1066,27 @@ class ActionPolicy:
981
1066
  return self._hold(base, "tier requires human approval")
982
1067
  return None
983
1068
 
984
- def _decide_inner(self, request: ActionRequest) -> ActionDecision:
1069
+ def _verify_selected_source(self, request: ActionRequest, source: Any):
1070
+ """Preserve the legacy verifier call unless a snapshot was selected."""
1071
+ if source is None:
1072
+ return self._verify(request)
1073
+ return self._verify(request, source=source)
1074
+
1075
+ def _selected_irreversibility_aversion(self, source: Any) -> bool:
1076
+ """Read the selected setting only when evaluation reaches this guard."""
1077
+ if source is None:
1078
+ return self._irreversibility_aversion
1079
+ return source.irreversibility_aversion
1080
+
1081
+ def _decide_inner(
1082
+ self, request: ActionRequest, *, source: Any = None
1083
+ ) -> ActionDecision:
985
1084
  # CONCEPT:AU-OS.governance.assurance-state-machine-verifier — the deterministic
986
1085
  # invariant verifier runs BEFORE the rule/tier pipeline: a payload that fails
987
1086
  # role/schema/precondition/reference checks is denied outright (fail-closed),
988
1087
  # regardless of what tier its kind/target would otherwise match. This is the
989
1088
  # enforced half of the gate — the caller's action genuinely does not execute.
990
- verify = self._verify(request)
1089
+ verify = self._verify_selected_source(request, source)
991
1090
  if not verify.ok:
992
1091
  return ActionDecision(
993
1092
  decision=DECISION_DENY,
@@ -999,7 +1098,7 @@ class ActionPolicy:
999
1098
  verify_ms=verify.latency_ms,
1000
1099
  )
1001
1100
 
1002
- rule, defaults = self._match(request)
1101
+ rule, defaults = self._match(request, source=source)
1003
1102
  base = ActionDecision(
1004
1103
  decision=DECISION_DENY,
1005
1104
  tier=rule.tier,
@@ -1033,7 +1132,8 @@ class ActionPolicy:
1033
1132
  # CONCEPT:AU-OS.safety.irreversibility-aversion — irreversibility aversion (opt-in). An irreversible
1034
1133
  # action that would otherwise auto-execute is routed to a human, since
1035
1134
  # policy-gating alone is brittle as autonomy rises.
1036
- if self._irreversibility_aversion:
1135
+ aversion = self._selected_irreversibility_aversion(source)
1136
+ if aversion:
1037
1137
  if is_irreversible(request.kind):
1038
1138
  return self._hold(
1039
1139
  base, "irreversible action — queued for approval (SAFE-1.5)"
@@ -1144,7 +1244,7 @@ class ActionPolicy:
1144
1244
  audit_id = f"action_decision:{uuid.uuid4().hex}"
1145
1245
  req = decision.request
1146
1246
  try:
1147
- create_record(
1247
+ created = create_record(
1148
1248
  self.engine,
1149
1249
  audit_id,
1150
1250
  "ActionDecision",
@@ -1164,10 +1264,10 @@ class ActionPolicy:
1164
1264
  "decided_unix": _now(),
1165
1265
  },
1166
1266
  )
1167
- except Exception as e: # noqa: BLE001 — audit is best-effort, decision stands
1267
+ except Exception as e: # noqa: BLE001 — missing audit evidence cannot authorize
1168
1268
  logger.debug("action_policy: audit write failed: %s", e)
1169
1269
  return None
1170
- return audit_id
1270
+ return audit_id if created else None
1171
1271
 
1172
1272
  def _notify(self, message: str) -> None:
1173
1273
  """Send ``message`` to the bound operator notifier, else log it."""
@@ -0,0 +1,215 @@
1
+ """Strict source snapshots for the canonical ActionPolicy owner.
2
+
3
+ A source revision is descriptive evidence, never an action grant. Legacy
4
+ best-effort policy loading remains unchanged; opted-in boundaries use this
5
+ stricter source contract before requesting an exact canonical decision.
6
+ """
7
+
8
+ import asyncio
9
+ import contextvars
10
+ import hashlib
11
+ import json
12
+ from dataclasses import asdict, dataclass, field
13
+ from pathlib import Path
14
+ from typing import Any
15
+
16
+ _MAX_POLICY_BYTES = 1_048_576
17
+ _MAX_OVERRIDE_RULES = 100
18
+
19
+
20
+ @dataclass(frozen=True, slots=True)
21
+ class _QualifiedPolicySource:
22
+ revision: str
23
+ configuration_origin: str
24
+ normalized_document: str = field(repr=False)
25
+
26
+ @property
27
+ def irreversibility_aversion(self) -> bool:
28
+ return bool(json.loads(self.normalized_document)["irreversibility_aversion"])
29
+
30
+ def inputs(self) -> tuple[dict[str, Any], list[Any]]:
31
+ from arbora.access.action_policy import ActionRule
32
+
33
+ data = json.loads(self.normalized_document)
34
+ return data["file"], [ActionRule(**rule) for rule in data["graph_overrides"]]
35
+
36
+
37
+ def _configured_document(path: Path | None) -> dict[str, Any]:
38
+ if path is None:
39
+ raise RuntimeError("Explicitly configured action policy required")
40
+ import yaml
41
+
42
+ with path.open("rb") as stream:
43
+ raw = stream.read(_MAX_POLICY_BYTES + 1)
44
+ if len(raw) > _MAX_POLICY_BYTES:
45
+ raise RuntimeError("Configured action policy exceeds the size bound")
46
+ data = yaml.safe_load(raw.decode("utf-8"))
47
+ if not isinstance(data, dict) or not isinstance(data.get("rules"), list):
48
+ raise RuntimeError("Configured action policy rules are unavailable")
49
+ return data
50
+
51
+
52
+ def _override_rules(engine: Any) -> list[Any]:
53
+ if engine is None:
54
+ raise RuntimeError("Canonical policy override authority required")
55
+ rows = engine.query_cypher(
56
+ "MATCH (r:governance_rule {scope: 'action_policy'}) RETURN r LIMIT 101"
57
+ )
58
+ return _rules_from_rows(rows)
59
+
60
+
61
+ def _rules_from_rows(rows: Any) -> list[Any]:
62
+ if not isinstance(rows, list) or len(rows) > _MAX_OVERRIDE_RULES:
63
+ raise RuntimeError("Complete bounded policy overrides required")
64
+ rules = []
65
+ for row in rows:
66
+ rule = _override_rule(row)
67
+ if rule is not None:
68
+ rules.append(rule)
69
+ rules.sort(key=lambda rule: -rule.priority)
70
+ return rules
71
+
72
+
73
+ def _override_rule(row: Any) -> Any:
74
+ from arbora.access.action_policy import _coerce_rule
75
+
76
+ props = row.get("r") if isinstance(row, dict) else None
77
+ if not isinstance(props, dict):
78
+ raise RuntimeError("Malformed policy override")
79
+ if str(props.get("active", "true")).lower() in {"false", "0", "no"}:
80
+ return None
81
+ raw = props
82
+ if props.get("rule_json"):
83
+ payload = json.loads(props["rule_json"])
84
+ if not isinstance(payload, dict):
85
+ raise RuntimeError("Malformed policy override payload")
86
+ raw = {**props, **payload}
87
+ _validate_rule(raw)
88
+ rule = _coerce_rule(raw, origin="kg")
89
+ if rule is None:
90
+ raise RuntimeError("Malformed effective policy override")
91
+ return rule
92
+
93
+
94
+ def _validate_rule(raw: Any) -> None:
95
+ from arbora.access.action_policy import _TIERS, TIER_APPROVAL
96
+
97
+ if not isinstance(raw, dict):
98
+ raise RuntimeError("Malformed configured policy rule")
99
+ tier = raw.get("tier") or TIER_APPROVAL
100
+ if not isinstance(tier, str) or tier not in _TIERS:
101
+ raise RuntimeError("Unknown configured policy tier")
102
+
103
+
104
+ def _validated_document(path: Path | None) -> dict[str, Any]:
105
+ from arbora.access.action_policy import _coerce_rule
106
+
107
+ document = _configured_document(path)
108
+ for raw in document["rules"]:
109
+ _validate_rule(raw)
110
+ if _coerce_rule(raw, origin="file") is None:
111
+ raise RuntimeError("Malformed configured policy rule")
112
+ return document
113
+
114
+
115
+ def _source_from_inputs(
116
+ document: dict[str, Any], overrides: list[Any], aversion: bool
117
+ ) -> _QualifiedPolicySource:
118
+ from arbora.access.action_policy import _canonical_policy_value
119
+
120
+ normalized = json.dumps(
121
+ _canonical_policy_value(
122
+ {
123
+ "schema": "action-policy-source.v1",
124
+ "configuration_origin": "configured_file",
125
+ "file": document,
126
+ "graph_overrides": [asdict(rule) for rule in overrides],
127
+ "irreversibility_aversion": aversion,
128
+ }
129
+ ),
130
+ ensure_ascii=False,
131
+ sort_keys=True,
132
+ separators=(",", ":"),
133
+ allow_nan=False,
134
+ )
135
+ return _QualifiedPolicySource(
136
+ revision="sha256:" + hashlib.sha256(normalized.encode("utf-8")).hexdigest(),
137
+ configuration_origin="configured_file",
138
+ normalized_document=normalized,
139
+ )
140
+
141
+
142
+ def qualified_policy_source(policy: Any) -> _QualifiedPolicySource:
143
+ """Capture complete source evidence without changing decisions or state."""
144
+ try:
145
+ source = _source_from_inputs(
146
+ _validated_document(policy.policy_path),
147
+ _override_rules(policy.engine),
148
+ policy._irreversibility_aversion,
149
+ )
150
+ except Exception: # noqa: BLE001 - redact source failures before refusal
151
+ source = None
152
+ if source is None:
153
+ raise RuntimeError("Qualified configured action policy unavailable")
154
+ return source
155
+
156
+
157
+ async def _retained_file_document(path: Path | None) -> dict[str, Any]:
158
+ """Cancellation retains this task until its exact file worker completes."""
159
+ context = contextvars.copy_context()
160
+ worker = asyncio.get_running_loop().run_in_executor(
161
+ None, context.run, _validated_document, path
162
+ )
163
+ cancelled = None
164
+ while not worker.done():
165
+ try:
166
+ await asyncio.shield(worker)
167
+ except asyncio.CancelledError as error:
168
+ cancelled = error
169
+ except Exception: # noqa: BLE001 - retrieve and redact in source owner
170
+ break
171
+ if cancelled is not None:
172
+ # Retrieve any failure without leaking it through the cancellation chain.
173
+ if not worker.cancelled():
174
+ worker.exception()
175
+ raise cancelled
176
+ return worker.result()
177
+
178
+
179
+ def _check_selection(policy: Any, engine: Any, path: Any, aversion: bool) -> None:
180
+ if (
181
+ policy.engine is not engine
182
+ or policy.policy_path != path
183
+ or policy._irreversibility_aversion != aversion
184
+ ):
185
+ raise RuntimeError("Configured policy selection changed")
186
+
187
+
188
+ async def qualified_policy_source_async(policy: Any) -> _QualifiedPolicySource:
189
+ """Use one captured caller and source selection; issue no effect authority.
190
+
191
+ Callers must retain capacity until this task completes, even if cancelled.
192
+ A stalled file worker therefore denies capacity rather than accumulating
193
+ detached workers. File latency and parsing CPU are not wall-clock bounded.
194
+ """
195
+ from arbora.api.contracts.session import resolve_session
196
+
197
+ try:
198
+ engine, path = policy.engine, policy.policy_path
199
+ aversion = policy._irreversibility_aversion
200
+ caller = resolve_session(None, required_scope="kg:read")
201
+ document = await _retained_file_document(path)
202
+ _check_selection(policy, engine, path, aversion)
203
+ resolve_session(caller, required_scope="kg:read")
204
+ rows = await engine.query_cypher_async(
205
+ "MATCH (r:governance_rule {scope: 'action_policy'}) RETURN r LIMIT 101",
206
+ session=caller,
207
+ )
208
+ _check_selection(policy, engine, path, aversion)
209
+ resolve_session(caller, required_scope="kg:read")
210
+ source = _source_from_inputs(document, _rules_from_rows(rows), aversion)
211
+ except Exception: # noqa: BLE001 - redact source failures before refusal
212
+ source = None
213
+ if source is None:
214
+ raise RuntimeError("Qualified configured action policy unavailable")
215
+ return source
@@ -443,10 +443,13 @@ class AgentRunPort:
443
443
  async def execute_agent(
444
444
  self, request: AgentExecutionRequest, *, session: GraphSession
445
445
  ) -> AgentExecutionResult:
446
+ from arbora.run_origin import agent_run_origin_scope
447
+
446
448
  ownership = current_native_run(request)
447
449
  if ownership is not None and ownership.session != session:
448
450
  raise RuntimeError("native run session does not match the host scope")
449
- result = await self._executor.execute_agent(request, session=session)
451
+ with agent_run_origin_scope(session, request.agent_name, request.run_id):
452
+ result = await self._executor.execute_agent(request, session=session)
450
453
  return AgentExecutionResult(
451
454
  run_id=result.run_id,
452
455
  output=result.output,
@@ -217,6 +217,18 @@
217
217
  ],
218
218
  "verb": "act"
219
219
  },
220
+ {
221
+ "domain": "browser",
222
+ "examples": [
223
+ "ask the attended browser owner to navigate"
224
+ ],
225
+ "id": "browser.request_call",
226
+ "summary": "Propose an exact browser action for attended human acceptance",
227
+ "tags": [
228
+ "browser"
229
+ ],
230
+ "verb": "act"
231
+ },
220
232
  {
221
233
  "domain": "browser",
222
234
  "examples": [
@@ -6161,6 +6173,18 @@
6161
6173
  ],
6162
6174
  "verb": "ask"
6163
6175
  },
6176
+ {
6177
+ "domain": "runs",
6178
+ "examples": [
6179
+ "show the declared steps and evidenced lifecycle of this run"
6180
+ ],
6181
+ "id": "runs.execution_graph",
6182
+ "summary": "Read a bounded flat execution graph of an owned run",
6183
+ "tags": [
6184
+ "runs"
6185
+ ],
6186
+ "verb": "ask"
6187
+ },
6164
6188
  {
6165
6189
  "domain": "runs",
6166
6190
  "examples": [
@@ -6306,5 +6330,5 @@
6306
6330
  "verb": "act"
6307
6331
  }
6308
6332
  ],
6309
- "registry_digest": "ce35e3e02b0e24a6eb88cbeed77b44089efeb313f408e9579e2e15ceb38627a2"
6333
+ "registry_digest": "27b9f48df91b04f699c016125c221c290c42ff651cbecf5b00c44e9136f55506"
6310
6334
  }
@@ -1,6 +1,6 @@
1
1
  """Generated engine error contract. Do not edit."""
2
2
 
3
- REGISTRY_DIGEST = "ce35e3e02b0e24a6eb88cbeed77b44089efeb313f408e9579e2e15ceb38627a2"
3
+ REGISTRY_DIGEST = "27b9f48df91b04f699c016125c221c290c42ff651cbecf5b00c44e9136f55506"
4
4
  EG_RECEIPT_DIGEST = "5bd7b375a923a5832a8cf493826fdba369916a0cfc4163e5cd9be7a4303d19bc"
5
5
  ENGINE_ERRORS: dict[str, tuple[int, bool]] = {
6
6
  "ABORTED_ATOMIC_GRAPH_BATCH": (400, False),