@pushary/agent-hooks 1.9.41 → 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 CHANGED
@@ -1,5 +1,10 @@
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
+
3
8
  ## 1.9.41
4
9
 
5
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.
package/data/SKILL.md CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: pushary
3
- version: 0.11.2
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, $9.99/mo after a 3-day card-first trial.
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. It costs $9.99/mo after a 3-day trial. The trial asks
54
- for a card up front. Say this plainly when the user asks what Pushary is.
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, so nobody has to restart anything.
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 will also ask them to sign in and start a plan: $9.99/mo after a 3-day trial, card up front, all inside the app. Say this before they scan rather than letting them discover it mid-flow.
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
- After setup, verify with:
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. Run `npx pushary@latest doctor`, then request one harmless test question and verify it reaches the intended surface. Test phone fallback while away from the Mac; do not infer delivery from a successful API call alone.
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, $9.99/mo after a 3-day card-first trial.
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. It costs $9.99/mo after a 3-day trial. The trial asks
47
- for a card up front. Say this plainly when the user asks what Pushary is.
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, so nobody has to restart anything.
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 will also ask them to sign in and start a plan: $9.99/mo after a 3-day trial, card up front, all inside the app. Say this before they scan rather than letting them discover it mid-flow.
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
- After setup, verify with:
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. Run `npx pushary@latest doctor`, then request one harmless test question and verify it reaches the intended surface. Test phone fallback while away from the Mac; do not infer delivery from a successful API call alone.
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, $9.99/mo after a 3-day card-first trial.
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. It costs $9.99/mo after a 3-day trial. The trial asks
47
- for a card up front. Say this plainly when the user asks what Pushary is.
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, so nobody has to restart anything.
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 will also ask them to sign in and start a plan: $9.99/mo after a 3-day trial, card up front, all inside the app. Say this before they scan rather than letting them discover it mid-flow.
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
- After setup, verify with:
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. Run `npx pushary@latest doctor`, then request one harmless test question and verify it reaches the intended surface. Test phone fallback while away from the Mac; do not infer delivery from a successful API call alone.
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
 
@@ -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",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pushary/agent-hooks",
3
- "version": "1.9.41",
3
+ "version": "1.9.42",
4
4
  "description": "Permission hooks for AI coding agents: route tool approvals through Pushary push notifications",
5
5
  "keywords": [
6
6
  "pushary",