langbot-plugin 0.7.3__tar.gz → 0.7.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (377) hide show
  1. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/ARCHITECTURE.md +9 -0
  2. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/PKG-INFO +1 -1
  3. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/pyproject.toml +1 -1
  4. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/plugin/dependency_environment.py +38 -3
  5. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/plugin/mgr.py +1 -0
  6. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/plugin/worker_launcher.py +3 -0
  7. langbot_plugin-0.7.4/src/langbot_plugin/version.py +1 -0
  8. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/packaging/test_release_metadata.py +2 -2
  9. langbot_plugin-0.7.4/tests/runtime/plugin/test_exact_dify_real_worker.py +70 -0
  10. langbot_plugin-0.7.4/tests/runtime/plugin/test_exact_legacy_sdk_compat.py +75 -0
  11. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/plugin/test_installation_manager.py +8 -8
  12. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/plugin/test_worker_launcher.py +1 -0
  13. langbot_plugin-0.7.3/src/langbot_plugin/version.py +0 -1
  14. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/.github/workflows/cla.yml +0 -0
  15. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/.github/workflows/publish-pypi.yaml +0 -0
  16. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/.github/workflows/publish.yml +0 -0
  17. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/.github/workflows/test.yml +0 -0
  18. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/.gitignore +0 -0
  19. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/.python-version +0 -0
  20. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/AGENTS.md +0 -0
  21. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/CLAUDE.md +0 -0
  22. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/CONTRIBUTING.md +0 -0
  23. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/LICENSE +0 -0
  24. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/README.md +0 -0
  25. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/README_CN.md +0 -0
  26. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/data/.env.example +0 -0
  27. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/docs/Message.md +0 -0
  28. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/docs/PluginPages.md +0 -0
  29. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/docs/agent-runner-interactions.md +0 -0
  30. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/docs/agent-runner-pluginization/PROTOCOL_V1.md +0 -0
  31. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/docs/agent-runner-pluginization/README.md +0 -0
  32. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/docs/agent-runner-pluginization/SDK_RUNTIME_PLAN.md +0 -0
  33. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/docs/certified-plugins.md +0 -0
  34. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/docs/communication/apis/lb2rt.md +0 -0
  35. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/docs/communication/runtime_plugin.md +0 -0
  36. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/docs/dependency-management.md +0 -0
  37. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/docs/langbot-plugin-social.png +0 -0
  38. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/docs/runner.md +0 -0
  39. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/docs/stateless-components.md +0 -0
  40. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/local_e2e/acceptance.json +0 -0
  41. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/local_e2e/registration_fanin.py +0 -0
  42. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/local_e2e/run_acceptance.py +0 -0
  43. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/mypy.ini +0 -0
  44. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/scripts/check_action_consistency.py +0 -0
  45. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/scripts/runtime_resource_probe.py +0 -0
  46. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/__init__.py +0 -0
  47. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/__init__.py +0 -0
  48. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/agent_tools/__init__.py +0 -0
  49. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/agent_tools/asset_gateway.py +0 -0
  50. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/agent_tools/daemon.py +0 -0
  51. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/agent_tools/decorators.py +0 -0
  52. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/agent_tools/external_tools.py +0 -0
  53. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/agent_tools/mcp_access.py +0 -0
  54. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/agent_tools/mcp_bridge.py +0 -0
  55. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/agent_tools/mcp_config.py +0 -0
  56. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/agent_tools/mcp_protocol.py +0 -0
  57. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/agent_tools/mcp_stdio.py +0 -0
  58. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/definition/__init__.py +0 -0
  59. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/definition/abstract/__init__.py +0 -0
  60. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/definition/abstract/platform/__init__.py +0 -0
  61. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/definition/abstract/platform/adapter.py +0 -0
  62. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/definition/abstract/platform/event_logger.py +0 -0
  63. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/definition/components/__init__.py +0 -0
  64. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/definition/components/base.py +0 -0
  65. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/definition/components/command/__init__.py +0 -0
  66. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/definition/components/command/command.py +0 -0
  67. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/definition/components/common/__init__.py +0 -0
  68. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/definition/components/common/event_listener.py +0 -0
  69. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/definition/components/knowledge_engine/__init__.py +0 -0
  70. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/definition/components/knowledge_engine/engine.py +0 -0
  71. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/definition/components/manifest.py +0 -0
  72. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/definition/components/page/__init__.py +0 -0
  73. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/definition/components/parser/__init__.py +0 -0
  74. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/definition/components/parser/parser.py +0 -0
  75. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/definition/components/runner/__init__.py +0 -0
  76. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/definition/components/runner/runner.py +0 -0
  77. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/definition/components/tool/__init__.py +0 -0
  78. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/definition/components/tool/tool.py +0 -0
  79. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/definition/plugin.py +0 -0
  80. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/__init__.py +0 -0
  81. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/__init__.py +0 -0
  82. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/command/__init__.py +0 -0
  83. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/command/context.py +0 -0
  84. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/command/errors.py +0 -0
  85. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/pipeline/__init__.py +0 -0
  86. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/pipeline/query.py +0 -0
  87. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/platform/__init__.py +0 -0
  88. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/platform/entities.py +0 -0
  89. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/platform/errors.py +0 -0
  90. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/platform/events.py +0 -0
  91. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/platform/logger.py +0 -0
  92. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/platform/message.py +0 -0
  93. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/provider/__init__.py +0 -0
  94. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/provider/message.py +0 -0
  95. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/provider/prompt.py +0 -0
  96. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/provider/reasoning.py +0 -0
  97. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/provider/session.py +0 -0
  98. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/rag/__init__.py +0 -0
  99. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/rag/context.py +0 -0
  100. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/rag/enums.py +0 -0
  101. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/rag/errors.py +0 -0
  102. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/rag/models.py +0 -0
  103. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/resource/__init__.py +0 -0
  104. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/resource/tool.py +0 -0
  105. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/runner/__init__.py +0 -0
  106. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/runner/box.py +0 -0
  107. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/runner/capabilities.py +0 -0
  108. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/runner/compat.py +0 -0
  109. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/runner/context.py +0 -0
  110. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/runner/context_access.py +0 -0
  111. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/runner/delivery.py +0 -0
  112. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/runner/errors.py +0 -0
  113. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/runner/event.py +0 -0
  114. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/runner/input.py +0 -0
  115. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/runner/interaction.py +0 -0
  116. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/runner/manifest.py +0 -0
  117. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/runner/page_results.py +0 -0
  118. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/runner/permissions.py +0 -0
  119. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/runner/resources.py +0 -0
  120. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/runner/result.py +0 -0
  121. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/runner/run_ledger.py +0 -0
  122. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/runner/runtime.py +0 -0
  123. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/runner/runtime_registry.py +0 -0
  124. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/runner/state.py +0 -0
  125. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/runner/stats.py +0 -0
  126. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/runner/steering.py +0 -0
  127. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/runner/transcript.py +0 -0
  128. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/builtin/runner/trigger.py +0 -0
  129. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/context.py +0 -0
  130. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/events.py +0 -0
  131. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/entities/execution.py +0 -0
  132. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/proxies/__init__.py +0 -0
  133. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/proxies/base.py +0 -0
  134. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/proxies/event_context.py +0 -0
  135. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/proxies/execute_context.py +0 -0
  136. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/proxies/invocation.py +0 -0
  137. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/proxies/langbot_api.py +0 -0
  138. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/proxies/query_based_api.py +0 -0
  139. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/proxies/runner/__init__.py +0 -0
  140. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/proxies/runner/admin.py +0 -0
  141. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/proxies/runner/api.py +0 -0
  142. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/proxies/runner/box.py +0 -0
  143. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/proxies/runner/common.py +0 -0
  144. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/proxies/runner/context.py +0 -0
  145. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/proxies/runner/ledger.py +0 -0
  146. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/proxies/runner/platform.py +0 -0
  147. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/proxies/runner/reply_stream.py +0 -0
  148. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/proxies/runner/resources.py +0 -0
  149. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/proxies/runner/state.py +0 -0
  150. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/api/proxies/runner/tracing.py +0 -0
  151. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/__init__.py +0 -0
  152. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/langbot-page-sdk.js +0 -0
  153. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/.env.example.example +0 -0
  154. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/.github/workflows/release.yml.example +0 -0
  155. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/.gitignore.example +0 -0
  156. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/.vscode/launch.json.example +0 -0
  157. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/README.md.example +0 -0
  158. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/__init__.py +0 -0
  159. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/assets/icon.svg.example +0 -0
  160. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/components/__init__.py +0 -0
  161. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/components/commands/__init__.py +0 -0
  162. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/components/commands/{cmd_name}.py.example +0 -0
  163. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/components/commands/{cmd_name}.yaml.example +0 -0
  164. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/components/event_listener/__init__.py +0 -0
  165. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/components/event_listener/default.py.example +0 -0
  166. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/components/event_listener/default.yaml.example +0 -0
  167. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/components/knowledge_engine/__init__.py +0 -0
  168. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/components/knowledge_engine/{knowledge_engine_name}.py.example +0 -0
  169. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/components/knowledge_engine/{knowledge_engine_name}.yaml.example +0 -0
  170. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/components/pages/{page_name}.html.example +0 -0
  171. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/components/pages/{page_name}.yaml.example +0 -0
  172. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/components/parser/__init__.py +0 -0
  173. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/components/parser/{parser_name}.py.example +0 -0
  174. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/components/parser/{parser_name}.yaml.example +0 -0
  175. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/components/runner/__init__.py +0 -0
  176. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/components/runner/{runner_name}.py.example +0 -0
  177. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/components/runner/{runner_name}.yaml.example +0 -0
  178. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/components/tools/__init__.py +0 -0
  179. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/components/tools/{tool_name}.py.example +0 -0
  180. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/components/tools/{tool_name}.yaml.example +0 -0
  181. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/main.py.example +0 -0
  182. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/manifest.yaml.example +0 -0
  183. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/readme/README_zh_Hans.md.example +0 -0
  184. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/assets/templates/requirements.txt.example +0 -0
  185. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/box/__init__.py +0 -0
  186. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/box/actions.py +0 -0
  187. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/box/backend.py +0 -0
  188. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/box/client.py +0 -0
  189. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/box/e2b_backend.py +0 -0
  190. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/box/errors.py +0 -0
  191. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/box/host_backend.py +0 -0
  192. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/box/models.py +0 -0
  193. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/box/nsjail_backend.py +0 -0
  194. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/box/runtime.py +0 -0
  195. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/box/security.py +0 -0
  196. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/box/server.py +0 -0
  197. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/box/skill_store.py +0 -0
  198. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/box/tenancy.py +0 -0
  199. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/certification.py +0 -0
  200. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/__init__.py +0 -0
  201. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/__main__.py +0 -0
  202. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/commands/__init__.py +0 -0
  203. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/commands/buildplugin.py +0 -0
  204. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/commands/gencomponent.py +0 -0
  205. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/commands/initplugin.py +0 -0
  206. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/commands/login.py +0 -0
  207. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/commands/logout.py +0 -0
  208. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/commands/publish.py +0 -0
  209. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/commands/runplugin.py +0 -0
  210. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/gen/__init__.py +0 -0
  211. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/gen/renderer.py +0 -0
  212. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/i18n.py +0 -0
  213. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/locales/__init__.py +0 -0
  214. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/locales/en_US.py +0 -0
  215. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/locales/es_ES.py +0 -0
  216. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/locales/ja_JP.py +0 -0
  217. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/locales/th_TH.py +0 -0
  218. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/locales/vi_VN.py +0 -0
  219. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/locales/zh_Hans.py +0 -0
  220. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/locales/zh_Hant.py +0 -0
  221. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/run/__init__.py +0 -0
  222. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/run/controller.py +0 -0
  223. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/run/handler.py +0 -0
  224. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/run/hotreload.py +0 -0
  225. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/utils/__init__.py +0 -0
  226. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/utils/cloudsv.py +0 -0
  227. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/utils/form.py +0 -0
  228. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/cli/utils/page_components.py +0 -0
  229. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/entities/__init__.py +0 -0
  230. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/entities/io/__init__.py +0 -0
  231. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/entities/io/actions/__init__.py +0 -0
  232. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/entities/io/actions/enums.py +0 -0
  233. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/entities/io/context.py +0 -0
  234. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/entities/io/errors.py +0 -0
  235. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/entities/io/req.py +0 -0
  236. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/entities/io/resp.py +0 -0
  237. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/entities/marketplace.py +0 -0
  238. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/LICENSE +0 -0
  239. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/README.md +0 -0
  240. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/__init__.py +0 -0
  241. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/app.py +0 -0
  242. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/bounded_executor.py +0 -0
  243. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/context.py +0 -0
  244. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/event_loop_monitor.py +0 -0
  245. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/helper/__init__.py +0 -0
  246. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/helper/marketplace.py +0 -0
  247. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/helper/pkgmgr.py +0 -0
  248. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/io/__init__.py +0 -0
  249. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/io/connection.py +0 -0
  250. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/io/connections/__init__.py +0 -0
  251. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/io/connections/stdio.py +0 -0
  252. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/io/connections/ws.py +0 -0
  253. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/io/controller.py +0 -0
  254. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/io/controllers/__init__.py +0 -0
  255. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/io/controllers/stdio/__init__.py +0 -0
  256. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/io/controllers/stdio/client.py +0 -0
  257. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/io/controllers/stdio/server.py +0 -0
  258. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/io/controllers/ws/__init__.py +0 -0
  259. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/io/controllers/ws/client.py +0 -0
  260. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/io/controllers/ws/server.py +0 -0
  261. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/io/handler.py +0 -0
  262. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/io/handlers/__init__.py +0 -0
  263. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/io/handlers/control.py +0 -0
  264. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/io/handlers/plugin.py +0 -0
  265. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/plugin/__init__.py +0 -0
  266. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/plugin/artifact.py +0 -0
  267. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/plugin/container.py +0 -0
  268. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/plugin/logbuffer.py +0 -0
  269. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/plugin/restart_coordinator.py +0 -0
  270. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/plugin/runner_service.py +0 -0
  271. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/security.py +0 -0
  272. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/runtime/settings.py +0 -0
  273. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/storage.py +0 -0
  274. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/utils/__init__.py +0 -0
  275. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/utils/deadline.py +0 -0
  276. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/utils/discover/__init__.py +0 -0
  277. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/utils/discover/engine.py +0 -0
  278. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/utils/importutil.py +0 -0
  279. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/utils/log.py +0 -0
  280. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/src/langbot_plugin/utils/platform.py +0 -0
  281. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/__init__.py +0 -0
  282. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/definition/components/test_components.py +0 -0
  283. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/definition/components/test_imports.py +0 -0
  284. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/definition/test_manifest.py +0 -0
  285. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/entities/builtin/runner/test_context_result.py +0 -0
  286. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/entities/builtin/runner/test_history_event_entities.py +0 -0
  287. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/entities/builtin/runner/test_interaction.py +0 -0
  288. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/entities/builtin/runner/test_run_ledger_entities.py +0 -0
  289. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/entities/builtin/test_command_context.py +0 -0
  290. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/entities/builtin/test_platform_logger.py +0 -0
  291. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/entities/builtin/test_provider_message.py +0 -0
  292. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/entities/builtin/test_rag_models.py +0 -0
  293. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/entities/test_context.py +0 -0
  294. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/entities/test_events.py +0 -0
  295. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/proxies/__init__.py +0 -0
  296. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/proxies/test_agent_run_api_proxy.py +0 -0
  297. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/proxies/test_base.py +0 -0
  298. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/proxies/test_box_api.py +0 -0
  299. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/proxies/test_history_event_api_proxy.py +0 -0
  300. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/proxies/test_langbot_api.py +0 -0
  301. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/proxies/test_query_based_api.py +0 -0
  302. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/proxies/test_reasoning_parameter.py +0 -0
  303. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/test_agent_tools_mcp_bridge.py +0 -0
  304. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/test_runner_handlers.py +0 -0
  305. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/test_runner_handlers_matrix.py +0 -0
  306. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/api/test_runner_public_apis.py +0 -0
  307. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/box/__init__.py +0 -0
  308. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/box/test_admission.py +0 -0
  309. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/box/test_backend.py +0 -0
  310. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/box/test_backend_selection.py +0 -0
  311. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/box/test_client.py +0 -0
  312. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/box/test_e2b_backend.py +0 -0
  313. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/box/test_host_backend.py +0 -0
  314. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/box/test_nsjail_backend.py +0 -0
  315. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/box/test_runtime.py +0 -0
  316. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/box/test_server.py +0 -0
  317. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/box/test_skill_store.py +0 -0
  318. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/box/test_storage_analysis.py +0 -0
  319. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/cli/run/test_controller.py +0 -0
  320. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/cli/run/test_hotreload.py +0 -0
  321. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/cli/run/test_runtime_handler.py +0 -0
  322. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/cli/test_buildplugin.py +0 -0
  323. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/cli/test_gencomponent.py +0 -0
  324. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/cli/test_i18n_form.py +0 -0
  325. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/cli/test_initplugin.py +0 -0
  326. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/cli/test_login.py +0 -0
  327. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/cli/test_logout_publish.py +0 -0
  328. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/cli/test_page_components.py +0 -0
  329. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/cli/test_renderer.py +0 -0
  330. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/cli/test_runner_usages.py +0 -0
  331. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/cli/test_runplugin.py +0 -0
  332. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/e2e/standalone_runtime_eba_probe.py +0 -0
  333. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/entities/io/test_dependency_errors.py +0 -0
  334. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/entities/io/test_protocol.py +0 -0
  335. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/fixtures/eba_event_probe_plugin/.gitignore +0 -0
  336. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/fixtures/eba_event_probe_plugin/assets/icon.svg +0 -0
  337. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/fixtures/eba_event_probe_plugin/components/event_listener/default.py +0 -0
  338. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/fixtures/eba_event_probe_plugin/components/event_listener/default.yaml +0 -0
  339. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/fixtures/eba_event_probe_plugin/main.py +0 -0
  340. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/fixtures/eba_event_probe_plugin/manifest.yaml +0 -0
  341. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/helpers/__init__.py +0 -0
  342. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/helpers/protocol.py +0 -0
  343. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/packaging/test_installed_cli_blackbox.py +0 -0
  344. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/helper/test_marketplace.py +0 -0
  345. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/helper/test_pkgmgr.py +0 -0
  346. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/io/handlers/test_control_handler.py +0 -0
  347. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/io/handlers/test_import_contracts.py +0 -0
  348. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/io/handlers/test_legacy_file_chunk.py +0 -0
  349. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/io/handlers/test_plugin_handler.py +0 -0
  350. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/io/test_action_consistency.py +0 -0
  351. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/io/test_connections.py +0 -0
  352. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/io/test_controllers.py +0 -0
  353. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/io/test_handler.py +0 -0
  354. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/io/test_heartbeat_admission.py +0 -0
  355. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/io/test_stdio_server.py +0 -0
  356. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/plugin/test_artifact_store.py +0 -0
  357. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/plugin/test_container.py +0 -0
  358. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/plugin/test_dependency_environment.py +0 -0
  359. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/plugin/test_legacy_shadow.py +0 -0
  360. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/plugin/test_manager.py +0 -0
  361. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/plugin/test_mgr_runner.py +0 -0
  362. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/plugin/test_restart_coordinator.py +0 -0
  363. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/plugin/test_shared_worker_subprocess.py +0 -0
  364. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/plugin/test_workload_isolation.py +0 -0
  365. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/test_app.py +0 -0
  366. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/test_bounded_executor.py +0 -0
  367. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/test_event_loop_monitor.py +0 -0
  368. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/runtime/test_pull_api_handlers.py +0 -0
  369. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/test_certification.py +0 -0
  370. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/test_log.py +0 -0
  371. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/test_message.py +0 -0
  372. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/test_plugin_logbuffer.py +0 -0
  373. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/test_storage.py +0 -0
  374. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/utils/test_deadline.py +0 -0
  375. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/utils/test_discovery.py +0 -0
  376. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/utils/test_importutil.py +0 -0
  377. {langbot_plugin-0.7.3 → langbot_plugin-0.7.4}/tests/utils/test_platform.py +0 -0
