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