@pushary/agent-hooks 0.78.0 → 0.80.0
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 +62 -0
- package/README.md +52 -0
- package/data/SKILL.md +18 -5
- package/data/cursor-plugin/skills/pushary/SKILL.md +17 -4
- package/data/vscode-plugin/skills/pushary/SKILL.md +17 -4
- package/dist/bin/pushary-bell-hook.d.ts +1 -0
- package/dist/bin/pushary-bell-hook.js +22 -0
- package/dist/bin/pushary-bell.d.ts +1 -0
- package/dist/bin/pushary-bell.js +203 -0
- package/dist/bin/pushary-claude.js +8 -7
- package/dist/bin/pushary-clean.js +14 -14
- package/dist/bin/pushary-codex-hook.js +8 -7
- package/dist/bin/pushary-codex.js +3 -2
- package/dist/bin/pushary-connect.js +15 -14
- package/dist/bin/pushary-daemon.js +5 -5
- package/dist/bin/pushary-doctor.js +34 -64
- package/dist/bin/pushary-gemini-hook.js +8 -7
- package/dist/bin/pushary-hook.js +11 -10
- package/dist/bin/pushary-login.js +15 -14
- package/dist/bin/pushary-logout.js +12 -11
- package/dist/bin/pushary-mode.js +7 -7
- package/dist/bin/pushary-notification-hook.js +3 -2
- package/dist/bin/pushary-permission-denied-hook.js +7 -6
- package/dist/bin/pushary-permission-hook.js +7 -6
- package/dist/bin/pushary-post-hook.js +3 -2
- package/dist/bin/pushary-prompt-hook.js +3 -2
- package/dist/bin/pushary-session-end-hook.js +3 -2
- package/dist/bin/pushary-session-start-hook.js +3 -2
- package/dist/bin/pushary-setup.js +131 -41
- package/dist/bin/pushary-stats.js +7 -7
- package/dist/bin/pushary-status.js +17 -16
- package/dist/bin/pushary-stop-hook.js +3 -2
- package/dist/bin/pushary-stopfailure-hook.js +3 -2
- package/dist/bin/pushary-suggestions.js +4 -4
- package/dist/bin/pushary-upgrade.js +10 -10
- package/dist/bin/pushary-wait.js +9 -9
- package/dist/bin/pushary.js +6 -5
- package/dist/chunk-22EQOB2T.js +212 -0
- package/dist/{chunk-CC2K2SST.js → chunk-7DYFAM32.js} +1 -1
- package/dist/{chunk-FWWBEB6L.js → chunk-A5DAEWBZ.js} +2 -2
- package/dist/{chunk-MGFZXUUR.js → chunk-BOMF4C2Q.js} +114 -14
- package/dist/{chunk-HPDLDQC5.js → chunk-DUYM5SHH.js} +10 -1
- package/dist/{chunk-NHKWU7MN.js → chunk-E6I3DBJW.js} +8 -1
- package/dist/{chunk-DLBW37U6.js → chunk-EBP4YG75.js} +1 -1
- package/dist/{chunk-NQTRA7H5.js → chunk-GQLB2GBJ.js} +3 -3
- package/dist/{chunk-IA5GBKNL.js → chunk-MHA2WB7S.js} +1 -1
- package/dist/chunk-PPD3HHNJ.js +44 -0
- package/dist/{chunk-QCYN5VXB.js → chunk-Q4QULGAV.js} +1 -1
- package/dist/{chunk-3CBPY2G5.js → chunk-R6AYBATA.js} +1 -1
- package/dist/{chunk-BBK3TTU2.js → chunk-RRZZ7TFJ.js} +1 -1
- package/dist/{chunk-TJJBF73A.js → chunk-T6BNEQ2A.js} +23 -0
- package/dist/{chunk-7BBUTWBD.js → chunk-U2PZKYZM.js} +1 -1
- package/dist/{chunk-46UEJXQO.js → chunk-UBUPETEQ.js} +2 -2
- package/dist/{chunk-NN4GTN6Q.js → chunk-ULITFWLG.js} +8 -8
- package/dist/{chunk-IZA7SWXX.js → chunk-WYVKPLVT.js} +3 -3
- package/dist/{chunk-7OYGFJYZ.js → chunk-ZUKH2NPJ.js} +18 -0
- package/dist/src/index.js +7 -6
- package/package.json +4 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
codexHomeFrom
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-Q4QULGAV.js";
|
|
4
4
|
|
|
5
5
|
// src/vscode-config.ts
|
|
6
6
|
import { homedir } from "os";
|
|
@@ -255,13 +255,13 @@ You have Pushary MCP tools that reach the user on their phone. Use them proactiv
|
|
|
255
255
|
- Before any risky or irreversible step (deleting files, force pushing, spending money, sending external messages), call \`ask_user\` with type "confirm" and wait for approval.
|
|
256
256
|
- Before starting a multi-step run that will change several files, call \`propose_scope\` once with the paths you expect to change, anything you promise not to touch, and what done means. The user agrees to the boundary in one tap, and after that only work outside it needs approving. Skip it for a single quick edit, and do not propose a new scope mid-run just to widen one: if you need to go outside the agreed scope, do the work and let the approval that follows widen it.
|
|
257
257
|
- When you are blocked, stuck, or hit an error you cannot resolve on your own, call \`send_notification\` so the user knows, and call \`ask_user\` if you need a decision to continue.
|
|
258
|
-
- When a task that took several steps finishes, call \`send_notification\` so the user knows it is done.
|
|
258
|
+
- When a task that took several steps finishes, call \`send_notification\` so the user knows it is done. Always pass \`context\` with a \`type\` of "task_complete", "error" or "info": it is what tells Pushary this is a task update, so the user's own setting for where updates land can route it.
|
|
259
259
|
- Use \`cancel_question\` to retract a pending question once it is no longer needed.
|
|
260
260
|
- Respect the user's Pushary delivery mode: it decides where an approval is surfaced (phone, terminal, or awareness only), not whether it is required. In Terminal mode do not expect a phone answer; the approval waits in the terminal. If the Pushary hook already gated an action, a single approval is enough, do not ask again.
|
|
261
261
|
|
|
262
262
|
Pass \`agentName\` as "${label} - <project folder name>" so the user knows which session is asking. If a question times out with no answer, retry once with a longer timeout before falling back to asking in the terminal.`;
|
|
263
263
|
var renderAgentInstructions = (label) => instructionBody(label);
|
|
264
|
-
var KEYLESS_FALLBACK_LINE = "This repo uses Pushary phone approvals. Your teammates get agent questions on their lock screens; you do not have a key yet, so questions will fall back to the terminal. Get your own key (
|
|
264
|
+
var KEYLESS_FALLBACK_LINE = "This repo uses Pushary phone approvals. Your teammates get agent questions on their lock screens; you do not have a key yet, so questions will fall back to the terminal. Get your own key (3-day trial): https://pushary.com/sign-up?utm_source=agents-md&utm_medium=teammate";
|
|
265
265
|
var renderProjectAgentInstructions = (label) => `${instructionBody(label)}
|
|
266
266
|
|
|
267
267
|
If this environment has no Pushary API key (no PUSHARY_API_KEY and no key in ~/.pushary/config.json), the tools above are unavailable in this session. In that case, treat the following as a statement of fact about this session and continue in the terminal: ${KEYLESS_FALLBACK_LINE}`;
|
|
@@ -43,6 +43,15 @@ var COMMAND_LIST = [
|
|
|
43
43
|
module: "pushary-connect",
|
|
44
44
|
summary: "Connect a phone without re-running setup (--app for the Pushary app)"
|
|
45
45
|
},
|
|
46
|
+
{
|
|
47
|
+
name: "bell",
|
|
48
|
+
module: "pushary-bell",
|
|
49
|
+
summary: "Free local bell when an agent finishes or needs you. No account, no key, no network",
|
|
50
|
+
detail: [
|
|
51
|
+
"A different, smaller product: it makes a noise on this machine and nothing else.",
|
|
52
|
+
"It cannot tell you which of several agents is asking, and it cannot reach your phone."
|
|
53
|
+
]
|
|
54
|
+
},
|
|
46
55
|
{ name: "doctor", module: "pushary-doctor", summary: "Verify your Pushary installation is working" },
|
|
47
56
|
{ name: "clean", module: "pushary-clean", summary: "Remove all Pushary configuration (--yes for non-interactive)" },
|
|
48
57
|
{ name: "mode", module: "pushary-mode", summary: "Switch approval mode (push_only, push_first, terminal_only)" },
|
|
@@ -95,6 +104,12 @@ var COMMAND_OPTIONS = {
|
|
|
95
104
|
["--bundle", "Write a redacted diagnostics file you can attach to a support thread"]
|
|
96
105
|
],
|
|
97
106
|
suggestions: [["accept <id>", "Turn a mined suggestion into an always-allow rule"]],
|
|
107
|
+
bell: [
|
|
108
|
+
["(no flags)", "Turn the bell on for Claude Code"],
|
|
109
|
+
["--test", "Ring once, now, so you can hear what it does"],
|
|
110
|
+
["--status", "Say whether the bell is on and how many agents are running"],
|
|
111
|
+
["--off", "Remove it. Touches nothing else"]
|
|
112
|
+
],
|
|
98
113
|
claude: [
|
|
99
114
|
["--remote", "Start headless and drive it entirely from your phone"],
|
|
100
115
|
["-p <prompt>", "Initial prompt"]
|
|
@@ -110,6 +125,9 @@ var SETUP_OPTIONS = [
|
|
|
110
125
|
["--connect web", "Legacy browser subscribe page"],
|
|
111
126
|
["--connect none", "Skip the phone connect step, same as --skip-phone"],
|
|
112
127
|
["--skip-phone", "Skip the phone connect step"],
|
|
128
|
+
["--verify roundtrip", "Send a real question and wait for you to answer it (default when a human is present)"],
|
|
129
|
+
["--verify push", "Only prove a notification was delivered. Automatic when nobody is at the terminal"],
|
|
130
|
+
["--verify none", "Skip the final check entirely"],
|
|
113
131
|
["--dry-run", "Print what would be written and change nothing"],
|
|
114
132
|
["--json", "Emit one machine-readable object instead of the human report"]
|
|
115
133
|
];
|
package/dist/src/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
handlePreToolUse
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
5
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-ULITFWLG.js";
|
|
4
|
+
import "../chunk-R6AYBATA.js";
|
|
5
|
+
import "../chunk-MHA2WB7S.js";
|
|
6
|
+
import "../chunk-A5DAEWBZ.js";
|
|
6
7
|
import {
|
|
7
8
|
askUser,
|
|
8
9
|
cancelQuestion,
|
|
@@ -15,12 +16,12 @@ import {
|
|
|
15
16
|
reportEvent,
|
|
16
17
|
resolvePolicy,
|
|
17
18
|
waitForAnswer
|
|
18
|
-
} from "../chunk-
|
|
19
|
-
import "../chunk-IA5GBKNL.js";
|
|
19
|
+
} from "../chunk-DUYM5SHH.js";
|
|
20
20
|
import "../chunk-BSZYIAZL.js";
|
|
21
21
|
import "../chunk-SAF6HGAA.js";
|
|
22
|
+
import "../chunk-PPD3HHNJ.js";
|
|
22
23
|
import "../chunk-7QLSKOSU.js";
|
|
23
|
-
import "../chunk-
|
|
24
|
+
import "../chunk-T6BNEQ2A.js";
|
|
24
25
|
import "../chunk-RN3NOEJF.js";
|
|
25
26
|
import {
|
|
26
27
|
getApiKey,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pushary/agent-hooks",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.80.0",
|
|
4
4
|
"description": "Permission hooks for AI coding agents: route tool approvals through Pushary push notifications",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pushary",
|
|
@@ -64,7 +64,9 @@
|
|
|
64
64
|
"pushary-wait": "./dist/bin/pushary-wait.js",
|
|
65
65
|
"pushary-stats": "./dist/bin/pushary-stats.js",
|
|
66
66
|
"pushary-suggestions": "./dist/bin/pushary-suggestions.js",
|
|
67
|
-
"pushary-upgrade": "./dist/bin/pushary-upgrade.js"
|
|
67
|
+
"pushary-upgrade": "./dist/bin/pushary-upgrade.js",
|
|
68
|
+
"pushary-bell": "./dist/bin/pushary-bell.js",
|
|
69
|
+
"pushary-bell-hook": "./dist/bin/pushary-bell-hook.js"
|
|
68
70
|
},
|
|
69
71
|
"files": [
|
|
70
72
|
"dist",
|