@@ -218,6 +218,15 @@ stable `dependency_prepare_failed` desired-state failure. Pip control options in
218
218
  an artifact's `requirements.txt` are rejected because only Runtime configuration
219
219
  may select indexes or trusted hosts.
220
220
 
221
+ The dependency admission path has one bounded historical ABI exception: nine
222
+ explicit `langbot-team` archive identities with exact raw SHA-256 digests and
223
+ `langbot-plugin==0.6.1` may use the Runtime-owned SDK **0.7.4** in `dedicated`
224
+ mode only. Artifact bytes are verified before extraction; a changed archive,
225
+ identity, requirement, Runtime version, or shared execution mode fails normal
226
+ SDK pin validation. This does not issue a certificate or change Core placement
227
+ eligibility, and it does not install an older SDK into a worker. Cache schema is
228
+ bumped so pre-exception dependency environments are never silently reused.
229
+
221
230
  Workers in the shared Runtime profile launch through nsjail with policy-owned
222
231
  cgroup CPU, memory, and
223
232
  PID limits plus file/process rlimits. If `require_hard_limits` is true, missing
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: langbot-plugin
3
- Version: 0.7.3
3
+ Version: 0.7.4
4
4
  Summary: This package contains the SDK, CLI for building plugins for LangBot, plus the runtime for hosting LangBot plugins
