langbot-plugin 0.6.3__tar.gz → 0.6.5__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 (371) hide show
  1. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/PKG-INFO +1 -1
  2. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/pyproject.toml +1 -1
  3. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/io/controllers/stdio/client.py +4 -1
  4. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/plugin/dependency_environment.py +38 -2
  5. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/plugin/mgr.py +20 -1
  6. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/plugin/worker_launcher.py +1 -0
  7. langbot_plugin-0.6.5/src/langbot_plugin/version.py +1 -0
  8. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/packaging/test_release_metadata.py +2 -2
  9. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/io/test_controllers.py +28 -1
  10. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/plugin/test_dependency_environment.py +57 -0
  11. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/plugin/test_installation_manager.py +6 -0
  12. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/plugin/test_worker_launcher.py +13 -0
  13. langbot_plugin-0.6.3/src/langbot_plugin/version.py +0 -1
  14. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/.github/workflows/cla.yml +0 -0
  15. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/.github/workflows/publish-pypi.yaml +0 -0
  16. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/.github/workflows/publish.yml +0 -0
  17. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/.github/workflows/test.yml +0 -0
  18. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/.gitignore +0 -0
  19. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/.python-version +0 -0
  20. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/AGENTS.md +0 -0
  21. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/ARCHITECTURE.md +0 -0
  22. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/CLAUDE.md +0 -0
  23. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/CONTRIBUTING.md +0 -0
  24. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/LICENSE +0 -0
  25. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/README.md +0 -0
  26. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/README_CN.md +0 -0
  27. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/data/.env.example +0 -0
  28. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/docs/Message.md +0 -0
  29. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/docs/PluginPages.md +0 -0
  30. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/docs/agent-runner-interactions.md +0 -0
  31. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/docs/agent-runner-pluginization/PROTOCOL_V1.md +0 -0
  32. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/docs/agent-runner-pluginization/README.md +0 -0
  33. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/docs/agent-runner-pluginization/SDK_RUNTIME_PLAN.md +0 -0
  34. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/docs/certified-plugins.md +0 -0
  35. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/docs/communication/apis/lb2rt.md +0 -0
  36. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/docs/communication/runtime_plugin.md +0 -0
  37. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/docs/dependency-management.md +0 -0
  38. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/docs/langbot-plugin-social.png +0 -0
  39. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/docs/runner.md +0 -0
  40. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/mypy.ini +0 -0
  41. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/scripts/check_action_consistency.py +0 -0
  42. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/scripts/runtime_resource_probe.py +0 -0
  43. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/__init__.py +0 -0
  44. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/__init__.py +0 -0
  45. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/agent_tools/__init__.py +0 -0
  46. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/agent_tools/asset_gateway.py +0 -0
  47. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/agent_tools/daemon.py +0 -0
  48. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/agent_tools/decorators.py +0 -0
  49. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/agent_tools/external_tools.py +0 -0
  50. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/agent_tools/mcp_access.py +0 -0
  51. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/agent_tools/mcp_bridge.py +0 -0
  52. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/agent_tools/mcp_config.py +0 -0
  53. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/agent_tools/mcp_protocol.py +0 -0
  54. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/agent_tools/mcp_stdio.py +0 -0
  55. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/definition/__init__.py +0 -0
  56. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/definition/abstract/__init__.py +0 -0
  57. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/definition/abstract/platform/__init__.py +0 -0
  58. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/definition/abstract/platform/adapter.py +0 -0
  59. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/definition/abstract/platform/event_logger.py +0 -0
  60. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/definition/components/__init__.py +0 -0
  61. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/definition/components/base.py +0 -0
  62. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/definition/components/command/__init__.py +0 -0
  63. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/definition/components/command/command.py +0 -0
  64. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/definition/components/common/__init__.py +0 -0
  65. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/definition/components/common/event_listener.py +0 -0
  66. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/definition/components/knowledge_engine/__init__.py +0 -0
  67. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/definition/components/knowledge_engine/engine.py +0 -0
  68. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/definition/components/manifest.py +0 -0
  69. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/definition/components/page/__init__.py +0 -0
  70. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/definition/components/parser/__init__.py +0 -0
  71. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/definition/components/parser/parser.py +0 -0
  72. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/definition/components/runner/__init__.py +0 -0
  73. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/definition/components/runner/runner.py +0 -0
  74. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/definition/components/tool/__init__.py +0 -0
  75. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/definition/components/tool/tool.py +0 -0
  76. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/definition/plugin.py +0 -0
  77. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/__init__.py +0 -0
  78. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/__init__.py +0 -0
  79. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/command/__init__.py +0 -0
  80. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/command/context.py +0 -0
  81. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/command/errors.py +0 -0
  82. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/pipeline/__init__.py +0 -0
  83. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/pipeline/query.py +0 -0
  84. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/platform/__init__.py +0 -0
  85. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/platform/entities.py +0 -0
  86. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/platform/errors.py +0 -0
  87. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/platform/events.py +0 -0
  88. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/platform/logger.py +0 -0
  89. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/platform/message.py +0 -0
  90. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/provider/__init__.py +0 -0
  91. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/provider/message.py +0 -0
  92. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/provider/prompt.py +0 -0
  93. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/provider/reasoning.py +0 -0
  94. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/provider/session.py +0 -0
  95. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/rag/__init__.py +0 -0
  96. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/rag/context.py +0 -0
  97. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/rag/enums.py +0 -0
  98. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/rag/errors.py +0 -0
  99. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/rag/models.py +0 -0
  100. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/resource/__init__.py +0 -0
  101. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/resource/tool.py +0 -0
  102. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/runner/__init__.py +0 -0
  103. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/runner/box.py +0 -0
  104. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/runner/capabilities.py +0 -0
  105. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/runner/compat.py +0 -0
  106. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/runner/context.py +0 -0
  107. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/runner/context_access.py +0 -0
  108. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/runner/delivery.py +0 -0
  109. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/runner/errors.py +0 -0
  110. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/runner/event.py +0 -0
  111. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/runner/input.py +0 -0
  112. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/runner/interaction.py +0 -0
  113. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/runner/manifest.py +0 -0
  114. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/runner/page_results.py +0 -0
  115. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/runner/permissions.py +0 -0
  116. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/runner/resources.py +0 -0
  117. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/runner/result.py +0 -0
  118. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/runner/run_ledger.py +0 -0
  119. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/runner/runtime.py +0 -0
  120. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/runner/runtime_registry.py +0 -0
  121. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/runner/state.py +0 -0
  122. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/runner/stats.py +0 -0
  123. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/runner/steering.py +0 -0
  124. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/runner/transcript.py +0 -0
  125. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/builtin/runner/trigger.py +0 -0
  126. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/context.py +0 -0
  127. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/events.py +0 -0
  128. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/entities/execution.py +0 -0
  129. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/proxies/__init__.py +0 -0
  130. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/proxies/base.py +0 -0
  131. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/proxies/event_context.py +0 -0
  132. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/proxies/execute_context.py +0 -0
  133. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/proxies/invocation.py +0 -0
  134. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/proxies/langbot_api.py +0 -0
  135. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/proxies/query_based_api.py +0 -0
  136. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/proxies/runner/__init__.py +0 -0
  137. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/proxies/runner/admin.py +0 -0
  138. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/proxies/runner/api.py +0 -0
  139. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/proxies/runner/box.py +0 -0
  140. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/proxies/runner/common.py +0 -0
  141. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/proxies/runner/context.py +0 -0
  142. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/proxies/runner/ledger.py +0 -0
  143. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/proxies/runner/platform.py +0 -0
  144. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/proxies/runner/reply_stream.py +0 -0
  145. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/proxies/runner/resources.py +0 -0
  146. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/proxies/runner/state.py +0 -0
  147. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/api/proxies/runner/tracing.py +0 -0
  148. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/__init__.py +0 -0
  149. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/langbot-page-sdk.js +0 -0
  150. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/.env.example.example +0 -0
  151. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/.github/workflows/release.yml.example +0 -0
  152. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/.gitignore.example +0 -0
  153. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/.vscode/launch.json.example +0 -0
  154. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/README.md.example +0 -0
  155. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/__init__.py +0 -0
  156. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/assets/icon.svg.example +0 -0
  157. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/components/__init__.py +0 -0
  158. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/components/commands/__init__.py +0 -0
  159. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/components/commands/{cmd_name}.py.example +0 -0
  160. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/components/commands/{cmd_name}.yaml.example +0 -0
  161. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/components/event_listener/__init__.py +0 -0
  162. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/components/event_listener/default.py.example +0 -0
  163. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/components/event_listener/default.yaml.example +0 -0
  164. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/components/knowledge_engine/__init__.py +0 -0
  165. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/components/knowledge_engine/{knowledge_engine_name}.py.example +0 -0
  166. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/components/knowledge_engine/{knowledge_engine_name}.yaml.example +0 -0
  167. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/components/pages/{page_name}.html.example +0 -0
  168. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/components/pages/{page_name}.yaml.example +0 -0
  169. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/components/parser/__init__.py +0 -0
  170. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/components/parser/{parser_name}.py.example +0 -0
  171. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/components/parser/{parser_name}.yaml.example +0 -0
  172. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/components/runner/__init__.py +0 -0
  173. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/components/runner/{runner_name}.py.example +0 -0
  174. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/components/runner/{runner_name}.yaml.example +0 -0
  175. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/components/tools/__init__.py +0 -0
  176. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/components/tools/{tool_name}.py.example +0 -0
  177. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/components/tools/{tool_name}.yaml.example +0 -0
  178. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/main.py.example +0 -0
  179. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/manifest.yaml.example +0 -0
  180. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/readme/README_zh_Hans.md.example +0 -0
  181. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/assets/templates/requirements.txt.example +0 -0
  182. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/box/__init__.py +0 -0
  183. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/box/actions.py +0 -0
  184. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/box/backend.py +0 -0
  185. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/box/client.py +0 -0
  186. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/box/e2b_backend.py +0 -0
  187. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/box/errors.py +0 -0
  188. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/box/host_backend.py +0 -0
  189. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/box/models.py +0 -0
  190. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/box/nsjail_backend.py +0 -0
  191. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/box/runtime.py +0 -0
  192. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/box/security.py +0 -0
  193. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/box/server.py +0 -0
  194. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/box/skill_store.py +0 -0
  195. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/box/tenancy.py +0 -0
  196. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/certification.py +0 -0
  197. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/__init__.py +0 -0
  198. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/__main__.py +0 -0
  199. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/commands/__init__.py +0 -0
  200. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/commands/buildplugin.py +0 -0
  201. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/commands/gencomponent.py +0 -0
  202. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/commands/initplugin.py +0 -0
  203. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/commands/login.py +0 -0
  204. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/commands/logout.py +0 -0
  205. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/commands/publish.py +0 -0
  206. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/commands/runplugin.py +0 -0
  207. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/gen/__init__.py +0 -0
  208. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/gen/renderer.py +0 -0
  209. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/i18n.py +0 -0
  210. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/locales/__init__.py +0 -0
  211. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/locales/en_US.py +0 -0
  212. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/locales/es_ES.py +0 -0
  213. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/locales/ja_JP.py +0 -0
  214. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/locales/th_TH.py +0 -0
  215. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/locales/vi_VN.py +0 -0
  216. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/locales/zh_Hans.py +0 -0
  217. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/locales/zh_Hant.py +0 -0
  218. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/run/__init__.py +0 -0
  219. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/run/controller.py +0 -0
  220. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/run/handler.py +0 -0
  221. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/run/hotreload.py +0 -0
  222. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/utils/__init__.py +0 -0
  223. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/utils/cloudsv.py +0 -0
  224. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/utils/form.py +0 -0
  225. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/cli/utils/page_components.py +0 -0
  226. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/entities/__init__.py +0 -0
  227. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/entities/io/__init__.py +0 -0
  228. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/entities/io/actions/__init__.py +0 -0
  229. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/entities/io/actions/enums.py +0 -0
  230. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/entities/io/context.py +0 -0
  231. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/entities/io/errors.py +0 -0
  232. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/entities/io/req.py +0 -0
  233. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/entities/io/resp.py +0 -0
  234. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/entities/marketplace.py +0 -0
  235. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/LICENSE +0 -0
  236. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/README.md +0 -0
  237. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/__init__.py +0 -0
  238. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/app.py +0 -0
  239. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/bounded_executor.py +0 -0
  240. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/context.py +0 -0
  241. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/event_loop_monitor.py +0 -0
  242. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/helper/__init__.py +0 -0
  243. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/helper/marketplace.py +0 -0
  244. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/helper/pkgmgr.py +0 -0
  245. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/io/__init__.py +0 -0
  246. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/io/connection.py +0 -0
  247. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/io/connections/__init__.py +0 -0
  248. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/io/connections/stdio.py +0 -0
  249. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/io/connections/ws.py +0 -0
  250. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/io/controller.py +0 -0
  251. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/io/controllers/__init__.py +0 -0
  252. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/io/controllers/stdio/__init__.py +0 -0
  253. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/io/controllers/stdio/server.py +0 -0
  254. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/io/controllers/ws/__init__.py +0 -0
  255. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/io/controllers/ws/client.py +0 -0
  256. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/io/controllers/ws/server.py +0 -0
  257. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/io/handler.py +0 -0
  258. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/io/handlers/__init__.py +0 -0
  259. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/io/handlers/control.py +0 -0
  260. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/io/handlers/plugin.py +0 -0
  261. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/plugin/__init__.py +0 -0
  262. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/plugin/artifact.py +0 -0
  263. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/plugin/container.py +0 -0
  264. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/plugin/logbuffer.py +0 -0
  265. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/plugin/restart_coordinator.py +0 -0
  266. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/plugin/runner_service.py +0 -0
  267. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/security.py +0 -0
  268. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/runtime/settings.py +0 -0
  269. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/storage.py +0 -0
  270. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/utils/__init__.py +0 -0
  271. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/utils/deadline.py +0 -0
  272. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/utils/discover/__init__.py +0 -0
  273. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/utils/discover/engine.py +0 -0
  274. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/utils/importutil.py +0 -0
  275. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/utils/log.py +0 -0
  276. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/src/langbot_plugin/utils/platform.py +0 -0
  277. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/__init__.py +0 -0
  278. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/definition/components/test_components.py +0 -0
  279. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/definition/components/test_imports.py +0 -0
  280. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/definition/test_manifest.py +0 -0
  281. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/entities/builtin/runner/test_context_result.py +0 -0
  282. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/entities/builtin/runner/test_history_event_entities.py +0 -0
  283. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/entities/builtin/runner/test_interaction.py +0 -0
  284. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/entities/builtin/runner/test_run_ledger_entities.py +0 -0
  285. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/entities/builtin/test_command_context.py +0 -0
  286. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/entities/builtin/test_platform_logger.py +0 -0
  287. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/entities/builtin/test_provider_message.py +0 -0
  288. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/entities/builtin/test_rag_models.py +0 -0
  289. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/entities/test_context.py +0 -0
  290. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/entities/test_events.py +0 -0
  291. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/proxies/__init__.py +0 -0
  292. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/proxies/test_agent_run_api_proxy.py +0 -0
  293. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/proxies/test_base.py +0 -0
  294. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/proxies/test_box_api.py +0 -0
  295. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/proxies/test_history_event_api_proxy.py +0 -0
  296. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/proxies/test_langbot_api.py +0 -0
  297. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/proxies/test_query_based_api.py +0 -0
  298. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/proxies/test_reasoning_parameter.py +0 -0
  299. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/test_agent_tools_mcp_bridge.py +0 -0
  300. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/test_runner_handlers.py +0 -0
  301. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/test_runner_handlers_matrix.py +0 -0
  302. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/api/test_runner_public_apis.py +0 -0
  303. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/box/__init__.py +0 -0
  304. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/box/test_admission.py +0 -0
  305. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/box/test_backend.py +0 -0
  306. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/box/test_backend_selection.py +0 -0
  307. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/box/test_client.py +0 -0
  308. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/box/test_e2b_backend.py +0 -0
  309. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/box/test_host_backend.py +0 -0
  310. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/box/test_nsjail_backend.py +0 -0
  311. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/box/test_runtime.py +0 -0
  312. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/box/test_server.py +0 -0
  313. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/box/test_skill_store.py +0 -0
  314. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/box/test_storage_analysis.py +0 -0
  315. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/cli/run/test_controller.py +0 -0
  316. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/cli/run/test_hotreload.py +0 -0
  317. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/cli/run/test_runtime_handler.py +0 -0
  318. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/cli/test_buildplugin.py +0 -0
  319. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/cli/test_gencomponent.py +0 -0
  320. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/cli/test_i18n_form.py +0 -0
  321. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/cli/test_initplugin.py +0 -0
  322. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/cli/test_login.py +0 -0
  323. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/cli/test_logout_publish.py +0 -0
  324. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/cli/test_page_components.py +0 -0
  325. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/cli/test_renderer.py +0 -0
  326. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/cli/test_runner_usages.py +0 -0
  327. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/cli/test_runplugin.py +0 -0
  328. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/e2e/standalone_runtime_eba_probe.py +0 -0
  329. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/entities/io/test_dependency_errors.py +0 -0
  330. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/entities/io/test_protocol.py +0 -0
  331. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/fixtures/eba_event_probe_plugin/.gitignore +0 -0
  332. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/fixtures/eba_event_probe_plugin/assets/icon.svg +0 -0
  333. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/fixtures/eba_event_probe_plugin/components/event_listener/default.py +0 -0
  334. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/fixtures/eba_event_probe_plugin/components/event_listener/default.yaml +0 -0
  335. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/fixtures/eba_event_probe_plugin/main.py +0 -0
  336. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/fixtures/eba_event_probe_plugin/manifest.yaml +0 -0
  337. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/helpers/__init__.py +0 -0
  338. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/helpers/protocol.py +0 -0
  339. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/packaging/test_installed_cli_blackbox.py +0 -0
  340. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/helper/test_marketplace.py +0 -0
  341. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/helper/test_pkgmgr.py +0 -0
  342. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/io/handlers/test_control_handler.py +0 -0
  343. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/io/handlers/test_import_contracts.py +0 -0
  344. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/io/handlers/test_legacy_file_chunk.py +0 -0
  345. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/io/handlers/test_plugin_handler.py +0 -0
  346. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/io/test_action_consistency.py +0 -0
  347. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/io/test_connections.py +0 -0
  348. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/io/test_handler.py +0 -0
  349. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/io/test_heartbeat_admission.py +0 -0
  350. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/io/test_stdio_server.py +0 -0
  351. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/plugin/test_artifact_store.py +0 -0
  352. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/plugin/test_container.py +0 -0
  353. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/plugin/test_legacy_shadow.py +0 -0
  354. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/plugin/test_manager.py +0 -0
  355. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/plugin/test_mgr_runner.py +0 -0
  356. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/plugin/test_restart_coordinator.py +0 -0
  357. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/plugin/test_shared_worker_subprocess.py +0 -0
  358. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/plugin/test_workload_isolation.py +0 -0
  359. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/test_app.py +0 -0
  360. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/test_bounded_executor.py +0 -0
  361. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/test_event_loop_monitor.py +0 -0
  362. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/runtime/test_pull_api_handlers.py +0 -0
  363. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/test_certification.py +0 -0
  364. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/test_log.py +0 -0
  365. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/test_message.py +0 -0
  366. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/test_plugin_logbuffer.py +0 -0
  367. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/test_storage.py +0 -0
  368. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/utils/test_deadline.py +0 -0
  369. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/utils/test_discovery.py +0 -0
  370. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/utils/test_importutil.py +0 -0
  371. {langbot_plugin-0.6.3 → langbot_plugin-0.6.5}/tests/utils/test_platform.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: langbot-plugin
