- background.js: chrome.downloads via page session (no CSP/base64) - content.js: fast-fail on Flow error banner, image vs video timeouts, autoStart - local_server_example.py: /enqueue + /save, downloads/ output, resume-skip - launch.sh: idempotent server-up + caffeinate + single-tab focus - install.sh + plist: self-healing agent every 10 min (TCC-safe App Support copy) - flowclient.py: enqueue/wait_for helper for game projects - README: full setup + macOS TCC gotcha Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
37 lines
1.2 KiB
Plaintext
37 lines
1.2 KiB
Plaintext
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version="1.0">
|
|
<dict>
|
|
<key>Label</key>
|
|
<string>games.monsterrobot.flowrinse</string>
|
|
|
|
<!-- sh -c so $HOME expands; launchd doesn't expand ~ in ProgramArguments -->
|
|
<key>ProgramArguments</key>
|
|
<array>
|
|
<string>/bin/sh</string>
|
|
<string>-c</string>
|
|
<string>exec "$HOME/Library/Application Support/flowrinse/launch.sh"</string>
|
|
</array>
|
|
|
|
<key>EnvironmentVariables</key>
|
|
<dict>
|
|
<key>FLOW_URL</key>
|
|
<string>https://labs.google/fx/tools/flow/project/4085fe36-7540-4359-810f-12c69506f78d</string>
|
|
<key>PATH</key>
|
|
<string>/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
|
|
</dict>
|
|
|
|
<!-- self-healing: idempotent launch.sh every 10 min (nc check + tab reuse
|
|
make repeat runs no-ops), so a dead server or closed tab comes back -->
|
|
<key>RunAtLoad</key>
|
|
<true/>
|
|
<key>StartInterval</key>
|
|
<integer>600</integer>
|
|
|
|
<key>StandardOutPath</key>
|
|
<string>/tmp/flowrinse.launchd.log</string>
|
|
<key>StandardErrorPath</key>
|
|
<string>/tmp/flowrinse.launchd.log</string>
|
|
</dict>
|
|
</plist>
|