5
5
  Project-URL: Homepage, https://langbot.app
6
6
  Project-URL: Repository, https://github.com/langbot-app/langbot-plugin-sdk
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "langbot-plugin"
3
- version = "0.7.3"
3
+ version = "0.7.4"
4
4
  description = "This package contains the SDK, CLI for building plugins for LangBot, plus the runtime for hosting LangBot plugins"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -21,7 +21,7 @@ from packaging.version import InvalidVersion, Version
21
21
  from langbot_plugin.runtime.plugin.artifact import PluginArtifact
22
22
 
23
23
 
24
- _ENVIRONMENT_SCHEMA_VERSION = 2
24
+ _ENVIRONMENT_SCHEMA_VERSION = 3
25
25
  _READY_MARKER = ".ready.json"
26
26
  _MAX_REQUIREMENTS_BYTES = 1024 * 1024
27
27
  _MAX_REQUIREMENT_COUNT = 1024
@@ -30,6 +30,19 @@ _MAX_ENVIRONMENT_TOTAL_BYTES = 2 * 1024 * 1024 * 1024
30
30
  _SHA256_PATTERN = re.compile(r"^[0-9a-f]{64}$")
31
31
  _RUNTIME_PROVIDED_DISTRIBUTIONS = frozenset({"langbot-plugin"})
