agent-engine-runner-shared 0.11.11__tar.gz → 0.11.13__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 (263) hide show
  1. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/CHANGELOG.md +17 -0
  2. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/Dockerfile +1 -1
  3. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/PKG-INFO +3 -3
  4. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/docs/api.md +46 -28
  5. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/pyproject.toml +3 -3
  6. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/__init__.py +2 -0
  7. agent_engine_runner_shared-0.11.13/src/agent_engine_runner_shared/__main__.py +12 -0
  8. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/agent_config.py +35 -8
  9. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/connectors/README.md +15 -11
  10. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/connectors/__init__.py +2 -0
  11. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/connectors/bundle.py +3 -3
  12. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/connectors/create_tool.py +32 -60
  13. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/connectors/definitions.py +151 -108
  14. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/connectors/executor.py +11 -12
  15. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/connectors/generate/README.md +17 -8
  16. agent_engine_runner_shared-0.11.13/src/agent_engine_runner_shared/connectors/generate/authoring.py +361 -0
  17. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/connectors/generate/catalog.py +79 -29
  18. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/connectors/generate/modes.py +76 -16
  19. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/connectors/generate/security.py +89 -49
  20. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/connectors/materialize.py +4 -6
  21. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/custom_events.py +9 -9
  22. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/error_reporting.py +44 -1
  23. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/mcp_oauth.py +2 -0
  24. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/mcp_oauth_cli.py +2 -0
  25. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/mcp_tools.py +6 -1
  26. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/memory_appbound.py +10 -0
  27. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/models.py +75 -5
  28. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/runtime.py +10 -8
  29. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/secure_llm_proxy.py +8 -4
  30. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/secure_wrapper.py +115 -29
  31. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/server/__init__.py +0 -2
  32. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/server/aer.py +48 -18
  33. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/server/base.py +1 -0
  34. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/server/chunk_types.py +7 -4
  35. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/server/http_retry.py +4 -5
  36. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/server/tool.py +59 -40
  37. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/structured_logging.py +0 -3
  38. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/tool_api_error.py +14 -0
  39. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/toolpod_handlers.py +4 -2
  40. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/tracing/__init__.py +6 -0
  41. agent_engine_runner_shared-0.11.13/src/agent_engine_runner_shared/tracing/conversation.py +214 -0
  42. agent_engine_runner_shared-0.11.13/src/agent_engine_runner_shared/tracing/exporters.py +951 -0
  43. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/tracing/setup.py +116 -14
  44. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/utils.py +1 -8
  45. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/workflow/__init__.py +2 -0
  46. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/workflow/activity.py +3 -2
  47. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/workflow/context.py +74 -4
  48. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/corpus/test_api_corpus.py +81 -39
  49. agent_engine_runner_shared-0.11.13/tests/unit/connectors/fixtures/auth_cases.yaml +178 -0
  50. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/connectors/fixtures/jira.tool_defs.yaml +1 -2
  51. agent_engine_runner_shared-0.11.13/tests/unit/connectors/test_auth.py +112 -0
  52. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/connectors/test_bundle.py +4 -4
  53. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/connectors/test_core.py +29 -71
  54. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/connectors/test_create_tool.py +102 -99
  55. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/connectors/test_generate.py +538 -63
  56. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/connectors/test_materialize.py +23 -42
  57. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_aer_cancelled_turn.py +39 -0
  58. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_aer_chunk_delivery_reliability.py +12 -3
  59. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_aer_session_finish.py +61 -0
  60. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_aer_timeout_signal.py +67 -7
  61. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_agent_config.py +83 -22
  62. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_durable_oauth.py +3 -3
  63. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_durable_proxies.py +1 -1
  64. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_error_reporting.py +81 -0
  65. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_http_retry.py +2 -2
  66. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_llm_routing.py +138 -0
  67. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_mcp_tools.py +13 -0
  68. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_memory_appbound.py +18 -0
  69. agent_engine_runner_shared-0.11.13/tests/unit/test_platform_tracing_exporter.py +796 -0
  70. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_secure_wrapper.py +134 -3
  71. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_server_health.py +47 -3
  72. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_structured_logging.py +0 -1
  73. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_tool.py +29 -3
  74. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_tool_api_error.py +30 -0
  75. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_tool_server_startup.py +33 -5
  76. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_toolpod_handlers.py +6 -0
  77. agent_engine_runner_shared-0.11.13/tests/unit/test_trace_conversation.py +278 -0
  78. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_tracing_exporter.py +44 -0
  79. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_tracing_retry.py +46 -11
  80. agent_engine_runner_shared-0.11.11/src/agent_engine_runner_shared/__main__.py +0 -12
  81. agent_engine_runner_shared-0.11.11/src/agent_engine_runner_shared/connectors/generate/authoring.py +0 -205
  82. agent_engine_runner_shared-0.11.11/src/agent_engine_runner_shared/server/function.py +0 -304
  83. agent_engine_runner_shared-0.11.11/src/agent_engine_runner_shared/tracing/exporters.py +0 -410
  84. agent_engine_runner_shared-0.11.11/tests/unit/test_function_mode.py +0 -858
  85. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/LICENSE +0 -0
  86. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/Makefile +0 -0
  87. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/README.md +0 -0
  88. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/pydoc-markdown.yml +0 -0
  89. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/pyrightconfig.json +0 -0
  90. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/scripts/agentic-vendored-wheel-check.sh +0 -0
  91. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/a2a.py +0 -0
  92. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/a2a_auth.py +0 -0
  93. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/async_utils.py +0 -0
  94. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/caller_trace.py +0 -0
  95. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/checkpoint_workspace.py +0 -0
  96. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/connectors/generate/__init__.py +0 -0
  97. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/connectors/generate/naming.py +0 -0
  98. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/connectors/generate/parameters.py +0 -0
  99. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/connectors/generate/spec.py +0 -0
  100. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/connectors/runtime.py +0 -0
  101. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/context.py +0 -0
  102. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/db_config.py +0 -0
  103. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/db_naming.py +0 -0
  104. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/execution.py +0 -0
  105. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/generated/__init__.py +0 -0
  106. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/generated/workflow/__init__.py +0 -0
  107. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/generated/workflow/v1/__init__.py +0 -0
  108. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/generated/workflow/v1/activity_pb2.py +0 -0
  109. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/generated/workflow/v1/activity_pb2.pyi +0 -0
  110. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/generated/workflow/v1/common_pb2.py +0 -0
  111. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/generated/workflow/v1/common_pb2.pyi +0 -0
  112. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/generated/workflow/v1/runtime_pb2.py +0 -0
  113. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/generated/workflow/v1/runtime_pb2.pyi +0 -0
  114. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/generated/workflow/v1/state_pb2.py +0 -0
  115. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/generated/workflow/v1/state_pb2.pyi +0 -0
  116. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/guardrails_evaluator/__init__.py +0 -0
  117. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/guardrails_evaluator/core.py +0 -0
  118. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/guardrails_evaluator/regex.py +0 -0
  119. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/hooks.py +0 -0
  120. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/http_path.py +0 -0
  121. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/launcher.py +0 -0
  122. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/mcp_oauth_cache_lock.py +0 -0
  123. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/mcp_oauth_cache_name.py +0 -0
  124. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/mcp_oauth_secret.py +0 -0
  125. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/memory.py +0 -0
  126. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/metrics.py +0 -0
  127. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/node_logger.py +0 -0
  128. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/owner_callback.py +0 -0
  129. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/progress.py +0 -0
  130. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/py.typed +0 -0
  131. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/server/atlas_dns.py +0 -0
  132. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/server/auth.py +0 -0
  133. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/server/call_interrupt.py +0 -0
  134. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/server/callback_delivery.py +0 -0
  135. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/server/cors.py +0 -0
  136. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/server/drain.py +0 -0
  137. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/server/graph_warm.py +0 -0
  138. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/server/metadata.py +0 -0
  139. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/server/oe_url.py +0 -0
  140. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/server/owner_url.py +0 -0
  141. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/server/query.py +0 -0
  142. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/span_kinds.py +0 -0
  143. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/span_names.py +0 -0
  144. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/startup_state.py +0 -0
  145. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/tls_client.py +0 -0
  146. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/tool_memory_ownership.py +0 -0
  147. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/types.py +0 -0
  148. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/workflow/attempt.py +0 -0
  149. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/workflow/cancelled_history.py +0 -0
  150. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/workflow/client.py +0 -0
  151. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/workflow/heartbeat.py +0 -0
  152. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/workflow/memory.py +0 -0
  153. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/workflow/protojson.py +0 -0
  154. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/src/agent_engine_runner_shared/workflow/settlement.py +0 -0
  155. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/__init__.py +0 -0
  156. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/conftest.py +0 -0
  157. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/corpus/.gitignore +0 -0
  158. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/corpus/README.md +0 -0
  159. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/corpus/__init__.py +0 -0
  160. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/corpus/fetch_corpus.py +0 -0
  161. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/corpus/manifest.json +0 -0
  162. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/integration/__init__.py +0 -0
  163. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/integration/mock_embedder.py +0 -0
  164. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/integration/test_a2a_trace_propagation.py +0 -0
  165. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/integration/test_runtime.py +0 -0
  166. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/integration/test_secure_async.py +0 -0
  167. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/integration/test_secure_sync.py +0 -0
  168. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/integration/test_tracing_otlp_wire_format.py +0 -0
  169. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/pact/conftest.py +0 -0
  170. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/pact/test_oe_provider_verification.py +0 -0
  171. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/__init__.py +0 -0
  172. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/connectors/__init__.py +0 -0
  173. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_a2a.py +0 -0
  174. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_a2a_auth.py +0 -0
  175. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_aer_a2a_registration.py +0 -0
  176. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_aer_build_agent_span.py +0 -0
  177. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_aer_capability_advertise.py +0 -0
  178. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_aer_chunk_emission.py +0 -0
  179. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_aer_durable_attempt.py +0 -0
  180. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_aer_llm_invocation_signal.py +0 -0
  181. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_aer_metadata_payload.py +0 -0
  182. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_aer_policy_denied.py +0 -0
  183. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_aer_trace_context.py +0 -0
  184. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_aer_workspace_scope.py +0 -0
  185. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_async_utils.py +0 -0
  186. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_atlas_dns.py +0 -0
  187. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_call_interrupt.py +0 -0
  188. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_call_interrupt_contract.py +0 -0
  189. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_checkpoint_workspace.py +0 -0
  190. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_cors.py +0 -0
  191. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_create_memory_client_headers.py +0 -0
  192. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_custom_headers_context.py +0 -0
  193. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_custom_headers_models.py +0 -0
  194. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_db_naming.py +0 -0
  195. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_debug_hook.py +0 -0
  196. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_drain.py +0 -0
  197. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_drain_contract.py +0 -0
  198. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_durable_guardrail_review.py +0 -0
  199. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_emit_custom_event.py +0 -0
  200. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_emit_progress.py +0 -0
  201. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_execution.py +0 -0
  202. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_extract_turn_messages.py +0 -0
  203. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_format_llm_error.py +0 -0
  204. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_graph_warm.py +0 -0
  205. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_guardrails_protocol.py +0 -0
  206. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_hitl_interrupt.py +0 -0
  207. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_hooks.py +0 -0
  208. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_http_path.py +0 -0
  209. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_launcher.py +0 -0
  210. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_launcher_reports.py +0 -0
  211. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_listen_host.py +0 -0
  212. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_llm_credential_classification.py +0 -0
  213. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_mcp_era_compat.py +0 -0
  214. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_mcp_oauth.py +0 -0
  215. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_mcp_oauth_cli.py +0 -0
  216. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_mcp_oauth_secret.py +0 -0
  217. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_memory_search_metadata.py +0 -0
  218. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_memory_writer_context.py +0 -0
  219. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_metadata.py +0 -0
  220. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_metrics.py +0 -0
  221. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_models.py +0 -0
  222. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_no_lc_imports.py +0 -0
  223. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_node_logger.py +0 -0
  224. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_oe_url.py +0 -0
  225. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_owner_callback.py +0 -0
  226. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_owner_url.py +0 -0
  227. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_payload_context.py +0 -0
  228. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_query_routes.py +0 -0
  229. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_request_id_context.py +0 -0
  230. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_resume_payload.py +0 -0
  231. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_runtime_build_context_from_sources.py +0 -0
  232. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_runtime_checkpoint_workspace.py +0 -0
  233. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_runtime_custom_memory.py +0 -0
  234. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_runtime_memory_context.py +0 -0
  235. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_runtime_models.py +0 -0
  236. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_runtime_register_tool.py +0 -0
  237. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_secure_llm_proxy.py +0 -0
  238. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_server_auth.py +0 -0
  239. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_server_shutdown.py +0 -0
  240. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_server_startup_failures.py +0 -0
  241. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_session_filesystem_isolation.py +0 -0
  242. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_session_finish_context.py +0 -0
  243. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_shared_client.py +0 -0
  244. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_thinking_tokens.py +0 -0
  245. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_tls_client.py +0 -0
  246. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_tls_client_integration.py +0 -0
  247. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_token_capture.py +0 -0
  248. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_tool_authorization.py +0 -0
  249. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_tool_cancellation_boundary.py +0 -0
  250. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_tool_deserialization.py +0 -0
  251. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_tool_log_redaction.py +0 -0
  252. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_tool_memory_ownership.py +0 -0
  253. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/test_tool_trace_context.py +0 -0
  254. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/workflow/test_activity.py +0 -0
  255. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/workflow/test_attempt.py +0 -0
  256. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/workflow/test_cancelled_history.py +0 -0
  257. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/workflow/test_client.py +0 -0
  258. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/workflow/test_context.py +0 -0
  259. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/workflow/test_heartbeat.py +0 -0
  260. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/workflow/test_memory.py +0 -0
  261. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/workflow/test_protojson.py +0 -0
  262. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/workflow/test_protojson_helpers.py +0 -0
  263. {agent_engine_runner_shared-0.11.11 → agent_engine_runner_shared-0.11.13}/tests/unit/workflow/test_settlement.py +0 -0
