appId: dev.openpencil.app
productName: OpenPencil
copyright: Copyright (c) 2024-2026 OpenPencil contributors

directories:
  output: out/release
  buildResources: apps/desktop/build

files:
  - package.json
  - out/desktop/**/*
  - '!**/node_modules/**'
  - '!**/.git/**'

extraResources:
  - from: out/web/server
    to: server
  - from: out/web/public
    to: public
  - from: out/mcp-server.cjs
    to: mcp-server.cjs
  - from: apps/cli/dist/openpencil-cli.cjs
    to: openpencil-cli.cjs
  # agent-native is external in Vite/Nitro build — ship it alongside server/ so
  # Node can resolve `@zseven-w/agent-native` at runtime. The `napi/` directory
  # IS the package root (contains package.json with name "@zseven-w/agent-native"
  # and agent_napi.node copied by agent-native:bundle script).
  - from: packages/agent-native/napi
    to: server/node_modules/@zseven-w/agent-native

mac:
  category: public.app-category.graphics-design
  icon: apps/desktop/build/icon.icns
  artifactName: '${productName}-${version}-${arch}-mac.${ext}'
  target:
    - dmg
    - zip
  hardenedRuntime: true
  gatekeeperAssess: false
  notarize: true

dmg:
  title: '${productName} ${version}'

win:
  icon: apps/desktop/build/icon.ico
  artifactName: '${productName}-${version}-${arch}-win.${ext}'
  target:
    - nsis
    - portable

nsis:
  artifactName: '${productName}-${version}-${arch}-win-setup.${ext}'
  oneClick: false
  perMachine: false
  allowToChangeInstallationDirectory: true
  createDesktopShortcut: true
  createStartMenuShortcut: true

linux:
  icon: apps/desktop/build/icon.png
  category: Graphics
  artifactName: '${productName}-${version}-${arch}-linux.${ext}'
  desktop:
    entry: |
      [Desktop Entry]
      Name=OpenPencil
      Exec=AppRun --no-sandbox %U
      Terminal=false
      Type=Application
      Icon=openpencil
      StartupWMClass=openpencil
      Categories=Graphics;
      MimeType=application/x-openpencil;
  target:
    - AppImage
    - deb

fileAssociations:
  - ext: op
    name: OpenPencil Document
    description: OpenPencil Design File
    mimeType: application/x-openpencil
    role: Editor
    icon: apps/desktop/build/icon

asar: true
