forked from milind-soni/OpenMausBot
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathelectron-builder.yml
More file actions
163 lines (150 loc) · 6.21 KB
/
Copy pathelectron-builder.yml
File metadata and controls
163 lines (150 loc) · 6.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
appId: com.openmausbot.app
productName: OpenMausBot
artifactName: OpenMausBot-${version}-${arch}.${ext}
# In-app auto-update reads latest-mac.yml + the .zip (macOS) or latest.yml +
# the NSIS .exe (Windows) from this PUBLIC releases repo (separate from the
# source repo). Public → no token on users' machines. Baked into
# app-update.yml; both metadata files are emitted here even with
# --publish never, and must be uploaded to the GitHub release alongside the
# artifacts — a release missing latest.yml leaves every Windows install
# stranded on its installed version.
publish:
- provider: github
owner: milind-soni
repo: openmausbot-releases
directories:
buildResources: build
output: release
# electron-builder makes copied directories group-writable by default. The
# Linux CUA trust boundary requires root-owned package ancestors to be 0755.
afterPack: ./scripts/after-pack.mjs
# The app is three self-contained pieces, none needing node_modules at
# runtime: the Electron main/preload (plain .mjs/.cjs), the built UI
# (Vite → ui/), and the compiled harness server (tsc → server/), both
# shipped in Resources and run on Electron's own Node via
# ELECTRON_RUN_AS_NODE (the agentcal-hq pattern).
files:
- electron/**
- "!electron/**/*.test.*"
- "!electron/resources/speech-helper"
- "!electron/resources/speech-helper.swift"
- "!electron/resources/speech-helper-Info.plist"
- "!electron/resources/OpenMausBot Speech.app/**"
- "!**/node_modules/**"
- package.json
asar: true
extraResources:
# Ship the app's own license terms in every desktop distribution.
- from: LICENSE
to: licenses/OpenMausBot-LICENSE.txt
- from: NOTICE
to: licenses/OpenMausBot-NOTICE.txt
- from: dist
to: ui
- from: dist-server
to: server
# the companion sidecar — a separate process because it is the only part
# of the app that listens off this machine, and it stays off until asked
- from: dist-companion
to: companion
- from: skills
to: skills
- from: dist-native/android-platform-tools
to: android-platform-tools
mac:
# Two single-arch artifacts rather than one universal binary: the app is
# ~177 MB per arch, and universal would make every user download both halves.
# electron-updater picks by filename (arm64-marked files on Apple silicon,
# unmarked ones on Intel), so latest-mac.yml must list all four files.
target:
- target: dmg
arch: [arm64, x64]
- target: zip
arch: [arm64, x64]
icon: build/icon.icns
category: public.app-category.productivity
hardenedRuntime: true
gatekeeperAssess: false
entitlements: build/entitlements.mac.plist
entitlementsInherit: build/entitlements.mac.plist
# the dictation helper is a signed background app — Windows and Linux never see it
extraResources:
- from: electron/resources/OpenMausBot Speech.app
to: OpenMausBot Speech.app
# CUA must live outside ASAR. prepare-cua stages the signed executable and
# a self-contained JS/native SDK bundle selected for macOS arm64.
# ${arch} resolves per built arch — each bundle carries its own natives
- from: dist-native/${arch}/cua-driver
to: cua-driver
- from: dist-native/${arch}/cua-sdk
to: cua-sdk
extendInfo:
NSMicrophoneUsageDescription: OpenMausBot uses the microphone for voice dictation into the composer.
NSSpeechRecognitionUsageDescription: OpenMausBot transcribes your voice on-device to type messages for you.
NSAccessibilityUsageDescription: OpenMausBot uses Accessibility when you let a bot control this Mac.
NSScreenCaptureUsageDescription: OpenMausBot uses Screen Recording so bots can see this Mac before acting.
# Notarization runs manually after the build (notarytool + staple),
# mirroring the BlueyLite ship_release.sh flow.
notarize: false
dmg:
sign: true
# ${arch} is load-bearing: without it the x64 dmg silently overwrites
# the arm64 one when both arches build (this section overrides both the
# top-level and mac-level artifactName, so it must carry the arch itself)
artifactName: OpenMausBot-${version}-${arch}.dmg
win:
target:
- target: nsis
arch: x64
- target: zip
arch: x64
icon: build/icon.ico
# No signing config yet (would go under win.signtoolOptions or
# win.azureSignOptions — eb 26 nests it, there is no top-level
# win.certificateFile). The installer is unsigned, so SmartScreen shows
# "unknown publisher" on first run (README says so). verifyUpdateCodeSignature
# defaults true, but electron-updater skips the check when app-update.yml
# carries no publisherName — so auto-update still works today. Do NOT set
# publisherName without actually signing, or every update is rejected as
# untrusted; and once signed, keep the cert subject stable (or list both old
# and new in publisherName) or you strand already-installed users.
nsis:
oneClick: true
perMachine: false
shortcutName: OpenMausBot
# Versioned, like the .dmg. The README's /latest/download/ button needs a
# STABLE filename, so ship a second copy named OpenMausBot-setup.exe on the
# release — the same trick as OpenMausBot.dmg beside OpenMausBot-${version}.dmg.
artifactName: OpenMausBot-${version}-setup.${ext}
linux:
target:
- target: AppImage
arch: x64
- target: deb
arch: x64
# Keep the vector source in the freedesktop scalable icon hierarchy. A
# lone 1024px PNG is not indexed by GNOME's hicolor theme on Ubuntu 24.04.
icon: build/icon.svg
category: Utility
executableName: openmausbot
synopsis: Your own team of AI bots, in a chat app
description: A local-first chat app for running a team of AI agents.
maintainer: Milind Soni <46266943+milind-soni@users.noreply.github.com>
vendor: OpenMausBot
syncDesktopName: true
# The reviewed x64 CLI runtime is staged before packaging and remains
# outside ASAR so executable modes and adjacent sidecars are preserved.
extraResources:
- from: dist-native/cua-linux-x64
to: cua-linux-x64
desktop:
entry:
Name: OpenMausBot
Comment: Your own team of AI bots, in a chat app
Keywords: AI;Agents;Chat;Productivity;
deb:
packageCategory: utils
priority: optional
# Static AppImage runtime: Ubuntu 24.04 can launch it without legacy FUSE 2.
toolsets:
appimage: "1.0.3"