32
32
  _RUNTIME_SDK_COMPATIBILITY_SERIES = (0, 6)
33
+ # Raw archive SHA-256 digests, not normalized certification digests. This is
34
+ # dependency ABI admission only; it never grants certification or shared slots.
35
+ _LEGACY_DEDICATED_SDK_061 = {
36
+ ("langbot-team", "CozeAgent", "0.1.10"): "90d9e1adbf456fd5e55ab8e022c26a17d272bf834104d711fff390c3649dc7a4",
37
+ ("langbot-team", "DashScopeAgent", "0.1.10"): "ca9fe3b6cf3d891c0d5f5ef6c711c25b20a922e8fe110778997314a1f8b0559e",
38
+ ("langbot-team", "DeerFlowAgent", "0.1.10"): "b35f551f9a9498f1f33d2596230725d3db1f13852edcb74330bc4a4dd681c6c9",
39
+ ("langbot-team", "DifyAgent", "0.1.10"): "1dd9cb4140bf0c2f848ecd648210b8cf7c9a0f520575ddc61e91a704e3ea3280",
40
+ ("langbot-team", "LangflowAgent", "0.1.10"): "b582250f2bf46e758fd904c52dea0ee6496626d61be6096a44fb9b34684583a5",
41
+ ("langbot-team", "N8nAgent", "0.1.10"): "0eee26b0101d166385425049727c0bf433582615d507fa36efc456b78cecac4a",
42
+ ("langbot-team", "TboxAgent", "0.1.8"): "387a02a2bed698b04f119042bab19c2400e53a433c6f0451a566e4c33807896f",
43
+ ("langbot-team", "WeKnoraAgent", "0.1.10"): "95dddd70a6f768660bd2de3adaebbe585b3aa42de7ad6ddb5a9fb6777590c9cc",
44
+ ("langbot-team", "LocalAgent", "0.1.10"): "a08a3f33cc10f5292d5ebafa58af1b993c8b89dbe6692df7895e924ffdd88da3",
45
+ }
33
46
 
