Linxiushen/dsh-workflow-isolate

Plugin ⭐ 0 MIT agent-orchestrationsecurity

QuickJS/WASM-isolated workflow engine for DeepSeek Harness with bounded resource controls

Install

The Node worker is a lifecycle and termination container. The QuickJS runtime inside it is the language boundary: guest constructors and prototypes belong to QuickJS, not V8, and no Node object is intentionally placed in the realm. See [Architecture](docs/architecture.md) for the run sequence and [Threat model](docs/threat-model.md) for boundary assumptions.

## Compatibility status

The current release targets `@deepseek-ai/dsh-workflow@0.1.0-rc.7` and the associated DSH `0.1.0-rc.7` workflow packages. DSH's workflow API is still a release candidate, so compatibility is intentionally version-bounded.

The following surfaces are retained:

- `ctx.workflowEngine` service provider
- `WorkflowStartRequest`, `WorkflowRun`, and `WorkflowResult`
- `agent`, `parallel`, `pipeline`, `phase`, `log`, and `args`
- structured child output through DSH's supported object JSON Schema subset
- `workflow/start`, `workflow/phase`, `workflow/log`, `workflow/agent-start`, `workflow/agent-end`, and `workflow/end`
- per-run subagent-provider and total-agent policy overrides

QuickJS is not V8. Workflow bodies must use portable JavaScript and cannot depend on Node APIs, V8-only behavior, dynamic module loading, or ambient timers. Error text and stack formatting may also differ. The detailed behavior matrix is in [Compatibility](docs/compatibility.md).

### Benchmark

`pnpm benchmark` measures cold and warm fresh-runtime overhead and prints median/p95 JSON. The Node baseline is included only as a scale reference; it is not a security-equivalent engine. See the [benchmark methodology](benchmarks/README.md).

## Install from a checkout

Prerequisites: Node.js `22.19.x` or `24.x`, pnpm `11`, a DSH `0.1.0-rc.7` installation, and a working `spawn` subagent provider.

Add Linxiushen/dsh-workflow-isolate to your DSH config (web profile) to enable.

README

Expand full README Collapse

README is empty.