donkey-kit 0.2.0__tar.gz → 0.2.1__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 (1084) hide show
  1. donkey_kit-0.2.1/PKG-INFO +316 -0
  2. donkey_kit-0.2.1/README.md +231 -0
  3. donkey_kit-0.2.1/pyproject.toml +790 -0
  4. donkey_kit-0.2.1/scripts/capture_fixture.py +285 -0
  5. donkey_kit-0.2.1/scripts/check_doc_badges.py +292 -0
  6. donkey_kit-0.2.1/scripts/generate_docs.py +1695 -0
  7. donkey_kit-0.2.1/scripts/mcp_binding/README.md +126 -0
  8. donkey_kit-0.2.1/scripts/mcp_binding/_harness.py +180 -0
  9. donkey_kit-0.2.1/scripts/mcp_binding/server.py +317 -0
  10. donkey_kit-0.2.1/src/donkey_kit/__init__.py +297 -0
  11. donkey_kit-0.2.1/src/donkey_kit/_testing.py +125 -0
  12. donkey_kit-0.2.1/src/donkey_kit/a2a/__init__.py +22 -0
  13. donkey_kit-0.2.1/src/donkey_kit/a2a/_server.py +416 -0
  14. donkey_kit-0.2.1/src/donkey_kit/a2a/client.py +462 -0
  15. donkey_kit-0.2.1/src/donkey_kit/a2a/protocol.py +30 -0
  16. donkey_kit-0.2.1/src/donkey_kit/cli/dev.py +154 -0
  17. donkey_kit-0.2.1/src/donkey_kit/cli/expose.py +240 -0
  18. donkey_kit-0.2.1/src/donkey_kit/conformance/gateway.py +256 -0
  19. donkey_kit-0.2.1/src/donkey_kit/conformance/harness.py +620 -0
  20. donkey_kit-0.2.1/src/donkey_kit/conformance/plugin.py +393 -0
  21. donkey_kit-0.2.1/src/donkey_kit/core/__init__.py +136 -0
  22. donkey_kit-0.2.1/src/donkey_kit/core/_policy_sample.py +95 -0
  23. donkey_kit-0.2.1/src/donkey_kit/core/_policy_spec.py +472 -0
  24. donkey_kit-0.2.1/src/donkey_kit/core/_refusal_body.py +323 -0
  25. donkey_kit-0.2.1/src/donkey_kit/core/_scope_entry.py +63 -0
  26. donkey_kit-0.2.1/src/donkey_kit/core/_tool_access.py +104 -0
  27. donkey_kit-0.2.1/src/donkey_kit/core/_wire.py +140 -0
  28. donkey_kit-0.2.1/src/donkey_kit/core/approval_types.py +289 -0
  29. donkey_kit-0.2.1/src/donkey_kit/core/approvals.py +500 -0
  30. donkey_kit-0.2.1/src/donkey_kit/core/auth.py +324 -0
  31. donkey_kit-0.2.1/src/donkey_kit/core/cachecontrol.py +211 -0
  32. donkey_kit-0.2.1/src/donkey_kit/core/classifier.py +230 -0
  33. donkey_kit-0.2.1/src/donkey_kit/core/config.py +1097 -0
  34. donkey_kit-0.2.1/src/donkey_kit/core/correlation.py +402 -0
  35. donkey_kit-0.2.1/src/donkey_kit/core/errors.py +1030 -0
  36. donkey_kit-0.2.1/src/donkey_kit/core/identity.py +298 -0
  37. donkey_kit-0.2.1/src/donkey_kit/core/inbound.py +312 -0
  38. donkey_kit-0.2.1/src/donkey_kit/core/jsonrpc_refusals.py +405 -0
  39. donkey_kit-0.2.1/src/donkey_kit/core/lastcall.py +828 -0
  40. donkey_kit-0.2.1/src/donkey_kit/core/reactions.py +459 -0
  41. donkey_kit-0.2.1/src/donkey_kit/core/refusals.py +486 -0
  42. donkey_kit-0.2.1/src/donkey_kit/core/runledger.py +313 -0
  43. donkey_kit-0.2.1/src/donkey_kit/core/runtime.py +259 -0
  44. donkey_kit-0.2.1/src/donkey_kit/core/step_up.py +206 -0
  45. donkey_kit-0.2.1/src/donkey_kit/core/telemetry.py +629 -0
  46. donkey_kit-0.2.1/src/donkey_kit/core/tool_access.py +25 -0
  47. donkey_kit-0.2.1/src/donkey_kit/core/transport/async_client.py +463 -0
  48. donkey_kit-0.2.1/src/donkey_kit/core/transport/headers.py +499 -0
  49. donkey_kit-0.2.1/src/donkey_kit/core/transport/observe.py +172 -0
  50. donkey_kit-0.2.1/src/donkey_kit/core/transport/policy.py +271 -0
  51. donkey_kit-0.2.1/src/donkey_kit/core/transport/streaming.py +273 -0
  52. donkey_kit-0.2.1/src/donkey_kit/core/transport/sync_client.py +297 -0
  53. donkey_kit-0.2.1/src/donkey_kit/core/transport/views.py +235 -0
  54. donkey_kit-0.2.1/src/donkey_kit/donkey.py +1693 -0
  55. donkey_kit-0.2.1/src/donkey_kit/experimental.py +84 -0
  56. donkey_kit-0.2.1/src/donkey_kit/integrations/adk.py +838 -0
  57. donkey_kit-0.2.1/src/donkey_kit/integrations/openai_agents.py +605 -0
  58. donkey_kit-0.2.1/src/donkey_kit/llm/catalog.py +70 -0
  59. donkey_kit-0.2.1/src/donkey_kit/registry/__init__.py +35 -0
  60. donkey_kit-0.2.1/src/donkey_kit/registry/exchange.py +822 -0
  61. donkey_kit-0.2.1/src/donkey_kit/registry/exchange_publish.py +876 -0
  62. donkey_kit-0.2.1/src/donkey_kit/registry/expose_plan.py +330 -0
  63. donkey_kit-0.2.1/src/donkey_kit/registry/models.py +103 -0
  64. donkey_kit-0.2.1/src/donkey_kit/registry/publish_plan.py +495 -0
  65. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/README.a2a.md +68 -0
  66. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/README.mcp.md +95 -0
  67. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/a2a_policies/README.md +351 -0
  68. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/a2a_policies/v03-pii-send.body.json +1 -0
  69. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/a2a_policies/v03-pii-send.headers.txt +9 -0
  70. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/a2a_policies/v03-rate-send.headers.txt +11 -0
  71. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/a2a_policies/v1-azure-block-send.body.json +1 -0
  72. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/a2a_policies/v1-azure-block-send.headers.txt +12 -0
  73. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/a2a_policies/v1-azure-block-stream.body.json +1 -0
  74. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/a2a_policies/v1-azure-block-stream.headers.txt +12 -0
  75. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/a2a_policies/v1-pii-send.body.json +1 -0
  76. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/a2a_policies/v1-pii-send.headers.txt +9 -0
  77. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/a2a_policies/v1-pii-stream.body.json +1 -0
  78. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/a2a_policies/v1-pii-stream.headers.txt +9 -0
  79. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/a2a_policies/v1-rate-send.headers.txt +11 -0
  80. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/a2a_policies/v1-rate-stream.headers.txt +11 -0
  81. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/anthropic_inbound_multiroute/README.md +24 -0
  82. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/anthropic_inbound_multiroute/messages.fallback.body.json +1 -0
  83. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/anthropic_inbound_multiroute/messages.fallback.headers.txt +38 -0
  84. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/anthropic_inbound_multiroute/messages.invalid_json.body.json +1 -0
  85. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/anthropic_inbound_multiroute/messages.invalid_json.headers.txt +9 -0
  86. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/anthropic_inbound_multiroute/messages.stream.body.txt +21 -0
  87. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/anthropic_inbound_multiroute/messages.stream.headers.txt +39 -0
  88. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/anthropic_inbound_multiroute/messages.success.body.json +1 -0
  89. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/anthropic_inbound_multiroute/messages.success.headers.txt +38 -0
  90. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/gemini_inbound_multiroute/README.md +21 -0
  91. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/gemini_inbound_multiroute/generate_content.invalid_json.body.json +1 -0
  92. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/gemini_inbound_multiroute/generate_content.invalid_json.headers.txt +9 -0
  93. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/gemini_inbound_multiroute/generate_content.success.body.json +32 -0
  94. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/gemini_inbound_multiroute/generate_content.success.headers.txt +23 -0
  95. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/gemini_inbound_multiroute/stream_generate_content.success.body.txt +4 -0
  96. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/gemini_inbound_multiroute/stream_generate_content.success.headers.txt +22 -0
  97. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/llm_proxy/README.md +107 -0
  98. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/llm_proxy/reject.model-missing.body.json +1 -0
  99. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/llm_proxy/reject.model-not-routable.headers.txt +2 -0
  100. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/mcp-captures.lock +21 -0
  101. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/mcp_policies/README.md +69 -0
  102. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/mcp_policies/abac-denied.json +5 -0
  103. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/mcp_policies/mapping-call.json +5 -0
  104. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/mcp_policies/mapping-list.json +5 -0
  105. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/mcp_policies/optimization-html.json +5 -0
  106. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/mcp_policies/pii-mask-sse.json +5 -0
  107. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/mcp_policies/pii-request.json +5 -0
  108. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/mcp_policies/pii-response-sse.json +5 -0
  109. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/mcp_policies/poisoning-block-list.json +5 -0
  110. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/mcp_policies/poisoning-remove-list.json +5 -0
  111. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/mcp_policies/progressive-invalid-params.json +5 -0
  112. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/mcp_policies/progressive-list.json +5 -0
  113. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/mcp_policies/schema-invalid-args.json +5 -0
  114. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/mcp_policies/schema-missing-id.json +5 -0
  115. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/model_routing_qualified_vendor/README.md +24 -0
  116. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/model_routing_qualified_vendor/chat_completions.fallback.body.json +35 -0
  117. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/model_routing_qualified_vendor/chat_completions.fallback.headers.txt +35 -0
  118. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/model_routing_qualified_vendor/chat_completions.success.body.json +35 -0
  119. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/model_routing_qualified_vendor/chat_completions.success.headers.txt +35 -0
  120. donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/fixtures.lock +70 -0
  121. donkey_kit-0.2.1/src/donkey_kit/simulator/a2a.py +197 -0
  122. donkey_kit-0.2.1/src/donkey_kit/simulator/app.py +432 -0
  123. donkey_kit-0.2.1/src/donkey_kit/simulator/fixtures.py +673 -0
  124. donkey_kit-0.2.1/src/donkey_kit/simulator/ingress.py +315 -0
  125. donkey_kit-0.2.1/src/donkey_kit/simulator/inject.py +253 -0
  126. donkey_kit-0.2.1/src/donkey_kit/simulator/mcp.py +386 -0
  127. donkey_kit-0.2.1/src/donkey_kit/simulator/scenarios.py +483 -0
  128. donkey_kit-0.2.1/src/donkey_kit/tools/approval.py +155 -0
  129. donkey_kit-0.2.1/src/donkey_kit/tools/discovery.py +499 -0
  130. donkey_kit-0.2.1/src/donkey_kit/tools/lockfile.py +317 -0
  131. donkey_kit-0.2.1/src/donkey_kit/tools/mcp.py +283 -0
  132. donkey_kit-0.2.1/src/donkey_kit/tools/session.py +1353 -0
  133. donkey_kit-0.2.1/tests/conformance/suite.py +419 -0
  134. donkey_kit-0.2.1/tests/conformance/test_a2a_outbound.py +1297 -0
  135. donkey_kit-0.2.1/tests/conformance/test_a2a_simulation_declared.py +112 -0
  136. donkey_kit-0.2.1/tests/conformance/test_adk_mcp_simulation.py +136 -0
  137. donkey_kit-0.2.1/tests/conformance/test_gateway_fixture.py +169 -0
  138. donkey_kit-0.2.1/tests/conformance/test_locked_binding_snapshot.py +87 -0
  139. donkey_kit-0.2.1/tests/conformance/test_mcp_gateway_catalog_binding.py +53 -0
  140. donkey_kit-0.2.1/tests/conformance/test_mcp_simulation.py +601 -0
  141. donkey_kit-0.2.1/tests/conformance/test_mcp_simulation_declared.py +95 -0
  142. donkey_kit-0.2.1/tests/conformance/test_readme_exemptions_table.py +157 -0
  143. donkey_kit-0.2.1/tests/conformance/test_strands_mcp_simulation.py +379 -0
  144. donkey_kit-0.2.1/tests/conformance/test_tool_binding.py +733 -0
  145. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/README.card-rewrite.md +36 -0
  146. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/README.md +351 -0
  147. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v03-auth-challenge-send.body.json +1 -0
  148. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v03-auth-challenge-send.headers.txt +9 -0
  149. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v03-auth-challenge-stream.body.json +1 -0
  150. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v03-auth-challenge-stream.headers.txt +9 -0
  151. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v03-pii-send.body.json +1 -0
  152. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v03-pii-send.headers.txt +9 -0
  153. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v03-quality-pending-send.headers.txt +3 -0
  154. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v03-quality-send.headers.txt +8 -0
  155. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v03-rate-accepted-send.headers.txt +5 -0
  156. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v03-rate-send.headers.txt +11 -0
  157. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v03-schema-method.body.json +1 -0
  158. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v03-schema-method.headers.txt +9 -0
  159. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v03-schema-params.body.json +1 -0
  160. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v03-schema-params.headers.txt +9 -0
  161. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v03-schema-parse.body.json +1 -0
  162. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v03-schema-parse.headers.txt +9 -0
  163. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-azure-block-send.body.json +1 -0
  164. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-azure-block-send.headers.txt +12 -0
  165. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-azure-block-stream.body.json +1 -0
  166. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-azure-block-stream.headers.txt +12 -0
  167. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-azure-unavailable-send.body.json +1 -0
  168. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-azure-unavailable-send.headers.txt +12 -0
  169. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-azure-unavailable-stream.body.json +1 -0
  170. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-azure-unavailable-stream.headers.txt +12 -0
  171. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-bedrock-block-send.body.json +1 -0
  172. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-bedrock-block-send.headers.txt +12 -0
  173. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-bedrock-block-stream.body.json +1 -0
  174. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-bedrock-block-stream.headers.txt +12 -0
  175. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-bedrock-unavailable-send.body.json +1 -0
  176. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-bedrock-unavailable-send.headers.txt +12 -0
  177. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-bedrock-unavailable-stream.body.json +1 -0
  178. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-bedrock-unavailable-stream.headers.txt +12 -0
  179. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-card-rewrite.selected.json +19 -0
  180. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-decorator-send.selected.json +11 -0
  181. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-pii-send.body.json +1 -0
  182. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-pii-send.headers.txt +9 -0
  183. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-pii-stream.body.json +1 -0
  184. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-pii-stream.headers.txt +9 -0
  185. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-rate-accepted-send.headers.txt +5 -0
  186. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-rate-send.headers.txt +11 -0
  187. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-rate-stream.headers.txt +11 -0
  188. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-schema-method.body.json +1 -0
  189. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-schema-method.headers.txt +9 -0
  190. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-schema-params.body.json +1 -0
  191. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-schema-params.headers.txt +9 -0
  192. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-schema-parse.body.json +1 -0
  193. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-schema-parse.headers.txt +9 -0
  194. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-transcoder-list-tasks.body.json +1 -0
  195. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-transcoder-list-tasks.headers.txt +9 -0
  196. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-transcoder-push-config.body.json +1 -0
  197. donkey_kit-0.2.1/tests/fixtures/anypoint/a2a_policies/v1-transcoder-push-config.headers.txt +9 -0
  198. donkey_kit-0.2.1/tests/fixtures/anypoint/anthropic_inbound_multiroute/README.md +11 -0
  199. donkey_kit-0.2.1/tests/fixtures/anypoint/anthropic_inbound_multiroute/messages.bedrock_404.body.txt +1 -0
  200. donkey_kit-0.2.1/tests/fixtures/anypoint/anthropic_inbound_multiroute/messages.bedrock_404.headers.txt +16 -0
  201. donkey_kit-0.2.1/tests/fixtures/anypoint/anthropic_inbound_multiroute/messages.fallback.body.json +1 -0
  202. donkey_kit-0.2.1/tests/fixtures/anypoint/anthropic_inbound_multiroute/messages.fallback.headers.txt +38 -0
  203. donkey_kit-0.2.1/tests/fixtures/anypoint/anthropic_inbound_multiroute/messages.invalid_json.body.json +1 -0
  204. donkey_kit-0.2.1/tests/fixtures/anypoint/anthropic_inbound_multiroute/messages.invalid_json.headers.txt +9 -0
  205. donkey_kit-0.2.1/tests/fixtures/anypoint/anthropic_inbound_multiroute/messages.prefixed.body.json +1 -0
  206. donkey_kit-0.2.1/tests/fixtures/anypoint/anthropic_inbound_multiroute/messages.prefixed.headers.txt +38 -0
  207. donkey_kit-0.2.1/tests/fixtures/anypoint/anthropic_inbound_multiroute/messages.stream.body.txt +21 -0
  208. donkey_kit-0.2.1/tests/fixtures/anypoint/anthropic_inbound_multiroute/messages.stream.headers.txt +39 -0
  209. donkey_kit-0.2.1/tests/fixtures/anypoint/anthropic_inbound_multiroute/messages.success.body.json +1 -0
  210. donkey_kit-0.2.1/tests/fixtures/anypoint/anthropic_inbound_multiroute/messages.success.headers.txt +38 -0
  211. donkey_kit-0.2.1/tests/fixtures/anypoint/anthropic_inbound_multiroute/messages.unresolvable.body.json +1 -0
  212. donkey_kit-0.2.1/tests/fixtures/anypoint/anthropic_inbound_multiroute/messages.unresolvable.headers.txt +38 -0
  213. donkey_kit-0.2.1/tests/fixtures/anypoint/gemini_inbound_multiroute/README.md +9 -0
  214. donkey_kit-0.2.1/tests/fixtures/anypoint/gemini_inbound_multiroute/generate_content.cross_vendor.body.json +32 -0
  215. donkey_kit-0.2.1/tests/fixtures/anypoint/gemini_inbound_multiroute/generate_content.cross_vendor.headers.txt +23 -0
  216. donkey_kit-0.2.1/tests/fixtures/anypoint/gemini_inbound_multiroute/generate_content.invalid_json.body.json +1 -0
  217. donkey_kit-0.2.1/tests/fixtures/anypoint/gemini_inbound_multiroute/generate_content.invalid_json.headers.txt +9 -0
  218. donkey_kit-0.2.1/tests/fixtures/anypoint/gemini_inbound_multiroute/generate_content.success.body.json +32 -0
  219. donkey_kit-0.2.1/tests/fixtures/anypoint/gemini_inbound_multiroute/generate_content.success.headers.txt +23 -0
  220. donkey_kit-0.2.1/tests/fixtures/anypoint/gemini_inbound_multiroute/generate_content.unresolvable.body.json +32 -0
  221. donkey_kit-0.2.1/tests/fixtures/anypoint/gemini_inbound_multiroute/generate_content.unresolvable.headers.txt +23 -0
  222. donkey_kit-0.2.1/tests/fixtures/anypoint/gemini_inbound_multiroute/stream_generate_content.success.body.txt +4 -0
  223. donkey_kit-0.2.1/tests/fixtures/anypoint/gemini_inbound_multiroute/stream_generate_content.success.headers.txt +22 -0
  224. donkey_kit-0.2.1/tests/fixtures/anypoint/llm_metadata/README.md +27 -0
  225. donkey_kit-0.2.1/tests/fixtures/anypoint/llm_metadata/custom.graphql.files.json +35 -0
  226. donkey_kit-0.2.1/tests/fixtures/anypoint/llm_metadata/custom.llm-metadata.stored.json +24 -0
  227. donkey_kit-0.2.1/tests/fixtures/anypoint/llm_metadata/proxy.graphql.files.json +35 -0
  228. donkey_kit-0.2.1/tests/fixtures/anypoint/llm_metadata/proxy.llm-metadata.stored.json +1 -0
  229. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_access/README.md +25 -0
  230. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_access/tools-call.abac-denied.body.json +1 -0
  231. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_access/tools-call.abac-denied.headers.txt +4 -0
  232. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_access/tools-call.global-access-denied.body.json +1 -0
  233. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_access/tools-call.global-access-denied.headers.txt +3 -0
  234. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/README.md +173 -0
  235. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/abac-denied.json +5 -0
  236. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/mapping-call.json +5 -0
  237. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/mapping-list.json +5 -0
  238. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/optimization-base64-bare.json +8 -0
  239. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/optimization-base64-control.json +8 -0
  240. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/optimization-base64.json +8 -0
  241. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/optimization-html.json +5 -0
  242. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/optimization-nulls-control.json +8 -0
  243. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/optimization-nulls.json +8 -0
  244. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/optimization-toon-control.json +8 -0
  245. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/optimization-toon-ineligible.json +8 -0
  246. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/optimization-toon.json +8 -0
  247. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/optimization-trim-control.json +8 -0
  248. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/optimization-trim-no-policy.json +8 -0
  249. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/optimization-trim-unreachable.json +8 -0
  250. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/optimization-trim.json +8 -0
  251. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/pii-mask-sse.json +5 -0
  252. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/pii-request.json +5 -0
  253. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/pii-response-json.json +5 -0
  254. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/pii-response-json.provenance.json +16 -0
  255. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/pii-response-sse.json +5 -0
  256. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/poisoning-block-list.json +5 -0
  257. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/poisoning-remove-list.json +5 -0
  258. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/progressive-invalid-params.json +5 -0
  259. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/progressive-list.json +5 -0
  260. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/schema-invalid-args.json +5 -0
  261. donkey_kit-0.2.1/tests/fixtures/anypoint/mcp_policies/schema-missing-id.json +5 -0
  262. donkey_kit-0.2.1/tests/fixtures/anypoint/model_routing_qualified_vendor/README.md +8 -0
  263. donkey_kit-0.2.1/tests/fixtures/anypoint/model_routing_qualified_vendor/chat_completions.bare_model_400.body.json +1 -0
  264. donkey_kit-0.2.1/tests/fixtures/anypoint/model_routing_qualified_vendor/chat_completions.bare_model_400.headers.txt +9 -0
  265. donkey_kit-0.2.1/tests/fixtures/anypoint/model_routing_qualified_vendor/chat_completions.fallback.body.json +35 -0
  266. donkey_kit-0.2.1/tests/fixtures/anypoint/model_routing_qualified_vendor/chat_completions.fallback.headers.txt +36 -0
  267. donkey_kit-0.2.1/tests/fixtures/anypoint/model_routing_qualified_vendor/chat_completions.gemini.body.json +1 -0
  268. donkey_kit-0.2.1/tests/fixtures/anypoint/model_routing_qualified_vendor/chat_completions.gemini.headers.txt +23 -0
  269. donkey_kit-0.2.1/tests/fixtures/anypoint/model_routing_qualified_vendor/chat_completions.success.body.json +35 -0
  270. donkey_kit-0.2.1/tests/fixtures/anypoint/model_routing_qualified_vendor/chat_completions.success.headers.txt +36 -0
  271. donkey_kit-0.2.1/tests/fixtures/anypoint/routes/README.md +82 -0
  272. donkey_kit-0.2.1/tests/fixtures/anypoint/routes/bedrockanthropic.responses.message_input.stream.body.txt +24 -0
  273. donkey_kit-0.2.1/tests/fixtures/anypoint/routes/bedrockanthropic.responses.message_input.stream.headers.txt +17 -0
  274. donkey_kit-0.2.1/tests/fixtures/anypoint/routes/bedrockanthropic.responses.message_input.success.body.json +1 -0
  275. donkey_kit-0.2.1/tests/fixtures/anypoint/routes/bedrockanthropic.responses.message_input.success.headers.txt +21 -0
  276. donkey_kit-0.2.1/tests/fixtures/fixtures.lock +392 -0
  277. donkey_kit-0.2.1/tests/typecheck/a2a_outbound.py +25 -0
  278. donkey_kit-0.2.1/tests/typecheck/classify_response_contract.py +54 -0
  279. donkey_kit-0.2.1/tests/unit/test_a2a_agent_card_capture.py +32 -0
  280. donkey_kit-0.2.1/tests/unit/test_a2a_facade.py +96 -0
  281. donkey_kit-0.2.1/tests/unit/test_a2a_outbound_spans.py +344 -0
  282. donkey_kit-0.2.1/tests/unit/test_a2a_policy_captures.py +328 -0
  283. donkey_kit-0.2.1/tests/unit/test_a2a_policy_refusals.py +234 -0
  284. donkey_kit-0.2.1/tests/unit/test_a2a_serve.py +356 -0
  285. donkey_kit-0.2.1/tests/unit/test_a2a_transport.py +687 -0
  286. donkey_kit-0.2.1/tests/unit/test_action.py +461 -0
  287. donkey_kit-0.2.1/tests/unit/test_adapter_roster.py +242 -0
  288. donkey_kit-0.2.1/tests/unit/test_adk_approval_bookkeeping.py +604 -0
  289. donkey_kit-0.2.1/tests/unit/test_agent_framework_policy_middleware.py +319 -0
  290. donkey_kit-0.2.1/tests/unit/test_approval_requester.py +609 -0
  291. donkey_kit-0.2.1/tests/unit/test_approvals.py +742 -0
  292. donkey_kit-0.2.1/tests/unit/test_as_user_endpoint_trust.py +245 -0
  293. donkey_kit-0.2.1/tests/unit/test_capture_fixture.py +374 -0
  294. donkey_kit-0.2.1/tests/unit/test_check_doc_badges.py +148 -0
  295. donkey_kit-0.2.1/tests/unit/test_check_doc_snippets.py +216 -0
  296. donkey_kit-0.2.1/tests/unit/test_cli_dev.py +213 -0
  297. donkey_kit-0.2.1/tests/unit/test_cli_expose.py +295 -0
  298. donkey_kit-0.2.1/tests/unit/test_config.py +432 -0
  299. donkey_kit-0.2.1/tests/unit/test_discover.py +548 -0
  300. donkey_kit-0.2.1/tests/unit/test_discover_default.py +119 -0
  301. donkey_kit-0.2.1/tests/unit/test_discover_locked.py +144 -0
  302. donkey_kit-0.2.1/tests/unit/test_discover_registry_cache.py +175 -0
  303. donkey_kit-0.2.1/tests/unit/test_docs_mcp_policies.py +60 -0
  304. donkey_kit-0.2.1/tests/unit/test_docs_packaged_mcp_replay.py +78 -0
  305. donkey_kit-0.2.1/tests/unit/test_donkey_simulate_a2a.py +69 -0
  306. donkey_kit-0.2.1/tests/unit/test_donkey_simulate_mcp.py +156 -0
  307. donkey_kit-0.2.1/tests/unit/test_error_taxonomy.py +123 -0
  308. donkey_kit-0.2.1/tests/unit/test_errors.py +908 -0
  309. donkey_kit-0.2.1/tests/unit/test_exchange_search.py +244 -0
  310. donkey_kit-0.2.1/tests/unit/test_explain.py +367 -0
  311. donkey_kit-0.2.1/tests/unit/test_gateway.py +150 -0
  312. donkey_kit-0.2.1/tests/unit/test_gateway_catalogs.py +152 -0
  313. donkey_kit-0.2.1/tests/unit/test_gateway_credential_endpoint_trust.py +343 -0
  314. donkey_kit-0.2.1/tests/unit/test_hermetic_suite.py +187 -0
  315. donkey_kit-0.2.1/tests/unit/test_jsonrpc_refusals.py +644 -0
  316. donkey_kit-0.2.1/tests/unit/test_langgraph_approvals.py +710 -0
  317. donkey_kit-0.2.1/tests/unit/test_langgraph_typed_refusals.py +247 -0
  318. donkey_kit-0.2.1/tests/unit/test_lastcall.py +959 -0
  319. donkey_kit-0.2.1/tests/unit/test_llm_catalog.py +101 -0
  320. donkey_kit-0.2.1/tests/unit/test_llm_metadata.py +139 -0
  321. donkey_kit-0.2.1/tests/unit/test_llm_proxy_contract.py +209 -0
  322. donkey_kit-0.2.1/tests/unit/test_locked_native_snapshot.py +150 -0
  323. donkey_kit-0.2.1/tests/unit/test_lockfile.py +305 -0
  324. donkey_kit-0.2.1/tests/unit/test_mcp_baseline.py +134 -0
  325. donkey_kit-0.2.1/tests/unit/test_mcp_client.py +439 -0
  326. donkey_kit-0.2.1/tests/unit/test_mcp_pii_refusals.py +323 -0
  327. donkey_kit-0.2.1/tests/unit/test_mcp_policy_captures.py +208 -0
  328. donkey_kit-0.2.1/tests/unit/test_mcp_redirects.py +446 -0
  329. donkey_kit-0.2.1/tests/unit/test_model_routing_1_0_5_contract.py +249 -0
  330. donkey_kit-0.2.1/tests/unit/test_openai_agents_approval_bookkeeping.py +392 -0
  331. donkey_kit-0.2.1/tests/unit/test_openai_agents_approvals.py +1048 -0
  332. donkey_kit-0.2.1/tests/unit/test_packaged_a2a_fixtures.py +75 -0
  333. donkey_kit-0.2.1/tests/unit/test_packaged_mcp_fixtures.py +203 -0
  334. donkey_kit-0.2.1/tests/unit/test_public_api_snapshot.py +309 -0
  335. donkey_kit-0.2.1/tests/unit/test_publish_plan.py +334 -0
  336. donkey_kit-0.2.1/tests/unit/test_refusal_bridge.py +679 -0
  337. donkey_kit-0.2.1/tests/unit/test_refusal_privacy.py +157 -0
  338. donkey_kit-0.2.1/tests/unit/test_resolve_mcp.py +356 -0
  339. donkey_kit-0.2.1/tests/unit/test_route_upstream_contract.py +251 -0
  340. donkey_kit-0.2.1/tests/unit/test_scope_reentry.py +204 -0
  341. donkey_kit-0.2.1/tests/unit/test_security_auth_remediation.py +288 -0
  342. donkey_kit-0.2.1/tests/unit/test_sensitive_output.py +391 -0
  343. donkey_kit-0.2.1/tests/unit/test_simulate_mcp.py +224 -0
  344. donkey_kit-0.2.1/tests/unit/test_simulator_app.py +453 -0
  345. donkey_kit-0.2.1/tests/unit/test_simulator_fixtures.py +150 -0
  346. donkey_kit-0.2.1/tests/unit/test_simulator_ingress.py +567 -0
  347. donkey_kit-0.2.1/tests/unit/test_simulator_native_routes.py +242 -0
  348. donkey_kit-0.2.1/tests/unit/test_strands_approval_bookkeeping.py +411 -0
  349. donkey_kit-0.2.1/tests/unit/test_strands_approvals.py +745 -0
  350. donkey_kit-0.2.1/tests/unit/test_tool_access.py +294 -0
  351. donkey_kit-0.2.1/tests/unit/test_toolset_approval.py +336 -0
  352. donkey_kit-0.2.1/tests/unit/test_toolset_as_user.py +315 -0
  353. donkey_kit-0.2.1/tests/unit/test_toolset_descriptor_cost.py +338 -0
  354. donkey_kit-0.2.1/tests/unit/test_toolset_lock.py +177 -0
  355. donkey_kit-0.2.1/tests/unit/test_transport.py +2669 -0
  356. donkey_kit-0.2.1/tests/unit/test_transport_both_clients.py +445 -0
  357. donkey_kit-0.2.1/tests/unit/test_transport_proxy_mounts.py +223 -0
  358. donkey_kit-0.2.1/tests/unit/test_verification_blocked_surfaces.py +55 -0
  359. donkey_kit-0.2.1/tests/unit/test_verify_agent_card.py +356 -0
  360. donkey_kit-0.2.1/vulture_whitelist.py +206 -0
  361. donkey_kit-0.2.0/PKG-INFO +0 -316
  362. donkey_kit-0.2.0/README.md +0 -231
  363. donkey_kit-0.2.0/pyproject.toml +0 -771
  364. donkey_kit-0.2.0/scripts/capture_fixture.py +0 -256
  365. donkey_kit-0.2.0/scripts/generate_docs.py +0 -1659
  366. donkey_kit-0.2.0/scripts/mcp_binding/README.md +0 -123
  367. donkey_kit-0.2.0/scripts/mcp_binding/_harness.py +0 -176
  368. donkey_kit-0.2.0/scripts/mcp_binding/server.py +0 -297
  369. donkey_kit-0.2.0/src/donkey_kit/__init__.py +0 -279
  370. donkey_kit-0.2.0/src/donkey_kit/_testing.py +0 -86
  371. donkey_kit-0.2.0/src/donkey_kit/a2a/__init__.py +0 -21
  372. donkey_kit-0.2.0/src/donkey_kit/a2a/_server.py +0 -383
  373. donkey_kit-0.2.0/src/donkey_kit/cli/dev.py +0 -133
  374. donkey_kit-0.2.0/src/donkey_kit/cli/expose.py +0 -186
  375. donkey_kit-0.2.0/src/donkey_kit/conformance/gateway.py +0 -221
  376. donkey_kit-0.2.0/src/donkey_kit/conformance/harness.py +0 -620
  377. donkey_kit-0.2.0/src/donkey_kit/conformance/plugin.py +0 -390
  378. donkey_kit-0.2.0/src/donkey_kit/core/__init__.py +0 -127
  379. donkey_kit-0.2.0/src/donkey_kit/core/_policy_spec.py +0 -488
  380. donkey_kit-0.2.0/src/donkey_kit/core/_refusal_body.py +0 -270
  381. donkey_kit-0.2.0/src/donkey_kit/core/_wire.py +0 -126
  382. donkey_kit-0.2.0/src/donkey_kit/core/approval_types.py +0 -187
  383. donkey_kit-0.2.0/src/donkey_kit/core/approvals.py +0 -468
  384. donkey_kit-0.2.0/src/donkey_kit/core/auth.py +0 -324
  385. donkey_kit-0.2.0/src/donkey_kit/core/cachecontrol.py +0 -212
  386. donkey_kit-0.2.0/src/donkey_kit/core/classifier.py +0 -207
  387. donkey_kit-0.2.0/src/donkey_kit/core/config.py +0 -1097
  388. donkey_kit-0.2.0/src/donkey_kit/core/correlation.py +0 -431
  389. donkey_kit-0.2.0/src/donkey_kit/core/errors.py +0 -1030
  390. donkey_kit-0.2.0/src/donkey_kit/core/identity.py +0 -301
  391. donkey_kit-0.2.0/src/donkey_kit/core/inbound.py +0 -160
  392. donkey_kit-0.2.0/src/donkey_kit/core/lastcall.py +0 -828
  393. donkey_kit-0.2.0/src/donkey_kit/core/reactions.py +0 -460
  394. donkey_kit-0.2.0/src/donkey_kit/core/refusals.py +0 -459
  395. donkey_kit-0.2.0/src/donkey_kit/core/runledger.py +0 -318
  396. donkey_kit-0.2.0/src/donkey_kit/core/runtime.py +0 -259
  397. donkey_kit-0.2.0/src/donkey_kit/core/step_up.py +0 -148
  398. donkey_kit-0.2.0/src/donkey_kit/core/telemetry.py +0 -629
  399. donkey_kit-0.2.0/src/donkey_kit/core/tool_access.py +0 -139
  400. donkey_kit-0.2.0/src/donkey_kit/core/transport/async_client.py +0 -396
  401. donkey_kit-0.2.0/src/donkey_kit/core/transport/headers.py +0 -431
  402. donkey_kit-0.2.0/src/donkey_kit/core/transport/observe.py +0 -169
  403. donkey_kit-0.2.0/src/donkey_kit/core/transport/policy.py +0 -256
  404. donkey_kit-0.2.0/src/donkey_kit/core/transport/streaming.py +0 -265
  405. donkey_kit-0.2.0/src/donkey_kit/core/transport/sync_client.py +0 -290
  406. donkey_kit-0.2.0/src/donkey_kit/core/transport/views.py +0 -161
  407. donkey_kit-0.2.0/src/donkey_kit/donkey.py +0 -1505
  408. donkey_kit-0.2.0/src/donkey_kit/experimental.py +0 -84
  409. donkey_kit-0.2.0/src/donkey_kit/integrations/adk.py +0 -821
  410. donkey_kit-0.2.0/src/donkey_kit/integrations/openai_agents.py +0 -566
  411. donkey_kit-0.2.0/src/donkey_kit/llm/catalog.py +0 -59
  412. donkey_kit-0.2.0/src/donkey_kit/registry/__init__.py +0 -34
  413. donkey_kit-0.2.0/src/donkey_kit/registry/exchange.py +0 -752
  414. donkey_kit-0.2.0/src/donkey_kit/registry/exchange_publish.py +0 -837
  415. donkey_kit-0.2.0/src/donkey_kit/registry/expose_plan.py +0 -330
  416. donkey_kit-0.2.0/src/donkey_kit/registry/models.py +0 -81
  417. donkey_kit-0.2.0/src/donkey_kit/registry/publish_plan.py +0 -480
  418. donkey_kit-0.2.0/src/donkey_kit/simulator/_fixtures/anypoint/llm_proxy/README.md +0 -99
  419. donkey_kit-0.2.0/src/donkey_kit/simulator/_fixtures/fixtures.lock +0 -37
  420. donkey_kit-0.2.0/src/donkey_kit/simulator/app.py +0 -339
  421. donkey_kit-0.2.0/src/donkey_kit/simulator/fixtures.py +0 -565
  422. donkey_kit-0.2.0/src/donkey_kit/simulator/ingress.py +0 -246
  423. donkey_kit-0.2.0/src/donkey_kit/simulator/inject.py +0 -246
  424. donkey_kit-0.2.0/src/donkey_kit/simulator/scenarios.py +0 -479
  425. donkey_kit-0.2.0/src/donkey_kit/tools/approval.py +0 -150
  426. donkey_kit-0.2.0/src/donkey_kit/tools/discovery.py +0 -404
  427. donkey_kit-0.2.0/src/donkey_kit/tools/mcp.py +0 -187
  428. donkey_kit-0.2.0/src/donkey_kit/tools/session.py +0 -1116
  429. donkey_kit-0.2.0/tests/conformance/suite.py +0 -420
  430. donkey_kit-0.2.0/tests/conformance/test_gateway_fixture.py +0 -110
  431. donkey_kit-0.2.0/tests/conformance/test_readme_exemptions_table.py +0 -156
  432. donkey_kit-0.2.0/tests/conformance/test_tool_binding.py +0 -602
  433. donkey_kit-0.2.0/tests/fixtures/anypoint/routes/README.md +0 -71
  434. donkey_kit-0.2.0/tests/fixtures/fixtures.lock +0 -267
  435. donkey_kit-0.2.0/tests/typecheck/classify_response_contract.py +0 -44
  436. donkey_kit-0.2.0/tests/unit/test_a2a_serve.py +0 -290
  437. donkey_kit-0.2.0/tests/unit/test_action.py +0 -449
  438. donkey_kit-0.2.0/tests/unit/test_adapter_roster.py +0 -241
  439. donkey_kit-0.2.0/tests/unit/test_adk_approval_bookkeeping.py +0 -537
  440. donkey_kit-0.2.0/tests/unit/test_agent_framework_policy_middleware.py +0 -319
  441. donkey_kit-0.2.0/tests/unit/test_approval_requester.py +0 -449
  442. donkey_kit-0.2.0/tests/unit/test_approvals.py +0 -581
  443. donkey_kit-0.2.0/tests/unit/test_as_user_endpoint_trust.py +0 -245
  444. donkey_kit-0.2.0/tests/unit/test_capture_fixture.py +0 -290
  445. donkey_kit-0.2.0/tests/unit/test_check_doc_snippets.py +0 -216
  446. donkey_kit-0.2.0/tests/unit/test_cli_dev.py +0 -145
  447. donkey_kit-0.2.0/tests/unit/test_cli_expose.py +0 -227
  448. donkey_kit-0.2.0/tests/unit/test_config.py +0 -389
  449. donkey_kit-0.2.0/tests/unit/test_discover.py +0 -544
  450. donkey_kit-0.2.0/tests/unit/test_discover_default.py +0 -117
  451. donkey_kit-0.2.0/tests/unit/test_discover_registry_cache.py +0 -130
  452. donkey_kit-0.2.0/tests/unit/test_error_taxonomy.py +0 -116
  453. donkey_kit-0.2.0/tests/unit/test_errors.py +0 -886
  454. donkey_kit-0.2.0/tests/unit/test_exchange_search.py +0 -221
  455. donkey_kit-0.2.0/tests/unit/test_explain.py +0 -341
  456. donkey_kit-0.2.0/tests/unit/test_gateway.py +0 -103
  457. donkey_kit-0.2.0/tests/unit/test_gateway_credential_endpoint_trust.py +0 -343
  458. donkey_kit-0.2.0/tests/unit/test_hermetic_suite.py +0 -134
  459. donkey_kit-0.2.0/tests/unit/test_langgraph_approvals.py +0 -638
  460. donkey_kit-0.2.0/tests/unit/test_langgraph_typed_refusals.py +0 -247
  461. donkey_kit-0.2.0/tests/unit/test_lastcall.py +0 -925
  462. donkey_kit-0.2.0/tests/unit/test_llm_catalog.py +0 -81
  463. donkey_kit-0.2.0/tests/unit/test_llm_proxy_contract.py +0 -188
  464. donkey_kit-0.2.0/tests/unit/test_mcp_client.py +0 -270
  465. donkey_kit-0.2.0/tests/unit/test_mcp_redirects.py +0 -308
  466. donkey_kit-0.2.0/tests/unit/test_openai_agents_approval_bookkeeping.py +0 -391
  467. donkey_kit-0.2.0/tests/unit/test_openai_agents_approvals.py +0 -773
  468. donkey_kit-0.2.0/tests/unit/test_public_api_snapshot.py +0 -284
  469. donkey_kit-0.2.0/tests/unit/test_publish_plan.py +0 -258
  470. donkey_kit-0.2.0/tests/unit/test_refusal_bridge.py +0 -485
  471. donkey_kit-0.2.0/tests/unit/test_resolve_mcp.py +0 -310
  472. donkey_kit-0.2.0/tests/unit/test_route_upstream_contract.py +0 -213
  473. donkey_kit-0.2.0/tests/unit/test_sensitive_output.py +0 -391
  474. donkey_kit-0.2.0/tests/unit/test_simulator_app.py +0 -336
  475. donkey_kit-0.2.0/tests/unit/test_simulator_fixtures.py +0 -132
  476. donkey_kit-0.2.0/tests/unit/test_simulator_ingress.py +0 -200
  477. donkey_kit-0.2.0/tests/unit/test_strands_approval_bookkeeping.py +0 -405
  478. donkey_kit-0.2.0/tests/unit/test_strands_approvals.py +0 -671
  479. donkey_kit-0.2.0/tests/unit/test_tool_access.py +0 -162
  480. donkey_kit-0.2.0/tests/unit/test_toolset_approval.py +0 -332
  481. donkey_kit-0.2.0/tests/unit/test_toolset_as_user.py +0 -315
  482. donkey_kit-0.2.0/tests/unit/test_toolset_descriptor_cost.py +0 -338
  483. donkey_kit-0.2.0/tests/unit/test_transport.py +0 -2591
  484. donkey_kit-0.2.0/tests/unit/test_transport_both_clients.py +0 -398
  485. donkey_kit-0.2.0/tests/unit/test_transport_proxy_mounts.py +0 -219
  486. donkey_kit-0.2.0/tests/unit/test_verification_blocked_surfaces.py +0 -74
  487. donkey_kit-0.2.0/tests/unit/test_verify_agent_card.py +0 -354
  488. donkey_kit-0.2.0/vulture_whitelist.py +0 -191
  489. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/.gitignore +0 -0
  490. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/LICENSE +0 -0
  491. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/dependency_allowlist.toml +0 -0
  492. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/examples/adk/README.md +0 -0
  493. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/examples/adk/main.py +0 -0
  494. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/examples/agent_framework/README.md +0 -0
  495. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/examples/agent_framework/main.py +0 -0
  496. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/examples/anthropic/README.md +0 -0
  497. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/examples/anthropic/main.py +0 -0
  498. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/examples/crewai/README.md +0 -0
  499. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/examples/crewai/main.py +0 -0
  500. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/examples/langgraph/README.md +0 -0
  501. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/examples/langgraph/collector.py +0 -0
  502. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/examples/langgraph/main.py +0 -0
  503. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/examples/llamaindex/README.md +0 -0
  504. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/examples/llamaindex/main.py +0 -0
  505. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/examples/openai_agents/README.md +0 -0
  506. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/examples/openai_agents/collector.py +0 -0
  507. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/examples/openai_agents/main.py +0 -0
  508. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/examples/quickstart/README.md +0 -0
  509. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/examples/quickstart/main.py +0 -0
  510. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/examples/strands/README.md +0 -0
  511. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/examples/strands/main.py +0 -0
  512. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/capture_descriptor_fixtures.py +0 -0
  513. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/check_commit_identities.py +0 -0
  514. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/check_doc_links.py +0 -0
  515. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/check_doc_snippets.py +0 -0
  516. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/check_docs_sync.py +0 -0
  517. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/check_floors.py +0 -0
  518. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/check_framework_releases.py +0 -0
  519. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/check_new_dependencies.py +0 -0
  520. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/check_release_version.py +0 -0
  521. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/check_verification_claims.py +0 -0
  522. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/coinstall_matrix.py +0 -0
  523. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/compare_benchmark_trend.py +0 -0
  524. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/compile_constraints.py +0 -0
  525. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/mcp_binding/bind_live.py +0 -0
  526. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/mcp_binding/bind_toolset.py +0 -0
  527. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/mcp_binding/probe_adk.py +0 -0
  528. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/mcp_binding/probe_agent_framework.py +0 -0
  529. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/mcp_binding/probe_anthropic.py +0 -0
  530. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/mcp_binding/probe_ciba.py +0 -0
  531. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/mcp_binding/probe_crewai.py +0 -0
  532. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/mcp_binding/probe_denial.py +0 -0
  533. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/mcp_binding/probe_langgraph.py +0 -0
  534. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/mcp_binding/probe_llamaindex.py +0 -0
  535. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/mcp_binding/probe_mcp_sdk.py +0 -0
  536. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/mcp_binding/probe_openai_agents.py +0 -0
  537. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/mcp_binding/probe_strands.py +0 -0
  538. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/review_framework_release.py +0 -0
  539. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/scrub_fixtures.py +0 -0
  540. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/smoke_example.py +0 -0
  541. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/smoke_test_wheel.py +0 -0
  542. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/scripts/verify_frameworks.py +0 -0
  543. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/a2a/types.py +0 -0
  544. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/cli/__init__.py +0 -0
  545. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/cli/_app.py +0 -0
  546. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/cli/_blocked.py +0 -0
  547. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/cli/_common.py +0 -0
  548. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/cli/doctor.py +0 -0
  549. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/cli/init.py +0 -0
  550. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/cli/mock.py +0 -0
  551. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/cli/publish.py +0 -0
  552. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/cli/scan.py +0 -0
  553. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/cli/test.py +0 -0
  554. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/cli/verify.py +0 -0
  555. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/conformance/__init__.py +0 -0
  556. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/conformance/report.py +0 -0
  557. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/conformance/suite.py +0 -0
  558. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/core/_budget_headers.py +0 -0
  559. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/core/_response.py +0 -0
  560. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/core/_verify.py +0 -0
  561. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/core/_window.py +0 -0
  562. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/core/budget.py +0 -0
  563. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/core/cache.py +0 -0
  564. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/core/cost.py +0 -0
  565. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/core/endpoints.py +0 -0
  566. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/core/header_names.py +0 -0
  567. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/core/masking.py +0 -0
  568. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/core/spanflush.py +0 -0
  569. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/core/toolspec.py +0 -0
  570. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/core/transport/__init__.py +0 -0
  571. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/core/transport/failures.py +0 -0
  572. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/core/transport/governed.py +0 -0
  573. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/core/transport/httpx2.py +0 -0
  574. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/core/transport/pipeline.py +0 -0
  575. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/integrations/__init__.py +0 -0
  576. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/integrations/_base.py +0 -0
  577. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/integrations/agent_framework.py +0 -0
  578. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/integrations/anthropic.py +0 -0
  579. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/integrations/crewai.py +0 -0
  580. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/integrations/langgraph.py +0 -0
  581. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/integrations/llamaindex.py +0 -0
  582. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/integrations/strands.py +0 -0
  583. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/llm/__init__.py +0 -0
  584. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/llm/client.py +0 -0
  585. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/py.typed +0 -0
  586. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/registry/_scopes.py +0 -0
  587. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/registry/criteria.py +0 -0
  588. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/registry/exchange_page.py +0 -0
  589. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/registry/expose.py +0 -0
  590. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/registry/governance.py +0 -0
  591. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/registry/introspect.py +0 -0
  592. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/registry/publication.py +0 -0
  593. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/registry/scan.py +0 -0
  594. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/__init__.py +0 -0
  595. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/azure_openai_routing/README.md +0 -0
  596. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/azure_openai_routing/reject.responses-not-served.body.json +0 -0
  597. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/azure_openai_routing/reject.responses-not-served.headers.txt +0 -0
  598. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/azure_openai_routing/reject.unserved-base-path.headers.txt +0 -0
  599. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/azure_openai_routing/request.success.http +0 -0
  600. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/azure_openai_routing/responses.chat-completions.success.body.json +0 -0
  601. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/azure_openai_routing/responses.chat-completions.success.headers.txt +0 -0
  602. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/llm_proxy/api_describe.openai-sdk.json +0 -0
  603. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/llm_proxy/models.notfound.headers.txt +0 -0
  604. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/llm_proxy/policy_list.openai-sdk.json +0 -0
  605. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/llm_proxy/reject.client-id-missing.body.json +0 -0
  606. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/llm_proxy/reject.client-id-missing.headers.txt +0 -0
  607. /donkey_kit-0.2.0/src/donkey_kit/simulator/_fixtures/anypoint/llm_proxy/reject.model-not-routable.headers.txt → /donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures/anypoint/llm_proxy/reject.model-missing.headers.txt +0 -0
  608. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/llm_proxy/reject.model-not-found.body.json +0 -0
  609. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/llm_proxy/reject.model-not-routable.body.json +0 -0
  610. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/llm_proxy/reject.pii-detected.body.json +0 -0
  611. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/llm_proxy/reject.pii-detected.headers.txt +0 -0
  612. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/llm_proxy/reject.token-rate-limit.body.empty +0 -0
  613. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/llm_proxy/reject.token-rate-limit.headers.txt +0 -0
  614. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/llm_proxy/responses.stream.headers.txt +0 -0
  615. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/llm_proxy/responses.stream.sample.sse +0 -0
  616. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/llm_proxy/responses.success.body.json +0 -0
  617. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/llm_proxy/responses.success.headers.txt +0 -0
  618. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/llm_proxy/responses.success.policy-applied.headers.txt +0 -0
  619. {donkey_kit-0.2.0/tests/fixtures → donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures}/anypoint/mcp_access/README.md +0 -0
  620. {donkey_kit-0.2.0/tests/fixtures → donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures}/anypoint/mcp_access/tools-call.abac-denied.body.json +0 -0
  621. {donkey_kit-0.2.0/tests/fixtures → donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures}/anypoint/mcp_access/tools-call.abac-denied.headers.txt +0 -0
  622. {donkey_kit-0.2.0/tests/fixtures → donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures}/anypoint/mcp_access/tools-call.global-access-denied.body.json +0 -0
  623. {donkey_kit-0.2.0/tests/fixtures → donkey_kit-0.2.1/src/donkey_kit/simulator/_fixtures}/anypoint/mcp_access/tools-call.global-access-denied.headers.txt +0 -0
  624. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/request_rate_limit/README.md +0 -0
  625. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/request_rate_limit/reject.request-rate-limit.body.json +0 -0
  626. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/request_rate_limit/reject.request-rate-limit.headers.txt +0 -0
  627. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/semantic_routing/README.md +0 -0
  628. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/semantic_routing/request.success.http +0 -0
  629. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/semantic_routing/responses.code.body.json +0 -0
  630. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/semantic_routing/responses.code.headers.txt +0 -0
  631. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/semantic_routing/responses.finance.body.json +0 -0
  632. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/semantic_routing/responses.finance.headers.txt +0 -0
  633. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/semantic_routing/responses.offtopic.body.json +0 -0
  634. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/anypoint/semantic_routing/responses.offtopic.headers.txt +0 -0
  635. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/openai_public/README.md +0 -0
  636. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/openai_public/chat-completions.stream.headers.txt +0 -0
  637. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/openai_public/chat-completions.stream.sse +0 -0
  638. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/rejections/README.md +0 -0
  639. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/rejections/reject.agent-killed.body.json +0 -0
  640. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/rejections/reject.agent-killed.headers.txt +0 -0
  641. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/rejections/reject.ciba-denied.body.json +0 -0
  642. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/rejections/reject.ciba-denied.headers.txt +0 -0
  643. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/rejections/reject.ciba-pending.body.json +0 -0
  644. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/rejections/reject.ciba-pending.headers.txt +0 -0
  645. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/rejections/reject.content-moderation.body.empty +0 -0
  646. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/rejections/reject.content-moderation.headers.txt +0 -0
  647. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/rejections/reject.content-safety-bedrock.body.json +0 -0
  648. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/rejections/reject.content-safety-bedrock.headers.txt +0 -0
  649. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/rejections/reject.content-safety-crowdstrike-aidr.body.json +0 -0
  650. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/rejections/reject.content-safety-crowdstrike-aidr.headers.txt +0 -0
  651. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/rejections/reject.content-safety-model-armor.body.json +0 -0
  652. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/rejections/reject.content-safety-model-armor.headers.txt +0 -0
  653. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/rejections/reject.content-safety.body.json +0 -0
  654. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/rejections/reject.content-safety.headers.txt +0 -0
  655. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/rejections/reject.injection-protection.body.json +0 -0
  656. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/rejections/reject.injection-protection.headers.txt +0 -0
  657. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/rejections/reject.regex-prompt-guard.body.json +0 -0
  658. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/rejections/reject.regex-prompt-guard.headers.txt +0 -0
  659. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/rejections/reject.upstream-5xx.body.empty +0 -0
  660. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/_fixtures/rejections/reject.upstream-5xx.headers.txt +0 -0
  661. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/simulator/server.py +0 -0
  662. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/tools/__init__.py +0 -0
  663. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/tools/auth.py +0 -0
  664. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/src/donkey_kit/tools/filter.py +0 -0
  665. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/benchmark/test_span_overhead.py +0 -0
  666. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/conformance/conftest.py +0 -0
  667. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/conformance/contract_drivers.py +0 -0
  668. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/conformance/contract_gateway.py +0 -0
  669. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/conformance/test_adapter_contract.py +0 -0
  670. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/conformance/test_agent_killed_stops_cleanly.py +0 -0
  671. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/conformance/test_approval_round_trip.py +0 -0
  672. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/conformance/test_budget_pacing_e2e.py +0 -0
  673. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/conformance/test_custom_policy_typed.py +0 -0
  674. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/conformance/test_handlers_cannot_unrefuse.py +0 -0
  675. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/conformance/test_langgraph_conformance.py +0 -0
  676. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/conformance/test_openai_agents_conformance.py +0 -0
  677. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/conformance/test_simulator_boot.py +0 -0
  678. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/conformance/test_stock_openai_honesty.py +0 -0
  679. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/conformance/test_transport_exemptions.py +0 -0
  680. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/conformance/test_typed_refusal_bridge.py +0 -0
  681. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/conformance/transport_surfaces.py +0 -0
  682. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/conftest.py +0 -0
  683. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/a2d/README.md +0 -0
  684. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/a2d/environments.sample.json +0 -0
  685. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/a2d/mcp_server_spec.account_management.json +0 -0
  686. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/a2d/mcp_servers.list.json +0 -0
  687. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/README.md +0 -0
  688. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_card/README.md +0 -0
  689. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_card/a2a-card.stored.json +0 -0
  690. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_card/agent-metadata.stored.json +0 -0
  691. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_card/api.describe.json +0 -0
  692. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_card/apis.by-asset.json +0 -0
  693. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_card/graphql.files.json +0 -0
  694. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_card/traffic.card.contracted.200.json +0 -0
  695. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_card/traffic.card.no-client-id.401.json +0 -0
  696. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_card/traffic.card.no-policy.200.json +0 -0
  697. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_card/traffic.card.uncontracted.401.json +0 -0
  698. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_card/upstream.agent-card.json +0 -0
  699. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_instance/README.md +0 -0
  700. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_instance/api_describe.200.json +0 -0
  701. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_instance/contracts.200.json +0 -0
  702. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_instance/create.201.json +0 -0
  703. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_instance/create.a2a-v1-protocol.400.json +0 -0
  704. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_instance/create.request.json +0 -0
  705. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_instance/deployment-status.applied.json +0 -0
  706. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_instance/deployment-status.applying.json +0 -0
  707. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_instance/deployment.201.json +0 -0
  708. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_instance/deployment.request.json +0 -0
  709. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_instance/outbound-policies.get.405.json +0 -0
  710. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_instance/outbound-policy.201.json +0 -0
  711. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_instance/outbound-policy.request.json +0 -0
  712. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_instance/policies.200.json +0 -0
  713. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_instance/policy-inbound.400.json +0 -0
  714. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_instance/policy-inbound.request.json +0 -0
  715. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/a2a_instance/upstreams.200.json +0 -0
  716. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/anthropic_inbound/README.md +0 -0
  717. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/anthropic_inbound/reject.client-id-missing.body.json +0 -0
  718. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/anthropic_inbound/reject.client-id-missing.headers.txt +0 -0
  719. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/anthropic_inbound/reject.openai-shape.body.json +0 -0
  720. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/anthropic_inbound/reject.openai-shape.headers.txt +0 -0
  721. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/anthropic_inbound/request.success.http +0 -0
  722. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/anthropic_inbound/responses.success.body.json +0 -0
  723. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/anthropic_inbound/responses.success.headers.txt +0 -0
  724. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/api_describe.product-catalog-mcp.json +0 -0
  725. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/api_list.sandbox.json +0 -0
  726. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_publish/README.md +0 -0
  727. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_publish/agent.a2a-v1-card.stored.json +0 -0
  728. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_publish/agent.agent-metadata.stored.json +0 -0
  729. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_publish/agent.graphql.latest.json +0 -0
  730. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_publish/agent.pom.xml +0 -0
  731. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_publish/agent.publish.201.json +0 -0
  732. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_publish/graphql.absent.json +0 -0
  733. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_publish/graphql.files.json +0 -0
  734. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_publish/graphql.latest.json +0 -0
  735. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_publish/graphql.renamed.json +0 -0
  736. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_publish/graphql.version.json +0 -0
  737. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_publish/instance.201.json +0 -0
  738. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_publish/mcp-metadata.stored.json +0 -0
  739. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_publish/page.201.json +0 -0
  740. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_publish/page.409.json +0 -0
  741. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_publish/pom.xml +0 -0
  742. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_publish/portal-draft.200.json +0 -0
  743. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_publish/publish.201.json +0 -0
  744. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_publish/publish.409.json +0 -0
  745. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_search/README.md +0 -0
  746. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_search/search.api-types.json +0 -0
  747. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_search/search.description-term.json +0 -0
  748. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_search/search.page1.json +0 -0
  749. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_search/search.page2.json +0 -0
  750. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_search/search.tags-derived.json +0 -0
  751. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_search/search.tags-two.json +0 -0
  752. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_search/search.tags.json +0 -0
  753. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_search/search.term.json +0 -0
  754. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_search/search.types-mcp.json +0 -0
  755. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/exchange_search/search.unknown-field.400.json +0 -0
  756. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/gateway/README.md +0 -0
  757. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/gateway/gateway.200.json +0 -0
  758. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/gateway/gateways.by-name.json +0 -0
  759. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/gemini_inbound/README.md +0 -0
  760. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/gemini_inbound/reject.client-id-missing.body.json +0 -0
  761. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/gemini_inbound/reject.client-id-missing.headers.txt +0 -0
  762. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/gemini_inbound/reject.openai-shape.body.json +0 -0
  763. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/gemini_inbound/reject.openai-shape.headers.txt +0 -0
  764. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/gemini_inbound/reject.unknown-model.body.json +0 -0
  765. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/gemini_inbound/reject.unknown-model.headers.txt +0 -0
  766. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/gemini_inbound/request.stream.http +0 -0
  767. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/gemini_inbound/request.success.http +0 -0
  768. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/gemini_inbound/request.unknown-model.http +0 -0
  769. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/gemini_inbound/responses.stream.body.txt +0 -0
  770. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/gemini_inbound/responses.stream.headers.txt +0 -0
  771. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/gemini_inbound/responses.success.body.json +0 -0
  772. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/gemini_inbound/responses.success.headers.txt +0 -0
  773. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_explain/README.md +0 -0
  774. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_explain/api.describe.governed.json +0 -0
  775. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_explain/apis.by-asset.governed.json +0 -0
  776. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_explain/apis.by-asset.none.json +0 -0
  777. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_explain/apis.by-asset.undeployed.json +0 -0
  778. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_explain/apis.by-asset.ungoverned.json +0 -0
  779. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_explain/asset.version.json +0 -0
  780. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_explain/asset.version.tagged.json +0 -0
  781. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_explain/governance.reports.conformant.json +0 -0
  782. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_explain/governance.reports.none.json +0 -0
  783. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_explain/governance.reports.root-org.json +0 -0
  784. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_explain/policies.governed.json +0 -0
  785. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_explain/policies.none.json +0 -0
  786. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_instance/README.md +0 -0
  787. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_instance/api_describe.200.json +0 -0
  788. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_instance/apis-list.by-label.json +0 -0
  789. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_instance/contracts.200.json +0 -0
  790. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_instance/create.201.json +0 -0
  791. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_instance/create.409.json +0 -0
  792. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_instance/create.request.json +0 -0
  793. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_instance/deployment-status.applied.json +0 -0
  794. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_instance/deployment-status.applying.json +0 -0
  795. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_instance/deployment.201.json +0 -0
  796. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_instance/deployment.request.json +0 -0
  797. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_instance/policies.200.json +0 -0
  798. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_instance/policy-client-id-enforcement.201.json +0 -0
  799. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_instance/policy-client-id-enforcement.request.json +0 -0
  800. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_instance/policy-mcp-support.201.json +0 -0
  801. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_instance/policy-mcp-support.request.json +0 -0
  802. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_resolve/README.md +0 -0
  803. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_resolve/api.describe.json +0 -0
  804. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_resolve/apis.by-asset.json +0 -0
  805. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_resolve/apis.by-asset.none.json +0 -0
  806. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_resolve/apis.by-asset.undeployed-and-deployed.json +0 -0
  807. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_resolve/environments.json +0 -0
  808. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_resolve/gateway.json +0 -0
  809. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_resolve/traffic.no-slash.404.json +0 -0
  810. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_resolve/traffic.slash.401.json +0 -0
  811. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/mcp_resolve/traffic.unknown-path.404.json +0 -0
  812. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/missing_scope/README.md +0 -0
  813. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/missing_scope/responses.json +0 -0
  814. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/model_wallet/README.md +0 -0
  815. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/model_wallet/jwt.claims.json +0 -0
  816. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/model_wallet/mw-policies.json +0 -0
  817. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/model_wallet/probe.exhaustion-run.json +0 -0
  818. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/model_wallet/reject.jwt-invalid.body.json +0 -0
  819. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/model_wallet/reject.jwt-invalid.headers.txt +0 -0
  820. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/model_wallet/reject.jwt-missing.body.json +0 -0
  821. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/model_wallet/reject.jwt-missing.headers.txt +0 -0
  822. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/model_wallet/reject.wallet-exhausted.body.json +0 -0
  823. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/model_wallet/reject.wallet-exhausted.headers.txt +0 -0
  824. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/model_wallet/request.success.http +0 -0
  825. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/model_wallet/responses.exhaustion-run.first.headers.txt +0 -0
  826. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/model_wallet/responses.exhaustion-run.last.headers.txt +0 -0
  827. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/model_wallet/responses.success.body.json +0 -0
  828. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/model_wallet/responses.success.headers.txt +0 -0
  829. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/model_wallet/wallet.definition.json +0 -0
  830. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/openai_gemini_stream/README.md +0 -0
  831. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/openai_gemini_stream/request.stream-tool-call.http +0 -0
  832. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/openai_gemini_stream/request.stream.http +0 -0
  833. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/openai_gemini_stream/request.stream.request-compression.http +0 -0
  834. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/openai_gemini_stream/responses.stream-tool-call.body.txt +0 -0
  835. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/openai_gemini_stream/responses.stream-tool-call.headers.txt +0 -0
  836. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/openai_gemini_stream/responses.stream.body.txt +0 -0
  837. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/openai_gemini_stream/responses.stream.headers.txt +0 -0
  838. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/openai_gemini_stream/responses.stream.request-compression.body.txt +0 -0
  839. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/openai_gemini_stream/responses.stream.request-compression.headers.txt +0 -0
  840. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/policy_list.product-catalog-mcp.json +0 -0
  841. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/request_rate_limit/README.md +0 -0
  842. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/request_rate_limit/reject.request-rate-limit.repeat.headers.txt +0 -0
  843. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/request_rate_limit/responses.after-reset.headers.txt +0 -0
  844. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/request_rate_limit/responses.success.body.json +0 -0
  845. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/request_rate_limit/responses.success.headers.txt +0 -0
  846. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/request_rate_limit/responses.window-exhausted.headers.txt +0 -0
  847. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/azureopenai.chat_completions.reject.body.json +0 -0
  848. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/azureopenai.chat_completions.reject.headers.txt +0 -0
  849. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/azureopenai.chat_completions.stream.body.txt +0 -0
  850. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/azureopenai.chat_completions.stream.headers.txt +0 -0
  851. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/azureopenai.chat_completions.success.body.json +0 -0
  852. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/azureopenai.chat_completions.success.headers.txt +0 -0
  853. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/azureopenai.responses.reject.body.json +0 -0
  854. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/azureopenai.responses.reject.headers.txt +0 -0
  855. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/azureopenai.responses.stream.body.json +0 -0
  856. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/azureopenai.responses.stream.headers.txt +0 -0
  857. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/azureopenai.responses.success.body.json +0 -0
  858. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/azureopenai.responses.success.headers.txt +0 -0
  859. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/bedrockanthropic.chat_completions.reject.body.json +0 -0
  860. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/bedrockanthropic.chat_completions.reject.headers.txt +0 -0
  861. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/bedrockanthropic.chat_completions.stream.body.txt +0 -0
  862. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/bedrockanthropic.chat_completions.stream.headers.txt +0 -0
  863. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/bedrockanthropic.chat_completions.success.body.json +0 -0
  864. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/bedrockanthropic.chat_completions.success.headers.txt +0 -0
  865. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/bedrockanthropic.responses.reject.body.json +0 -0
  866. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/bedrockanthropic.responses.reject.headers.txt +0 -0
  867. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/bedrockanthropic.responses.stream.body.txt +0 -0
  868. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/bedrockanthropic.responses.stream.headers.txt +0 -0
  869. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/bedrockanthropic.responses.success.body.json +0 -0
  870. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/bedrockanthropic.responses.success.headers.txt +0 -0
  871. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/gemini.chat_completions.reject.body.json +0 -0
  872. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/gemini.chat_completions.reject.headers.txt +0 -0
  873. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/gemini.chat_completions.stream.body.txt +0 -0
  874. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/gemini.chat_completions.stream.headers.txt +0 -0
  875. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/gemini.chat_completions.success.body.json +0 -0
  876. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/gemini.chat_completions.success.headers.txt +0 -0
  877. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/gemini.responses.reject.body.json +0 -0
  878. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/gemini.responses.reject.headers.txt +0 -0
  879. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/gemini.responses.stream.body.txt +0 -0
  880. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/gemini.responses.stream.headers.txt +0 -0
  881. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/gemini.responses.success.body.json +0 -0
  882. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/gemini.responses.success.headers.txt +0 -0
  883. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/openai.chat_completions.reject.body.json +0 -0
  884. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/openai.chat_completions.reject.headers.txt +0 -0
  885. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/openai.chat_completions.stream.body.txt +0 -0
  886. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/openai.chat_completions.stream.headers.txt +0 -0
  887. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/openai.chat_completions.success.body.json +0 -0
  888. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/openai.chat_completions.success.headers.txt +0 -0
  889. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/openai.responses.reject.body.json +0 -0
  890. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/openai.responses.reject.headers.txt +0 -0
  891. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/openai.responses.stream.body.txt +0 -0
  892. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/openai.responses.stream.headers.txt +0 -0
  893. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/openai.responses.success.body.json +0 -0
  894. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/routes/openai.responses.success.headers.txt +0 -0
  895. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/semantic_cache/README.md +0 -0
  896. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/semantic_cache/request.success.http +0 -0
  897. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/semantic_cache/responses.bypass.headers.txt +0 -0
  898. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/semantic_cache/responses.hit.body.json +0 -0
  899. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/semantic_cache/responses.hit.headers.txt +0 -0
  900. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/semantic_cache/responses.miss.body.json +0 -0
  901. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/semantic_cache/responses.miss.headers.txt +0 -0
  902. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/semantic_cache/responses.no-store-proof.headers.txt +0 -0
  903. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/semantic_cache/responses.no-store.body.json +0 -0
  904. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/semantic_cache/responses.no-store.headers.txt +0 -0
  905. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/semantic_cache/responses.principal-id.headers.txt +0 -0
  906. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/semantic_cache/responses.threshold-override.headers.txt +0 -0
  907. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/anypoint/semantic_cache/responses.ttl-override.headers.txt +0 -0
  908. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/descriptor/README.md +0 -0
  909. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/descriptor/adk.json +0 -0
  910. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/descriptor/agent_framework.json +0 -0
  911. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/descriptor/anthropic.json +0 -0
  912. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/descriptor/crewai.json +0 -0
  913. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/descriptor/langchain.json +0 -0
  914. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/descriptor/llamaindex.json +0 -0
  915. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/descriptor/mcp-1.json +0 -0
  916. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/descriptor/mcp-2.json +0 -0
  917. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/descriptor/openai_agents.json +0 -0
  918. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/descriptor/strands.json +0 -0
  919. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/mcp_binding/adk.json +0 -0
  920. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/mcp_binding/agent_framework.json +0 -0
  921. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/mcp_binding/anthropic.json +0 -0
  922. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/mcp_binding/ciba-adk.json +0 -0
  923. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/mcp_binding/ciba-af.json +0 -0
  924. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/mcp_binding/ciba-lg.json +0 -0
  925. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/mcp_binding/ciba-li.json +0 -0
  926. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/mcp_binding/ciba-mcp1.json +0 -0
  927. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/mcp_binding/ciba-mcp2.json +0 -0
  928. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/mcp_binding/ciba-oa.json +0 -0
  929. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/mcp_binding/ciba-st.json +0 -0
  930. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/mcp_binding/crewai.json +0 -0
  931. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/mcp_binding/denial-adk.json +0 -0
  932. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/mcp_binding/denial-agent_framework.json +0 -0
  933. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/mcp_binding/denial-mcp1.json +0 -0
  934. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/mcp_binding/denial-mcp2.json +0 -0
  935. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/mcp_binding/denial-openai_agents.json +0 -0
  936. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/mcp_binding/denial-strands.json +0 -0
  937. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/mcp_binding/langgraph.json +0 -0
  938. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/mcp_binding/llamaindex.json +0 -0
  939. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/mcp_binding/mcp_sdk.json +0 -0
  940. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/mcp_binding/openai_agents.json +0 -0
  941. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/fixtures/mcp_binding/strands.json +0 -0
  942. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/sandbox/README.md +0 -0
  943. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/sandbox/conftest.py +0 -0
  944. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/sandbox/proxies.toml.example +0 -0
  945. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/sandbox/test_proxy_contracts.py +0 -0
  946. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/typecheck/asset_type_contract.py +0 -0
  947. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/typecheck/headline_api_contract.py +0 -0
  948. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/typecheck/headline_api_v0_2_contract.py +0 -0
  949. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/_anthropic_wire.py +0 -0
  950. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/_fake_anypoint.py +0 -0
  951. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/_fake_exchange.py +0 -0
  952. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/_json_shapes.py +0 -0
  953. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_a2a_governed_inbound.py +0 -0
  954. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_adapter_async_last_call.py +0 -0
  955. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_adapter_capabilities.py +0 -0
  956. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_adapter_ergonomics.py +0 -0
  957. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_adapter_jwt_mode.py +0 -0
  958. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_adapter_openai3_bridge.py +0 -0
  959. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_adk_approvals.py +0 -0
  960. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_anthropic_client_stacks.py +0 -0
  961. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_anthropic_httpx2_bridge.py +0 -0
  962. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_architecture.py +0 -0
  963. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_auth.py +0 -0
  964. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_base_install_deps.py +0 -0
  965. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_budget.py +0 -0
  966. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_budget_pacing.py +0 -0
  967. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_budget_requests.py +0 -0
  968. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_budget_upstream.py +0 -0
  969. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_check_commit_identities.py +0 -0
  970. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_check_doc_links.py +0 -0
  971. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_check_docs_sync.py +0 -0
  972. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_check_framework_releases.py +0 -0
  973. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_check_new_dependencies.py +0 -0
  974. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_check_verification_claims.py +0 -0
  975. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_ci_workflows.py +0 -0
  976. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_classifier.py +0 -0
  977. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_cli_blocked_commands.py +0 -0
  978. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_cli_doctor.py +0 -0
  979. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_cli_entrypoint.py +0 -0
  980. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_cli_help.py +0 -0
  981. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_cli_init.py +0 -0
  982. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_cli_mock.py +0 -0
  983. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_cli_publish.py +0 -0
  984. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_cli_scan.py +0 -0
  985. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_cli_test.py +0 -0
  986. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_cli_verify.py +0 -0
  987. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_compare_benchmark_trend.py +0 -0
  988. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_concurrency_contract.py +0 -0
  989. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_config_endpoint_trust.py +0 -0
  990. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_config_env_vars.py +0 -0
  991. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_config_header_names.py +0 -0
  992. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_config_precedence.py +0 -0
  993. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_config_validation.py +0 -0
  994. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_conformance.py +0 -0
  995. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_conformance_base_only.py +0 -0
  996. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_conformance_plugin.py +0 -0
  997. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_connected_app_scopes.py +0 -0
  998. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_connection_kwargs_rendering.py +0 -0
  999. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_constraints_lock.py +0 -0
  1000. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_contract_extra_skip_guard.py +0 -0
  1001. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_cost.py +0 -0
  1002. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_credential_binding_planes.py +0 -0
  1003. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_credential_planes.py +0 -0
  1004. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_custom_policies_page.py +0 -0
  1005. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_data_plane_only_headers.py +0 -0
  1006. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_decorators.py +0 -0
  1007. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_default_runtime.py +0 -0
  1008. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_descriptor_derivation.py +0 -0
  1009. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_docs_config_table.py +0 -0
  1010. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_docs_from_env_kwargs.py +0 -0
  1011. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_doctor.py +0 -0
  1012. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_donkey_surface.py +0 -0
  1013. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_endpoint_overrides.py +0 -0
  1014. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_endpoints.py +0 -0
  1015. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_exchange_page.py +0 -0
  1016. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_exchange_publish.py +0 -0
  1017. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_expose.py +0 -0
  1018. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_expose_plan.py +0 -0
  1019. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_fixture_integrity.py +0 -0
  1020. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_framework_redirects.py +0 -0
  1021. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_framework_retries.py +0 -0
  1022. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_gemini_inbound_contract.py +0 -0
  1023. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_generated_docs.py +0 -0
  1024. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_governed_state_shapes.py +0 -0
  1025. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_house_style_config.py +0 -0
  1026. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_identity.py +0 -0
  1027. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_inbound_correlation.py +0 -0
  1028. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_integration_checklist.py +0 -0
  1029. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_kill_switch.py +0 -0
  1030. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_langgraph_correlation.py +0 -0
  1031. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_langgraph_sync_transport.py +0 -0
  1032. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_llamaindex_model_defaults.py +0 -0
  1033. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_llm_bearer_mode.py +0 -0
  1034. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_llm_client_jwt.py +0 -0
  1035. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_llm_client_openai3_injection.py +0 -0
  1036. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_logging.py +0 -0
  1037. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_missing_framework_error.py +0 -0
  1038. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_model_wallet_contract.py +0 -0
  1039. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_noxfile.py +0 -0
  1040. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_openai_agents_correlation.py +0 -0
  1041. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_openai_gemini_stream_contract.py +0 -0
  1042. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_otlp_export.py +0 -0
  1043. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_per_request_business_group.py +0 -0
  1044. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_pre_commit_lock_sync.py +0 -0
  1045. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_product_description.py +0 -0
  1046. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_proxy_key_header.py +0 -0
  1047. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_public_api_surface.py +0 -0
  1048. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_public_docstrings.py +0 -0
  1049. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_publication_verify.py +0 -0
  1050. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_pure_logic.py +0 -0
  1051. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_refusal_capture.py +0 -0
  1052. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_refusal_groups.py +0 -0
  1053. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_refusal_handlers.py +0 -0
  1054. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_refusal_tracebacks.py +0 -0
  1055. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_registry_shapes.py +0 -0
  1056. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_rejection_contract.py +0 -0
  1057. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_release_version.py +0 -0
  1058. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_release_workflows.py +0 -0
  1059. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_review_framework_release.py +0 -0
  1060. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_run_ledger.py +0 -0
  1061. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_scan.py +0 -0
  1062. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_scrub_fixtures.py +0 -0
  1063. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_semantic_cache.py +0 -0
  1064. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_shared_client_views.py +0 -0
  1065. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_simulate.py +0 -0
  1066. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_simulator_base_only.py +0 -0
  1067. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_simulator_scenarios.py +0 -0
  1068. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_simulator_scenarios_app.py +0 -0
  1069. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_smoke_example.py +0 -0
  1070. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_smoke_test_wheel.py +0 -0
  1071. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_step_up_wait.py +0 -0
  1072. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_strands_terminal_refusal.py +0 -0
  1073. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_support_matrix.py +0 -0
  1074. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_telemetry.py +0 -0
  1075. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_toolset_filter.py +0 -0
  1076. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_transport_event_loops.py +0 -0
  1077. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_transport_injection.py +0 -0
  1078. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_transport_origin_guard.py +0 -0
  1079. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_typed_refusals_example.py +0 -0
  1080. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_ungoverned_binding.py +0 -0
  1081. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_verify_frameworks.py +0 -0
  1082. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_wire_names.py +0 -0
  1083. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_workflow_bounds.py +0 -0
  1084. {donkey_kit-0.2.0 → donkey_kit-0.2.1}/tests/unit/test_workflow_supply_chain.py +0 -0
