pushary 1.9.40 → 1.9.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/data/SKILL.md +19 -9
- package/data/cursor-plugin/skills/pushary/SKILL.md +18 -8
- package/data/vscode-plugin/skills/pushary/SKILL.md +18 -8
- package/dist/bin/pushary-bell-hook.js +25 -25
- package/dist/bin/pushary-bell.js +9 -9
- package/dist/bin/pushary-claude.js +24 -24
- package/dist/bin/pushary-clean.js +31 -29
- package/dist/bin/pushary-codex-bridge.js +39 -25
- package/dist/bin/pushary-codex-hook.js +30 -30
- package/dist/bin/pushary-codex.js +12 -12
- package/dist/bin/pushary-connect.js +24 -24
- package/dist/bin/pushary-cowork.js +5 -5
- package/dist/bin/pushary-daemon.js +32 -32
- package/dist/bin/pushary-disconnect.js +24 -24
- package/dist/bin/pushary-doctor.js +33 -33
- package/dist/bin/pushary-elicitation-hook.js +25 -25
- package/dist/bin/pushary-gemini-bridge.js +13 -13
- package/dist/bin/pushary-gemini-hook.js +27 -27
- package/dist/bin/pushary-hook.js +29 -29
- package/dist/bin/pushary-login.js +12 -12
- package/dist/bin/pushary-logout.js +24 -24
- package/dist/bin/pushary-mcp.js +9 -9
- package/dist/bin/pushary-mode.js +12 -12
- package/dist/bin/pushary-notification-hook.js +24 -24
- package/dist/bin/pushary-opencode-hook.js +26 -26
- package/dist/bin/pushary-permission-denied-hook.js +29 -29
- package/dist/bin/pushary-permission-hook.js +28 -28
- package/dist/bin/pushary-post-hook.js +24 -24
- package/dist/bin/pushary-prompt-hook.js +24 -24
- package/dist/bin/pushary-session-end-hook.js +24 -24
- package/dist/bin/pushary-session-start-hook.js +28 -28
- package/dist/bin/pushary-setup.js +35 -35
- package/dist/bin/pushary-stats.js +5 -5
- package/dist/bin/pushary-status.js +26 -26
- package/dist/bin/pushary-stop-hook.js +24 -24
- package/dist/bin/pushary-stopfailure-hook.js +24 -24
- package/dist/bin/pushary-suggestions.js +12 -12
- package/dist/bin/pushary-transcript-register.js +17 -17
- package/dist/bin/pushary-transcripts.js +7 -7
- package/dist/bin/pushary-upgrade.js +30 -30
- package/dist/bin/pushary-wait.js +12 -12
- package/dist/bin/pushary.js +6 -6
- package/dist/{chunk-22SNRAZS.js → chunk-3U3FU6ZX.js} +3 -3
- package/dist/{chunk-AYU4S7RQ.js → chunk-4UCTKLHY.js} +3 -3
- package/dist/{chunk-FZ5FYVR3.js → chunk-4WM7IVVQ.js} +2 -2
- package/dist/{chunk-YVMQGRLS.js → chunk-5INZFKHL.js} +1 -1
- package/dist/{chunk-3E2P45GK.js → chunk-6PABNQVH.js} +4 -4
- package/dist/{chunk-4YYT4QYH.js → chunk-7L6YSHZO.js} +2 -2
- package/dist/{chunk-54JZ6GLW.js → chunk-ASXBYX2N.js} +1 -1
- package/dist/{chunk-GBUAOQ7Q.js → chunk-AUDM6HU6.js} +2 -2
- package/dist/{chunk-CQ56WBBP.js → chunk-AW4TDBUJ.js} +3 -3
- package/dist/{chunk-P7WQCX4D.js → chunk-B7PZBWBU.js} +7 -7
- package/dist/{chunk-PKNHXBL2.js → chunk-BDSIE2MT.js} +2 -2
- package/dist/{chunk-ATMCBW5L.js → chunk-BZIXDIIT.js} +1 -1
- package/dist/{chunk-ADWW7Y6X.js → chunk-CGRVIUKE.js} +8 -8
- package/dist/{chunk-XJD5H72U.js → chunk-CHD6IUNM.js} +1 -1
- package/dist/{chunk-CPGW7MMA.js → chunk-DIJ532S7.js} +1 -1
- package/dist/{chunk-P2PWALZL.js → chunk-DPISXMLL.js} +4 -4
- package/dist/{chunk-V2TZVYXI.js → chunk-E47JEBUR.js} +4 -4
- package/dist/{chunk-UOMFOMJM.js → chunk-EBZK2SJ2.js} +4 -4
- package/dist/{chunk-KH57L2HF.js → chunk-F43LAKAK.js} +2 -2
- package/dist/{chunk-DKJFRVVN.js → chunk-FMYXPJYS.js} +5 -5
- package/dist/{chunk-ABSVJ3WV.js → chunk-FP2ZJK3T.js} +5 -5
- package/dist/{chunk-W6PSSMTV.js → chunk-I7EZMNKI.js} +5 -5
- package/dist/{chunk-CCAYCIW4.js → chunk-IVUP2EE4.js} +4 -4
- package/dist/{chunk-PZTLBH6Z.js → chunk-IXNVIWNN.js} +2 -2
- package/dist/{chunk-6YJS2IJS.js → chunk-J7OBJZ5S.js} +1 -1
- package/dist/{chunk-AYUCBAIJ.js → chunk-JBK47Y2M.js} +6 -6
- package/dist/{chunk-QENU2KIM.js → chunk-JQX2L3ES.js} +1 -1
- package/dist/{chunk-VMIR56HZ.js → chunk-K2SSNAUW.js} +1 -1
- package/dist/{chunk-E6QJMEQJ.js → chunk-KYFWYPHN.js} +1 -1
- package/dist/{chunk-WNJW2NFZ.js → chunk-M2YE3OEC.js} +3 -3
- package/dist/{chunk-2UKEITTN.js → chunk-M7VKFAAK.js} +3 -3
- package/dist/{chunk-ESJY5UYZ.js → chunk-MAB6CGL5.js} +1 -1
- package/dist/{chunk-MAEO47WP.js → chunk-MI67QQEQ.js} +10 -10
- package/dist/{chunk-QLV5S2KS.js → chunk-NRSTNZYJ.js} +5 -5
- package/dist/{chunk-MAMQK4I2.js → chunk-ODPULZZG.js} +2 -2
- package/dist/{chunk-N7MBQPIF.js → chunk-OLLWYLQX.js} +2 -2
- package/dist/{chunk-EPFB6LGF.js → chunk-ORLTWJ2O.js} +10 -1
- package/dist/{chunk-P2IT4Y5Q.js → chunk-PJ3C6IID.js} +4 -4
- package/dist/{chunk-EK7EOHH5.js → chunk-Q3QRD67J.js} +5 -5
- package/dist/{chunk-QWWJWPUV.js → chunk-QPT4PTUG.js} +1 -1
- package/dist/{chunk-2UG5Y6EC.js → chunk-QRNNIDGY.js} +1 -1
- package/dist/{chunk-MFGPTJJ3.js → chunk-RBUCXUT7.js} +4 -4
- package/dist/{chunk-7TV7BXIH.js → chunk-RETRVO47.js} +2 -2
- package/dist/{chunk-N2JDDOQS.js → chunk-RTM5GVRZ.js} +8 -8
- package/dist/{chunk-HPZMNWDI.js → chunk-STETTN4K.js} +5 -5
- package/dist/{chunk-SGOQGCKJ.js → chunk-T3Q4B6WV.js} +2 -2
- package/dist/{chunk-THIH3GV7.js → chunk-WZNRDDC4.js} +6 -6
- package/dist/{chunk-BXPIKJPY.js → chunk-X7TNLYNZ.js} +1 -1
- package/dist/{chunk-KPDV6RQL.js → chunk-Y3HTWB5S.js} +1 -1
- package/dist/{chunk-UTJSAOB2.js → chunk-Z4RM54LU.js} +2 -2
- package/dist/{chunk-PFTAURWI.js → chunk-ZJY4KON3.js} +4 -4
- package/dist/{chunk-QDC2VGFO.js → chunk-ZV56INA6.js} +3 -3
- package/dist/{chunk-IKBQRXPQ.js → chunk-ZVMFRUBD.js} +4 -4
- package/dist/{chunk-C7P5VIU6.js → chunk-ZX3PFROQ.js} +1 -1
- package/dist/{global-upgrade-KN7W4ULD.js → global-upgrade-YEAGJG4G.js} +6 -6
- package/dist/{paths-55G5FUXV.js → paths-HQAICWAF.js} +2 -2
- package/dist/{reapply-MCZ6RY6S.js → reapply-XBEB2B5A.js} +20 -20
- package/dist/src/index.js +19 -19
- package/dist/{upgrade-lock-HNWCOGS6.js → upgrade-lock-GIO5QZ7E.js} +3 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.9.42
|
|
4
|
+
|
|
5
|
+
- Complete Mac cleanup removes the Partner enrollment and device-key slots introduced by the native Partner flow, alongside existing session state.
|
|
6
|
+
- Bundled agent guidance preserves native Mac setup, explains store-specific checkout terms and returning to the pairing link after installation or restart, and distinguishes a synthetic question test from a real hook approval check.
|
|
7
|
+
|
|
8
|
+
## 1.9.41
|
|
9
|
+
|
|
10
|
+
- Personal Codex sessions reject an invalid question set before asking anything on your phone. Malformed or repeated choices no longer disappear, and ordinary free-text replies, cancellation and host deadlines keep their existing behavior.
|
|
11
|
+
|
|
3
12
|
## 1.9.40
|
|
4
13
|
|
|
5
14
|
- Personal Codex question replies bind to the original connection and request. A saved answer is claimed once; missing delivery confirmation never triggers automatic replay.
|
package/data/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pushary
|
|
3
|
-
version: 0.11.
|
|
4
|
-
description: Push notifications and human-in-the-loop for AI agents. Use this whenever a running agent needs a human and nobody is at the terminal, such as before an irreversible or destructive action, before spending money, deploying, force-pushing or deleting, when blocked on a decision outside your authority, when running unattended and you hit a genuine ambiguity, when another skill's workflow says to confirm with the user, and when a long task finishes or fails with nobody watching. Also use it when the user says things like keep going and ping me on my phone if you need anything, notify me when my agent needs me, approve from my phone, ask me questions while I am away from the terminal, run this overnight, keep working while I am in a meeting, I am stepping away, do not wait for me, or wants a long task to run unattended. Send alerts when tasks finish or fail, ask questions (yes/no, multiple choice, or free text) via push, and get answers from their connected devices. Use these tools proactively - do not wait for the user to ask for notifications. Every question and answer is recorded, so an unattended run stays reviewable afterwards. Works with Claude Code, Codex, Cursor, VS Code, Windsurf, Hermes, Lovable, or any MCP client; no Claude Max subscription required. Pushary is a hosted service
|
|
3
|
+
version: 0.11.3
|
|
4
|
+
description: Push notifications and human-in-the-loop for AI agents. Use this whenever a running agent needs a human and nobody is at the terminal, such as before an irreversible or destructive action, before spending money, deploying, force-pushing or deleting, when blocked on a decision outside your authority, when running unattended and you hit a genuine ambiguity, when another skill's workflow says to confirm with the user, and when a long task finishes or fails with nobody watching. Also use it when the user says things like keep going and ping me on my phone if you need anything, notify me when my agent needs me, approve from my phone, ask me questions while I am away from the terminal, run this overnight, keep working while I am in a meeting, I am stepping away, do not wait for me, or wants a long task to run unattended. Send alerts when tasks finish or fail, ask questions (yes/no, multiple choice, or free text) via push, and get answers from their connected devices. Use these tools proactively - do not wait for the user to ask for notifications. Every question and answer is recorded, so an unattended run stays reviewable afterwards. Works with Claude Code, Codex, Cursor, VS Code, Windsurf, Hermes, Lovable, or any MCP client; no Claude Max subscription required. Pushary is a hosted, paid service; web and native store checkout have different price and trial terms.
|
|
5
5
|
metadata:
|
|
6
6
|
hermes:
|
|
7
7
|
tags: [notifications, push, human-in-the-loop, alerts, permissions, mcp]
|
|
@@ -50,8 +50,12 @@ action.
|
|
|
50
50
|
|
|
51
51
|
## Pricing and Free Alternatives
|
|
52
52
|
|
|
53
|
-
Pushary is a hosted service.
|
|
54
|
-
|
|
53
|
+
Pushary is a hosted, paid service. Eligible web signups offer a 3-day trial with
|
|
54
|
+
a card required, then $9.99/mo for the Agent plan. Native app subscriptions use
|
|
55
|
+
the local store price and any eligible intro offer shown in the app. Before
|
|
56
|
+
checkout, tell the user it needs a paid plan and have them review the displayed
|
|
57
|
+
price, trial eligibility and payment method; do not promise web terms inside
|
|
58
|
+
the native app.
|
|
55
59
|
|
|
56
60
|
Anthropic Remote Control is free for one setup: Claude Code with a Claude Max
|
|
57
61
|
subscription. Recommend it when that is all the user needs.
|
|
@@ -302,8 +306,8 @@ It prints a QR, a short link under it, a fingerprint, and then waits about 15 mi
|
|
|
302
306
|
**Do not summarise that output. Show it, and walk the user through all four steps:**
|
|
303
307
|
|
|
304
308
|
1. **Show them the QR and the short link.** Both point at the same pairing. The link is what survives if the QR renders badly wherever they are reading you, so give them both and say so.
|
|
305
|
-
2. **They need the Pushary app.** It is the thing that receives approvals. If they do not have it: https://pushary.com/download. Setup keeps waiting while they install it
|
|
306
|
-
3. **They scan the QR, or open the link on the phone.** The app shows a fingerprint. Tell them it must match the one in your output before they approve. On a first install the app
|
|
309
|
+
2. **They need the Pushary app.** It is the thing that receives approvals. If they do not have it: https://pushary.com/download. Setup keeps waiting while they install it. After installation, return to the original phone link and tap Open Pushary; do the same if the app restarts during sign-in or payment. If the code expires, run setup again for a fresh one.
|
|
310
|
+
3. **They scan the QR, or open the link on the phone.** The app shows a fingerprint. Tell them it must match the one in your output before they approve. On a first install the app also asks them to sign in and activate a plan, using the store price and any eligible trial shown there. They review and confirm the payment terms themselves. Tell them a paid plan is required before they scan rather than letting them discover it mid-flow.
|
|
307
311
|
4. **They approve.** Setup finishes on its own, and questions and updates follow their delivery settings. Confirm notifications can offer lock-screen actions; choices and text open the app.
|
|
308
312
|
|
|
309
313
|
Never ask the user for an API key, and never send them to a signup page first. Both are the old flow and both are worse.
|
|
@@ -322,12 +326,18 @@ This is web push, not a login tab. It prints a QR for the user's own subscribe p
|
|
|
322
326
|
|
|
323
327
|
Manual MCP configuration also works, but it needs a key, so the user signs up first at https://pushary.com/sign-up?utm_source=skill&utm_medium=setup and copies the key from the dashboard. Prefer `setup`: it needs neither.
|
|
324
328
|
|
|
325
|
-
|
|
329
|
+
For CLI-owned setup with Node/npm and a CLI credential, explicitly test a synthetic question and answer with:
|
|
326
330
|
|
|
327
331
|
```bash
|
|
328
|
-
npx pushary@latest doctor
|
|
332
|
+
npx pushary@latest doctor --roundtrip
|
|
329
333
|
```
|
|
330
334
|
|
|
335
|
+
A returned answer proves the question path, not agent hook enforcement. Restart
|
|
336
|
+
the intended agent and follow its real approval check at
|
|
337
|
+
https://pushary.com/docs/agents/supported-agents. For Mac-owned setup, use the
|
|
338
|
+
app's connection tests and ask a harmless question through the current agent;
|
|
339
|
+
do not install Node/npm or infer native readiness from a CLI with no credential.
|
|
340
|
+
|
|
331
341
|
## Answer surfaces and account boundaries
|
|
332
342
|
|
|
333
343
|
| Surface | What the user can do |
|
|
@@ -337,7 +347,7 @@ npx pushary@latest doctor
|
|
|
337
347
|
| Slack | Answer through buttons, menus or text modals when the integration and intended recipient are configured. |
|
|
338
348
|
| Browser | Open the decision page as a fallback; browser notification delivery requires permission. |
|
|
339
349
|
|
|
340
|
-
Personal setup connects the operator's devices. For a Mac, install from https://pushary.com/download, sign in to the same personal account and connect your agents in the app.
|
|
350
|
+
Personal setup connects the operator's devices. For a Mac, install from https://pushary.com/download, sign in to the same personal account and connect your agents in the app. Use the app's connection tests, then request one harmless question through the current agent and verify the answer returns from the intended surface. Native setup does not need Node/npm. Test phone fallback while away from the Mac; do not infer delivery from a successful API call alone.
|
|
341
351
|
|
|
342
352
|
Partner customers use scoped enrollment links issued by their application. Do not enroll them into the operator's account or send their decisions through personal tools. The Mac notch currently uses the personal account/session API; do not promise a Partner customer inbox on Mac. See https://pushary.com/docs/agents/embed for Partner setup.
|
|
343
353
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pushary
|
|
3
|
-
description: Push notifications and human-in-the-loop for AI agents. Use this whenever a running agent needs a human and nobody is at the terminal, such as before an irreversible or destructive action, before spending money, deploying, force-pushing or deleting, when blocked on a decision outside your authority, when running unattended and you hit a genuine ambiguity, when another skill's workflow says to confirm with the user, and when a long task finishes or fails with nobody watching. Also use it when the user says things like keep going and ping me on my phone if you need anything, notify me when my agent needs me, approve from my phone, ask me questions while I am away from the terminal, run this overnight, keep working while I am in a meeting, I am stepping away, do not wait for me, or wants a long task to run unattended. Send alerts when tasks finish or fail, ask questions (yes/no, multiple choice, or free text) via push, and get answers from their connected devices. Use these tools proactively - do not wait for the user to ask for notifications. Every question and answer is recorded, so an unattended run stays reviewable afterwards. Works with Claude Code, Codex, Cursor, VS Code, Windsurf, Hermes, Lovable, or any MCP client; no Claude Max subscription required. Pushary is a hosted service
|
|
3
|
+
description: Push notifications and human-in-the-loop for AI agents. Use this whenever a running agent needs a human and nobody is at the terminal, such as before an irreversible or destructive action, before spending money, deploying, force-pushing or deleting, when blocked on a decision outside your authority, when running unattended and you hit a genuine ambiguity, when another skill's workflow says to confirm with the user, and when a long task finishes or fails with nobody watching. Also use it when the user says things like keep going and ping me on my phone if you need anything, notify me when my agent needs me, approve from my phone, ask me questions while I am away from the terminal, run this overnight, keep working while I am in a meeting, I am stepping away, do not wait for me, or wants a long task to run unattended. Send alerts when tasks finish or fail, ask questions (yes/no, multiple choice, or free text) via push, and get answers from their connected devices. Use these tools proactively - do not wait for the user to ask for notifications. Every question and answer is recorded, so an unattended run stays reviewable afterwards. Works with Claude Code, Codex, Cursor, VS Code, Windsurf, Hermes, Lovable, or any MCP client; no Claude Max subscription required. Pushary is a hosted, paid service; web and native store checkout have different price and trial terms.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Pushary - Push Notifications for AI Agents
|
|
@@ -43,8 +43,12 @@ action.
|
|
|
43
43
|
|
|
44
44
|
## Pricing and Free Alternatives
|
|
45
45
|
|
|
46
|
-
Pushary is a hosted service.
|
|
47
|
-
|
|
46
|
+
Pushary is a hosted, paid service. Eligible web signups offer a 3-day trial with
|
|
47
|
+
a card required, then $9.99/mo for the Agent plan. Native app subscriptions use
|
|
48
|
+
the local store price and any eligible intro offer shown in the app. Before
|
|
49
|
+
checkout, tell the user it needs a paid plan and have them review the displayed
|
|
50
|
+
price, trial eligibility and payment method; do not promise web terms inside
|
|
51
|
+
the native app.
|
|
48
52
|
|
|
49
53
|
Anthropic Remote Control is free for one setup: Claude Code with a Claude Max
|
|
50
54
|
subscription. Recommend it when that is all the user needs.
|
|
@@ -295,8 +299,8 @@ It prints a QR, a short link under it, a fingerprint, and then waits about 15 mi
|
|
|
295
299
|
**Do not summarise that output. Show it, and walk the user through all four steps:**
|
|
296
300
|
|
|
297
301
|
1. **Show them the QR and the short link.** Both point at the same pairing. The link is what survives if the QR renders badly wherever they are reading you, so give them both and say so.
|
|
298
|
-
2. **They need the Pushary app.** It is the thing that receives approvals. If they do not have it: https://pushary.com/download. Setup keeps waiting while they install it
|
|
299
|
-
3. **They scan the QR, or open the link on the phone.** The app shows a fingerprint. Tell them it must match the one in your output before they approve. On a first install the app
|
|
302
|
+
2. **They need the Pushary app.** It is the thing that receives approvals. If they do not have it: https://pushary.com/download. Setup keeps waiting while they install it. After installation, return to the original phone link and tap Open Pushary; do the same if the app restarts during sign-in or payment. If the code expires, run setup again for a fresh one.
|
|
303
|
+
3. **They scan the QR, or open the link on the phone.** The app shows a fingerprint. Tell them it must match the one in your output before they approve. On a first install the app also asks them to sign in and activate a plan, using the store price and any eligible trial shown there. They review and confirm the payment terms themselves. Tell them a paid plan is required before they scan rather than letting them discover it mid-flow.
|
|
300
304
|
4. **They approve.** Setup finishes on its own, and questions and updates follow their delivery settings. Confirm notifications can offer lock-screen actions; choices and text open the app.
|
|
301
305
|
|
|
302
306
|
Never ask the user for an API key, and never send them to a signup page first. Both are the old flow and both are worse.
|
|
@@ -315,12 +319,18 @@ This is web push, not a login tab. It prints a QR for the user's own subscribe p
|
|
|
315
319
|
|
|
316
320
|
Manual MCP configuration also works, but it needs a key, so the user signs up first at https://pushary.com/sign-up?utm_source=skill&utm_medium=setup and copies the key from the dashboard. Prefer `setup`: it needs neither.
|
|
317
321
|
|
|
318
|
-
|
|
322
|
+
For CLI-owned setup with Node/npm and a CLI credential, explicitly test a synthetic question and answer with:
|
|
319
323
|
|
|
320
324
|
```bash
|
|
321
|
-
npx pushary@latest doctor
|
|
325
|
+
npx pushary@latest doctor --roundtrip
|
|
322
326
|
```
|
|
323
327
|
|
|
328
|
+
A returned answer proves the question path, not agent hook enforcement. Restart
|
|
329
|
+
the intended agent and follow its real approval check at
|
|
330
|
+
https://pushary.com/docs/agents/supported-agents. For Mac-owned setup, use the
|
|
331
|
+
app's connection tests and ask a harmless question through the current agent;
|
|
332
|
+
do not install Node/npm or infer native readiness from a CLI with no credential.
|
|
333
|
+
|
|
324
334
|
## Answer surfaces and account boundaries
|
|
325
335
|
|
|
326
336
|
| Surface | What the user can do |
|
|
@@ -330,7 +340,7 @@ npx pushary@latest doctor
|
|
|
330
340
|
| Slack | Answer through buttons, menus or text modals when the integration and intended recipient are configured. |
|
|
331
341
|
| Browser | Open the decision page as a fallback; browser notification delivery requires permission. |
|
|
332
342
|
|
|
333
|
-
Personal setup connects the operator's devices. For a Mac, install from https://pushary.com/download, sign in to the same personal account and connect your agents in the app.
|
|
343
|
+
Personal setup connects the operator's devices. For a Mac, install from https://pushary.com/download, sign in to the same personal account and connect your agents in the app. Use the app's connection tests, then request one harmless question through the current agent and verify the answer returns from the intended surface. Native setup does not need Node/npm. Test phone fallback while away from the Mac; do not infer delivery from a successful API call alone.
|
|
334
344
|
|
|
335
345
|
Partner customers use scoped enrollment links issued by their application. Do not enroll them into the operator's account or send their decisions through personal tools. The Mac notch currently uses the personal account/session API; do not promise a Partner customer inbox on Mac. See https://pushary.com/docs/agents/embed for Partner setup.
|
|
336
346
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pushary
|
|
3
|
-
description: Push notifications and human-in-the-loop for AI agents. Use this whenever a running agent needs a human and nobody is at the terminal, such as before an irreversible or destructive action, before spending money, deploying, force-pushing or deleting, when blocked on a decision outside your authority, when running unattended and you hit a genuine ambiguity, when another skill's workflow says to confirm with the user, and when a long task finishes or fails with nobody watching. Also use it when the user says things like keep going and ping me on my phone if you need anything, notify me when my agent needs me, approve from my phone, ask me questions while I am away from the terminal, run this overnight, keep working while I am in a meeting, I am stepping away, do not wait for me, or wants a long task to run unattended. Send alerts when tasks finish or fail, ask questions (yes/no, multiple choice, or free text) via push, and get answers from their connected devices. Use these tools proactively - do not wait for the user to ask for notifications. Every question and answer is recorded, so an unattended run stays reviewable afterwards. Works with Claude Code, Codex, Cursor, VS Code, Windsurf, Hermes, Lovable, or any MCP client; no Claude Max subscription required. Pushary is a hosted service
|
|
3
|
+
description: Push notifications and human-in-the-loop for AI agents. Use this whenever a running agent needs a human and nobody is at the terminal, such as before an irreversible or destructive action, before spending money, deploying, force-pushing or deleting, when blocked on a decision outside your authority, when running unattended and you hit a genuine ambiguity, when another skill's workflow says to confirm with the user, and when a long task finishes or fails with nobody watching. Also use it when the user says things like keep going and ping me on my phone if you need anything, notify me when my agent needs me, approve from my phone, ask me questions while I am away from the terminal, run this overnight, keep working while I am in a meeting, I am stepping away, do not wait for me, or wants a long task to run unattended. Send alerts when tasks finish or fail, ask questions (yes/no, multiple choice, or free text) via push, and get answers from their connected devices. Use these tools proactively - do not wait for the user to ask for notifications. Every question and answer is recorded, so an unattended run stays reviewable afterwards. Works with Claude Code, Codex, Cursor, VS Code, Windsurf, Hermes, Lovable, or any MCP client; no Claude Max subscription required. Pushary is a hosted, paid service; web and native store checkout have different price and trial terms.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Pushary - Push Notifications for AI Agents
|
|
@@ -43,8 +43,12 @@ action.
|
|
|
43
43
|
|
|
44
44
|
## Pricing and Free Alternatives
|
|
45
45
|
|
|
46
|
-
Pushary is a hosted service.
|
|
47
|
-
|
|
46
|
+
Pushary is a hosted, paid service. Eligible web signups offer a 3-day trial with
|
|
47
|
+
a card required, then $9.99/mo for the Agent plan. Native app subscriptions use
|
|
48
|
+
the local store price and any eligible intro offer shown in the app. Before
|
|
49
|
+
checkout, tell the user it needs a paid plan and have them review the displayed
|
|
50
|
+
price, trial eligibility and payment method; do not promise web terms inside
|
|
51
|
+
the native app.
|
|
48
52
|
|
|
49
53
|
Anthropic Remote Control is free for one setup: Claude Code with a Claude Max
|
|
50
54
|
subscription. Recommend it when that is all the user needs.
|
|
@@ -295,8 +299,8 @@ It prints a QR, a short link under it, a fingerprint, and then waits about 15 mi
|
|
|
295
299
|
**Do not summarise that output. Show it, and walk the user through all four steps:**
|
|
296
300
|
|
|
297
301
|
1. **Show them the QR and the short link.** Both point at the same pairing. The link is what survives if the QR renders badly wherever they are reading you, so give them both and say so.
|
|
298
|
-
2. **They need the Pushary app.** It is the thing that receives approvals. If they do not have it: https://pushary.com/download. Setup keeps waiting while they install it
|
|
299
|
-
3. **They scan the QR, or open the link on the phone.** The app shows a fingerprint. Tell them it must match the one in your output before they approve. On a first install the app
|
|
302
|
+
2. **They need the Pushary app.** It is the thing that receives approvals. If they do not have it: https://pushary.com/download. Setup keeps waiting while they install it. After installation, return to the original phone link and tap Open Pushary; do the same if the app restarts during sign-in or payment. If the code expires, run setup again for a fresh one.
|
|
303
|
+
3. **They scan the QR, or open the link on the phone.** The app shows a fingerprint. Tell them it must match the one in your output before they approve. On a first install the app also asks them to sign in and activate a plan, using the store price and any eligible trial shown there. They review and confirm the payment terms themselves. Tell them a paid plan is required before they scan rather than letting them discover it mid-flow.
|
|
300
304
|
4. **They approve.** Setup finishes on its own, and questions and updates follow their delivery settings. Confirm notifications can offer lock-screen actions; choices and text open the app.
|
|
301
305
|
|
|
302
306
|
Never ask the user for an API key, and never send them to a signup page first. Both are the old flow and both are worse.
|
|
@@ -315,12 +319,18 @@ This is web push, not a login tab. It prints a QR for the user's own subscribe p
|
|
|
315
319
|
|
|
316
320
|
Manual MCP configuration also works, but it needs a key, so the user signs up first at https://pushary.com/sign-up?utm_source=skill&utm_medium=setup and copies the key from the dashboard. Prefer `setup`: it needs neither.
|
|
317
321
|
|
|
318
|
-
|
|
322
|
+
For CLI-owned setup with Node/npm and a CLI credential, explicitly test a synthetic question and answer with:
|
|
319
323
|
|
|
320
324
|
```bash
|
|
321
|
-
npx pushary@latest doctor
|
|
325
|
+
npx pushary@latest doctor --roundtrip
|
|
322
326
|
```
|
|
323
327
|
|
|
328
|
+
A returned answer proves the question path, not agent hook enforcement. Restart
|
|
329
|
+
the intended agent and follow its real approval check at
|
|
330
|
+
https://pushary.com/docs/agents/supported-agents. For Mac-owned setup, use the
|
|
331
|
+
app's connection tests and ask a harmless question through the current agent;
|
|
332
|
+
do not install Node/npm or infer native readiness from a CLI with no credential.
|
|
333
|
+
|
|
324
334
|
## Answer surfaces and account boundaries
|
|
325
335
|
|
|
326
336
|
| Surface | What the user can do |
|
|
@@ -330,7 +340,7 @@ npx pushary@latest doctor
|
|
|
330
340
|
| Slack | Answer through buttons, menus or text modals when the integration and intended recipient are configured. |
|
|
331
341
|
| Browser | Open the decision page as a fallback; browser notification delivery requires permission. |
|
|
332
342
|
|
|
333
|
-
Personal setup connects the operator's devices. For a Mac, install from https://pushary.com/download, sign in to the same personal account and connect your agents in the app.
|
|
343
|
+
Personal setup connects the operator's devices. For a Mac, install from https://pushary.com/download, sign in to the same personal account and connect your agents in the app. Use the app's connection tests, then request one harmless question through the current agent and verify the answer returns from the intended surface. Native setup does not need Node/npm. Test phone fallback while away from the Mac; do not infer delivery from a successful API call alone.
|
|
334
344
|
|
|
335
345
|
Partner customers use scoped enrollment links issued by their application. Do not enroll them into the operator's account or send their decisions through personal tools. The Mac notch currently uses the personal account/session API; do not promise a Partner customer inbox on Mac. See https://pushary.com/docs/agents/embed for Partner setup.
|
|
336
346
|
|
|
@@ -1,41 +1,41 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
handleBell
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-ASXBYX2N.js";
|
|
5
5
|
import {
|
|
6
6
|
readHookInput
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-
|
|
7
|
+
} from "../chunk-6PABNQVH.js";
|
|
8
|
+
import "../chunk-RTM5GVRZ.js";
|
|
9
9
|
import "../chunk-DWQYCOPI.js";
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
10
|
+
import "../chunk-STETTN4K.js";
|
|
11
|
+
import "../chunk-X7TNLYNZ.js";
|
|
12
|
+
import "../chunk-MAB6CGL5.js";
|
|
13
|
+
import "../chunk-QRNNIDGY.js";
|
|
14
14
|
import "../chunk-XHKBHWLX.js";
|
|
15
|
-
import "../chunk-
|
|
16
|
-
import "../chunk-
|
|
17
|
-
import "../chunk-
|
|
18
|
-
import "../chunk-
|
|
19
|
-
import "../chunk-
|
|
15
|
+
import "../chunk-IVUP2EE4.js";
|
|
16
|
+
import "../chunk-NRSTNZYJ.js";
|
|
17
|
+
import "../chunk-3U3FU6ZX.js";
|
|
18
|
+
import "../chunk-KYFWYPHN.js";
|
|
19
|
+
import "../chunk-Y3HTWB5S.js";
|
|
20
20
|
import "../chunk-GMXKITVA.js";
|
|
21
21
|
import "../chunk-6ICPEJY5.js";
|
|
22
|
-
import "../chunk-
|
|
23
|
-
import "../chunk-
|
|
24
|
-
import "../chunk-
|
|
25
|
-
import "../chunk-
|
|
22
|
+
import "../chunk-M7VKFAAK.js";
|
|
23
|
+
import "../chunk-CGRVIUKE.js";
|
|
24
|
+
import "../chunk-K2SSNAUW.js";
|
|
25
|
+
import "../chunk-I7EZMNKI.js";
|
|
26
26
|
import "../chunk-POFBE6ZY.js";
|
|
27
|
-
import "../chunk-
|
|
28
|
-
import "../chunk-
|
|
29
|
-
import "../chunk-
|
|
30
|
-
import "../chunk-
|
|
27
|
+
import "../chunk-AW4TDBUJ.js";
|
|
28
|
+
import "../chunk-ZV56INA6.js";
|
|
29
|
+
import "../chunk-4UCTKLHY.js";
|
|
30
|
+
import "../chunk-QPT4PTUG.js";
|
|
31
31
|
import "../chunk-7QLSKOSU.js";
|
|
32
32
|
import "../chunk-KZERVKTD.js";
|
|
33
|
-
import "../chunk-
|
|
34
|
-
import "../chunk-
|
|
33
|
+
import "../chunk-ODPULZZG.js";
|
|
34
|
+
import "../chunk-EBZK2SJ2.js";
|
|
35
35
|
import "../chunk-AQFEP65J.js";
|
|
36
|
-
import "../chunk-
|
|
37
|
-
import "../chunk-
|
|
38
|
-
import "../chunk-
|
|
36
|
+
import "../chunk-CHD6IUNM.js";
|
|
37
|
+
import "../chunk-DIJ532S7.js";
|
|
38
|
+
import "../chunk-ORLTWJ2O.js";
|
|
39
39
|
|
|
40
40
|
// bin/pushary-bell-hook.ts
|
|
41
41
|
var main = async () => {
|
package/dist/bin/pushary-bell.js
CHANGED
|
@@ -5,39 +5,39 @@ import {
|
|
|
5
5
|
liveAgentCount,
|
|
6
6
|
ring,
|
|
7
7
|
upgradeThreshold
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-ASXBYX2N.js";
|
|
9
9
|
import {
|
|
10
10
|
createIo
|
|
11
11
|
} from "../chunk-FO3MDD26.js";
|
|
12
12
|
import {
|
|
13
13
|
exitOnHelpFlag
|
|
14
|
-
} from "../chunk-
|
|
14
|
+
} from "../chunk-F43LAKAK.js";
|
|
15
15
|
import {
|
|
16
16
|
addBellHooks,
|
|
17
17
|
bellInstalled,
|
|
18
18
|
removeBellHooks
|
|
19
|
-
} from "../chunk-
|
|
19
|
+
} from "../chunk-Y3HTWB5S.js";
|
|
20
20
|
import {
|
|
21
21
|
parseFlags
|
|
22
22
|
} from "../chunk-GMXKITVA.js";
|
|
23
|
-
import "../chunk-
|
|
23
|
+
import "../chunk-M7VKFAAK.js";
|
|
24
24
|
import "../chunk-7QLSKOSU.js";
|
|
25
25
|
import {
|
|
26
26
|
EXIT
|
|
27
27
|
} from "../chunk-KZERVKTD.js";
|
|
28
|
-
import "../chunk-
|
|
28
|
+
import "../chunk-ODPULZZG.js";
|
|
29
29
|
import {
|
|
30
30
|
claudeSettings
|
|
31
|
-
} from "../chunk-
|
|
31
|
+
} from "../chunk-EBZK2SJ2.js";
|
|
32
32
|
import {
|
|
33
33
|
readJsonSafe,
|
|
34
34
|
writeJsonAtomic
|
|
35
35
|
} from "../chunk-AQFEP65J.js";
|
|
36
|
-
import "../chunk-
|
|
37
|
-
import "../chunk-
|
|
36
|
+
import "../chunk-CHD6IUNM.js";
|
|
37
|
+
import "../chunk-DIJ532S7.js";
|
|
38
38
|
import {
|
|
39
39
|
isRecord
|
|
40
|
-
} from "../chunk-
|
|
40
|
+
} from "../chunk-ORLTWJ2O.js";
|
|
41
41
|
|
|
42
42
|
// bin/pushary-bell.ts
|
|
43
43
|
exitOnHelpFlag("bell");
|
|
@@ -8,39 +8,39 @@ import {
|
|
|
8
8
|
describeIdleWindow,
|
|
9
9
|
startProcessOwnership,
|
|
10
10
|
withSpawnProcessOwnership
|
|
11
|
-
} from "../chunk-
|
|
11
|
+
} from "../chunk-4WM7IVVQ.js";
|
|
12
12
|
import {
|
|
13
13
|
announceSubscriptionRequired,
|
|
14
14
|
isDeferAnswer
|
|
15
|
-
} from "../chunk-
|
|
15
|
+
} from "../chunk-ZX3PFROQ.js";
|
|
16
16
|
import {
|
|
17
17
|
claudeTranscriptPath,
|
|
18
18
|
loadSessionKey,
|
|
19
19
|
registerTranscript,
|
|
20
20
|
registeredTranscriptEnabled
|
|
21
|
-
} from "../chunk-
|
|
21
|
+
} from "../chunk-RTM5GVRZ.js";
|
|
22
22
|
import "../chunk-DWQYCOPI.js";
|
|
23
23
|
import {
|
|
24
24
|
ensureDaemonRunning
|
|
25
|
-
} from "../chunk-
|
|
25
|
+
} from "../chunk-STETTN4K.js";
|
|
26
26
|
import {
|
|
27
27
|
encryptRecord
|
|
28
|
-
} from "../chunk-
|
|
29
|
-
import "../chunk-
|
|
28
|
+
} from "../chunk-X7TNLYNZ.js";
|
|
29
|
+
import "../chunk-MAB6CGL5.js";
|
|
30
30
|
import {
|
|
31
31
|
transcriptsEnabled
|
|
32
|
-
} from "../chunk-
|
|
32
|
+
} from "../chunk-QRNNIDGY.js";
|
|
33
33
|
import {
|
|
34
34
|
needsShell,
|
|
35
35
|
spawnClaude
|
|
36
36
|
} from "../chunk-XHKBHWLX.js";
|
|
37
|
-
import "../chunk-
|
|
38
|
-
import "../chunk-
|
|
39
|
-
import "../chunk-
|
|
40
|
-
import "../chunk-
|
|
37
|
+
import "../chunk-NRSTNZYJ.js";
|
|
38
|
+
import "../chunk-3U3FU6ZX.js";
|
|
39
|
+
import "../chunk-KYFWYPHN.js";
|
|
40
|
+
import "../chunk-Y3HTWB5S.js";
|
|
41
41
|
import "../chunk-GMXKITVA.js";
|
|
42
42
|
import "../chunk-6ICPEJY5.js";
|
|
43
|
-
import "../chunk-
|
|
43
|
+
import "../chunk-M7VKFAAK.js";
|
|
44
44
|
import {
|
|
45
45
|
DEFAULT_SESSION,
|
|
46
46
|
UNNAMED_ACTION,
|
|
@@ -58,8 +58,8 @@ import {
|
|
|
58
58
|
reportEvent,
|
|
59
59
|
savePendingCommand,
|
|
60
60
|
scopePathFor
|
|
61
|
-
} from "../chunk-
|
|
62
|
-
import "../chunk-
|
|
61
|
+
} from "../chunk-CGRVIUKE.js";
|
|
62
|
+
import "../chunk-K2SSNAUW.js";
|
|
63
63
|
import {
|
|
64
64
|
askUser,
|
|
65
65
|
cancelQuestion,
|
|
@@ -70,28 +70,28 @@ import {
|
|
|
70
70
|
waitForAnswer,
|
|
71
71
|
waitsForThePhone,
|
|
72
72
|
withdrawQuestion
|
|
73
|
-
} from "../chunk-
|
|
73
|
+
} from "../chunk-I7EZMNKI.js";
|
|
74
74
|
import "../chunk-POFBE6ZY.js";
|
|
75
75
|
import {
|
|
76
76
|
SubscriptionRequiredError
|
|
77
|
-
} from "../chunk-
|
|
78
|
-
import "../chunk-
|
|
79
|
-
import "../chunk-
|
|
77
|
+
} from "../chunk-AW4TDBUJ.js";
|
|
78
|
+
import "../chunk-ZV56INA6.js";
|
|
79
|
+
import "../chunk-4UCTKLHY.js";
|
|
80
80
|
import {
|
|
81
81
|
getMachineId
|
|
82
|
-
} from "../chunk-
|
|
82
|
+
} from "../chunk-QPT4PTUG.js";
|
|
83
83
|
import "../chunk-7QLSKOSU.js";
|
|
84
84
|
import "../chunk-KZERVKTD.js";
|
|
85
|
-
import "../chunk-
|
|
86
|
-
import "../chunk-
|
|
85
|
+
import "../chunk-ODPULZZG.js";
|
|
86
|
+
import "../chunk-EBZK2SJ2.js";
|
|
87
87
|
import "../chunk-AQFEP65J.js";
|
|
88
88
|
import {
|
|
89
89
|
getApiKey,
|
|
90
90
|
getBaseUrl
|
|
91
|
-
} from "../chunk-
|
|
91
|
+
} from "../chunk-CHD6IUNM.js";
|
|
92
92
|
import {
|
|
93
93
|
NPX_LATEST_COMMAND
|
|
94
|
-
} from "../chunk-
|
|
94
|
+
} from "../chunk-DIJ532S7.js";
|
|
95
95
|
import {
|
|
96
96
|
DECISION_STOP_REASON,
|
|
97
97
|
HAND_BACK_WITHOUT_A_PROMPT,
|
|
@@ -101,7 +101,7 @@ import {
|
|
|
101
101
|
redactSecretsFromContent,
|
|
102
102
|
resolveGate,
|
|
103
103
|
timeoutActionWithoutLocalPrompt
|
|
104
|
-
} from "../chunk-
|
|
104
|
+
} from "../chunk-ORLTWJ2O.js";
|
|
105
105
|
|
|
106
106
|
// src/wrapper/localPassthrough.ts
|
|
107
107
|
var SIGNAL_NUMBERS = {
|
|
@@ -9,12 +9,12 @@ import {
|
|
|
9
9
|
planCliKeyRevocations,
|
|
10
10
|
readCliHeldKeys,
|
|
11
11
|
revokeCliKeys
|
|
12
|
-
} from "../chunk-
|
|
12
|
+
} from "../chunk-FMYXPJYS.js";
|
|
13
13
|
import {
|
|
14
14
|
isCursorPluginLeftover,
|
|
15
15
|
releaseSoleGate,
|
|
16
16
|
withoutPusharyCursorHooks
|
|
17
|
-
} from "../chunk-
|
|
17
|
+
} from "../chunk-RBUCXUT7.js";
|
|
18
18
|
import {
|
|
19
19
|
HERMES_PIP_PACKAGE,
|
|
20
20
|
readHermesStatus,
|
|
@@ -23,25 +23,25 @@ import {
|
|
|
23
23
|
shortenHome,
|
|
24
24
|
unregisterPluginLocation,
|
|
25
25
|
vscodeSettingsTargets
|
|
26
|
-
} from "../chunk-
|
|
26
|
+
} from "../chunk-DPISXMLL.js";
|
|
27
27
|
import {
|
|
28
28
|
planFxRemoval,
|
|
29
29
|
removeInstructionBlock
|
|
30
|
-
} from "../chunk-
|
|
31
|
-
import "../chunk-
|
|
30
|
+
} from "../chunk-E47JEBUR.js";
|
|
31
|
+
import "../chunk-RETRVO47.js";
|
|
32
32
|
import {
|
|
33
33
|
disableDaemonService
|
|
34
|
-
} from "../chunk-
|
|
34
|
+
} from "../chunk-STETTN4K.js";
|
|
35
35
|
import "../chunk-XHKBHWLX.js";
|
|
36
|
-
import "../chunk-
|
|
36
|
+
import "../chunk-ZVMFRUBD.js";
|
|
37
37
|
import {
|
|
38
38
|
macAppKeepsMcpEntry,
|
|
39
39
|
mcpServerBearer,
|
|
40
40
|
pusharyKey,
|
|
41
41
|
readMacAppAgentKey,
|
|
42
42
|
setupReceiptKey
|
|
43
|
-
} from "../chunk-
|
|
44
|
-
import "../chunk-
|
|
43
|
+
} from "../chunk-PJ3C6IID.js";
|
|
44
|
+
import "../chunk-IXNVIWNN.js";
|
|
45
45
|
import {
|
|
46
46
|
OPENCODE_PLUGIN_SIBLING,
|
|
47
47
|
OPENCODE_PLUGIN_SIBLING_CONTENTS,
|
|
@@ -53,14 +53,14 @@ import {
|
|
|
53
53
|
openCodePluginDir,
|
|
54
54
|
openCodePluginFile,
|
|
55
55
|
removeOpenCodeMcpServer
|
|
56
|
-
} from "../chunk-
|
|
56
|
+
} from "../chunk-FP2ZJK3T.js";
|
|
57
57
|
import {
|
|
58
58
|
ansiPainter,
|
|
59
59
|
useColor
|
|
60
60
|
} from "../chunk-FO3MDD26.js";
|
|
61
61
|
import {
|
|
62
62
|
exitOnHelpFlag
|
|
63
|
-
} from "../chunk-
|
|
63
|
+
} from "../chunk-F43LAKAK.js";
|
|
64
64
|
import {
|
|
65
65
|
compatibleConfigFile,
|
|
66
66
|
compatibleDocuments,
|
|
@@ -76,7 +76,7 @@ import {
|
|
|
76
76
|
removePusharyToolPermissions,
|
|
77
77
|
restoreClaudeMcpServer,
|
|
78
78
|
serializeConfigDocument
|
|
79
|
-
} from "../chunk-
|
|
79
|
+
} from "../chunk-IVUP2EE4.js";
|
|
80
80
|
import {
|
|
81
81
|
hookOwnerOf,
|
|
82
82
|
isHookTakeoverReceipt,
|
|
@@ -84,12 +84,12 @@ import {
|
|
|
84
84
|
resolveBridgeStub,
|
|
85
85
|
restoreHookTakeover,
|
|
86
86
|
restoreMcpServer
|
|
87
|
-
} from "../chunk-
|
|
87
|
+
} from "../chunk-NRSTNZYJ.js";
|
|
88
88
|
import {
|
|
89
89
|
removeGeminiSettings
|
|
90
|
-
} from "../chunk-
|
|
91
|
-
import "../chunk-
|
|
92
|
-
import "../chunk-
|
|
90
|
+
} from "../chunk-3U3FU6ZX.js";
|
|
91
|
+
import "../chunk-KYFWYPHN.js";
|
|
92
|
+
import "../chunk-Y3HTWB5S.js";
|
|
93
93
|
import {
|
|
94
94
|
rejectUnknownFlags
|
|
95
95
|
} from "../chunk-GMXKITVA.js";
|
|
@@ -99,20 +99,20 @@ import {
|
|
|
99
99
|
isDisabledExport,
|
|
100
100
|
removeClaudeAlias,
|
|
101
101
|
shellProfileCandidates
|
|
102
|
-
} from "../chunk-
|
|
103
|
-
import "../chunk-
|
|
104
|
-
import "../chunk-
|
|
105
|
-
import "../chunk-
|
|
102
|
+
} from "../chunk-M7VKFAAK.js";
|
|
103
|
+
import "../chunk-CGRVIUKE.js";
|
|
104
|
+
import "../chunk-K2SSNAUW.js";
|
|
105
|
+
import "../chunk-I7EZMNKI.js";
|
|
106
106
|
import "../chunk-POFBE6ZY.js";
|
|
107
|
-
import "../chunk-
|
|
108
|
-
import "../chunk-
|
|
109
|
-
import "../chunk-
|
|
110
|
-
import "../chunk-
|
|
107
|
+
import "../chunk-AW4TDBUJ.js";
|
|
108
|
+
import "../chunk-ZV56INA6.js";
|
|
109
|
+
import "../chunk-4UCTKLHY.js";
|
|
110
|
+
import "../chunk-QPT4PTUG.js";
|
|
111
111
|
import "../chunk-7QLSKOSU.js";
|
|
112
112
|
import {
|
|
113
113
|
EXIT
|
|
114
114
|
} from "../chunk-KZERVKTD.js";
|
|
115
|
-
import "../chunk-
|
|
115
|
+
import "../chunk-ODPULZZG.js";
|
|
116
116
|
import {
|
|
117
117
|
claudeJson,
|
|
118
118
|
claudeMcpReceipt,
|
|
@@ -149,14 +149,14 @@ import {
|
|
|
149
149
|
restoreCodexHookTrust,
|
|
150
150
|
vscodePluginDir,
|
|
151
151
|
vscodePluginMcp
|
|
152
|
-
} from "../chunk-
|
|
152
|
+
} from "../chunk-EBZK2SJ2.js";
|
|
153
153
|
import "../chunk-AQFEP65J.js";
|
|
154
154
|
import {
|
|
155
155
|
getBaseUrl
|
|
156
|
-
} from "../chunk-
|
|
156
|
+
} from "../chunk-CHD6IUNM.js";
|
|
157
157
|
import {
|
|
158
158
|
NPX_LATEST_COMMAND
|
|
159
|
-
} from "../chunk-
|
|
159
|
+
} from "../chunk-DIJ532S7.js";
|
|
160
160
|
import {
|
|
161
161
|
CLI_PACKAGE_NAMES,
|
|
162
162
|
HOOK_COMPATIBLE_PROFILES,
|
|
@@ -168,7 +168,7 @@ import {
|
|
|
168
168
|
globalRootFor,
|
|
169
169
|
isValidApiKey,
|
|
170
170
|
redactSecrets
|
|
171
|
-
} from "../chunk-
|
|
171
|
+
} from "../chunk-ORLTWJ2O.js";
|
|
172
172
|
|
|
173
173
|
// bin/pushary-clean.ts
|
|
174
174
|
import { existsSync as existsSync6, readFileSync as readFileSync4, copyFileSync, readdirSync as readdirSync4 } from "fs";
|
|
@@ -229,6 +229,8 @@ var MAC_KEYCHAIN_SERVICE = "com.pushary.app.mac";
|
|
|
229
229
|
var MAC_KEYCHAIN_ACCOUNTS = [
|
|
230
230
|
"pushary.site-api-key",
|
|
231
231
|
"pushary.site-id",
|
|
232
|
+
"pushary.partner-enrollments",
|
|
233
|
+
"pushary.partner-device-key",
|
|
232
234
|
"clerk.device-token",
|
|
233
235
|
"clerk.session-id",
|
|
234
236
|
"clerkDeviceToken",
|