3
- Version: 0.6.3
3
+ Version: 0.6.5
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.6.3"
3
+ version = "0.6.5"
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 = [
@@ -65,12 +65,14 @@ class StdioClientController(Controller):
65
65
  working_dir: str = ".",
66
66
  *,
67
67
  capture_stderr: bool = False,
68
+ close_process_on_callback_return: bool = True,
68
69
  ):
69
70
  self.command = command
70
71
  self.args = args
71
72
  self.env = env
72
73
  self.working_dir = working_dir
73
74
  self.capture_stderr = capture_stderr
75
+ self.close_process_on_callback_return = close_process_on_callback_return
74
76
 
75
77
  async def run(
76
78
  self,
@@ -95,7 +97,8 @@ class StdioClientController(Controller):
95
97
  try:
96
98
  await new_connection_callback(self.connection)
97
99
  finally:
98
- await self.close()
100
+ if self.close_process_on_callback_return:
101
+ await self.close()
99
102
 
100
103
  async def close(self) -> None:
101
104
  """Close pipes and reap the owned subprocess."""
@@ -16,6 +16,7 @@ from dataclasses import dataclass
16
16
 
17
17
  from packaging.requirements import InvalidRequirement, Requirement
18
18
  from packaging.utils import canonicalize_name
19
+ from packaging.version import InvalidVersion, Version
19
20
 
20
21
  from langbot_plugin.runtime.plugin.artifact import PluginArtifact
21
22
 
@@ -28,6 +29,7 @@ _MAX_ENVIRONMENT_ENTRIES = 100_000
28
29
  _MAX_ENVIRONMENT_TOTAL_BYTES = 2 * 1024 * 1024 * 1024
29
30
  _SHA256_PATTERN = re.compile(r"^[0-9a-f]{64}$")
30
31
  _RUNTIME_PROVIDED_DISTRIBUTIONS = frozenset({"langbot-plugin"})
32
+ _RUNTIME_SDK_COMPATIBILITY_SERIES = (0, 6)
31
33
 
32
34
 
33
35
  class DependencyEnvironmentPreparationError(RuntimeError):
@@ -224,6 +226,39 @@ class PluginDependencyEnvironmentStore:
224
226
  shutil.rmtree(temporary_root, ignore_errors=True)
225
227
  raise
226
228
 
229
+ @staticmethod
230
+ def _runtime_sdk_requirement_satisfied(
231
+ requirement: Requirement,
232
+ runtime_version: str,
233
+ ) -> bool:
234
+ if not requirement.specifier or requirement.specifier.contains(
235
+ runtime_version,
236
+ prereleases=True,
237
+ ):
238
+ return True
239
+
240
+ # Published 0.6 plugins historically used exact SDK pins even though
241
+ # workers always import the Runtime-owned SDK. Preserve that deployed
242
+ # contract only within the reviewed 0.6 compatibility series: an older
243
+ # exact pin is a minimum ABI level, while every other constraint remains
244
+ # strict. Direct URLs are rejected before this helper is called.
245
+ specifiers = tuple(requirement.specifier)
246
+ if len(specifiers) != 1 or specifiers[0].operator != "==":
247
+ return False
248
+ requested_raw = specifiers[0].version
249
+ if "*" in requested_raw:
250
+ return False
251
+ try:
252
+ requested = Version(requested_raw)
253
+ runtime = Version(runtime_version)
254
+ except InvalidVersion:
255
+ return False
256
+ return (
257
+ requested.release[:2] == _RUNTIME_SDK_COMPATIBILITY_SERIES
258
+ and runtime.release[:2] == _RUNTIME_SDK_COMPATIBILITY_SERIES
259
+ and requested <= runtime
260
+ )
261
+
227
262
  @staticmethod
228
263
  def _read_requirements(
229
264
  artifact: PluginArtifact,
@@ -283,8 +318,9 @@ class PluginDependencyEnvironmentStore:
283
318
  ) from exc
284
319
  # Validate the already-installed Runtime SDK, including beta
285
320
  # releases, rather than filtering candidates for installation.
286
- if requirement.specifier and not requirement.specifier.contains(
287
- runtime_version, prereleases=True
321
+ if not PluginDependencyEnvironmentStore._runtime_sdk_requirement_satisfied(
322
+ requirement,
323
+ runtime_version,
288
324
  ):
289
325
  raise DependencyEnvironmentPreparationError(
290
326
  "Plugin requires "
@@ -26,6 +26,7 @@ from langbot_plugin.runtime.io.connection import Connection
26
26
  from langbot_plugin.runtime.io.controllers.stdio import (
27
27
  client as stdio_client_controller,
28
28
  )
29
+ from langbot_plugin.runtime.io.controller import Controller
29
30
  from langbot_plugin.runtime.plugin.runner_service import RunnerRuntimeService
30
31
  from langbot_plugin.runtime.plugin import container as runtime_plugin_container
31
32
  from langbot_plugin.runtime.io.handlers import plugin as runtime_plugin_handler_cls
@@ -148,6 +149,7 @@ class SharedPluginWorkerRuntime:
148
149
  default_factory=dict
149
150
  )
150
151
  plugin_handler: runtime_plugin_handler_cls.PluginConnectionHandler | None = None
152
+ controller: Controller | None = None
151
153
  launch_task: asyncio.Task[None] | None = None
152
154
  transport_registered_event: asyncio.Event = field(default_factory=asyncio.Event)
153
155
  ready_event: asyncio.Event = field(default_factory=asyncio.Event)
@@ -1717,6 +1719,14 @@ class PluginManager:
1717
1719
  task.cancel()
1718
1720
  await asyncio.gather(task, return_exceptions=True)
1719
1721
  worker.launch_task = None
1722
+ controller = worker.controller
1723
+ if controller is not None:
1724
+ close = getattr(controller, "close", None)
1725
+ if close is not None:
1726
+ with contextlib.suppress(Exception):
1727
+ await close()
1728
+ if worker.controller is controller:
1729
+ worker.controller = None
1720
1730
  if not worker.slots:
1721
1731
  transfer_root = (
1722
1732
  self.artifact_store.base_path
@@ -1954,6 +1964,7 @@ class PluginManager:
1954
1964
  dependency_environment=worker.dependency_environment,
1955
1965
  )
1956
1966
  )
1967
+ worker.controller = controller
1957
1968
 
1958
1969
  async def new_plugin_connection_callback(connection: Connection):
1959
1970
  shared_transfer_root = (
@@ -1993,7 +2004,15 @@ class PluginManager:
1993
2004
  finally:
1994
2005
  await self.remove_plugin_handler(plugin_handler)
1995
2006
 
1996
- await controller.run(new_plugin_connection_callback)
2007
+ try:
2008
+ await controller.run(new_plugin_connection_callback)
2009
+ finally:
2010
+ close = getattr(controller, "close", None)
2011
+ if close is not None:
2012
+ with contextlib.suppress(Exception):
2013
+ await close()
2014
+ if worker.controller is controller:
2015
+ worker.controller = None
1997
2016
  finally:
1998
2017
  self._revoke_registration_capability(capability)
1999
2018
 
@@ -625,6 +625,7 @@ class PluginWorkerLauncher:
625
625
  args=self.build_shared_pool_nsjail_args(launch_spec),
626
626
  env={},
627
627
  working_dir="/",
628
+ close_process_on_callback_return=False,
628
629
  )
629
630
 
630
631
  def _append_readonly_runtime_mounts(
@@ -0,0 +1 @@
1
+ __version__ = "0.6.5"
@@ -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.6.3"
15
- assert source_version == '__version__ = "0.6.3"'
14
+ assert project["project"]["version"] == "0.6.5"
15
+ assert source_version == '__version__ = "0.6.5"'
@@ -20,7 +20,7 @@ class FakeProcess:
20
20
  def __init__(self, stdin=object(), stdout=object()):
21
21
  self.stdin = stdin
22
22
  self.stdout = stdout
23
- self.returncode = 0
23
+ self.returncode: int | None = 0
24
24
 
25
25
 
26
26
  class FakeWebSocket:
@@ -114,6 +114,33 @@ async def test_stdio_client_controller_captures_stderr_only_when_requested(
114
114
  assert captured["stderr"] is stdio_client.asyncio.subprocess.PIPE
115
115
 
116
116
 
117
+ async def test_stdio_client_controller_can_transfer_process_lifetime_ownership(
118
+ monkeypatch,
119
+ ):
120
+ process = FakeProcess()
121
+ process.returncode = None
122
+
123
+ async def fake_create_subprocess_exec(*args, **kwargs):
124
+ return process
125
+
126
+ monkeypatch.setattr(
127
+ stdio_client.asyncio,
128
+ "create_subprocess_exec",
129
+ fake_create_subprocess_exec,
130
+ )
131
+ controller = stdio_client.StdioClientController(
132
+ "python",
133
+ [],
134
+ {},
135
+ close_process_on_callback_return=False,
136
+ )
137
+
138
+ await controller.run(lambda _connection: asyncio.sleep(0))
139
+
140
+ assert controller.process is process
141
+ assert controller.connection is not None
142
+
143
+
117
144
  async def test_stdio_client_controller_rejects_missing_pipes(monkeypatch):
118
145
  async def fake_create_subprocess_exec(*args, **kwargs):
119
146
  return FakeProcess(stdin=None, stdout=object())
@@ -258,6 +258,63 @@ async def test_runtime_sdk_requirement_is_not_installed_into_plugin_environment(
258
258
  assert captured_requirements == ("third-party-demo==1.0.0",)
259
259
 
260
260
 
261
+ @pytest.mark.parametrize("requirement", ["==0.6.0b5", "==0.6.1", "==0.6.2", "==0.6.3"])
262
+ async def test_runtime_sdk_legacy_06_exact_pin_accepts_newer_compatible_06_runtime(
263
+ tmp_path,
264
+ monkeypatch,
265
+ requirement,
266
+ ):
267
+ artifact = _artifact(
268
+ tmp_path,
269
+ f"langbot-plugin{requirement}\nthird-party-demo==1.0.0\n",
270
+ )
271
+ store = PluginDependencyEnvironmentStore(tmp_path / "plugin-runtime")
272
+ captured_requirements = None
273
+ monkeypatch.setattr(
274
+ dependency_environment_module.importlib.metadata,
275
+ "version",
276
+ lambda name: "0.6.3" if name == "langbot-plugin" else "1.0.0",
277
+ )
278
+
279
+ async def installer(staging, requirements):
280
+ nonlocal captured_requirements
281
+ captured_requirements = requirements
282
+ _publish_fake_distribution(staging, requirements)
283
+
284
+ await store.prepare(
285
+ artifact,
286
+ runtime_fingerprint="runtime-v1",
287
+ installer=installer,
288
+ )
289
+
290
+ assert captured_requirements == ("third-party-demo==1.0.0",)
291
+
292
+
293
+ @pytest.mark.parametrize("requirement", ["==0.5.5", "==0.7.0", ">=0.7.0", "!=0.6.3"])
294
+ async def test_runtime_sdk_compatibility_does_not_relax_other_constraints(
295
+ tmp_path,
296
+ monkeypatch,
297
+ requirement,
298
+ ):
299
+ artifact = _artifact(tmp_path, f"langbot-plugin{requirement}\n")
300
+ store = PluginDependencyEnvironmentStore(tmp_path / "plugin-runtime")
301
+ monkeypatch.setattr(
302
+ dependency_environment_module.importlib.metadata,
303
+ "version",
304
+ lambda name: "0.6.3",
305
+ )
306
+
307
+ async def installer(staging, requirements): # pragma: no cover - must not run
308
+ raise AssertionError("installer must not run")
309
+
310
+ with pytest.raises(DependencyEnvironmentPreparationError):
311
+ await store.prepare(
312
+ artifact,
313
+ runtime_fingerprint="runtime-v1",
314
+ installer=installer,
315
+ )
316
+
317
+
261
318
  @pytest.mark.parametrize(
262
319
  ("runtime_version", "requirement"),
263
320
  [
@@ -2082,6 +2082,7 @@ async def test_shared_worker_ready_timeout_cancels_hung_controller_and_records_f
2082
2082
  )
2083
2083
  worker = manager.installation_runtimes[binding].shared_worker
2084
2084
  cancelled = asyncio.Event()
2085
+ closed = asyncio.Event()
2085
2086
 
2086
2087
  class NeverRegisterController:
2087
2088
  process = None
@@ -2092,6 +2093,9 @@ async def test_shared_worker_ready_timeout_cancels_hung_controller_and_records_f
2092
2093
  finally:
2093
2094
  cancelled.set()
2094
2095
 
2096
+ async def close(self):
2097
+ closed.set()
2098
+
2095
2099
  monkeypatch.setattr(
2096
2100
  manager.worker_launcher,
2097
2101
  "create_shared_pool_controller",
@@ -2110,6 +2114,8 @@ async def test_shared_worker_ready_timeout_cancels_hung_controller_and_records_f
2110
2114
  await asyncio.wait_for(wait_for_failure(), timeout=1)
2111
2115
 
2112
2116
  assert cancelled.is_set()
2117
+ assert closed.is_set()
2118
+ assert worker.controller is None
2113
2119
  assert manager.restart_coordinator.snapshot()["active_launches"] == 0
2114
2120
  assert manager.installation_runtimes[binding].state == "failed"
2115
2121
  await manager._stop_shared_worker(worker)
@@ -277,6 +277,19 @@ def test_shared_launcher_absolutizes_runtime_paths_before_fixed_root_cwd(
277
277
  assert f"{staging.tmp_path.absolute()}:/tmp" in dependency_args
278
278
 
279
279
 
280
+ def test_shared_pool_controller_transfers_process_lifetime_ownership(tmp_path):
281
+ launcher = PluginWorkerLauncher(
282
+ nsjail_path="/usr/bin/nsjail",
283
+ cgroup_v2_available=True,
284
+ platform="linux",
285
+ )
286
+ launcher.configure(_policy(), "shared")
287
+
288
+ controller = launcher.create_shared_pool_controller(_launch_spec(tmp_path))
289
+
290
+ assert getattr(controller, "close_process_on_callback_return") is False
291
+
292
+
280
293
  def test_shared_launcher_fails_without_nsjail_or_required_cgroup():
281
294
  no_nsjail = PluginWorkerLauncher(
282
295
  nsjail_path="",
@@ -1 +0,0 @@
1
- __version__ = "0.6.3"
File without changes
File without changes
File without changes
File without changes
File without changes