* chore(nix): add reproducible OpenPencil flake * fix(nix): patch and smoke-test prebuilt binaries * chore(ci): keep workflow validation in integration follow-up * feat(integration): expose declarative harness surface * ci: run Nix checks for integration surface * test: verify all OpenPencil runtime tools * feat(integration): expose web server package * chore(nix): remove rebase conflict marker * fix(nix): update OpenPencil CLI prebuilt hash * fix(nix): validate source outputs and pin release assets * fix(nix): refresh desktop release hash * fix(nix): refresh Bun dependency hash * fix(nix): normalize Bun hoisted aliases * ci: make headless desktop smoke test deterministic
22 lines
1.1 KiB
Markdown
22 lines
1.1 KiB
Markdown
# OpenPencil Nix integration surface
|
|
|
|
The OpenPencil flake exports a versioned Pkl contract at
|
|
`nix/integration/OpenPencil.pkl` and the generated Nix sidecar at
|
|
`nix/integration/openpencil.nix` (`lib.integrationManifest`). Downstream flakes
|
|
should consume the sidecar rather than duplicating executable names, MCP
|
|
transport arguments, or harness config paths.
|
|
|
|
For each supported system the contract names these package outputs:
|
|
|
|
- `runtime`: source-built desktop and CLI runtime;
|
|
- `runtime-prebuilt`: the matching release binaries, wrapped so `op` can find
|
|
the desktop executable (exports both `openpencil-desktop` and `op`);
|
|
- `web-server`: the source-built `op-host-web-server` plus its web bundle;
|
|
- `skills`: an immutable Skillnet bundle containing `Skillnet.pkl` and the
|
|
OpenPencil design skill.
|
|
|
|
The default MCP adapter is per-session stdio (`--mcp <document>`). The HTTP
|
|
adapter is loopback-only and is intended for an explicitly enabled live-canvas
|
|
service (`--live-mcp <port>`). Consumers should merge the generated adapter
|
|
entry into their harness config atomically and preserve unrelated keys.
|