openpencil/packages/harness
2026-09-16 17:57:35 +03:00
..
src refactor: replace complex conditional object spreads 2026-09-01 19:49:57 +03:00
tests feat(ai): add HarnessAgent sidecar foundation (#560) 2026-08-19 17:41:10 +03:00
package.json Release v0.15.0 2026-09-16 17:57:35 +03:00
README.md refactor(ai): ship Harness as optional companion (#561) 2026-08-19 20:04:35 +03:00
tsconfig.json feat(ai): add HarnessAgent sidecar foundation (#560) 2026-08-19 17:41:10 +03:00
tsdown.config.ts feat(ai): add HarnessAgent sidecar foundation (#560) 2026-08-19 17:41:10 +03:00

@open-pencil/harness

Optional Node companion runtime for coding-agent harness sessions. It owns the backend-neutral session lifecycle, opaque resume-state persistence, and the JSONL sidecar protocol used by host applications.

The first backend uses AI SDK HarnessAgent, Pi, and local just-bash. Pi runs in the Node host process; just-bash provides an isolated in-memory workspace and shell without requiring cloud infrastructure.

Current scope

  • Backend-neutral, streaming session service.
  • Atomic, bounded persistence of opaque harness resume state.
  • JSONL stdio sidecar transport.
  • Pi + just-bash backend.

The package is installed as an optional companion CLI for the desktop application. It is not bundled into every Tauri build; install @open-pencil/harness globally to make the openpencil-harness command available. Credentials are supplied to the companion process at runtime and are never written to resume-state storage.

Local sandbox limitation

just-bash is process-local and in-memory. Multi-turn sessions work while the sidecar remains alive, but its sandbox cannot be reattached after a process restart. Persisted opaque state establishes the session contract; durable restart recovery requires a persistent sandbox provider in a later integration.