langbot-plugin 0.6.4__tar.gz → 0.6.6__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.
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/PKG-INFO +1 -1
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/pyproject.toml +1 -1
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/run/controller.py +1 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/io/controllers/stdio/client.py +4 -1
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/plugin/mgr.py +20 -1
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/plugin/worker_launcher.py +1 -0
- langbot_plugin-0.6.6/src/langbot_plugin/version.py +1 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/cli/run/test_controller.py +31 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/packaging/test_release_metadata.py +2 -2
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/io/test_controllers.py +28 -1
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/plugin/test_installation_manager.py +6 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/plugin/test_worker_launcher.py +13 -0
- langbot_plugin-0.6.4/src/langbot_plugin/version.py +0 -1
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/.github/workflows/cla.yml +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/.github/workflows/publish-pypi.yaml +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/.github/workflows/publish.yml +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/.github/workflows/test.yml +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/.gitignore +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/.python-version +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/AGENTS.md +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/ARCHITECTURE.md +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/CLAUDE.md +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/CONTRIBUTING.md +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/LICENSE +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/README.md +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/README_CN.md +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/data/.env.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/docs/Message.md +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/docs/PluginPages.md +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/docs/agent-runner-interactions.md +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/docs/agent-runner-pluginization/PROTOCOL_V1.md +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/docs/agent-runner-pluginization/README.md +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/docs/agent-runner-pluginization/SDK_RUNTIME_PLAN.md +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/docs/certified-plugins.md +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/docs/communication/apis/lb2rt.md +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/docs/communication/runtime_plugin.md +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/docs/dependency-management.md +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/docs/langbot-plugin-social.png +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/docs/runner.md +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/mypy.ini +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/scripts/check_action_consistency.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/scripts/runtime_resource_probe.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/agent_tools/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/agent_tools/asset_gateway.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/agent_tools/daemon.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/agent_tools/decorators.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/agent_tools/external_tools.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/agent_tools/mcp_access.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/agent_tools/mcp_bridge.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/agent_tools/mcp_config.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/agent_tools/mcp_protocol.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/agent_tools/mcp_stdio.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/definition/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/definition/abstract/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/definition/abstract/platform/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/definition/abstract/platform/adapter.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/definition/abstract/platform/event_logger.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/definition/components/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/definition/components/base.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/definition/components/command/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/definition/components/command/command.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/definition/components/common/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/definition/components/common/event_listener.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/definition/components/knowledge_engine/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/definition/components/knowledge_engine/engine.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/definition/components/manifest.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/definition/components/page/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/definition/components/parser/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/definition/components/parser/parser.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/definition/components/runner/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/definition/components/runner/runner.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/definition/components/tool/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/definition/components/tool/tool.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/definition/plugin.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/command/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/command/context.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/command/errors.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/pipeline/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/pipeline/query.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/platform/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/platform/entities.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/platform/errors.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/platform/events.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/platform/logger.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/platform/message.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/provider/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/provider/message.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/provider/prompt.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/provider/reasoning.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/provider/session.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/rag/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/rag/context.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/rag/enums.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/rag/errors.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/rag/models.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/resource/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/resource/tool.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/box.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/capabilities.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/compat.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/context.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/context_access.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/delivery.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/errors.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/event.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/input.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/interaction.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/manifest.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/page_results.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/permissions.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/resources.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/result.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/run_ledger.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/runtime.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/runtime_registry.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/state.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/stats.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/steering.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/transcript.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/trigger.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/context.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/events.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/execution.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/base.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/event_context.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/execute_context.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/invocation.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/langbot_api.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/query_based_api.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/runner/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/runner/admin.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/runner/api.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/runner/box.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/runner/common.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/runner/context.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/runner/ledger.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/runner/platform.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/runner/reply_stream.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/runner/resources.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/runner/state.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/runner/tracing.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/langbot-page-sdk.js +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/.env.example.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/.github/workflows/release.yml.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/.gitignore.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/.vscode/launch.json.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/README.md.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/assets/icon.svg.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/components/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/components/commands/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/components/commands/{cmd_name}.py.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/components/commands/{cmd_name}.yaml.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/components/event_listener/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/components/event_listener/default.py.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/components/event_listener/default.yaml.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/components/knowledge_engine/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/components/knowledge_engine/{knowledge_engine_name}.py.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/components/knowledge_engine/{knowledge_engine_name}.yaml.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/components/pages/{page_name}.html.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/components/pages/{page_name}.yaml.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/components/parser/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/components/parser/{parser_name}.py.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/components/parser/{parser_name}.yaml.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/components/runner/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/components/runner/{runner_name}.py.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/components/runner/{runner_name}.yaml.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/components/tools/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/components/tools/{tool_name}.py.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/components/tools/{tool_name}.yaml.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/main.py.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/manifest.yaml.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/readme/README_zh_Hans.md.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/assets/templates/requirements.txt.example +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/box/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/box/actions.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/box/backend.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/box/client.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/box/e2b_backend.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/box/errors.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/box/host_backend.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/box/models.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/box/nsjail_backend.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/box/runtime.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/box/security.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/box/server.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/box/skill_store.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/box/tenancy.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/certification.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/__main__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/commands/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/commands/buildplugin.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/commands/gencomponent.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/commands/initplugin.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/commands/login.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/commands/logout.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/commands/publish.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/commands/runplugin.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/gen/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/gen/renderer.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/i18n.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/locales/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/locales/en_US.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/locales/es_ES.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/locales/ja_JP.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/locales/th_TH.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/locales/vi_VN.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/locales/zh_Hans.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/locales/zh_Hant.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/run/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/run/handler.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/run/hotreload.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/utils/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/utils/cloudsv.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/utils/form.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/cli/utils/page_components.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/entities/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/entities/io/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/entities/io/actions/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/entities/io/actions/enums.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/entities/io/context.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/entities/io/errors.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/entities/io/req.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/entities/io/resp.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/entities/marketplace.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/LICENSE +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/README.md +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/app.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/bounded_executor.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/context.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/event_loop_monitor.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/helper/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/helper/marketplace.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/helper/pkgmgr.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/io/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/io/connection.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/io/connections/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/io/connections/stdio.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/io/connections/ws.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/io/controller.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/io/controllers/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/io/controllers/stdio/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/io/controllers/stdio/server.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/io/controllers/ws/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/io/controllers/ws/client.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/io/controllers/ws/server.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/io/handler.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/io/handlers/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/io/handlers/control.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/io/handlers/plugin.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/plugin/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/plugin/artifact.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/plugin/container.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/plugin/dependency_environment.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/plugin/logbuffer.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/plugin/restart_coordinator.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/plugin/runner_service.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/security.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/runtime/settings.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/storage.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/utils/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/utils/deadline.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/utils/discover/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/utils/discover/engine.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/utils/importutil.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/utils/log.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/utils/platform.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/definition/components/test_components.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/definition/components/test_imports.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/definition/test_manifest.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/entities/builtin/runner/test_context_result.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/entities/builtin/runner/test_history_event_entities.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/entities/builtin/runner/test_interaction.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/entities/builtin/runner/test_run_ledger_entities.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/entities/builtin/test_command_context.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/entities/builtin/test_platform_logger.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/entities/builtin/test_provider_message.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/entities/builtin/test_rag_models.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/entities/test_context.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/entities/test_events.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/proxies/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/proxies/test_agent_run_api_proxy.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/proxies/test_base.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/proxies/test_box_api.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/proxies/test_history_event_api_proxy.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/proxies/test_langbot_api.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/proxies/test_query_based_api.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/proxies/test_reasoning_parameter.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/test_agent_tools_mcp_bridge.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/test_runner_handlers.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/test_runner_handlers_matrix.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/api/test_runner_public_apis.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/box/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/box/test_admission.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/box/test_backend.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/box/test_backend_selection.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/box/test_client.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/box/test_e2b_backend.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/box/test_host_backend.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/box/test_nsjail_backend.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/box/test_runtime.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/box/test_server.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/box/test_skill_store.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/box/test_storage_analysis.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/cli/run/test_hotreload.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/cli/run/test_runtime_handler.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/cli/test_buildplugin.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/cli/test_gencomponent.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/cli/test_i18n_form.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/cli/test_initplugin.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/cli/test_login.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/cli/test_logout_publish.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/cli/test_page_components.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/cli/test_renderer.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/cli/test_runner_usages.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/cli/test_runplugin.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/e2e/standalone_runtime_eba_probe.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/entities/io/test_dependency_errors.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/entities/io/test_protocol.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/fixtures/eba_event_probe_plugin/.gitignore +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/fixtures/eba_event_probe_plugin/assets/icon.svg +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/fixtures/eba_event_probe_plugin/components/event_listener/default.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/fixtures/eba_event_probe_plugin/components/event_listener/default.yaml +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/fixtures/eba_event_probe_plugin/main.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/fixtures/eba_event_probe_plugin/manifest.yaml +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/helpers/__init__.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/helpers/protocol.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/packaging/test_installed_cli_blackbox.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/helper/test_marketplace.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/helper/test_pkgmgr.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/io/handlers/test_control_handler.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/io/handlers/test_import_contracts.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/io/handlers/test_legacy_file_chunk.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/io/handlers/test_plugin_handler.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/io/test_action_consistency.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/io/test_connections.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/io/test_handler.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/io/test_heartbeat_admission.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/io/test_stdio_server.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/plugin/test_artifact_store.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/plugin/test_container.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/plugin/test_dependency_environment.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/plugin/test_legacy_shadow.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/plugin/test_manager.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/plugin/test_mgr_runner.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/plugin/test_restart_coordinator.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/plugin/test_shared_worker_subprocess.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/plugin/test_workload_isolation.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/test_app.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/test_bounded_executor.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/test_event_loop_monitor.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/test_pull_api_handlers.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/test_certification.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/test_log.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/test_message.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/test_plugin_logbuffer.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/test_storage.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/utils/test_deadline.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/utils/test_discovery.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/utils/test_importutil.py +0 -0
- {langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/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
|
+
Version: 0.6.6
|
|
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
|
|
@@ -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
|
-
|
|
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."""
|
|
@@ -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
|
-
|
|
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
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.6.6"
|
|
@@ -585,6 +585,37 @@ async def test_mount_stdio_prod_registers_plugin(monkeypatch):
|
|
|
585
585
|
assert controller.plugin_container.status is RuntimeContainerStatus.MOUNTED
|
|
586
586
|
|
|
587
587
|
|
|
588
|
+
@pytest.mark.asyncio
|
|
589
|
+
async def test_mount_stdio_prod_keeps_serving_after_registration(monkeypatch):
|
|
590
|
+
capability = "registration-capability-that-is-long-enough-for-tests"
|
|
591
|
+
monkeypatch.setenv("LANGBOT_PLUGIN_REGISTRATION_CAPABILITY", capability)
|
|
592
|
+
fake_handler_cls = _fake_handler_class(run_forever=True)
|
|
593
|
+
monkeypatch.setattr(controller_module, "PluginRuntimeHandler", fake_handler_cls)
|
|
594
|
+
_install_stdio_controller(monkeypatch, "connect")
|
|
595
|
+
controller = PluginRuntimeController(
|
|
596
|
+
plugin_manifest=_manifest("Plugin", "demo"),
|
|
597
|
+
component_manifests=[],
|
|
598
|
+
stdio=True,
|
|
599
|
+
ws_debug_url="ws://runtime/plugin/ws",
|
|
600
|
+
prod_mode=True,
|
|
601
|
+
)
|
|
602
|
+
|
|
603
|
+
mount_task = asyncio.create_task(controller.mount())
|
|
604
|
+
handler = None
|
|
605
|
+
try:
|
|
606
|
+
await _wait_until(lambda: bool(getattr(fake_handler_cls, "instances")))
|
|
607
|
+
handler = getattr(fake_handler_cls, "instances")[0]
|
|
608
|
+
await handler.registered.wait()
|
|
609
|
+
await asyncio.sleep(0)
|
|
610
|
+
assert not mount_task.done()
|
|
611
|
+
finally:
|
|
612
|
+
mount_task.cancel()
|
|
613
|
+
await asyncio.gather(mount_task, return_exceptions=True)
|
|
614
|
+
|
|
615
|
+
assert handler is not None
|
|
616
|
+
assert handler.cancelled.is_set()
|
|
617
|
+
|
|
618
|
+
|
|
588
619
|
@pytest.mark.asyncio
|
|
589
620
|
async def test_mount_prod_connection_failure_sets_waiter_and_exits(monkeypatch):
|
|
590
621
|
capability = "registration-capability-that-is-long-enough-for-tests"
|
|
@@ -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.
|
|
15
|
-
assert source_version == '__version__ = "0.6.
|
|
14
|
+
assert project["project"]["version"] == "0.6.6"
|
|
15
|
+
assert source_version == '__version__ = "0.6.6"'
|
|
@@ -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())
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/tests/runtime/plugin/test_installation_manager.py
RENAMED
|
@@ -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.4"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/docs/agent-runner-pluginization/PROTOCOL_V1.md
RENAMED
|
File without changes
|
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/docs/agent-runner-pluginization/SDK_RUNTIME_PLAN.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/agent_tools/__init__.py
RENAMED
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/agent_tools/asset_gateway.py
RENAMED
|
File without changes
|
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/agent_tools/decorators.py
RENAMED
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/agent_tools/external_tools.py
RENAMED
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/agent_tools/mcp_access.py
RENAMED
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/agent_tools/mcp_bridge.py
RENAMED
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/agent_tools/mcp_config.py
RENAMED
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/agent_tools/mcp_protocol.py
RENAMED
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/agent_tools/mcp_stdio.py
RENAMED
|
File without changes
|
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/definition/abstract/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/definition/components/base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/rag/context.py
RENAMED
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/rag/enums.py
RENAMED
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/rag/errors.py
RENAMED
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/rag/models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/entities/builtin/runner/box.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/event_context.py
RENAMED
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/execute_context.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/query_based_api.py
RENAMED
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/runner/__init__.py
RENAMED
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/runner/admin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/runner/common.py
RENAMED
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/runner/context.py
RENAMED
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/runner/ledger.py
RENAMED
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/runner/platform.py
RENAMED
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/runner/reply_stream.py
RENAMED
|
File without changes
|
{langbot_plugin-0.6.4 → langbot_plugin-0.6.6}/src/langbot_plugin/api/proxies/runner/resources.py
RENAMED
|
File without changes
|