Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
5f97b4d
feat(box): add box runtime package and `lbp box` CLI command
huanghuoguoguo Mar 22, 2026
873848e
refactor: add if
huanghuoguoguo Mar 22, 2026
818bc55
feat: add box backend nsjail
huanghuoguoguo Mar 22, 2026
c0e3096
refactor: use unified logging config in box server
huanghuoguoguo Mar 22, 2026
ef7f354
feat(box): support configurable sandbox mount paths
huanghuoguoguo Mar 24, 2026
cf7ec2d
fix(box-runtime): terminate managed processes promptly on session del…
huanghuoguoguo Mar 24, 2026
31c763c
fix: update doc
huanghuoguoguo Mar 24, 2026
dea5820
fix(box): repair sdk runtime entrypoints and nsjail session parity
huanghuoguoguo Mar 24, 2026
8e63877
feat(box): add session workspace quota enforcement and SDK quota meta…
huanghuoguoguo Mar 26, 2026
120817a
feat(box): add Windows support for Docker backend
huanghuoguoguo Apr 9, 2026
8c71ec5
refactor(box): merge action RPC and WS relay into single port
RockChinQ Apr 17, 2026
7209d38
feat(box): add extra_mounts support to BoxSpec for multi-mount contai…
RockChinQ Apr 18, 2026
529088e
feat(box): add shared MCP container support with persistent sessions …
RockChinQ Apr 20, 2026
d593734
fix: terminate stale managed process on restart instead of raising co…
RockChinQ Apr 20, 2026
75b547f
feat(box): add E2B sandbox backend support
huanghuoguoguo Apr 24, 2026
eefdea4
refactor(box): align with LangBot's restructured box config
RockChinQ May 1, 2026
4a2cf65
chore: bump version to 0.3.10
RockChinQ May 2, 2026
fafb7a4
fix: default box control mode on windows
RockChinQ May 8, 2026
57916cd
fix: align box runtime control args
RockChinQ May 8, 2026
5029d9c
fix(box): apply init config before backend reuse
RockChinQ May 12, 2026
c6882cf
fix(box): recreate vanished backend sessions
RockChinQ May 12, 2026
df9c722
feat(box): expose BoxRuntimeClient and ActionRPCBoxClient in the package
huanghuoguoguo May 13, 2026
4ab3502
feat: add box-managed skill storage
RockChinQ May 16, 2026
1aa043f
feat: support skill zip target suffix
RockChinQ May 17, 2026
bd5c2a6
chore: ignore box runtime data
RockChinQ May 18, 2026
e5617c7
fix(box): reselect backend for status checks
huanghuoguoguo May 18, 2026
0fea9b1
fix(box): sync E2B extra mounts
huanghuoguoguo May 18, 2026
686fcc0
fix(box): support installed nsjail CLI
huanghuoguoguo May 18, 2026
feed530
test(box): cover nsjail CLI compatibility
huanghuoguoguo May 18, 2026
40a97ab
fix: make file transfer keys unique
RockChinQ May 18, 2026
d3bb239
fix(box): stop individual managed processes
RockChinQ May 18, 2026
0360c65
refactor(box): consolidate box entry point to the lbp CLI subcommand
RockChinQ May 21, 2026
23cd80d
chore: bump beta 1 version
RockChinQ May 21, 2026
667a274
fix: use box backend config only
RockChinQ May 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,7 @@ cython_debug/
.pypirc

/data/plugins/
/data/box/
/debug/
uv.lock
src/.DS_Store
4 changes: 3 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "langbot-plugin"
version = "0.3.7"
version = "0.4.0-beta.1"
description = "This package contains the SDK, CLI for building plugins for LangBot, plus the runtime for hosting LangBot plugins"
readme = "README.md"
authors = [
Expand All @@ -9,7 +9,9 @@ authors = [
requires-python = ">=3.10"
dependencies = [
"aiofiles>=24.1.0",
"aiohttp>=3.9.0",
"dotenv>=0.9.9",
"e2b>=2.15",
"httpx>=0.28.1",
"jinja2>=3.1.6",
"pip>=25.2",
Expand Down
5 changes: 5 additions & 0 deletions src/langbot_plugin/box/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
"""LangBot Box runtime package."""

from .client import BoxRuntimeClient, ActionRPCBoxClient

__all__ = ['BoxRuntimeClient', 'ActionRPCBoxClient']
34 changes: 34 additions & 0 deletions src/langbot_plugin/box/actions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
"""Box-specific action types for the action RPC protocol."""

from __future__ import annotations

from langbot_plugin.entities.io.actions.enums import ActionType


class LangBotToBoxAction(ActionType):
"""Actions sent from LangBot to the Box runtime."""

INIT = "box_init" # Initialize with full box config (highest priority)
HEALTH = "box_health"
STATUS = "box_status"
EXEC = "box_exec"
CREATE_SESSION = "box_create_session"
GET_SESSION = "box_get_session"
GET_SESSIONS = "box_get_sessions"
DELETE_SESSION = "box_delete_session"
START_MANAGED_PROCESS = "box_start_managed_process"
GET_MANAGED_PROCESS = "box_get_managed_process"
STOP_MANAGED_PROCESS = "box_stop_managed_process"
GET_BACKEND_INFO = "box_get_backend_info"
LIST_SKILLS = "box_list_skills"
GET_SKILL = "box_get_skill"
CREATE_SKILL = "box_create_skill"
UPDATE_SKILL = "box_update_skill"
DELETE_SKILL = "box_delete_skill"
SCAN_SKILL_DIRECTORY = "box_scan_skill_directory"
LIST_SKILL_FILES = "box_list_skill_files"
READ_SKILL_FILE = "box_read_skill_file"
WRITE_SKILL_FILE = "box_write_skill_file"
PREVIEW_SKILL_ZIP = "box_preview_skill_zip"
INSTALL_SKILL_ZIP = "box_install_skill_zip"
SHUTDOWN = "box_shutdown"
Loading