@@ -7,6 +7,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ### Changed
11
+ - **Breaking:** the connector `tool.yaml` `auth` block no longer takes `type`.
12
+ It names exactly one credential: `bearer: <secret>`, `basic: {username,
13
+ password}`, `api_keys: [{env, location, name, prefix}]`, or
14
+ `provider: <OAuth app>` with optional `scopes`, plus optional `headers`; omit
15
+ the block for no credential. A block that still uses `type` or its fields
16
+ fails validation and names the key to use instead. `compile_catalog` and
17
+ `scaffold_tool_yaml` propose the block from the document's security schemes
18
+ and derive secret names from the connector name; `auth` now takes `none`,
19
+ `bearer`, `basic` or `api_keys`, and an OAuth document needs `provider`.
20
+ Generated catalogs record the credential kind without `type`.
21
+ `Auth.header_name()` and `Auth.credential_bindings()` are removed; read
22
+ `Auth.api_keys`. Regenerating a connector with no `auth` block compiles every
23
+ operation anonymously instead of from the OpenAPI document's security, so
24
+ operations the first compile skipped can appear as tools; they send no
25
+ credential.
26
+
10
27
  ### Removed
11
28
  - Removed the unused pre-materialized connector bundle override
12
29
  (`AGENTIC_CONNECTOR_BUNDLE_PATH`) and the `load_connector_bundle` /
