langbot-plugin 0.4.2b2__tar.gz → 0.4.2b3__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 (235) hide show
  1. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/PKG-INFO +1 -1
  2. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/pyproject.toml +1 -1
  3. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/box/nsjail_backend.py +26 -0
  4. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/box/test_nsjail_backend.py +48 -0
  5. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/.github/workflows/publish-pypi.yaml +0 -0
  6. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/.github/workflows/test.yml +0 -0
  7. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/.gitignore +0 -0
  8. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/.python-version +0 -0
  9. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/AGENTS.md +0 -0
  10. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/CLAUDE.md +0 -0
  11. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/LICENSE +0 -0
  12. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/README.md +0 -0
  13. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/data/.env.example +0 -0
  14. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/docs/Message.md +0 -0
  15. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/docs/PluginPages.md +0 -0
  16. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/docs/communication/apis/lb2rt.md +0 -0
  17. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/docs/communication/runtime_plugin.md +0 -0
  18. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/docs/dependency-management.md +0 -0
  19. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/docs/langbot-plugin-social.png +0 -0
  20. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/__init__.py +0 -0
  21. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/__init__.py +0 -0
  22. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/definition/__init__.py +0 -0
  23. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/definition/abstract/__init__.py +0 -0
  24. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/definition/abstract/platform/__init__.py +0 -0
  25. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/definition/abstract/platform/adapter.py +0 -0
  26. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/definition/abstract/platform/event_logger.py +0 -0
  27. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/definition/components/__init__.py +0 -0
  28. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/definition/components/base.py +0 -0
  29. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/definition/components/command/__init__.py +0 -0
  30. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/definition/components/command/command.py +0 -0
  31. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/definition/components/common/__init__.py +0 -0
  32. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/definition/components/common/event_listener.py +0 -0
  33. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/definition/components/knowledge_engine/__init__.py +0 -0
  34. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/definition/components/knowledge_engine/engine.py +0 -0
  35. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/definition/components/manifest.py +0 -0
  36. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/definition/components/page/__init__.py +0 -0
  37. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/definition/components/parser/__init__.py +0 -0
  38. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/definition/components/parser/parser.py +0 -0
  39. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/definition/components/tool/__init__.py +0 -0
  40. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/definition/components/tool/tool.py +0 -0
  41. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/definition/plugin.py +0 -0
  42. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/__init__.py +0 -0
  43. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/builtin/__init__.py +0 -0
  44. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/builtin/command/__init__.py +0 -0
  45. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/builtin/command/context.py +0 -0
  46. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/builtin/command/errors.py +0 -0
  47. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/builtin/pipeline/__init__.py +0 -0
  48. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/builtin/pipeline/query.py +0 -0
  49. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/builtin/platform/__init__.py +0 -0
  50. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/builtin/platform/entities.py +0 -0
  51. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/builtin/platform/events.py +0 -0
  52. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/builtin/platform/logger.py +0 -0
  53. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/builtin/platform/message.py +0 -0
  54. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/builtin/provider/__init__.py +0 -0
  55. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/builtin/provider/message.py +0 -0
  56. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/builtin/provider/prompt.py +0 -0
  57. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/builtin/provider/session.py +0 -0
  58. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/builtin/rag/__init__.py +0 -0
  59. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/builtin/rag/context.py +0 -0
  60. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/builtin/rag/enums.py +0 -0
  61. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/builtin/rag/errors.py +0 -0
  62. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/builtin/rag/models.py +0 -0
  63. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/builtin/resource/__init__.py +0 -0
  64. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/builtin/resource/tool.py +0 -0
  65. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/context.py +0 -0
  66. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/entities/events.py +0 -0
  67. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/proxies/__init__.py +0 -0
  68. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/proxies/base.py +0 -0
  69. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/proxies/event_context.py +0 -0
  70. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/proxies/execute_context.py +0 -0
  71. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/proxies/langbot_api.py +0 -0
  72. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/api/proxies/query_based_api.py +0 -0
  73. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/__init__.py +0 -0
  74. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/langbot-page-sdk.js +0 -0
  75. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/.env.example.example +0 -0
  76. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/.gitignore.example +0 -0
  77. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/.vscode/launch.json.example +0 -0
  78. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/README.md.example +0 -0
  79. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/__init__.py +0 -0
  80. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/assets/icon.svg.example +0 -0
  81. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/components/__init__.py +0 -0
  82. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/components/commands/__init__.py +0 -0
  83. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/components/commands/{cmd_name}.py.example +0 -0
  84. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/components/commands/{cmd_name}.yaml.example +0 -0
  85. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/components/event_listener/__init__.py +0 -0
  86. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/components/event_listener/default.py.example +0 -0
  87. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/components/event_listener/default.yaml.example +0 -0
  88. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/components/knowledge_engine/__init__.py +0 -0
  89. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/components/knowledge_engine/{knowledge_engine_name}.py.example +0 -0
  90. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/components/knowledge_engine/{knowledge_engine_name}.yaml.example +0 -0
  91. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/components/pages/{page_name}.html.example +0 -0
  92. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/components/pages/{page_name}.yaml.example +0 -0
  93. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/components/parser/__init__.py +0 -0
  94. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/components/parser/{parser_name}.py.example +0 -0
  95. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/components/parser/{parser_name}.yaml.example +0 -0
  96. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/components/tools/__init__.py +0 -0
  97. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/components/tools/{tool_name}.py.example +0 -0
  98. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/components/tools/{tool_name}.yaml.example +0 -0
  99. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/main.py.example +0 -0
  100. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/manifest.yaml.example +0 -0
  101. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/assets/templates/requirements.txt.example +0 -0
  102. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/box/__init__.py +0 -0
  103. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/box/actions.py +0 -0
  104. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/box/backend.py +0 -0
  105. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/box/client.py +0 -0
  106. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/box/e2b_backend.py +0 -0
  107. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/box/errors.py +0 -0
  108. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/box/models.py +0 -0
  109. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/box/runtime.py +0 -0
  110. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/box/security.py +0 -0
  111. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/box/server.py +0 -0
  112. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/box/skill_store.py +0 -0
  113. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/__init__.py +0 -0
  114. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/__main__.py +0 -0
  115. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/commands/__init__.py +0 -0
  116. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/commands/buildplugin.py +0 -0
  117. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/commands/gencomponent.py +0 -0
  118. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/commands/initplugin.py +0 -0
  119. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/commands/login.py +0 -0
  120. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/commands/logout.py +0 -0
  121. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/commands/publish.py +0 -0
  122. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/commands/runplugin.py +0 -0
  123. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/gen/__init__.py +0 -0
  124. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/gen/renderer.py +0 -0
  125. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/i18n.py +0 -0
  126. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/locales/__init__.py +0 -0
  127. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/locales/en_US.py +0 -0
  128. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/locales/es_ES.py +0 -0
  129. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/locales/ja_JP.py +0 -0
  130. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/locales/th_TH.py +0 -0
  131. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/locales/vi_VN.py +0 -0
  132. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/locales/zh_Hans.py +0 -0
  133. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/locales/zh_Hant.py +0 -0
  134. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/run/__init__.py +0 -0
  135. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/run/controller.py +0 -0
  136. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/run/handler.py +0 -0
  137. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/run/hotreload.py +0 -0
  138. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/utils/__init__.py +0 -0
  139. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/utils/cloudsv.py +0 -0
  140. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/utils/form.py +0 -0
  141. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/cli/utils/page_components.py +0 -0
  142. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/entities/__init__.py +0 -0
  143. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/entities/io/__init__.py +0 -0
  144. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/entities/io/actions/__init__.py +0 -0
  145. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/entities/io/actions/enums.py +0 -0
  146. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/entities/io/errors.py +0 -0
  147. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/entities/io/req.py +0 -0
  148. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/entities/io/resp.py +0 -0
  149. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/entities/marketplace.py +0 -0
  150. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/LICENSE +0 -0
  151. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/README.md +0 -0
  152. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/__init__.py +0 -0
  153. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/app.py +0 -0
  154. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/context.py +0 -0
  155. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/helper/__init__.py +0 -0
  156. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/helper/marketplace.py +0 -0
  157. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/helper/pkgmgr.py +0 -0
  158. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/io/__init__.py +0 -0
  159. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/io/connection.py +0 -0
  160. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/io/connections/__init__.py +0 -0
  161. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/io/connections/stdio.py +0 -0
  162. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/io/connections/ws.py +0 -0
  163. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/io/controller.py +0 -0
  164. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/io/controllers/__init__.py +0 -0
  165. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/io/controllers/stdio/__init__.py +0 -0
  166. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/io/controllers/stdio/client.py +0 -0
  167. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/io/controllers/stdio/server.py +0 -0
  168. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/io/controllers/ws/__init__.py +0 -0
  169. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/io/controllers/ws/client.py +0 -0
  170. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/io/controllers/ws/server.py +0 -0
  171. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/io/handler.py +0 -0
  172. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/io/handlers/__init__.py +0 -0
  173. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/io/handlers/control.py +0 -0
  174. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/io/handlers/plugin.py +0 -0
  175. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/plugin/__init__.py +0 -0
  176. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/plugin/container.py +0 -0
  177. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/plugin/mgr.py +0 -0
  178. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/runtime/settings.py +0 -0
  179. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/utils/__init__.py +0 -0
  180. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/utils/discover/__init__.py +0 -0
  181. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/utils/discover/engine.py +0 -0
  182. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/utils/importutil.py +0 -0
  183. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/utils/log.py +0 -0
  184. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/utils/platform.py +0 -0
  185. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/src/langbot_plugin/version.py +0 -0
  186. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/__init__.py +0 -0
  187. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/api/definition/components/test_components.py +0 -0
  188. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/api/definition/test_manifest.py +0 -0
  189. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/api/entities/builtin/test_command_context.py +0 -0
  190. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/api/entities/builtin/test_platform_logger.py +0 -0
  191. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/api/entities/builtin/test_provider_message.py +0 -0
  192. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/api/entities/builtin/test_rag_models.py +0 -0
  193. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/api/entities/test_context.py +0 -0
  194. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/api/entities/test_events.py +0 -0
  195. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/api/proxies/test_base.py +0 -0
  196. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/api/proxies/test_langbot_api.py +0 -0
  197. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/api/proxies/test_query_based_api.py +0 -0
  198. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/box/__init__.py +0 -0
  199. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/box/test_backend.py +0 -0
  200. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/box/test_backend_selection.py +0 -0
  201. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/box/test_client.py +0 -0
  202. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/box/test_e2b_backend.py +0 -0
  203. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/box/test_runtime.py +0 -0
  204. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/box/test_server.py +0 -0
  205. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/box/test_skill_store.py +0 -0
  206. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/cli/run/test_controller.py +0 -0
  207. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/cli/run/test_runtime_handler.py +0 -0
  208. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/cli/test_buildplugin.py +0 -0
  209. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/cli/test_gencomponent.py +0 -0
  210. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/cli/test_i18n_form.py +0 -0
  211. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/cli/test_initplugin.py +0 -0
  212. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/cli/test_login.py +0 -0
  213. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/cli/test_logout_publish.py +0 -0
  214. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/cli/test_page_components.py +0 -0
  215. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/cli/test_renderer.py +0 -0
  216. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/cli/test_runplugin.py +0 -0
  217. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/entities/io/test_protocol.py +0 -0
  218. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/helpers/__init__.py +0 -0
  219. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/helpers/protocol.py +0 -0
  220. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/runtime/helper/test_marketplace.py +0 -0
  221. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/runtime/helper/test_pkgmgr.py +0 -0
  222. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/runtime/io/handlers/test_control_handler.py +0 -0
  223. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/runtime/io/handlers/test_import_contracts.py +0 -0
  224. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/runtime/io/handlers/test_plugin_handler.py +0 -0
  225. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/runtime/io/test_connections.py +0 -0
  226. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/runtime/io/test_controllers.py +0 -0
  227. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/runtime/io/test_handler.py +0 -0
  228. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/runtime/plugin/test_container.py +0 -0
  229. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/runtime/plugin/test_manager.py +0 -0
  230. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/runtime/test_app.py +0 -0
  231. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/test_log.py +0 -0
  232. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/test_message.py +0 -0
  233. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/utils/test_discovery.py +0 -0
  234. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/utils/test_importutil.py +0 -0
  235. {langbot_plugin-0.4.2b2 → langbot_plugin-0.4.2b3}/tests/utils/test_platform.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langbot-plugin
