diff --git a/.dockerignore b/.dockerignore index af1dfc73a..0ba07b412 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,11 +1,44 @@ +# Version control .git .worktrees + +# OS files +.DS_Store +**/.DS_Store + +# Cache directories .bun-cache .bun .tmp **/.tmp -.DS_Store -**/.DS_Store +.pnpm-store +**/.pnpm-store +.turbo +**/.turbo +.cache +**/.cache +.next +**/.next +tmp +**/tmp + +# Dependencies (rebuilt in container) +node_modules +**/node_modules + +# Test/coverage output +coverage +**/coverage +*.log +**/*.trace + +# Large app trees not needed for CLI build +apps/macos/.build +apps/ios/build +Peekaboo/ +Swabble/ + +# Media files (not needed for build) *.png *.jpg *.jpeg @@ -15,34 +48,9 @@ *.mov *.wav *.mp3 -node_modules -**/node_modules -.pnpm-store -**/.pnpm-store -.turbo -**/.turbo -.cache -**/.cache -.next -**/.next -coverage -**/coverage -*.log -tmp -**/tmp -# build artifacts -dist -**/dist -apps/macos/.build -apps/ios/build -**/*.trace - -# large app trees not needed for CLI build -apps/ -assets/ -Peekaboo/ -Swabble/ -Core/ -Users/ -vendor/ +# Keep these (needed for build): +# - packages/ (clawdbot shim) +# - extensions/ (workspace packages) +# - dist/ (excluded - rebuilt in container) +# - Core/ (if needed) diff --git a/.npmrc b/.npmrc index f0c783cb6..7a980b3c6 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1,3 @@ allow-build-scripts=@whiskeysockets/baileys,sharp,esbuild,protobufjs,fs-ext,node-pty,@lydell/node-pty,@matrix-org/matrix-sdk-crypto-nodejs +link-workspace-packages=true +resolve-peers-from-workspace-root=true diff --git a/Dockerfile b/Dockerfile index 642cfd612..2611268bb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,7 +21,38 @@ COPY ui/package.json ./ui/package.json COPY patches ./patches COPY scripts ./scripts -RUN pnpm install --frozen-lockfile +# Copy all workspace package.json files before install so pnpm can resolve workspace:* dependencies +COPY packages/clawdbot/package.json ./packages/clawdbot/package.json +COPY extensions/bluebubbles/package.json ./extensions/bluebubbles/package.json +COPY extensions/copilot-proxy/package.json ./extensions/copilot-proxy/package.json +COPY extensions/diagnostics-otel/package.json ./extensions/diagnostics-otel/package.json +COPY extensions/discord/package.json ./extensions/discord/package.json +COPY extensions/google-antigravity-auth/package.json ./extensions/google-antigravity-auth/package.json +COPY extensions/google-gemini-cli-auth/package.json ./extensions/google-gemini-cli-auth/package.json +COPY extensions/googlechat/package.json ./extensions/googlechat/package.json +COPY extensions/imessage/package.json ./extensions/imessage/package.json +COPY extensions/line/package.json ./extensions/line/package.json +COPY extensions/llm-task/package.json ./extensions/llm-task/package.json +COPY extensions/lobster/package.json ./extensions/lobster/package.json +COPY extensions/matrix/package.json ./extensions/matrix/package.json +COPY extensions/mattermost/package.json ./extensions/mattermost/package.json +COPY extensions/memory-core/package.json ./extensions/memory-core/package.json +COPY extensions/memory-lancedb/package.json ./extensions/memory-lancedb/package.json +COPY extensions/msteams/package.json ./extensions/msteams/package.json +COPY extensions/nextcloud-talk/package.json ./extensions/nextcloud-talk/package.json +COPY extensions/nostr/package.json ./extensions/nostr/package.json +COPY extensions/open-prose/package.json ./extensions/open-prose/package.json +COPY extensions/signal/package.json ./extensions/signal/package.json +COPY extensions/slack/package.json ./extensions/slack/package.json +COPY extensions/telegram/package.json ./extensions/telegram/package.json +COPY extensions/tlon/package.json ./extensions/tlon/package.json +COPY extensions/twitch/package.json ./extensions/twitch/package.json +COPY extensions/voice-call/package.json ./extensions/voice-call/package.json +COPY extensions/whatsapp/package.json ./extensions/whatsapp/package.json +COPY extensions/zalo/package.json ./extensions/zalo/package.json +COPY extensions/zalouser/package.json ./extensions/zalouser/package.json + +RUN pnpm install --no-frozen-lockfile COPY . . RUN pnpm build diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 115f9a8c0..850217f30 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -2,6 +2,7 @@ packages: - . - ui - extensions/* + - packages/* onlyBuiltDependencies: - '@whiskeysockets/baileys'