@@ -5,7 +5,7 @@
5
5
  # Usage: docker buildx build -t runner:latest -f packages/python/packages/agent-engine-runner-shared/Dockerfile .
6
6
 
7
7
  ARG BASE_TARGETPLATFORM=linux/amd64
8
- ARG RUNNER_BASE_IMAGE=664315256653.dkr.ecr.us-east-1.amazonaws.com/base/amazonlinux2023-python:v3.11-202610191636-2ff39c3@sha256:30ecac067fceafe43a5f0f5e80d1725b60708204dcd2fe3f176363417e2a2402
8
+ ARG RUNNER_BASE_IMAGE=664315256653.dkr.ecr.us-east-1.amazonaws.com/base/amazonlinux2023-python:v3.11-202611021131-0cb5df7@sha256:059f4396b31473f85e83c9219255b37f7b24e3caaef1c129363d50bc50383ceb
9
9
 
10
10
  FROM --platform=${BASE_TARGETPLATFORM} ghcr.io/astral-sh/uv@sha256:ff07b86af50d4d9391d9daf4ff89ce427bc544f9aae87057e69a1cc0aa369946 AS uv
11
11
 
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: agent-engine-runner-shared
3
- Version: 0.11.11
3
+ Version: 0.11.13
4
4
  Summary: Runner SDK - Framework-agnostic agent runtime
