-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathelectron-builder.yml
More file actions
130 lines (130 loc) · 5.64 KB
/
Copy pathelectron-builder.yml
File metadata and controls
130 lines (130 loc) · 5.64 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
appId: com.chrisizatt.taskwraith
productName: TaskWraith
directories:
buildResources: build
files:
- '!**/.vscode/*'
- '!src/*'
- '!electron.vite.config.{js,ts,mjs,cjs}'
- '!{.eslintcache,eslint.config.mjs,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}'
- '!{.env,.env.*,.npmrc,pnpm-lock.yaml}'
- '!{tsconfig.json,tsconfig.node.json,tsconfig.web.json}'
- '!dist/**'
- '!dist-debug/**'
# Misc top-level artefacts that have shown up in earlier ships.
- '!*.zip'
- '!*.dmg'
# Local agent/session state from the development loop.
- '!.claude/**'
# Native/mobile source trees are development inputs only. The mac app
# receives the release TaskWraithBridgeDaemon via `mac.extraResources`
# below; packaging the full Swift/iOS `.build` trees into app.asar
# bloated debug builds by hundreds of megabytes.
- '!swift/**'
- '!ios/**'
- '!design-assets/**'
# Dev/release-only material that has no business in a distributed app.asar
# (a security reviewer found .local-only + docs + AGENTS.md shipping in
# 1.4.9). This `files` list is a denylist, so anything not excluded here
# gets bundled — keep it exhaustive for non-runtime trees.
- '!.local-only/**'
- '!docs/**'
- '!tests/**'
- '!scripts/**'
# relay/src is statically imported into out/main at build time (bundled),
# so the source tree itself is dead weight in the package.
- '!relay/**'
- '!{AGENTS.md,CLAUDE.md,ARCHITECTURE.md,WINDOWS_PARITY_QA.md,TERMS_NOTES.md}'
- '!{electron-builder.yml,electron-builder.debug.yml,vitest.config.ts}'
- '!**/*.tsbuildinfo'
asarUnpack:
- resources/**
- node_modules/node-pty/**
afterPack: build/validate-native-modules.cjs
win:
executableName: TaskWraith
target:
- target: nsis
arch:
- x64
- arm64
nsis:
artifactName: TaskWraith-${version}-win-${arch}-setup.${ext}
shortcutName: ${productName}
uninstallDisplayName: ${productName}
oneClick: false
perMachine: false
allowToChangeInstallationDirectory: true
createStartMenuShortcut: true
createDesktopShortcut: always
runAfterFinish: true
deleteAppDataOnUninstall: false
mac:
target:
- target: dmg
arch:
- universal
- target: zip
arch:
- universal
artifactName: TaskWraith-${version}-universal-mac.${ext}
# These packages ship separate darwin-arm64 and darwin-x64 helper
# resources. Each helper binary is intentionally single-arch and
# identical in the x64/arm64 temp apps, so @electron/universal must
# keep them as resources rather than trying to lipo them.
x64ArchFiles: '{**/node_modules/@anthropic-ai/claude-agent-sdk-darwin-*/claude,**/node_modules/node-pty/prebuilds/darwin-*/*}'
entitlementsInherit: build/entitlements.mac.plist
sign: build/sign-with-identity-hash.cjs
# extendInfo MUST be a flat dict, not a list-of-dicts. The list form
# gets serialized into the Info.plist as numbered wrapper keys
# ("0" => { NSCameraUsageDescription: ... }, "1" => { ... }, …),
# which means macOS never sees any of the usage-description keys at
# the root path where it actually checks them. That's why prior
# builds quietly failed to prompt for permissions and why the
# _taskwraith-quic._udp carrier was being dropped before reaching
# the daemon: NSBonjourServices was sitting under "5", not at root.
extendInfo:
NSCameraUsageDescription: Application requests access to the device's camera.
NSMicrophoneUsageDescription: Application requests access to the device's microphone.
NSDocumentsFolderUsageDescription: Application requests access to the user's Documents folder.
NSDownloadsFolderUsageDescription: Application requests access to the user's Downloads folder.
NSLocalNetworkUsageDescription: TaskWraith discovers and connects to your paired iPhone or iPad on your local network to stream live run events, approval requests, and tool outputs.
NSScreenCaptureDescription: TaskWraith captures the window you pick with the macOS screen-sharing picker so the attached AI provider can see it as visual context. Captures are one frame at a time and only run while a window is attached.
# Phase K4 — AppleScript dispatch into creative apps (Final Cut Pro,
# Logic Pro) sends AppleEvents from the TaskWraith process. Hardened-
# runtime apps need this Info.plist string before the OS will route
# cross-app automation; missing it means the OS silently rejects
# every AppleScript call with errAEEventNotPermitted (-1743).
NSAppleEventsUsageDescription: TaskWraith sends AppleScript automation commands to Final Cut Pro and Logic Pro on your behalf — only after you approve each action in the in-app modal. Every dispatch is auditable in the approval log.
NSBonjourServices:
- _taskwraith._tcp
- _taskwraith-quic._udp
notarize: false
# Bundle the Swift TaskWraithBridgeDaemon as an extraResource so the
# main process can spawn it from the packaged .app. The binary is
# compiled by `scripts/build-bridge-daemon.cjs` (run via the
# `prebuild:bridge-daemon` npm script in all mac build targets).
# macOS-only: the daemon uses Apple Network framework + Bonjour +
# CryptoKit and is not built on other platforms.
extraResources:
- from: swift/TaskWraithBridge/.build/release/TaskWraithBridgeDaemon
to: bridge/TaskWraithBridgeDaemon
dmg:
artifactName: TaskWraith-${version}-universal-mac.${ext}
linux:
target:
- AppImage
- snap
- deb
maintainer: electronjs.org
category: Utility
appImage:
artifactName: TaskWraith-${version}.${ext}
npmRebuild: true
detectUpdateChannel: true
generateUpdatesFilesForAllChannels: true
publish:
provider: github
owner: boggspa
repo: TaskWraith
releaseType: release