@@ -0,0 +1,316 @@
1
+ Metadata-Version: 2.5
2
+ Name: donkey-kit
3
+ Version: 0.2.1
4
+ Summary: An SDK for consuming Agent Fabric capabilities (governed model and tool access) from your own agent framework.
5
+ Project-URL: Homepage, https://github.com/Donkey-Development-Kit/donkey-development-kit
6
+ Project-URL: Documentation, https://docs.donkey-kit.dev
7
+ Project-URL: Repository, https://github.com/Donkey-Development-Kit/donkey-development-kit
8
+ Project-URL: Issues, https://github.com/Donkey-Development-Kit/donkey-development-kit/issues
9
+ Project-URL: Changelog, https://github.com/Donkey-Development-Kit/donkey-development-kit/releases
10
+ Author: Donkey Development Kit maintainers
11
+ Maintainer: Donkey Development Kit maintainers
12
+ License-Expression: Apache-2.0
13
+ License-File: LICENSE
14
+ Keywords: agent,anypoint,donkey-kit,gateway,llm,mcp,mulesoft
15
+ Classifier: Development Status :: 3 - Alpha
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3 :: Only
20
+ Classifier: Programming Language :: Python :: 3.10
21
+ Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Programming Language :: Python :: 3.13
24
+ Classifier: Programming Language :: Python :: 3.14
25
+ Classifier: Typing :: Typed
26
+ Requires-Python: >=3.10
27
+ Requires-Dist: httpx>=0.27
28
+ Requires-Dist: tomli>=2.0; python_version < '3.11'
29
+ Requires-Dist: typing-extensions>=4.10; python_version < '3.12'
30
+ Provides-Extra: a2a
31
+ Requires-Dist: a2a-sdk[http-server]>=1.2.0; extra == 'a2a'
32
+ Requires-Dist: uvicorn>=0.30; extra == 'a2a'
33
+ Provides-Extra: adk
34
+ Requires-Dist: google-adk>=2.4; extra == 'adk'
35
+ Requires-Dist: litellm[mcp]>=1.84; extra == 'adk'
36
+ Provides-Extra: agent-framework
37
+ Requires-Dist: agent-framework>=1.13; extra == 'agent-framework'
38
+ Provides-Extra: all
39
+ Requires-Dist: a2a-sdk[http-server]>=1.2.0; extra == 'all'
40
+ Requires-Dist: langchain-core>=0.3.45; extra == 'all'
41
+ Requires-Dist: langchain-openai>=0.3.9; extra == 'all'
42
+ Requires-Dist: langgraph>=0.4; extra == 'all'
43
+ Requires-Dist: mcp>=1.24; extra == 'all'
44
+ Requires-Dist: openai>=1.66; extra == 'all'
45
+ Requires-Dist: opentelemetry-api>=1.24; extra == 'all'
46
+ Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.24; extra == 'all'
47
+ Requires-Dist: opentelemetry-sdk>=1.24; extra == 'all'
48
+ Requires-Dist: rich>=13.8.0; extra == 'all'
49
+ Requires-Dist: starlette>=0.37; extra == 'all'
50
+ Requires-Dist: typer>=0.26.0; extra == 'all'
51
+ Requires-Dist: uvicorn>=0.30; extra == 'all'
52
+ Provides-Extra: anthropic
53
+ Requires-Dist: anthropic>=0.116; extra == 'anthropic'
54
+ Provides-Extra: cli
55
+ Requires-Dist: rich>=13.8.0; extra == 'cli'
56
+ Requires-Dist: typer>=0.26.0; extra == 'cli'
57
+ Provides-Extra: crewai
58
+ Requires-Dist: crewai>=1.15.3; extra == 'crewai'
59
+ Provides-Extra: langgraph
60
+ Requires-Dist: langchain-core>=0.3.45; extra == 'langgraph'
61
+ Requires-Dist: langchain-openai>=0.3.9; extra == 'langgraph'
62
+ Requires-Dist: langgraph>=0.4; extra == 'langgraph'
63
+ Provides-Extra: llamaindex
64
+ Requires-Dist: llama-index-llms-openai-like>=0.8; extra == 'llamaindex'
65
+ Provides-Extra: llm
66
+ Requires-Dist: openai>=1.66; extra == 'llm'
67
+ Provides-Extra: local
68
+ Requires-Dist: starlette>=0.37; extra == 'local'
69
+ Requires-Dist: uvicorn>=0.30; extra == 'local'
70
+ Provides-Extra: mcp
71
+ Requires-Dist: mcp>=1.24; extra == 'mcp'
72
+ Provides-Extra: openai-agents
73
+ Requires-Dist: openai-agents>=0.20; extra == 'openai-agents'
74
+ Requires-Dist: openai>=2.45; extra == 'openai-agents'
75
+ Provides-Extra: otel
76
+ Requires-Dist: opentelemetry-api>=1.24; extra == 'otel'
77
+ Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.24; extra == 'otel'
78
+ Requires-Dist: opentelemetry-sdk>=1.24; extra == 'otel'
79
+ Provides-Extra: strands
80
+ Requires-Dist: strands-agents[openai]>=1.57.1; extra == 'strands'
81
+ Provides-Extra: test
82
+ Requires-Dist: pytest-asyncio>=0.23.1; extra == 'test'
83
+ Requires-Dist: pytest>=8.0; extra == 'test'
84
+ Description-Content-Type: text/markdown
85
+
86
+ <p align="center">
87
+ <img src="https://raw.githubusercontent.com/Donkey-Development-Kit/donkey-development-kit/main/brand/ddk-logo-stacked-black.png" alt="Donkey Development Kit (DDK)" width="180" />
88
+ </p>
89
+
90
+ <p align="center">
91
+ <a href="https://pypi.org/project/donkey-kit/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Fdonkey-kit%2Fjson&query=%24.info.version&prefix=v&label=PyPI&logo=pypi&logoColor=white&color=blue&cacheSeconds=300" alt="donkey-kit on PyPI" /></a>
92
+ <a href="https://pypi.org/project/donkey-kit/"><img src="https://img.shields.io/pypi/pyversions/donkey-kit?logo=python&logoColor=white" alt="Supported Python versions" /></a>
93
+ <a href="https://github.com/Donkey-Development-Kit/donkey-development-kit/actions/workflows/ci.yml?query=branch%3Adevelop"><img src="https://img.shields.io/github/actions/workflow/status/Donkey-Development-Kit/donkey-development-kit/ci.yml?branch=develop&label=CI&logo=githubactions&logoColor=white" alt="CI status" /></a>
94
+ <a href="https://pepy.tech/projects/donkey-kit"><img src="https://img.shields.io/pepy/dt/donkey-kit?label=downloads" alt="Total downloads" /></a>
95
+ <a href="https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/LICENSE"><img src="https://img.shields.io/pypi/l/donkey-kit?color=green" alt="License: Apache-2.0" /></a>
96
+ <a href="https://docs.donkey-kit.dev"><img src="https://img.shields.io/badge/docs-docs.donkey--kit.dev-0A7BBB?logo=readthedocs&logoColor=white" alt="Documentation" /></a>
97
+ </p>
98
+
99
+ <p align="center">
100
+ <a href="https://docs.donkey-kit.dev/frameworks/langgraph"><img src="https://img.shields.io/badge/LangGraph-1C3C3C?logo=langgraph&logoColor=white" alt="LangGraph" /></a>
101
+ <a href="https://docs.donkey-kit.dev/frameworks/adk"><img src="https://img.shields.io/badge/Google_ADK-4285F4?logo=google&logoColor=white" alt="Google ADK" /></a>
102
+ <a href="https://docs.donkey-kit.dev/frameworks/openai"><img src="https://img.shields.io/badge/OpenAI_Agents_SDK-412991" alt="OpenAI Agents SDK" /></a>
103
+ <a href="https://docs.donkey-kit.dev/frameworks/agent-framework"><img src="https://img.shields.io/badge/Microsoft_Agent_Framework-5E5E5E" alt="Microsoft Agent Framework" /></a>
104
+ <a href="https://docs.donkey-kit.dev/frameworks/anthropic"><img src="https://img.shields.io/badge/Anthropic-191919?logo=anthropic&logoColor=white" alt="Anthropic" /></a>
105
+ <a href="https://docs.donkey-kit.dev/frameworks/crewai"><img src="https://img.shields.io/badge/CrewAI-FF5A50?logo=crewai&logoColor=white" alt="CrewAI" /></a>
106
+ <a href="https://docs.donkey-kit.dev/frameworks/llamaindex"><img src="https://img.shields.io/badge/LlamaIndex-8A2BE2" alt="LlamaIndex" /></a>
107
+ <a href="https://docs.donkey-kit.dev/frameworks/strands"><img src="https://img.shields.io/badge/Strands_Agents-FF9900" alt="Strands Agents" /></a>
108
+ <a href="https://docs.donkey-kit.dev/telemetry"><img src="https://img.shields.io/badge/OpenTelemetry-425CC7?logo=opentelemetry&logoColor=white" alt="OpenTelemetry" /></a>
109
+ </p>
110
+
111
+ # Donkey Development Kit
112
+
113
+ An SDK for consuming **Agent Fabric** capabilities — governed model and tool
114
+ access — from your own agent framework, in your own IDE, without adopting Mule.
115
+
116
+ > **Project status — alpha.** This is an early release
117
+ > (`Development Status :: 3 - Alpha`). The **LLM data plane is live-verified**;
118
+ > most other surfaces are verification-gated (see
119
+ > [What's verified](#whats-verified-verification-discipline) below). Install it
120
+ > from PyPI with `pip install donkey-kit` — see [Install](#install).
121
+ > **Unofficial:** an independent project,
122
+ > **not** affiliated with or endorsed by Salesforce or MuleSoft.
123
+
124
+ > ### Support & trademark statement (please read)
125
+ >
126
+ > **"Agent Fabric" is a MuleSoft (Salesforce) product name, not a generic
127
+ > term.** `MuleSoft`, `Anypoint`, `Omni Gateway`, and `Agent Fabric` are
128
+ > Salesforce trademarks.
129
+ >
130
+ > **Maintainer & support.** This is an **independent, community-maintained**
131
+ > project, published under the org-scoped `Donkey-Development-Kit` name — it is **not**
132
+ > affiliated with, endorsed by, or supported by Salesforce or MuleSoft. It is
133
+ > provided **as-is, without warranty of any kind**; the maintainers triage issues
134
+ > and pull requests on a **best-effort basis, with no SLA**. Because it ships
135
+ > under a distinct, org-scoped name, only the descriptive form ("an SDK for
136
+ > MuleSoft Agent Fabric") appears in prose — the package does not represent itself
137
+ > as a first-party, official-status SDK.
138
+ >
139
+ > Licensed under [Apache-2.0](https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/LICENSE). See
140
+ > the [unsupported boundary](https://docs.donkey-kit.dev/reference/unsupported-boundary) for exactly
141
+ > which platform APIs this SDK calls and their support classification.
142
+ >
143
+ > **Security.** Report vulnerabilities privately, never in a public issue. See
144
+ > [`SECURITY.md`](https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/SECURITY.md) for supported versions and how to report.
145
+ >
146
+ > **Python versions.** CPython 3.10–3.14, each tested in CI; a version is
147
+ > dropped in the first minor release after its end of life. See
148
+ > [`docs/python-support.md`](https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/docs/python-support.md).
149
+
150
+ <!-- toc -->
151
+ **Contents**
152
+
153
+ - [Documentation](#documentation)
154
+ - [Install](#install)
155
+ - [Framework support](#framework-support)
156
+ - [What's verified (verification discipline)](#whats-verified-verification-discipline)
157
+ - [Conformance exemptions](#conformance-exemptions)
158
+ <!-- tocstop -->
159
+
160
+ ## Documentation
161
+
162
+ Two audiences, two doc sets:
163
+
164
+ - **Use the SDK** → the documentation site:
165
+ **<https://docs.donkey-kit.dev/>**. Install and
166
+ configure, per-framework model access, the governed error taxonomy, and what
167
+ to trust today — everything you need to point your agent at a governed proxy.
168
+ - **See it run** → runnable demos live in the companion repo
169
+ **[donkey-development-kit-demos](https://github.com/Donkey-Development-Kit/donkey-development-kit-demos)**:
170
+ the framework-free client, native framework objects, the governed error
171
+ taxonomy, and the screen-recording scripts.
172
+ - **Understand or contribute to the repo:**
173
+ - [`ARCHITECTURE.md`](https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/ARCHITECTURE.md) — how the SDK is built: the layered
174
+ stack, the framework-free core, verification discipline, the error taxonomy,
175
+ and framework tiering.
176
+ - [`CONTRIBUTING.md`](https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/CONTRIBUTING.md) — how to work in the repo: the
177
+ branch/PR/release workflow, the testing strategy, coding conventions, and
178
+ the docs-sync rule.
179
+ - [`docs/verified-apis.md`](https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/docs/verified-apis.md) — the verification ledger:
180
+ the single source of truth for what is confirmed against a real sandbox and
181
+ what is still blocked.
182
+
183
+ ## Install
184
+
185
+ ```bash
186
+ pip install "donkey-kit[llm,langgraph]" # base + raw client + one framework
187
+ ```
188
+
189
+ To work on the SDK itself, install from source with the contributor tooling
190
+ (the `dev` dependency group needs pip 25.1 or later):
191
+
192
+ ```bash
193
+ git clone https://github.com/Donkey-Development-Kit/donkey-development-kit.git
194
+ cd donkey-development-kit/python
195
+ pip install -e ".[llm,cli]" --group dev
196
+ ```
197
+
198
+ Extras are one per framework (`langgraph`, `adk`, `strands`, `agent_framework`,
199
+ `openai-agents`, `anthropic`, `crewai`, `llamaindex`) plus `otel`, `cli`, `local`,
200
+ `a2a` (the official `a2a-sdk`, for `donkey.serve()`), `mcp` (the MCP client a
201
+ governed `ToolSet` binds with), `test` (the [conformance pytest plugin](https://docs.donkey-kit.dev/testing) —
202
+ `pytest --donkey-conformance --donkey-agent=my_app.agent:build`), and `all`. `all` is
203
+ everything a user runs that installs together — `llm`, `langgraph`, `otel`, `cli`,
204
+ `local`, `a2a`, `mcp` — with no test runner, so add `test` for the conformance plugin:
205
+ `donkey-kit[all,test]`. It leaves out the seven other framework extras, because
206
+ whether they install together depends on their upstream releases. The generated
207
+ [co-installability table](https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/docs/co-installability.md) shows which combinations resolve, re-checked
208
+ nightly. Add the one framework you use: `donkey-kit[all,crewai]`.
209
+ Configuration and first-agent walkthroughs live on the
210
+ [documentation site](https://docs.donkey-kit.dev/). Features that call the Anypoint
211
+ control plane (registry, tool discovery, `donkey publish`) need a connected app
212
+ with the scopes listed per operation in [`docs/scopes.md`](https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/docs/scopes.md).
213
+
214
+ ## Framework support
215
+
216
+ The roster is deliberately **two deep, six shallow** (`BG §1.8`): LangGraph and
217
+ the OpenAI Agents SDK are held to the full conformance bar, the rest supported
218
+ through the three-line `connection_kwargs()` escape hatch. Every framework below returns its framework's
219
+ **own native object** — never a wrapper.
220
+
221
+ <!-- BEGIN GENERATED: framework-status (edit docs/verified-apis.md §8, then run python/scripts/generate_docs.py) -->
222
+ Each factory's status is its constructor row in the [`docs/verified-apis.md` §8](https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/docs/verified-apis.md); its
223
+ depth is the adapter roster's `conformance_tested`.
224
+
225
+ | Framework | Factory | Depth | Ledger status |
226
+ |---|---|---|---|
227
+ | LangGraph | `donkey.langgraph.chat_model()` | **Conformance-tested** | **Live-verified** |
228
+ | Google ADK | `donkey.adk.model()` | `connection_kwargs()` | **Live-verified** |
229
+ | Google ADK | `donkey.adk.gemini()` | `connection_kwargs()` | **Live-verified** |
230
+ | Strands | `donkey.strands.model()` | `connection_kwargs()` | **Live-verified** |
231
+ | MS Agent Framework | `donkey.agent_framework.chat_client()` | `connection_kwargs()` | **Live-verified** |
232
+ | OpenAI Agents SDK | `donkey.openai_agents.model()` | **Conformance-tested** | **Live-verified** |
233
+ | Anthropic SDK | `donkey.anthropic.client()` | `connection_kwargs()` | **Live-verified** |
234
+ | CrewAI | `donkey.crewai.llm()` | `connection_kwargs()` | **Live-verified** |
235
+ | LlamaIndex | `donkey.llamaindex.llm()` | `connection_kwargs()` | **Live-verified** |
236
+ <!-- END GENERATED: framework-status -->
237
+
238
+ **Signature-confirmed** means the factory builds its native object against the
239
+ installed framework (`scripts/verify_frameworks.py`), with no live round-trip.
240
+ **Live-verified** means a real round-trip through a governed proxy. The raw
241
+ client (`donkey.llm.client()`) is conformance-tested too.
242
+
243
+ `connection_kwargs()` works for all eight; a deep adapter is promoted from demand
244
+ evidence, one at a time — never guessed up front. The OpenAI Agents SDK was the
245
+ second, on Phase 1 demand (#223); the next is #244. See the
246
+ [framework pages](https://docs.donkey-kit.dev/frameworks/)
247
+ for each. Which framework versions are supported and tested is on the site's
248
+ [version compatibility](https://docs.donkey-kit.dev/frameworks/compatibility)
249
+ page and in [`docs/framework-support.md`](https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/docs/framework-support.md).
250
+
251
+ ## What's verified (verification discipline)
252
+
253
+ The **LLM data plane** — governed model access through the Omni Gateway proxy —
254
+ is live-verified against a real Anypoint sandbox. The framework-free client and
255
+ the framework adapters are wired to that contract; the raw client is
256
+ conformance-tested against the simulator. For the adapters (each factory is
257
+ listed under [Framework support](#framework-support)):
258
+
259
+ <!-- BEGIN GENERATED: framework-status-summary (edit docs/verified-apis.md §8, then run python/scripts/generate_docs.py) -->
260
+ LangGraph and OpenAI Agents SDK are conformance-tested against the simulator in CI.
261
+ Each adapter factory's constructor row in §8 of the ledger reads **live-verified**.
262
+ <!-- END GENERATED: framework-status-summary -->
263
+
264
+ Everything still gated raises `NotImplementedError("blocked on verification: …")`
265
+ rather than guessing at an unverified endpoint, header, or class name. That
266
+ currently covers a `Publication`'s descriptor derivation (`preview()`, `export()`),
267
+ the governed-state
268
+ search filters (`search(governed=, environment=, domain=)`) and the hidden
269
+ `donkey status` command. Exchange search and the publication of scanned MCP
270
+ servers and agents (`donkey publish`, `donkey verify`) are verified against a
271
+ live sandbox. MCP tool discovery and every framework's `ToolSet` binding are
272
+ verified through the governed gateway: behind Client ID Enforcement all eight
273
+ frameworks called a bound tool (#1312); behind JWT Validation seven did and
274
+ ADK's tools were listed but not called (#221). Their types (`ToolSet`,
275
+ `GovernanceCriteria`, `UngovernedMcpServer`, …) are exported from `donkey_kit`. The SDK
276
+ does not ship a provisioning control plane (ADR 0008 in `docs/adr/`). The adapters build their framework's native object directly; they
277
+ refuse only when the installed framework version lacks the class or field the
278
+ adapter depends on.
279
+
280
+ The discipline behind this is documented in
281
+ [`ARCHITECTURE.md` → Verification discipline](https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/ARCHITECTURE.md#verification-discipline);
282
+ the row-by-row worklist is [`docs/verified-apis.md`](https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/docs/verified-apis.md).
283
+
284
+ ## Conformance exemptions
285
+
286
+ The [conformance plugin](https://docs.donkey-kit.dev/testing)
287
+ holds the SDK to the same bar it asks of your agent. Where a framework
288
+ legitimately cannot satisfy a scenario, the reason is asserted in code
289
+ (`KNOWN_LIMITATIONS`) and published here as credibility — never a silent skip
290
+ (the conformance kit):
291
+
292
+ | Framework | Scenario | Why it's exempt |
293
+ | --- | --- | --- |
294
+ | CrewAI | correlation ID propagated | CrewAI's native OpenAI provider builds both its sync `OpenAI` and its `AsyncOpenAI` from one `client_params` dict, and with an interceptor set it replaces `http_client` with its own `httpx` client, so the SDK's async client cannot be injected and the correlation ID ends up per-client, not per-run. ADK (`model()` and `gemini()`), LlamaIndex and Microsoft Agent Framework send through the SDK's shared client and record no exemption (#691, #740). |
295
+ | CrewAI | gateway identity observed | For the same reason, no response reaches the SDK's `_on_response` hook. When every resolved adapter is non-observing, `donkey.last_call` reports `UNAVAILABLE` and names them in `surface`. |
296
+ | CrewAI | JWT refreshed per send | CrewAI's native OpenAI provider owns the transport and builds its own clients, so the rotating JWT the SDK adds per send never reaches its requests. `donkey.crewai.llm()` and `connection_kwargs()` raise `ConfigError` in `jwt` mode; use client-id auth with CrewAI. ADK's `model()` and `gemini()`, LlamaIndex and Microsoft Agent Framework send through the SDK's client and carry the rotating JWT on async calls ([`jwt` mode](https://docs.donkey-kit.dev/reference/configuration#jwt--model-wallet-auth-mode)). |
297
+ | CrewAI | budget refusal not retried | CrewAI wraps every LLM call in its own rate-limit retry (3 attempts) and treats any `429` as a rate limit, so a `TokenBudgetExceeded` or `RequestRateLimitExceeded` refusal is sent 3 times. CrewAI has no setting to turn it off; the OpenAI client underneath has `max_retries=0`. Every other adapter sends a budget refusal once (#734). |
298
+ | CrewAI | typed refusal bridged | CrewAI's native OpenAI provider owns the transport, so its errors come from a client the SDK never saw, and `donkey.run()` and `typed_refusals()` cannot tell a gateway refusal from any other failure there and pass those errors through (#724). ADK's `gemini()` and `model()` send through the SDK's transport and are bridged (conformance-tested in #955 and #969). LiteLLM, under `model()`, re-raises a refusal as its own exception, and the adapter's `llm_client` marks that exception with the refusal the SDK's transport received. |
299
+ | CrewAI | refusal handler cannot un-refuse | CrewAI's native OpenAI provider owns the transport, so its refusals never reach the SDK's `_on_refusal` hook and handlers registered with [`donkey.on(...)`](https://docs.donkey-kit.dev/refusal-handlers) do not run for its calls. Every other adapter runs them, and none can turn a refusal into a success (#208, #209). |
300
+ | CrewAI | custom policy typed | For the same reason, a refusal shape registered with [`classify.register()`](https://docs.donkey-kit.dev/custom-policies) is neither typed by `donkey.run()` nor seen by `donkey.on(...)` handlers for CrewAI's calls. Every other adapter raises the registered type, runs its handlers and records its slug as `donkey.policy.type` (#210). |
301
+ | CrewAI | agent kill stops cleanly | CrewAI's native OpenAI provider owns the transport, so a kill-switch refusal never reaches the SDK's transport: it does not stop [`donkey.budget.pace()`](https://docs.donkey-kit.dev/budget) loops or flush spans, and CrewAI's own rate-limit retry decides whether the call is re-sent. Every other adapter sends the kill once, stops every pace loop on the same `Donkey`, and flushes spans before the `AgentKilled` reaches your code (#220). |
302
+ | CrewAI | approval round trip | CrewAI's native OpenAI provider owns the transport, so when an approved [`@donkey.tool(approval="required")`](https://docs.donkey-kit.dev/hitl) resumes, its model call carries neither the approval's correlation ID nor a typed refusal. The pause and the approver's span event work as for any Python code. The round trip runs on the raw client and LangGraph (#211, #212), the OpenAI Agents SDK, which pauses on its own `needs_approval` and resumes from the `RunState` (#213), and Strands' and ADK's own pauses (#1234, #1235): each resumes the call under the decision's correlation ID, and the gateway still judges it, so a refusal comes back typed. |
303
+ | Google ADK | multi-server name collision | `ToolSet.adk()` binds each MCP server as one `McpToolset`, which takes an allow-list of tool names but cannot rename a single tool. When two servers expose a tool under the same name, the bind raises `ConfigError` before it connects; `filter(deny=["<server>__<tool>"])` keeps one of each. The LangGraph, LlamaIndex and Anthropic bindings bind each tool on its own and expose both as `<server>__<tool>` (#991). |
304
+ | Strands Agents | multi-server name collision | For the same reason: `ToolSet.strands()` binds each server as one `MCPClient`, filtered by `tool_filters`. |
305
+ | OpenAI Agents SDK | multi-server name collision | For the same reason: `ToolSet.openai_agents()` binds each server as one `MCPServerStreamableHttp`, filtered by a static `tool_filter`. Its model calls record no exemption. |
306
+ | Microsoft Agent Framework | multi-server name collision | For the same reason: `ToolSet.agent_framework()` binds each server as one `MCPStreamableHTTPTool`, filtered by `allowed_tools`. |
307
+ | CrewAI | multi-server name collision | For the same reason: `ToolSet.crewai()` binds each server as one `crewai_tools.MCPServerAdapter`, filtered by its `tool_names`. |
308
+ | Google ADK | MCP tool denial typed | `ToolSet.adk()` leaves each tool call to `McpToolset`, which turns the gateway's MCP access denial (JSON-RPC `-32008` "Unable to access") into an error result whose text has lost the code, so the SDK cannot raise [`ToolNotInProfile`](https://docs.donkey-kit.dev/tool-access/binding#tools-outside-your-access-profile) from it. |
309
+ | Strands Agents | MCP tool denial typed | For the same reason: `MCPClient` returns the denial as a `status: error` tool result without the code. |
310
+ | Google ADK | MCP policy refusal typed | `ToolSet.adk()` returns captured request/response PII refusals as error text, losing the structured policy fields. Nothing is raised for `typed_refusals()` to recover (#1388). |
311
+ | Strands Agents | MCP policy refusal typed | For the same reason: `MCPClient` returns an error result rather than raising the captured PII refusal. |
312
+ | CrewAI | MCP policy refusal typed | With the locked MCP 1.x stack, captured HTTP 403 PII refusals leave the tool future unresolved. A bounded local probe asserts the timeout. HTTP 200 access denials remain recoverable with `typed_refusals()` (#1388). |
313
+
314
+ Each transport exemption matches what the adapter reports in `donkey.<framework>.capabilities()` (a frozen `AdapterCapabilities` per factory): an adapter is exempt from the transport scenarios exactly when it reports `transport="framework"`, from gateway identity exactly when `observes_last_call` is false, and from the typed-refusal bridge exactly when `typed_refusals` is false. A unit test keeps the two in step (#726). The refusal-handler, custom-policy and kill scenarios run against every factory that reports `transport="shared"`, and a factory added without a run fails the suite (#1441). The multi-server and MCP tool denial rows are about binding MCP tools with [`ToolSet`](https://docs.donkey-kit.dev/tool-access/binding), not the model transport, so `capabilities()` does not report them.
315
+
316
+ <!-- Generated from the repository README.md by python/scripts/generate_docs.py; edit that file, then run the script. -->
@@ -0,0 +1,231 @@
1
+ <p align="center">
2
+ <img src="https://raw.githubusercontent.com/Donkey-Development-Kit/donkey-development-kit/main/brand/ddk-logo-stacked-black.png" alt="Donkey Development Kit (DDK)" width="180" />
3
+ </p>
4
+
5
+ <p align="center">
6
+ <a href="https://pypi.org/project/donkey-kit/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpypi.org%2Fpypi%2Fdonkey-kit%2Fjson&query=%24.info.version&prefix=v&label=PyPI&logo=pypi&logoColor=white&color=blue&cacheSeconds=300" alt="donkey-kit on PyPI" /></a>
7
+ <a href="https://pypi.org/project/donkey-kit/"><img src="https://img.shields.io/pypi/pyversions/donkey-kit?logo=python&logoColor=white" alt="Supported Python versions" /></a>
8
+ <a href="https://github.com/Donkey-Development-Kit/donkey-development-kit/actions/workflows/ci.yml?query=branch%3Adevelop"><img src="https://img.shields.io/github/actions/workflow/status/Donkey-Development-Kit/donkey-development-kit/ci.yml?branch=develop&label=CI&logo=githubactions&logoColor=white" alt="CI status" /></a>
9
+ <a href="https://pepy.tech/projects/donkey-kit"><img src="https://img.shields.io/pepy/dt/donkey-kit?label=downloads" alt="Total downloads" /></a>
10
+ <a href="https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/LICENSE"><img src="https://img.shields.io/pypi/l/donkey-kit?color=green" alt="License: Apache-2.0" /></a>
11
+ <a href="https://docs.donkey-kit.dev"><img src="https://img.shields.io/badge/docs-docs.donkey--kit.dev-0A7BBB?logo=readthedocs&logoColor=white" alt="Documentation" /></a>
12
+ </p>
13
+
14
+ <p align="center">
15
+ <a href="https://docs.donkey-kit.dev/frameworks/langgraph"><img src="https://img.shields.io/badge/LangGraph-1C3C3C?logo=langgraph&logoColor=white" alt="LangGraph" /></a>
16
+ <a href="https://docs.donkey-kit.dev/frameworks/adk"><img src="https://img.shields.io/badge/Google_ADK-4285F4?logo=google&logoColor=white" alt="Google ADK" /></a>
17
+ <a href="https://docs.donkey-kit.dev/frameworks/openai"><img src="https://img.shields.io/badge/OpenAI_Agents_SDK-412991" alt="OpenAI Agents SDK" /></a>
18
+ <a href="https://docs.donkey-kit.dev/frameworks/agent-framework"><img src="https://img.shields.io/badge/Microsoft_Agent_Framework-5E5E5E" alt="Microsoft Agent Framework" /></a>
19
+ <a href="https://docs.donkey-kit.dev/frameworks/anthropic"><img src="https://img.shields.io/badge/Anthropic-191919?logo=anthropic&logoColor=white" alt="Anthropic" /></a>
20
+ <a href="https://docs.donkey-kit.dev/frameworks/crewai"><img src="https://img.shields.io/badge/CrewAI-FF5A50?logo=crewai&logoColor=white" alt="CrewAI" /></a>
21
+ <a href="https://docs.donkey-kit.dev/frameworks/llamaindex"><img src="https://img.shields.io/badge/LlamaIndex-8A2BE2" alt="LlamaIndex" /></a>
22
+ <a href="https://docs.donkey-kit.dev/frameworks/strands"><img src="https://img.shields.io/badge/Strands_Agents-FF9900" alt="Strands Agents" /></a>
23
+ <a href="https://docs.donkey-kit.dev/telemetry"><img src="https://img.shields.io/badge/OpenTelemetry-425CC7?logo=opentelemetry&logoColor=white" alt="OpenTelemetry" /></a>
24
+ </p>
25
+
26
+ # Donkey Development Kit
27
+
28
+ An SDK for consuming **Agent Fabric** capabilities — governed model and tool
29
+ access — from your own agent framework, in your own IDE, without adopting Mule.
30
+
31
+ > **Project status — alpha.** This is an early release
32
+ > (`Development Status :: 3 - Alpha`). The **LLM data plane is live-verified**;
33
+ > most other surfaces are verification-gated (see
34
+ > [What's verified](#whats-verified-verification-discipline) below). Install it
35
+ > from PyPI with `pip install donkey-kit` — see [Install](#install).
36
+ > **Unofficial:** an independent project,
37
+ > **not** affiliated with or endorsed by Salesforce or MuleSoft.
38
+
39
+ > ### Support & trademark statement (please read)
40
+ >
41
+ > **"Agent Fabric" is a MuleSoft (Salesforce) product name, not a generic
42
+ > term.** `MuleSoft`, `Anypoint`, `Omni Gateway`, and `Agent Fabric` are
43
+ > Salesforce trademarks.
44
+ >
45
+ > **Maintainer & support.** This is an **independent, community-maintained**
46
+ > project, published under the org-scoped `Donkey-Development-Kit` name — it is **not**
47
+ > affiliated with, endorsed by, or supported by Salesforce or MuleSoft. It is
48
+ > provided **as-is, without warranty of any kind**; the maintainers triage issues
49
+ > and pull requests on a **best-effort basis, with no SLA**. Because it ships
50
+ > under a distinct, org-scoped name, only the descriptive form ("an SDK for
51
+ > MuleSoft Agent Fabric") appears in prose — the package does not represent itself
52
+ > as a first-party, official-status SDK.
53
+ >
54
+ > Licensed under [Apache-2.0](https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/LICENSE). See
55
+ > the [unsupported boundary](https://docs.donkey-kit.dev/reference/unsupported-boundary) for exactly
56
+ > which platform APIs this SDK calls and their support classification.
57
+ >
58
+ > **Security.** Report vulnerabilities privately, never in a public issue. See
59
+ > [`SECURITY.md`](https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/SECURITY.md) for supported versions and how to report.
60
+ >
61
+ > **Python versions.** CPython 3.10–3.14, each tested in CI; a version is
62
+ > dropped in the first minor release after its end of life. See
63
+ > [`docs/python-support.md`](https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/docs/python-support.md).
64
+
65
+ <!-- toc -->
66
+ **Contents**
67
+
68
+ - [Documentation](#documentation)
69
+ - [Install](#install)
70
+ - [Framework support](#framework-support)
71
+ - [What's verified (verification discipline)](#whats-verified-verification-discipline)
72
+ - [Conformance exemptions](#conformance-exemptions)
73
+ <!-- tocstop -->
74
+
75
+ ## Documentation
76
+
77
+ Two audiences, two doc sets:
78
+
79
+ - **Use the SDK** → the documentation site:
80
+ **<https://docs.donkey-kit.dev/>**. Install and
81
+ configure, per-framework model access, the governed error taxonomy, and what
82
+ to trust today — everything you need to point your agent at a governed proxy.
83
+ - **See it run** → runnable demos live in the companion repo
84
+ **[donkey-development-kit-demos](https://github.com/Donkey-Development-Kit/donkey-development-kit-demos)**:
85
+ the framework-free client, native framework objects, the governed error
86
+ taxonomy, and the screen-recording scripts.
87
+ - **Understand or contribute to the repo:**
88
+ - [`ARCHITECTURE.md`](https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/ARCHITECTURE.md) — how the SDK is built: the layered
89
+ stack, the framework-free core, verification discipline, the error taxonomy,
90
+ and framework tiering.
91
+ - [`CONTRIBUTING.md`](https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/CONTRIBUTING.md) — how to work in the repo: the
92
+ branch/PR/release workflow, the testing strategy, coding conventions, and
93
+ the docs-sync rule.
94
+ - [`docs/verified-apis.md`](https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/docs/verified-apis.md) — the verification ledger:
95
+ the single source of truth for what is confirmed against a real sandbox and
96
+ what is still blocked.
97
+
98
+ ## Install
99
+
100
+ ```bash
101
+ pip install "donkey-kit[llm,langgraph]" # base + raw client + one framework
102
+ ```
103
+
104
+ To work on the SDK itself, install from source with the contributor tooling
105
+ (the `dev` dependency group needs pip 25.1 or later):
106
+
107
+ ```bash
108
+ git clone https://github.com/Donkey-Development-Kit/donkey-development-kit.git
109
+ cd donkey-development-kit/python
110
+ pip install -e ".[llm,cli]" --group dev
111
+ ```
112
+
113
+ Extras are one per framework (`langgraph`, `adk`, `strands`, `agent_framework`,
114
+ `openai-agents`, `anthropic`, `crewai`, `llamaindex`) plus `otel`, `cli`, `local`,
115
+ `a2a` (the official `a2a-sdk`, for `donkey.serve()`), `mcp` (the MCP client a
116
+ governed `ToolSet` binds with), `test` (the [conformance pytest plugin](https://docs.donkey-kit.dev/testing) —
117
+ `pytest --donkey-conformance --donkey-agent=my_app.agent:build`), and `all`. `all` is
118
+ everything a user runs that installs together — `llm`, `langgraph`, `otel`, `cli`,
119
+ `local`, `a2a`, `mcp` — with no test runner, so add `test` for the conformance plugin:
120
+ `donkey-kit[all,test]`. It leaves out the seven other framework extras, because
121
+ whether they install together depends on their upstream releases. The generated
122
+ [co-installability table](https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/docs/co-installability.md) shows which combinations resolve, re-checked
123
+ nightly. Add the one framework you use: `donkey-kit[all,crewai]`.
124
+ Configuration and first-agent walkthroughs live on the
125
+ [documentation site](https://docs.donkey-kit.dev/). Features that call the Anypoint
126
+ control plane (registry, tool discovery, `donkey publish`) need a connected app
127
+ with the scopes listed per operation in [`docs/scopes.md`](https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/docs/scopes.md).
128
+
129
+ ## Framework support
130
+
131
+ The roster is deliberately **two deep, six shallow** (`BG §1.8`): LangGraph and
132
+ the OpenAI Agents SDK are held to the full conformance bar, the rest supported
133
+ through the three-line `connection_kwargs()` escape hatch. Every framework below returns its framework's
134
+ **own native object** — never a wrapper.
135
+
136
+ <!-- BEGIN GENERATED: framework-status (edit docs/verified-apis.md §8, then run python/scripts/generate_docs.py) -->
137
+ Each factory's status is its constructor row in the [`docs/verified-apis.md` §8](https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/docs/verified-apis.md); its
138
+ depth is the adapter roster's `conformance_tested`.
139
+
140
+ | Framework | Factory | Depth | Ledger status |
141
+ |---|---|---|---|
142
+ | LangGraph | `donkey.langgraph.chat_model()` | **Conformance-tested** | **Live-verified** |
143
+ | Google ADK | `donkey.adk.model()` | `connection_kwargs()` | **Live-verified** |
144
+ | Google ADK | `donkey.adk.gemini()` | `connection_kwargs()` | **Live-verified** |
145
+ | Strands | `donkey.strands.model()` | `connection_kwargs()` | **Live-verified** |
146
+ | MS Agent Framework | `donkey.agent_framework.chat_client()` | `connection_kwargs()` | **Live-verified** |
147
+ | OpenAI Agents SDK | `donkey.openai_agents.model()` | **Conformance-tested** | **Live-verified** |
148
+ | Anthropic SDK | `donkey.anthropic.client()` | `connection_kwargs()` | **Live-verified** |
149
+ | CrewAI | `donkey.crewai.llm()` | `connection_kwargs()` | **Live-verified** |
150
+ | LlamaIndex | `donkey.llamaindex.llm()` | `connection_kwargs()` | **Live-verified** |
151
+ <!-- END GENERATED: framework-status -->
152
+
153
+ **Signature-confirmed** means the factory builds its native object against the
154
+ installed framework (`scripts/verify_frameworks.py`), with no live round-trip.
155
+ **Live-verified** means a real round-trip through a governed proxy. The raw
156
+ client (`donkey.llm.client()`) is conformance-tested too.
157
+
158
+ `connection_kwargs()` works for all eight; a deep adapter is promoted from demand
159
+ evidence, one at a time — never guessed up front. The OpenAI Agents SDK was the
160
+ second, on Phase 1 demand (#223); the next is #244. See the
161
+ [framework pages](https://docs.donkey-kit.dev/frameworks/)
162
+ for each. Which framework versions are supported and tested is on the site's
163
+ [version compatibility](https://docs.donkey-kit.dev/frameworks/compatibility)
164
+ page and in [`docs/framework-support.md`](https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/docs/framework-support.md).
165
+
166
+ ## What's verified (verification discipline)
167
+
168
+ The **LLM data plane** — governed model access through the Omni Gateway proxy —
169
+ is live-verified against a real Anypoint sandbox. The framework-free client and
170
+ the framework adapters are wired to that contract; the raw client is
171
+ conformance-tested against the simulator. For the adapters (each factory is
172
+ listed under [Framework support](#framework-support)):
173
+
174
+ <!-- BEGIN GENERATED: framework-status-summary (edit docs/verified-apis.md §8, then run python/scripts/generate_docs.py) -->
175
+ LangGraph and OpenAI Agents SDK are conformance-tested against the simulator in CI.
176
+ Each adapter factory's constructor row in §8 of the ledger reads **live-verified**.
177
+ <!-- END GENERATED: framework-status-summary -->
178
+
179
+ Everything still gated raises `NotImplementedError("blocked on verification: …")`
180
+ rather than guessing at an unverified endpoint, header, or class name. That
181
+ currently covers a `Publication`'s descriptor derivation (`preview()`, `export()`),
182
+ the governed-state
183
+ search filters (`search(governed=, environment=, domain=)`) and the hidden
184
+ `donkey status` command. Exchange search and the publication of scanned MCP
185
+ servers and agents (`donkey publish`, `donkey verify`) are verified against a
186
+ live sandbox. MCP tool discovery and every framework's `ToolSet` binding are
187
+ verified through the governed gateway: behind Client ID Enforcement all eight
188
+ frameworks called a bound tool (#1312); behind JWT Validation seven did and
189
+ ADK's tools were listed but not called (#221). Their types (`ToolSet`,
190
+ `GovernanceCriteria`, `UngovernedMcpServer`, …) are exported from `donkey_kit`. The SDK
191
+ does not ship a provisioning control plane (ADR 0008 in `docs/adr/`). The adapters build their framework's native object directly; they
192
+ refuse only when the installed framework version lacks the class or field the
193
+ adapter depends on.
194
+
195
+ The discipline behind this is documented in
196
+ [`ARCHITECTURE.md` → Verification discipline](https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/ARCHITECTURE.md#verification-discipline);
197
+ the row-by-row worklist is [`docs/verified-apis.md`](https://github.com/Donkey-Development-Kit/donkey-development-kit/blob/main/docs/verified-apis.md).
198
+
199
+ ## Conformance exemptions
200
+
201
+ The [conformance plugin](https://docs.donkey-kit.dev/testing)
202
+ holds the SDK to the same bar it asks of your agent. Where a framework
203
+ legitimately cannot satisfy a scenario, the reason is asserted in code
204
+ (`KNOWN_LIMITATIONS`) and published here as credibility — never a silent skip
205
+ (the conformance kit):
206
+
207
+ | Framework | Scenario | Why it's exempt |
208
+ | --- | --- | --- |
209
+ | CrewAI | correlation ID propagated | CrewAI's native OpenAI provider builds both its sync `OpenAI` and its `AsyncOpenAI` from one `client_params` dict, and with an interceptor set it replaces `http_client` with its own `httpx` client, so the SDK's async client cannot be injected and the correlation ID ends up per-client, not per-run. ADK (`model()` and `gemini()`), LlamaIndex and Microsoft Agent Framework send through the SDK's shared client and record no exemption (#691, #740). |
210
+ | CrewAI | gateway identity observed | For the same reason, no response reaches the SDK's `_on_response` hook. When every resolved adapter is non-observing, `donkey.last_call` reports `UNAVAILABLE` and names them in `surface`. |
211
+ | CrewAI | JWT refreshed per send | CrewAI's native OpenAI provider owns the transport and builds its own clients, so the rotating JWT the SDK adds per send never reaches its requests. `donkey.crewai.llm()` and `connection_kwargs()` raise `ConfigError` in `jwt` mode; use client-id auth with CrewAI. ADK's `model()` and `gemini()`, LlamaIndex and Microsoft Agent Framework send through the SDK's client and carry the rotating JWT on async calls ([`jwt` mode](https://docs.donkey-kit.dev/reference/configuration#jwt--model-wallet-auth-mode)). |
212
+ | CrewAI | budget refusal not retried | CrewAI wraps every LLM call in its own rate-limit retry (3 attempts) and treats any `429` as a rate limit, so a `TokenBudgetExceeded` or `RequestRateLimitExceeded` refusal is sent 3 times. CrewAI has no setting to turn it off; the OpenAI client underneath has `max_retries=0`. Every other adapter sends a budget refusal once (#734). |
213
+ | CrewAI | typed refusal bridged | CrewAI's native OpenAI provider owns the transport, so its errors come from a client the SDK never saw, and `donkey.run()` and `typed_refusals()` cannot tell a gateway refusal from any other failure there and pass those errors through (#724). ADK's `gemini()` and `model()` send through the SDK's transport and are bridged (conformance-tested in #955 and #969). LiteLLM, under `model()`, re-raises a refusal as its own exception, and the adapter's `llm_client` marks that exception with the refusal the SDK's transport received. |
214
+ | CrewAI | refusal handler cannot un-refuse | CrewAI's native OpenAI provider owns the transport, so its refusals never reach the SDK's `_on_refusal` hook and handlers registered with [`donkey.on(...)`](https://docs.donkey-kit.dev/refusal-handlers) do not run for its calls. Every other adapter runs them, and none can turn a refusal into a success (#208, #209). |
215
+ | CrewAI | custom policy typed | For the same reason, a refusal shape registered with [`classify.register()`](https://docs.donkey-kit.dev/custom-policies) is neither typed by `donkey.run()` nor seen by `donkey.on(...)` handlers for CrewAI's calls. Every other adapter raises the registered type, runs its handlers and records its slug as `donkey.policy.type` (#210). |
216
+ | CrewAI | agent kill stops cleanly | CrewAI's native OpenAI provider owns the transport, so a kill-switch refusal never reaches the SDK's transport: it does not stop [`donkey.budget.pace()`](https://docs.donkey-kit.dev/budget) loops or flush spans, and CrewAI's own rate-limit retry decides whether the call is re-sent. Every other adapter sends the kill once, stops every pace loop on the same `Donkey`, and flushes spans before the `AgentKilled` reaches your code (#220). |
217
+ | CrewAI | approval round trip | CrewAI's native OpenAI provider owns the transport, so when an approved [`@donkey.tool(approval="required")`](https://docs.donkey-kit.dev/hitl) resumes, its model call carries neither the approval's correlation ID nor a typed refusal. The pause and the approver's span event work as for any Python code. The round trip runs on the raw client and LangGraph (#211, #212), the OpenAI Agents SDK, which pauses on its own `needs_approval` and resumes from the `RunState` (#213), and Strands' and ADK's own pauses (#1234, #1235): each resumes the call under the decision's correlation ID, and the gateway still judges it, so a refusal comes back typed. |
218
+ | Google ADK | multi-server name collision | `ToolSet.adk()` binds each MCP server as one `McpToolset`, which takes an allow-list of tool names but cannot rename a single tool. When two servers expose a tool under the same name, the bind raises `ConfigError` before it connects; `filter(deny=["<server>__<tool>"])` keeps one of each. The LangGraph, LlamaIndex and Anthropic bindings bind each tool on its own and expose both as `<server>__<tool>` (#991). |
219
+ | Strands Agents | multi-server name collision | For the same reason: `ToolSet.strands()` binds each server as one `MCPClient`, filtered by `tool_filters`. |
220
+ | OpenAI Agents SDK | multi-server name collision | For the same reason: `ToolSet.openai_agents()` binds each server as one `MCPServerStreamableHttp`, filtered by a static `tool_filter`. Its model calls record no exemption. |
221
+ | Microsoft Agent Framework | multi-server name collision | For the same reason: `ToolSet.agent_framework()` binds each server as one `MCPStreamableHTTPTool`, filtered by `allowed_tools`. |
222
+ | CrewAI | multi-server name collision | For the same reason: `ToolSet.crewai()` binds each server as one `crewai_tools.MCPServerAdapter`, filtered by its `tool_names`. |
223
+ | Google ADK | MCP tool denial typed | `ToolSet.adk()` leaves each tool call to `McpToolset`, which turns the gateway's MCP access denial (JSON-RPC `-32008` "Unable to access") into an error result whose text has lost the code, so the SDK cannot raise [`ToolNotInProfile`](https://docs.donkey-kit.dev/tool-access/binding#tools-outside-your-access-profile) from it. |
224
+ | Strands Agents | MCP tool denial typed | For the same reason: `MCPClient` returns the denial as a `status: error` tool result without the code. |
225
+ | Google ADK | MCP policy refusal typed | `ToolSet.adk()` returns captured request/response PII refusals as error text, losing the structured policy fields. Nothing is raised for `typed_refusals()` to recover (#1388). |
226
+ | Strands Agents | MCP policy refusal typed | For the same reason: `MCPClient` returns an error result rather than raising the captured PII refusal. |
227
+ | CrewAI | MCP policy refusal typed | With the locked MCP 1.x stack, captured HTTP 403 PII refusals leave the tool future unresolved. A bounded local probe asserts the timeout. HTTP 200 access denials remain recoverable with `typed_refusals()` (#1388). |
228
+
229
+ Each transport exemption matches what the adapter reports in `donkey.<framework>.capabilities()` (a frozen `AdapterCapabilities` per factory): an adapter is exempt from the transport scenarios exactly when it reports `transport="framework"`, from gateway identity exactly when `observes_last_call` is false, and from the typed-refusal bridge exactly when `typed_refusals` is false. A unit test keeps the two in step (#726). The refusal-handler, custom-policy and kill scenarios run against every factory that reports `transport="shared"`, and a factory added without a run fails the suite (#1441). The multi-server and MCP tool denial rows are about binding MCP tools with [`ToolSet`](https://docs.donkey-kit.dev/tool-access/binding), not the model transport, so `capabilities()` does not report them.
230
+
231
+ <!-- Generated from the repository README.md by python/scripts/generate_docs.py; edit that file, then run the script. -->