BREAKING CHANGE: Convert repository to IronClaw-only package with strict external dependency on globally installed `openclaw` runtime. ### Changes - Remove entire OpenClaw core source from repository (src/agents/*, src/acp/*, src/commands/*, and related modules) - Implement CLI delegation: non-bootstrap commands now delegate to global `openclaw` binary via external contract - Remove local OpenClaw path resolution from web app; always spawn global `openclaw` binary instead of local scripts - Rename package.json scripts: `pnpm openclaw` → `pnpm ironclaw`, `openclaw:rpc` → `ironclaw:rpc` - Update bootstrap flow to verify and install global OpenClaw when missing - Migrate web workspace/profile logic to align with OpenClaw state paths - Add migration contract tests for stream-json, session subscribe, and profile resolution behaviors - Update build/release pipeline for IronClaw-only artifacts - Update documentation for new peer + global installation model ### Architecture IronClaw is now strictly a frontend/UI/bootstrap layer: - `npx ironclaw` bootstraps OpenClaw (if missing), runs guided onboarding - IronClaw UI serves on localhost:3100 - OpenClaw Gateway runs on standard port 18789 - Communication via stable CLI contracts and Gateway WebSocket protocol only ### Migration Users must have `openclaw` installed globally: npm install -g openclaw Existing IronClaw profiles and sessions remain compatible through gateway protocol stability. Refs: bootstrap_dev_testing, ironclaw_frontend_split, strict-external-openclaw
30 lines
842 B
Docker
30 lines
842 B
Docker
FROM node:22-bookworm@sha256:cd7bcd2e7a1e6f72052feb023c7f6b722205d3fcab7bbcbd2d1bfdab10b1e935
|
|
|
|
RUN corepack enable
|
|
|
|
WORKDIR /app
|
|
|
|
ENV NODE_OPTIONS="--disable-warning=ExperimentalWarning"
|
|
|
|
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml tsconfig.json tsdown.config.ts vitest.config.ts vitest.e2e.config.ts openclaw.mjs ./
|
|
COPY src ./src
|
|
COPY test ./test
|
|
COPY scripts ./scripts
|
|
COPY docs ./docs
|
|
COPY skills ./skills
|
|
COPY patches ./patches
|
|
COPY ui ./ui
|
|
COPY extensions/memory-core ./extensions/memory-core
|
|
COPY vendor/a2ui/renderers/lit ./vendor/a2ui/renderers/lit
|
|
COPY apps/shared/OpenClawKit/Tools/CanvasA2UI ./apps/shared/OpenClawKit/Tools/CanvasA2UI
|
|
|
|
RUN pnpm install --frozen-lockfile
|
|
RUN pnpm build
|
|
RUN pnpm ui:build
|
|
|
|
RUN useradd --create-home --shell /bin/bash appuser \
|
|
&& chown -R appuser:appuser /app
|
|
USER appuser
|
|
|
|
CMD ["bash"]
|