34
47
 
35
48
  class DependencyEnvironmentPreparationError(RuntimeError):
@@ -80,8 +93,11 @@ class PluginDependencyEnvironmentStore:
80
93
  *,
81
94
  runtime_fingerprint: str,
82
95
  installer: DependencyInstaller,
96
+ execution_mode: str | None = None,
83
97
  ) -> PluginDependencyEnvironment:
84
- requirements, requirements_digest = self._read_requirements(artifact)
98
+ requirements, requirements_digest = self._read_requirements(
99
+ artifact, execution_mode=execution_mode
100
+ )
85
101
  digest = self._environment_digest(
86
102
  artifact.digest,
87
103
  requirements_digest,
@@ -262,6 +278,8 @@ class PluginDependencyEnvironmentStore:
262
278
  @staticmethod
263
279
  def _read_requirements(
264
280
  artifact: PluginArtifact,
281
+ *,
282
+ execution_mode: str | None = None,
265
283
  ) -> tuple[tuple[str, ...], str]:
266
284
  requirements_path = artifact.code_path / "requirements.txt"
267
285
  try:
@@ -318,10 +336,27 @@ class PluginDependencyEnvironmentStore:
318
336
  ) from exc
319
337
  # Validate the already-installed Runtime SDK, including beta
320
338
  # releases, rather than filtering candidates for installation.