5
5
  License: Apache-2.0
6
6
  License-File: LICENSE
7
7
  Requires-Python: >=3.11
8
- Requires-Dist: agent-engine-sdk-memory==0.11.11
9
- Requires-Dist: agent-engine-sdk==0.11.11
8
+ Requires-Dist: agent-engine-sdk-memory==0.11.13
9
+ Requires-Dist: agent-engine-sdk==0.11.13
10
10
  Requires-Dist: fastapi>=0.141.1
11
11
  Requires-Dist: filelock>=3.0.0
12
12
  Requires-Dist: httpx-sse>=0.4.0
@@ -183,6 +183,7 @@
183
183
  * [PolicyDeniedException](#agent_engine_runner_shared.secure_wrapper.PolicyDeniedException)
184
184
  * [OERetryAfterError](#agent_engine_runner_shared.secure_wrapper.OERetryAfterError)
185
185
  * [ToolExecutionError](#agent_engine_runner_shared.secure_wrapper.ToolExecutionError)
186
+ * [ToolOutcomeUnknownError](#agent_engine_runner_shared.secure_wrapper.ToolOutcomeUnknownError)
186
187
  * [ToolPlatformError](#agent_engine_runner_shared.secure_wrapper.ToolPlatformError)
187
188
  * [TerminalExecutionError](#agent_engine_runner_shared.secure_wrapper.TerminalExecutionError)
188
189
  * [raise\_for\_oe\_rejection](#agent_engine_runner_shared.secure_wrapper.raise_for_oe_rejection)
@@ -2436,9 +2437,9 @@ return parse(html)
2436
2437
  Runtime-transparent custom-event emission across Atlas Agent Engine runtimes.
2437
2438
 
2438
2439
  Authors call :func:`emit_custom_event` without knowing which runtime is
2439
- hosting the code (AER agent process vs Tool Pod / function mode). The active
2440
- runtime installs exactly one :class:`CustomEventTransport` before invoking
2441
- tenant code; the helper dispatches to that transport.
2440
+ hosting the code (AER agent process vs Tool Pod). The active runtime installs
2441
+ exactly one :class:`CustomEventTransport` before invoking tenant code; the
2442
+ helper dispatches to that transport.
2442
2443
 
2443
2444
  Atlas Agent Engine transports an opaque author-final JSON object as ``custom_event``.
2444
2445
  It does not interpret keys — customers who need a shaped vocabulary (e.g.
@@ -2570,7 +2571,7 @@ no transport is installed (outside an execution context).
2570
2571
  class OEHTTPCustomEventTransport()
2571
2572
  ```
2572
2573
 
2573
- Tool Pod / function-mode transport: POST final ``custom_event`` chunks to OE.
2574
+ Tool Pod transport: POST final ``custom_event`` chunks to OE.
2574
2575
 
2575
2576
  Delivery is awaited with a bounded timeout and is non-fatal: delivery
2576
2577
  failures are logged and swallowed so a progress event cannot fail the tool.
@@ -2586,10 +2587,10 @@ class FeatureOffCustomEventTransport()
2586
2587
  Fail closed when ``use_custom_parser`` is disabled.
2587
2588
 
2588
2589
  Runtime-neutral rejecting transport shared by AER streaming (when Atlas Agent Engine
2589
- does not subscribe to LangGraph ``custom``) and Tool Pod / function mode
2590
- (when OE POSTs would otherwise succeed while Gateway strips client
2591
- delivery). Authors must not observe a successful emit when the workspace
2592
- cannot deliver custom events to clients.
2590
+ does not subscribe to LangGraph ``custom``) and the Tool Pod (when OE POSTs
2591
+ would otherwise succeed while Gateway strips client delivery). Authors
2592
+ must not observe a successful emit when the workspace cannot deliver custom
2593
+ events to clients.
2593
2594
 
2594
2595
  <a id="agent_engine_runner_shared.custom_events.install_tool_custom_event_transport"></a>
2595
2596
 
@@ -2600,7 +2601,7 @@ def install_tool_custom_event_transport(
2600
2601
  *, enabled: bool = True) -> Token[Optional[CustomEventTransport]]
2601
2602
  ```
2602
2603
 
2603
- Install Tool Pod / function-mode custom-event transport; return reset token.
2604
+ Install the Tool Pod custom-event transport; return reset token.
2604
2605
 
2605
2606
  When ``enabled`` is false (workspace does not have ``use_custom_parser``),
2606
2607
  install a rejecting transport so emit fails closed instead of POSTing an
@@ -2855,6 +2856,19 @@ class ToolExecutionError(Exception)
2855
2856
 
2856
2857
  Raised when tool execution fails.
2857
2858
 
2859
+ <a id="agent_engine_runner_shared.secure_wrapper.ToolOutcomeUnknownError"></a>
2860
+
2861
+ ## ToolOutcomeUnknownError
2862
+
2863
+ ```python
2864
+ class ToolOutcomeUnknownError(ToolExecutionError)
2865
+ ```
2866
+
2867
+ The runner was lost while this durable tool call was in flight.
2868
+
2869
+ It may have taken effect and OE did not run it again. ``error`` is OE's
2870
+ message, written for the model reading it.
2871
+
2858
2872
  <a id="agent_engine_runner_shared.secure_wrapper.ToolPlatformError"></a>
2859
2873
 
2860
2874
  ## ToolPlatformError
@@ -2977,7 +2991,7 @@ def request_oe_approval(
2977
2991
  is_local: bool = True,
2978
2992
  metadata: Optional[Dict[str, Any]] = None,
2979
2993
  redact_fields: Optional[list[str]] = None,
2980
- provider_type: Optional[str] = None,
2994
+ provider: Optional[str] = None,
2981
2995
  scopes: Optional[list[str]] = None,
2982
2996
  tool_call_id: Optional[str] = None,
2983
2997
  custom_headers: Optional[Dict[str, str]] = None,
@@ -3163,22 +3177,22 @@ Clean up resources owned by this execution's wrapper.
3163
3177
  #### execute\_tool
3164
3178
 
3165
3179
  ```python
3166
- def execute_tool(
3167
- tool_name: str,
3168
- arguments: Dict[str, Any],
3169
- *,
3170
- metadata: Optional[Dict[str, Any]] = None,
3171
- provider_type: Optional[str] = None,
3172
- scopes: Optional[list[str]] = None,
3173
- tool_call_id: Optional[str] = None,
3174
- raw_on_interrupt: bool = False,
3175
- redact_fields: Optional[list[str]] = None,
3176
- is_local: bool = True,
3177
- local_executor: Optional[Callable[[], Any]] = None,
3178
- is_framework_control_flow: Optional[Callable[[BaseException],
3179
- bool]] = None,
3180
- call_channel_expected: bool = False,
3181
- on_unknown_outcome: Optional[UnknownOutcomePolicy] = None) -> Any
3180
+ def execute_tool(tool_name: str,
3181
+ arguments: Dict[str, Any],
3182
+ *,
3183
+ metadata: Optional[Dict[str, Any]] = None,
3184
+ provider: Optional[str] = None,
3185
+ scopes: Optional[list[str]] = None,
3186
+ tool_call_id: Optional[str] = None,
3187
+ raw_on_interrupt: bool = False,
3188
+ redact_fields: Optional[list[str]] = None,
3189
+ is_local: bool = True,
3190
+ local_executor: Optional[Callable[[], Any]] = None,
3191
+ is_framework_control_flow: Optional[Callable[[BaseException],
3192
+ bool]] = None,
3193
+ call_channel_expected: bool = False,
3194
+ on_unknown_outcome: Optional[UnknownOutcomePolicy] = None,
3195
+ owning_tool_call: Optional[OwningToolCall] = None) -> Any
3182
3196
  ```
3183
3197
 
3184
3198
  Execute a tool call through OE.
@@ -3206,6 +3220,10 @@ Its consent answer never becomes a tool result or Memory content.
3206
3220
  - `on_unknown_outcome` - What a retry does when the runner was lost while
3207
3221
  this tool was in flight in a durable workflow: ``"rerun"`` runs it
3208
3222
  again, ``"fail"`` refuses the retry.
3223
+ - `owning_tool_call` - The tool call or subagent this operation is performed
3224
+ for, when it is not itself a tool the model requested. In a durable
3225
+ workflow it runs alongside other activities, at a position derived
3226
+ from that call.
3209
3227
 
3210
3228
 
3211
3229
  **Returns**:
@@ -3233,7 +3251,7 @@ def create_secure_tool_function(
3233
3251
  allow_direct: bool = False,
3234
3252
  metadata: Optional[Dict[str, Any]] = None,
3235
3253
  is_local: bool = True,
3236
- provider_type: Optional[str] = None,
3254
+ provider: Optional[str] = None,
3237
3255
  scopes: Optional[list[str]] = None,
3238
3256
  response_format: Literal["content",
3239
3257
  "content_and_artifact"] = "content",
@@ -3929,7 +3947,7 @@ stdout output so the Local Dev UI can read the agent's logs.
3929
3947
  **Arguments**:
3930
3948
 
3931
3949
  - `app_name` - Application name for log file naming
3932
- - `mode` - Runtime mode (aer, tool, tool_function)
3950
+ - `mode` - Runtime mode (aer, tool)
3933
3951
  - `log_dir` - Directory for log files (default: ./logs)
3934
3952
  - `log_level` - Log level (default: from LOG_LEVEL env or INFO)
3935
3953
  - `backup_count` - Number of rotated backup files to keep
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "agent-engine-runner-shared"
3
- version = "0.11.11"
3
+ version = "0.11.13"
4
4
  description = "Runner SDK - Framework-agnostic agent runtime"
5
5
  readme = "README.md"
6
6
  license = {text = "Apache-2.0"}
@@ -27,9 +27,9 @@ dependencies = [
27
27
  "jsonschema>=4.26.0",
28
28
  "sentry-sdk>=2.27.0",
29
29
  # BaseAgent protocol and AgentInput/AgentEvent models
30
- "agent-engine-sdk==0.11.11",
30
+ "agent-engine-sdk==0.11.13",
31
31
  # Memory models and the MemoryClient HTTP client
32
- "agent-engine-sdk-memory==0.11.11",
32
+ "agent-engine-sdk-memory==0.11.13",
33
33
  # Required for checkpoint message decoding (query/sessions endpoints)
34
34
  "msgpack>=1.0.0",
35
35
  # Required by guardrails_evaluator/regex.py for advanced regex matching
@@ -96,6 +96,7 @@ from agent_engine_runner_shared.secure_wrapper import (
96
96
  TerminalExecutionError,
97
97
  ToolCallTimeoutError,
98
98
  ToolExecutionError,
99
+ ToolOutcomeUnknownError,
99
100
  ToolPlatformError,
100
101
  extract_usage,
101
102
  )
@@ -191,6 +192,7 @@ __all__ = [
191
192
  "TerminalExecutionError",
192
193
  "ToolCallTimeoutError",
193
194
  "ToolExecutionError",
195
+ "ToolOutcomeUnknownError",
194
196
  "ToolPlatformError",
195
197
  "ExternalAPICallError",
196
198
  # Utilities
@@ -0,0 +1,12 @@
1
+ """Generic platform entrypoint for the runner-shared image.
2
+
3
+ Dispatches via RUNNER_MODE (aer | tool) through
4
+ TenantRuntime.register_and_run(). Tool mode does not need a graph builder; aer
5
+ mode does, so user agents provide their own __main__.py for that case
6
+ (App.run() enforces the builder check there).
7
+ """
8
+
9
+ from agent_engine_runner_shared.runtime import TenantRuntime
10
+
11
+ if __name__ == "__main__":
12
+ TenantRuntime().register_and_run()
@@ -340,7 +340,20 @@ class RuntimeMCPServerConfig(BaseModel):
340
340
  default="streamable_http",
341
341
  description="MCP transport used to connect to the server.",
342
342
  )
343
- url: NonEmptyString = Field(description="Streamable HTTP endpoint for the MCP server.")
343
+ url: NonEmptyString | None = Field(
344
+ default=None,
345
+ description=(
346
+ "Streamable HTTP endpoint for the MCP server. An entry with no url names "
347
+ "a project OAuth app with its key, and the app's resource is the endpoint."
348
+ ),
349
+ )
350
+ scopes: list[NonEmptyString] = Field(
351
+ default_factory=list,
352
+ description=(
353
+ "Scopes requested from the OAuth app the entry names, instead of the "
354
+ "app's defaults. Refused beside a url."
355
+ ),
356
+ )
344
357
  headers: dict[str, str] = Field(
345
358
  default_factory=dict,
346
359
  description="Static non-secret HTTP headers sent to the MCP server.",
@@ -361,11 +374,25 @@ class RuntimeMCPServerConfig(BaseModel):
361
374
 
362
375
  @model_validator(mode="after")
363
376
  def validate_server_config(self) -> "RuntimeMCPServerConfig":
364
- parsed = urlparse(self.url)
365
- if parsed.scheme not in {"http", "https"} or parsed.hostname is None:
366
- raise ValueError("mcp server url must be an absolute http(s) URL")
367
- if parsed.scheme == "http" and self.auth.type != "none":
368
- raise ValueError("mcp server url must be https when auth.type is set")
377
+ if self.url is None:
378
+ # The app supplies the credential, so an auth block here could only
379
+ # disagree with it. auth has a default, so ask whether it was written.
380
+ if "auth" in self.model_fields_set:
381
+ raise ValueError(
382
+ "mcp server auth is not allowed without url; "
383
+ "an entry with no url names an OAuth app"
384
+ )
385
+ else:
386
+ if "scopes" in self.model_fields_set:
387
+ raise ValueError(
388
+ "mcp server scopes is not allowed with url; "
389
+ "scopes apply to an entry that names an OAuth app"
390
+ )
391
+ parsed = urlparse(self.url)
392
+ if parsed.scheme not in {"http", "https"} or parsed.hostname is None:
393
+ raise ValueError("mcp server url must be an absolute http(s) URL")
394
+ if parsed.scheme == "http" and self.auth.type != "none":
395
+ raise ValueError("mcp server url must be https when auth.type is set")
369
396
 
370
397
  forbidden_headers = sorted(
371
398
  header for header in self.headers if header.lower() in _FORBIDDEN_MCP_HEADER_KEYS
@@ -452,8 +479,8 @@ class RuntimeAgentConfig(BaseModel):
452
479
  a2a: A2AConfig = Field(default_factory=A2AConfig)
453
480
  mcp: RuntimeMCPConfig = Field(default_factory=RuntimeMCPConfig)
454
481
  required_secrets: SecretsConfig = Field(default_factory=SecretsConfig)
455
- # Python/LangGraph only: connector authoring files materialized at startup.
456
- # The shared Go parser rejects the key for TypeScript agents.
482
+ # LangGraph only: connector authoring files materialized at startup.
483
+ # The shared Go parser rejects the key for other frameworks.
457
484
  connectors: list[RuntimeConnectorReference] = Field(default_factory=list)
458
485
 
459
486
  def feature_enabled(
@@ -1,8 +1,10 @@
1
1
  # Compiled connector core
2
2
 
3
- This Python-only package implements definition loading, synchronous HTTP execution and
4
- opt-in registration. It is not exposed through the CLI. Connector tools use the existing
5
- AER → OE → Tool Pod execution path.
3
+ The Python and TypeScript Runner SDKs share this connector contract. The Python
4
+ implementation covers definition loading, synchronous HTTP execution, and opt-in
5
+ registration; the TypeScript implementation mirrors the same materialization,
6
+ registration, and execution contract. It is not exposed through the CLI. Connector
7
+ tools use the existing AER → OE → Tool Pod execution path.
6
8
 
7
9
  Runtime integration follows the platform's config → discover → register flow: each
8
10
  process derives its own view from the same manifest. Resolution in
@@ -35,24 +37,26 @@ source:
35
37
  expose:
36
38
  allow: [jiradc_getComments]
37
39
  auth:
38
- type: bearer
39
- env: JIRA_TOKEN
40
+ bearer: JIRA_TOKEN
40
41
  ```
41
42
 
42
- For delegated OAuth, replace that auth block with an explicit provider binding:
43
+ The block names exactly one of `bearer`, `basic`, `api_keys` or `provider`, by
44
+ workspace secret name or OAuth app; no block means no credential. For OAuth,
45
+ bind the project's OAuth app instead:
43
46
 
44
47
  ```yaml
45
48
  auth:
46
- type: oauth
47
- provider_type: github
49
+ provider: github
48
50
  scopes: [repo]
49
51
  ```
50
52
 
51
- `provider_type` is the key of a provider configured for the project, independent
53
+ `provider` names an OAuth app configured for the project, independent
52
54
  of the resource API's base URL. The scopes apply to every exposed operation in
53
55
  this connector. Registration carries this policy outside the model's argument
54
- schema. The Orchestration Engine resolves a credential for the saved application
55
- user and passes it to the Tool Pod for that invocation. A missing or invalid token
56
+ schema. The Orchestration Engine resolves a credential and passes it to the Tool
57
+ Pod for that invocation. The app's grant decides whose: an authorization code app
58
+ gives the saved application user's token, and a client credentials app gives the
59
+ project's shared token with no user and no consent. A missing or invalid token
56
60
  stops the HTTP call; OAuth never falls back to a tenant environment secret.
57
61
  Existing static auth modes continue to use their configured environment bindings.
58
62
  Catalog regeneration preserves the authored OAuth binding and records only
@@ -8,6 +8,7 @@ from agent_engine_runner_shared.connectors.bundle import (
8
8
  )
9
9
  from agent_engine_runner_shared.connectors.definitions import (
10
10
  Auth,
11
+ BasicAuth,
11
12
  Credential,
12
13
  ToolDefinitions,
13
14
  load_tool_defs,
@@ -43,6 +44,7 @@ __all__ = [
43
44
  "GenerateError",
44
45
  "MaterializeError",
45
46
  "Auth",
47
+ "BasicAuth",
46
48
  "ToolDefinitions",
47
49
  "compile_catalog",
48
50
  "load_tool_defs",
@@ -62,13 +62,13 @@ class BundledTool:
62
62
  """Return detached AER/Tool Pod policy, with delegated binding outside the schema."""
63
63
  operation = self.operation
64
64
  auth = self.connector.definitions.auth
65
- delegated = auth if auth is not None and auth.type == "oauth" else None
65
+ provider = auth.provider if auth is not None else None
66
66
  return {
67
67
  "name": operation.name,
68
68
  "description": operation.description.strip() or f"REST connector tool {operation.name}",
69
69
  "is_local": False,
70
- "provider_type": delegated.provider_type if delegated else None,
71
- "scopes": list(delegated.scopes) if delegated else [],
70
+ "provider": provider,
71
+ "scopes": list(auth.scopes or []) if auth is not None and provider else [],
72
72
  "network": self.network,
73
73
  "timeout_seconds": DEFAULT_EXECUTION_TIMEOUT_SECONDS,
74
74
  "redact_fields": [],
@@ -16,13 +16,13 @@ import sys
16
16
 
17
17
  from pydantic import ValidationError
18
18
 
19
- from agent_engine_runner_shared.connectors.definitions import Auth
20
19
  from agent_engine_runner_shared.connectors.generate import (
21
20
  GenerateError,
22
21
  compile_catalog,
23
22
  regenerate_catalog,
24
23
  scaffold_tool_yaml,
25
24
  )
25
+ from agent_engine_runner_shared.connectors.generate.authoring import AUTH_CHOICES
26
26
 
27
27
  __all__ = ["RESULT_PREFIX", "main"]
28
28
 
@@ -47,23 +47,21 @@ def _parser() -> argparse.ArgumentParser:
47
47
  "--config",
48
48
  help="Existing tool.yaml that declares source.spec; regenerates its catalog",
49
49
  )
50
- parser.add_argument("--name", help="Connector name (compile mode)")
51
- parser.add_argument("--base-url", help="Tenant API base URL recorded in the authoring file")
52
50
  parser.add_argument(
53
- "--auth",
54
- choices=("none", "bearer", "api_key", "oauth"),
55
- help="Credential presentation; the authority over the spec's own security schemes",
51
+ "name",
52
+ nargs="?",
53
+ help="Connector name; required with --spec, defaults to the catalog's with --tool-defs",
56
54
  )
55
+ parser.add_argument("--base-url", help="Tenant API base URL recorded in the authoring file")
57
56
  parser.add_argument(
58
- "--auth-env", help="Workspace secret environment reference for the credential"
59
- )
60
- parser.add_argument("--auth-header", help="Header name for API key credentials")
61
- parser.add_argument(
62
- "--provider-type",
63
- help="Credential provider key registered in the project (with --auth oauth)",
57
+ "--auth",
58
+ choices=AUTH_CHOICES,
59
+ help="Credential to present instead of the one the document proposes",
64
60
  )
61
+ parser.add_argument("--provider", help="Project OAuth app whose token each call presents")
65
62
  parser.add_argument(
66
- "--scopes", help="Comma-separated delegated OAuth scopes (with --auth oauth)"
63
+ "--scopes",
64
+ help="Comma-separated OAuth scopes (with --provider) instead of the document's",
67
65
  )
68
66
  parser.add_argument("--allow", help="Comma-separated operation allow list (default: allow_all)")
69
67
  parser.add_argument(
@@ -79,36 +77,11 @@ def _parser() -> argparse.ArgumentParser:
79
77
  return parser
80
78
 
81
79
 
82
- def _auth(args: argparse.Namespace) -> Auth | None:
83
- """Build the credential presentation the flags select, or None to let the
84
- spec's own security schemes govern. Flag-combination refusals live here;
85
- the shared ``Auth`` model validates the values themselves."""
86
- if args.auth != "oauth" and (args.provider_type is not None or args.scopes is not None):
87
- raise GenerateError("--provider-type and --scopes require --auth oauth")
88
- if args.auth == "oauth":
89
- if args.auth_env or args.auth_header:
90
- raise GenerateError("--auth oauth cannot take --auth-env or --auth-header")
91
- if not args.provider_type:
92
- raise GenerateError("--auth oauth requires --provider-type")
93
- return Auth(type="oauth", provider_type=args.provider_type, scopes=_scopes(args.scopes))
94
- if args.auth == "none":
95
- if args.auth_env or args.auth_header:
96
- raise GenerateError("--auth none cannot take --auth-env or --auth-header")
97
- return Auth(type="none")
98
- if args.auth is None:
99
- if args.auth_env or args.auth_header:
100
- raise GenerateError("--auth-env and --auth-header require --auth")
101
- return None
102
- if not args.auth_env:
103
- raise GenerateError(f"--auth {args.auth} requires --auth-env")
104
- return Auth(type=args.auth, env=args.auth_env, header=args.auth_header)
105
-
106
-
107
- def _scopes(raw: str | None) -> list[str]:
108
- """Split ``--scopes``; omitted means no scopes. An empty entry is refused
109
- rather than dropped, so a typo cannot silently narrow the grant."""
80
+ def _scopes(raw: str | None) -> list[str] | None:
81
+ """Split ``--scopes``; omitted means the document's scopes. An empty entry
82
+ is refused rather than dropped, so a typo cannot silently narrow the grant."""
110
83
  if raw is None:
111
- return []
84
+ return None
112
85
  scopes = [scope.strip() for scope in raw.split(",")]
113
86
  if not all(scopes):
114
87
  raise GenerateError("--scopes must not contain empty entries")
@@ -149,44 +122,40 @@ def main(argv: list[str] | None = None) -> int:
149
122
  return EXIT_OK if exc.code in (None, 0) else EXIT_FAILED
150
123
  skipped: tuple[str, ...] = ()
151
124
  try:
152
- auth = _auth(args)
125
+ scopes = _scopes(args.scopes)
153
126
  allow = _allow(args.allow)
154
127
  if args.config is not None:
155
128
  if (
156
- args.auth
157
- or args.auth_env
158
- or args.auth_header
159
- or args.provider_type is not None
129
+ args.name is not None
130
+ or args.auth
131
+ or args.provider is not None
160
132
  or args.scopes is not None
161
133
  or args.allow is not None
162
134
  or args.base_url
163
- or args.name
164
135
  or args.out_dir
165
136
  ):
166
137
  raise GenerateError(
167
- "--config regeneration preserves the authored settings from "
168
- "tool.yaml and writes beside it; --auth, --auth-env, --auth-header, "
169
- "--provider-type, --scopes, --allow, --base-url, --name and --out-dir "
170
- "do not apply"
138
+ "--config regeneration keeps the name and settings written in "
139
+ "tool.yaml and writes beside it; a name, --auth, --provider, "
140
+ "--scopes, --allow, --base-url and --out-dir do not apply"
171
141
  )
172
142
  result = regenerate_catalog(args.config, skip_unsupported=args.skip_unsupported)
173
143
  written = [str(result.catalog)]
174
144
  skipped = result.skipped
175
145
  elif args.spec is not None:
176
146
  if not args.name:
177
- raise GenerateError("--name is required with --spec")
147
+ raise GenerateError("a connector name is required with --spec")
178
148
  if not args.out_dir:
179
149
  raise GenerateError("--out-dir is required with --spec")
180
- # The consumer's --auth is the authority over the spec's own
181
- # security-scheme definitions: the generator derives the catalog
182
- # override from the credential the developer chose (e.g. the
183
- # official Jira document declares basic; a DC PAT is Bearer).
184
- # An explicit Auth(type="none") is the anonymous override.
150
+ # --auth and --provider override the document's own security (e.g.
151
+ # the official Jira document declares basic; a DC PAT is Bearer).
185
152
  result = compile_catalog(
186
153
  args.spec,
187
154
  name=args.name,
188
155
  base_url=args.base_url,
189
- auth=auth,
156
+ auth=args.auth,
157
+ provider=args.provider,
158
+ scopes=scopes,
190
159
  allow=allow,
191
160
  skip_unsupported=args.skip_unsupported,
192
161
  out_dir=args.out_dir,
@@ -212,8 +181,11 @@ def main(argv: list[str] | None = None) -> int:
212
181
  str(
213
182
  scaffold_tool_yaml(
214
183
  args.tool_defs,
184
+ name=args.name,
215
185
  base_url=args.base_url,
216
- auth=auth,
186
+ auth=args.auth,
187
+ provider=args.provider,
188
+ scopes=scopes,
217
189
  allow=allow,
218
190
  out_dir=args.out_dir,
219
191
  )