3
- Version: 0.4.2b2
3
+ Version: 0.4.2b3
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.4.2b2"
3
+ version = "0.4.2b3"
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 = [
@@ -44,6 +44,23 @@ _READONLY_ETC_ENTRIES: list[str] = [
44
44
  '/etc/resolv.conf', # needed when network=ON
45
45
  ]
46
46
 
47
+ # Essential character devices bind-mounted into the sandbox's /dev.
48
+ # /dev is a fresh empty tmpfs (see _build_args), so these nodes do not exist
49
+ # unless we bind them in from the host. Tooling that shells out for probes
50
+ # relies on them — notably `uv`/`uvx` redirects its glibc/musl detection
51
+ # subprocess to /dev/null; without it uv fails with "Could not detect either
52
+ # glibc version nor musl libc version" and the process exits before it can do
53
+ # anything (e.g. an stdio MCP server dies before the initialize handshake,
54
+ # surfacing as a misleading "Connection closed / please check URL").
55
+ _DEV_NODES: list[str] = [
56
+ '/dev/null',
57
+ '/dev/zero',
58
+ '/dev/full',
59
+ '/dev/random',
60
+ '/dev/urandom',
61
+ '/dev/tty',
62
+ ]
63
+
47
64
  _DEFAULT_BASE_DIR = '/tmp/langbot-box-nsjail'
48
65
 
49
66
 
@@ -330,6 +347,15 @@ class NsjailBackend(BaseSandboxBackend):
330
347
  args.extend(['--mount', 'none:/proc:proc:rw'])
331
348
  args.extend(['--mount', 'none:/dev:tmpfs:rw'])
332
349
 
350
+ # /dev is a fresh empty tmpfs, so bind in the essential character
351
+ # devices. Without /dev/null in particular, uv's glibc/musl detection
352
+ # subprocess fails and any uvx-launched process (e.g. stdio MCP servers)
353
+ # exits before doing useful work. Mounted read-write so writes to
354
+ # /dev/null behave normally.
355
+ for dev in _DEV_NODES:
356
+ if os.path.exists(dev):
357
+ args.extend(['--bindmount', f'{dev}:{dev}'])
358
+
333
359
  # Working directory.
334
360
  args.extend(['--cwd', spec.workdir])
335
361
 
@@ -215,6 +215,54 @@ def test_build_nsjail_args_basic(backend, tmp_base):
215
215
  assert (session_dir / 'root' / 'home').is_dir()
216
216
 
217
217
 
218
+ def test_build_nsjail_args_binds_essential_dev_nodes(backend, tmp_base):
219
+ """/dev is a fresh empty tmpfs, so essential character devices must be
220
+ bind-mounted in. Regression: without /dev/null, uv's glibc/musl detection
221
+ subprocess fails ("Could not detect either glibc version nor musl libc
222
+ version") and uvx-launched stdio MCP servers die before the initialize
223
+ handshake, surfacing as a misleading "Connection closed / please check URL".
224
+ """
225
+ tmp_base.mkdir(parents=True, exist_ok=True)
226
+ session_dir = tmp_base / 'test_dev'
227
+ for d in ('root', 'workspace', 'tmp', 'home'):
228
+ (session_dir / d).mkdir(parents=True)
229
+
230
+ spec = BoxSpec(session_id='s-dev', cmd='echo hi')
231
+ session = BoxSessionInfo(
232
+ session_id='s-dev',
233
+ backend_name='nsjail',
234
+ backend_session_id=str(session_dir),
235
+ image=spec.image,
236
+ network=BoxNetworkMode.OFF,
237
+ created_at='2024-01-01T00:00:00+00:00',
238
+ last_used_at='2024-01-01T00:00:00+00:00',
239
+ )
240
+
241
+ # Pretend every candidate device node exists on the host.
242
+ with mock.patch('os.path.exists', return_value=True):
243
+ args = backend._build_nsjail_args(session, spec, session_dir)
244
+
245
+ # /dev itself is a tmpfs mount.
246
+ mount_specs = [args[i + 1] for i, a in enumerate(args) if a == '--mount']
247
+ assert 'none:/dev:tmpfs:rw' in mount_specs
248
+
249
+ # /dev/null (the critical one for uv) must be bind-mounted read-write,
250
+ # ordered AFTER the /dev tmpfs mount so it lands on the fresh tmpfs.
251
+ rw_binds = [args[i + 1] for i, a in enumerate(args) if a == '--bindmount']
252
+ assert '/dev/null:/dev/null' in rw_binds
253
+ assert '/dev/urandom:/dev/urandom' in rw_binds
254
+
255
+ dev_tmpfs_idx = next(
256
+ i for i, a in enumerate(args)
257
+ if a == '--mount' and args[i + 1] == 'none:/dev:tmpfs:rw'
258
+ )
259
+ dev_null_idx = next(
260
+ i for i, a in enumerate(args)
261
+ if a == '--bindmount' and args[i + 1] == '/dev/null:/dev/null'
262
+ )
263
+ assert dev_tmpfs_idx < dev_null_idx
264
+
265
+
218
266
  def test_build_nsjail_args_network_on(backend, tmp_base):
219
267
  tmp_base.mkdir(parents=True, exist_ok=True)
220
268
  session_dir = tmp_base / 'test_session_net'