321
- if not PluginDependencyEnvironmentStore._runtime_sdk_requirement_satisfied(
339
+ compatible = PluginDependencyEnvironmentStore._runtime_sdk_requirement_satisfied(
322
340
  requirement,
323
341
  runtime_version,
342
+ )
343
+ if (
344
+ not compatible
345
+ and runtime_version == "0.7.4"
346
+ and line == "langbot-plugin==0.6.1"
347
+ and execution_mode == "dedicated"
324
348
  ):
349
+ identity = (
350
+ getattr(artifact, "plugin_author", None),
351
+ getattr(artifact, "plugin_name", None),
352
+ getattr(artifact, "plugin_version", None),
353
+ )
354
+ compatible = (
355
+ all(isinstance(part, str) for part in identity)
356
+ and _LEGACY_DEDICATED_SDK_061.get(identity) # type: ignore[arg-type]
357
+ == getattr(artifact, "digest", None)
358
+ )
359
+ if not compatible:
325
360
  raise DependencyEnvironmentPreparationError(
326
361
  "Plugin requires "
327
362
  f"{requirement}, but the Runtime provides "
@@ -1106,6 +1106,7 @@ class PluginManager:
1106
1106
  await self.worker_launcher.prepare_dependency_environment(
1107
1107
  self.dependency_environment_store,
1108
1108
  artifact,
1109
+ execution_mode=execution_mode.value,
1109
1110
  )
1110
1111
  )
1111
1112
  except DependencyEnvironmentPreparationError as exc:
@@ -262,6 +262,8 @@ class PluginWorkerLauncher:
262
262
  self,
263
263
  store: PluginDependencyEnvironmentStore,
264
264
  artifact: PluginArtifact,
265
+ *,
266
+ execution_mode: str | None = None,
265
267
  ) -> PluginDependencyEnvironment:
266
268
  """Prepare artifact dependencies before issuing a worker capability."""
267
269
 
@@ -275,6 +277,7 @@ class PluginWorkerLauncher:
275
277
  artifact,
276
278
  runtime_fingerprint=self.dependency_runtime_fingerprint(),
277
279
  installer=installer,
280
+ execution_mode=execution_mode,
278
281
  )
279
282
 
280
283
  def dependency_runtime_fingerprint(self) -> str:
@@ -0,0 +1 @@
1
+ __version__ = "0.7.4"
@@ -11,5 +11,5 @@ def test_stable_release_metadata_is_consistent() -> None:
11
11
  (root / "src/langbot_plugin/version.py").read_text(encoding="utf-8").strip()
12
12
  )
13
13
 
14
- assert project["project"]["version"] == "0.7.3"
15
- assert source_version == '__version__ = "0.7.3"'
14
+ assert project["project"]["version"] == "0.7.4"
15
+ assert source_version == '__version__ = "0.7.4"'
@@ -0,0 +1,70 @@
1
+ """Real stdio worker smoke for exact DifyAgent; no vendor credentials used."""
2
+ import asyncio
3
+ import json
4
+ import os
5
+ import sys
6
+ from pathlib import Path
7
+
8
+ import pytest
9
+
10
+ from langbot_plugin.api.entities.builtin.runner.context import RunnerContext
11
+ from langbot_plugin.api.entities.builtin.runner.trigger import AgentTrigger
12
+ from langbot_plugin.api.entities.builtin.runner.event import AgentEventContext
13
+ from langbot_plugin.api.entities.builtin.runner.input import AgentInput
14
+ from langbot_plugin.api.entities.builtin.runner.delivery import DeliveryContext
15
+ from langbot_plugin.api.entities.builtin.runner.resources import AgentResources
16
+ from langbot_plugin.api.entities.builtin.runner.runtime import AgentRuntimeContext
17
+ from langbot_plugin.entities.io.context import InstallationBinding
18
+ from langbot_plugin.runtime.plugin.artifact import PluginArtifactStore
19
+ from langbot_plugin.runtime.plugin.dependency_environment import _LEGACY_DEDICATED_SDK_061
20
+
21
+
22
+ @pytest.mark.asyncio
23
+ async def test_exact_archive_real_worker_run_runner(tmp_path):
24
+ archive = Path('/tmp/dify-legacy-exact.lbpkg')
25
+ if not archive.is_file():
26
+ pytest.skip('Exact archive unavailable')
27
+ digest = _LEGACY_DEDICATED_SDK_061[('langbot-team', 'DifyAgent', '0.1.10')]
28
+ code = PluginArtifactStore(tmp_path).install_package(archive.read_bytes(), digest).code_path
29
+ binding = InstallationBinding(instance_uuid='probe', workspace_uuid='workspace', placement_generation=1, installation_uuid='dify', runtime_revision=1, artifact_digest=digest)
30
+ env = dict(os.environ, LANGBOT_PLUGIN_REGISTRATION_CAPABILITY='x'*40, LANGBOT_PLUGIN_RUNTIME_PROFILE='shared', LANGBOT_PLUGIN_FILE_STORAGE_DIR=str(tmp_path/'transfer'), PYTHONUNBUFFERED='1')
31
+ proc = await asyncio.create_subprocess_exec(sys.executable, '-m', 'langbot_plugin.cli.__init__', 'run', '-s', '--prod', cwd=code, env=env, stdin=asyncio.subprocess.PIPE, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE)
32
+
33
+ async def read():
34
+ while True:
35
+ line = await asyncio.wait_for(proc.stdout.readline(), 25)
36
+ if not line:
37
+ raise AssertionError('Worker exited: ' + (await proc.stderr.read()).decode()[-3000:])
38
+ try:
39
+ return json.loads(line)
40
+ except json.JSONDecodeError:
41
+ continue
42
+
43
+ async def send(msg):
44
+ proc.stdin.write((json.dumps(msg)+'\n').encode()); await proc.stdin.drain()
45
+
46
+ async def response():
47
+ while True:
48
+ result = await read()
49
+ if 'action' not in result:
50
+ return result
51
+ await send(dict(seq_id=result['seq_id'], code=0, message='ok', data={'bots': []}))
52
+
53
+ try:
54
+ register = await read()
55
+ assert register['action'] == 'register_plugin'
56
+ await send(dict(seq_id=register['seq_id'], code=0, message='ok', data={}))
57
+ await send(dict(seq_id=100, action='initialize_plugin', data={'plugin_settings': {'enabled': True, 'priority': 1, 'plugin_config': {}}}, context=binding.model_dump()))
58
+ initialized = await response()
59
+ assert initialized['code'] == 0, initialized
60
+ context = RunnerContext(run_id='exact_dify_probe', trigger=AgentTrigger(type='message.received'), event=AgentEventContext(event_id='probe', event_type='message.received', source='probe'), input=AgentInput(text='Hello'), delivery=DeliveryContext(surface='test'), resources=AgentResources(), runtime=AgentRuntimeContext())
61
+ await send(dict(seq_id=101, action='run_runner', data={'runner_name': 'default', 'context': context.model_dump(mode='json')}, context=binding.model_dump()))
62
+ result = await response()
63
+ assert result['code'] == 0, result
64
+ assert result['data']['type'] == 'run.failed', result
65
+ assert result['data']['data']['code'] == 'dify.config_invalid', result
66
+ print('REAL_RUNNER_RESULT', result['data']['type'], result['data']['data']['code'])
67
+ finally:
68
+ if proc.returncode is None:
69
+ proc.terminate()
70
+ await proc.wait()
@@ -0,0 +1,75 @@
1
+ """Exact, dedicated-only SDK pin admission for nine reviewed marketplace archives."""
2
+ import hashlib
3
+ import importlib.metadata
4
+ from pathlib import Path
5
+
6
+ import pytest
7
+
8
+ from langbot_plugin.runtime.plugin.artifact import PluginArtifact, PluginArtifactStore
9
+ from langbot_plugin.runtime.plugin.dependency_environment import (
10
+ DependencyEnvironmentPreparationError,
11
+ PluginDependencyEnvironmentStore,
12
+ _LEGACY_DEDICATED_SDK_061,
13
+ )
14
+
15
+
16
+ @pytest.fixture
17
+ def runtime_074(monkeypatch):
18
+ monkeypatch.setattr(importlib.metadata, "version", lambda name: "0.7.4")
19
+
20
+
21
+ @pytest.mark.parametrize("identity,digest", sorted(_LEGACY_DEDICATED_SDK_061.items()))
22
+ def test_only_exact_verified_identity_and_digest_in_dedicated_mode(
23
+ tmp_path, runtime_074, identity, digest
24
+ ):
25
+ code = tmp_path / "code"
26
+ code.mkdir()
27
+ (code / "requirements.txt").write_text("langbot-plugin==0.6.1\nhttpx>=0.28.1\n")
28
+
29
+ def artifact(*, actual_digest=digest, actual_identity=identity):
30
+ return PluginArtifact(actual_digest, tmp_path, code, *actual_identity)
31
+
32
+ assert PluginDependencyEnvironmentStore._read_requirements(
33
+ artifact(), execution_mode="dedicated"
34
+ )[0] == ("httpx>=0.28.1",)
35
+ for mode in (None, "shared-runtime-v1", "unexpected"):
36
+ with pytest.raises(DependencyEnvironmentPreparationError, match="Runtime provides"):
37
+ PluginDependencyEnvironmentStore._read_requirements(artifact(), execution_mode=mode)
38
+ with pytest.raises(DependencyEnvironmentPreparationError, match="Runtime provides"):
39
+ PluginDependencyEnvironmentStore._read_requirements(
40
+ artifact(actual_digest="0" * 64), execution_mode="dedicated"
41
+ )
42
+ with pytest.raises(DependencyEnvironmentPreparationError, match="Runtime provides"):
43
+ PluginDependencyEnvironmentStore._read_requirements(
44
+ artifact(actual_identity=("other-author", identity[1], identity[2])),
45
+ execution_mode="dedicated",
46
+ )
47
+ (code / "requirements.txt").write_text("langbot-plugin==0.6.2\n")
48
+ with pytest.raises(DependencyEnvironmentPreparationError, match="Runtime provides"):
49
+ PluginDependencyEnvironmentStore._read_requirements(artifact(), execution_mode="dedicated")
50
+
51
+
52
+ def test_runtime_version_and_downloaded_archive_are_exact(tmp_path, monkeypatch):
53
+ archive = Path("/tmp/dify-legacy-exact.lbpkg")
54
+ if not archive.is_file():
55
+ pytest.skip("Exact downloaded DifyAgent archive unavailable")
56
+ digest = _LEGACY_DEDICATED_SDK_061[("langbot-team", "DifyAgent", "0.1.10")]
57
+ package = archive.read_bytes()
58
+ assert hashlib.sha256(package).hexdigest() == digest
59
+ store = PluginArtifactStore(tmp_path)
60
+ with pytest.raises(ValueError, match="digest mismatch"):
61
+ store.install_package(package + b"tampered", digest)
62
+ artifact = store.install_package(package, digest)
63
+ monkeypatch.setattr(importlib.metadata, "version", lambda name: "0.7.4")
64
+ assert PluginDependencyEnvironmentStore._read_requirements(
65
+ artifact, execution_mode="dedicated"
66
+ )[0] == ("pydantic>=2.0.0", "httpx>=0.28.1")
67
+ with pytest.raises(DependencyEnvironmentPreparationError, match="Runtime provides"):
68
+ PluginDependencyEnvironmentStore._read_requirements(
69
+ artifact, execution_mode="shared-runtime-v1"
70
+ )
71
+ monkeypatch.setattr(importlib.metadata, "version", lambda name: "0.7.5")
72
+ with pytest.raises(DependencyEnvironmentPreparationError, match="Runtime provides"):
73
+ PluginDependencyEnvironmentStore._read_requirements(
74
+ artifact, execution_mode="dedicated"
75
+ )
@@ -95,7 +95,7 @@ def _manager(tmp_path) -> tuple[RuntimeContext, PluginManager]:
95
95
  return context, manager
96
96
 
97
97
 
98
- async def _prepare_environment(store, artifact):
98
+ async def _prepare_environment(store, artifact, *, execution_mode=None):
99
99
  root = store.base_path / "test-shared-environment"
100
100
  site_packages = root / "site-packages"
101
101
  site_packages.mkdir(parents=True, exist_ok=True)
@@ -201,7 +201,7 @@ async def test_certified_same_digest_installations_share_one_pool_worker(
201
201
  binding_b = _binding("installation-b", digest, workspace_uuid="workspace-b")
202
202
  scheduled = []
203
203
 
204
- async def prepare(store, artifact):
204
+ async def prepare(store, artifact, *, execution_mode=None):
205
205
  root = store.base_path / "shared-environment"
206
206
  site_packages = root / "site-packages"
207
207
  site_packages.mkdir(parents=True, exist_ok=True)
@@ -1527,7 +1527,7 @@ async def test_installation_lifecycle_runs_dependency_preparation_concurrently_b
1527
1527
  active_prepares = 0
1528
1528
  max_active_prepares = 0
1529
1529
 
1530
- async def prepare(store, artifact):
1530
+ async def prepare(store, artifact, *, execution_mode=None):
1531
1531
  nonlocal active_prepares, max_active_prepares
1532
1532
  active_prepares += 1
1533
1533
  max_active_prepares = max(max_active_prepares, active_prepares)
@@ -1938,7 +1938,7 @@ async def test_shared_apply_prepares_dependency_environment_before_worker_launch
1938
1938
  )
1939
1939
  order: list[str] = []
1940
1940
 
1941
- async def prepare(store, artifact):
1941
+ async def prepare(store, artifact, *, execution_mode=None):
1942
1942
  order.append("prepare")
1943
1943
  root = store.base_path / "test-environment"
1944
1944
  site_packages = root / "site-packages"
@@ -1988,7 +1988,7 @@ async def test_shared_dependency_failure_is_explicit_and_same_revision_can_retry
1988
1988
  )
1989
1989
  launch_count = 0
1990
1990
 
1991
- async def fail_prepare(store, artifact):
1991
+ async def fail_prepare(store, artifact, *, execution_mode=None):
1992
1992
  raise DependencyEnvironmentPreparationError("dependency download failed")
1993
1993
 
1994
1994
  def schedule(runtime):
@@ -2020,7 +2020,7 @@ async def test_shared_dependency_failure_is_explicit_and_same_revision_can_retry
2020
2020
  assert runtime.launch_task is None
2021
2021
  assert runtime.dependency_environment is None
2022
2022
 
2023
- async def successful_prepare(store, artifact):
2023
+ async def successful_prepare(store, artifact, *, execution_mode=None):
2024
2024
  root = store.base_path / "retry-environment"
2025
2025
  site_packages = root / "site-packages"
2026
2026
  site_packages.mkdir(parents=True)
@@ -2063,7 +2063,7 @@ async def test_reconcile_reports_dependency_failure_without_worker_launch(
2063
2063
  enabled=False,
2064
2064
  )
2065
2065
 
2066
- async def fail_prepare(store, artifact):
2066
+ async def fail_prepare(store, artifact, *, execution_mode=None):
2067
2067
  raise DependencyEnvironmentPreparationError("dependency download failed")
2068
2068
 
2069
2069
  monkeypatch.setattr(
@@ -2179,7 +2179,7 @@ async def test_oss_desired_state_prepares_environment_before_worker_launch(
2179
2179
  )
2180
2180
  order: list[str] = []
2181
2181
 
2182
- async def prepare(store, artifact):
2182
+ async def prepare(store, artifact, *, execution_mode=None):
2183
2183
  order.append("prepare")
2184
2184
  root = store.base_path / "test-environment"
2185
2185
  site_packages = root / "site-packages"
@@ -571,6 +571,7 @@ async def test_prepare_dependency_environment_selects_profile_installer(
571
571
  *,
572
572
  runtime_fingerprint,
573
573
  installer,
574
+ execution_mode=None,
574
575
  ):
575
576
  captured.update(
576
577
  artifact=artifact,
@@ -1 +0,0 @@
1
- __version__ = "0.7.3"
File without changes
File without changes
File without changes
File without changes
File without changes