@pushary/agent-hooks 1.3.0 → 1.4.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 +24 -0
- package/README.md +1 -1
- package/data/SKILL.md +3 -3
- package/data/cursor-plugin/skills/pushary/SKILL.md +2 -2
- package/data/vscode-plugin/skills/pushary/SKILL.md +2 -2
- package/dist/bin/pushary-bell-hook.js +20 -20
- package/dist/bin/pushary-bell.js +9 -9
- package/dist/bin/pushary-claude.js +20 -20
- package/dist/bin/pushary-clean.js +472 -94
- package/dist/bin/pushary-codex-bridge.js +11 -11
- package/dist/bin/pushary-codex-hook.js +30 -28
- package/dist/bin/pushary-codex.js +7 -7
- package/dist/bin/pushary-connect.js +9 -9
- package/dist/bin/pushary-cowork.js +5 -5
- package/dist/bin/pushary-daemon.js +26 -26
- package/dist/bin/pushary-disconnect.js +13 -13
- package/dist/bin/pushary-doctor.js +86 -24
- package/dist/bin/pushary-elicitation-hook.js +19 -19
- package/dist/bin/pushary-gemini-bridge.js +10 -10
- package/dist/bin/pushary-gemini-hook.js +21 -21
- package/dist/bin/pushary-hook.js +34 -44
- package/dist/bin/pushary-login.js +10 -10
- package/dist/bin/pushary-logout.js +7 -7
- package/dist/bin/pushary-mode.js +5 -5
- package/dist/bin/pushary-notification-hook.js +22 -22
- package/dist/bin/pushary-opencode-hook.js +21 -21
- package/dist/bin/pushary-permission-denied-hook.js +26 -26
- package/dist/bin/pushary-permission-hook.js +32 -31
- package/dist/bin/pushary-post-hook.js +22 -22
- package/dist/bin/pushary-prompt-hook.js +22 -22
- package/dist/bin/pushary-session-end-hook.js +22 -22
- package/dist/bin/pushary-session-start-hook.js +24 -24
- package/dist/bin/pushary-setup.js +39 -60
- package/dist/bin/pushary-stats.js +4 -4
- package/dist/bin/pushary-status.js +13 -13
- package/dist/bin/pushary-stop-hook.js +22 -22
- package/dist/bin/pushary-stopfailure-hook.js +22 -22
- package/dist/bin/pushary-suggestions.js +2 -2
- package/dist/bin/pushary-transcript-register.js +18 -18
- package/dist/bin/pushary-transcripts.js +8 -8
- package/dist/bin/pushary-upgrade.js +17 -17
- package/dist/bin/pushary-wait.js +5 -5
- package/dist/bin/pushary.js +1 -1
- package/dist/{chunk-3AIFWTVB.js → chunk-2TOTCUJC.js} +2 -2
- package/dist/{chunk-X3KIGNIP.js → chunk-43Z3RLS5.js} +83 -24
- package/dist/{chunk-YF4JDCU4.js → chunk-5F5QQMCA.js} +1 -1
- package/dist/{chunk-ZHL62DRA.js → chunk-5IBVIMWT.js} +3 -3
- package/dist/{chunk-BYGEZI7B.js → chunk-5MSBI6NP.js} +1 -1
- package/dist/{chunk-WPJS3OZH.js → chunk-7IEB2GV4.js} +100 -9
- package/dist/{chunk-2PLEJ7SY.js → chunk-7PQZYCEP.js} +1 -1
- package/dist/{chunk-OE6U2AXM.js → chunk-A7XIL2WD.js} +3 -3
- package/dist/{chunk-A2URMNFM.js → chunk-BYAXXBNO.js} +1 -1
- package/dist/{chunk-DON24PNT.js → chunk-D4TNSUDY.js} +1 -1
- package/dist/{chunk-EU6JH7KU.js → chunk-ESLLVHDY.js} +8 -8
- package/dist/{chunk-LZQVAEWP.js → chunk-FAH3D74E.js} +2 -1
- package/dist/{chunk-MU275U5A.js → chunk-GIXLZFEY.js} +2 -2
- package/dist/{chunk-4V24U44H.js → chunk-GLPWCQ6V.js} +2 -2
- package/dist/{chunk-BL4SQNO6.js → chunk-GS5EI2YL.js} +1 -1
- package/dist/{chunk-EKQAKSGI.js → chunk-H25UB3CG.js} +1 -1
- package/dist/{chunk-BNDHXPTQ.js → chunk-HGN6VZTY.js} +20 -13
- package/dist/{chunk-WXXDHGTZ.js → chunk-IF46POXX.js} +5 -4
- package/dist/{chunk-A5ZWYQFV.js → chunk-JCWCTBYH.js} +4 -4
- package/dist/{chunk-IAEVVUXO.js → chunk-KZIXHLPQ.js} +1 -1
- package/dist/{chunk-FGVNU7XD.js → chunk-NBCTKC4Z.js} +34 -3
- package/dist/{chunk-XBO42HKH.js → chunk-NYHNLMQO.js} +12 -3
- package/dist/{chunk-K4TAUYUJ.js → chunk-O5L2OJBB.js} +3 -3
- package/dist/{chunk-DVO4SZMJ.js → chunk-O6RN46OS.js} +3 -3
- package/dist/{chunk-POAFXBNH.js → chunk-P4JVVJ2D.js} +1 -1
- package/dist/{chunk-E7WBNGJS.js → chunk-Q4UAMWXK.js} +1 -1
- package/dist/{chunk-KS4P6F3R.js → chunk-RGZY77CD.js} +4 -4
- package/dist/{chunk-K7UIAE7I.js → chunk-RQM5SMMR.js} +2 -2
- package/dist/{chunk-UVXNYYHG.js → chunk-S3CLZSV3.js} +6 -6
- package/dist/{chunk-B3S4SF3D.js → chunk-S3EUZZJB.js} +1 -1
- package/dist/{chunk-XBJW4MV5.js → chunk-SGZ3IAWF.js} +1 -1
- package/dist/{chunk-YKLCWWEI.js → chunk-SGZJ5LYH.js} +1 -1
- package/dist/{chunk-4LL6LG5X.js → chunk-T7E75EKA.js} +4 -3
- package/dist/{chunk-GOQHN2UH.js → chunk-TWWLVOPB.js} +1 -1
- package/dist/{chunk-RVDHN2TJ.js → chunk-U4FB623J.js} +2 -2
- package/dist/{chunk-RHLUJE4H.js → chunk-UCGQEAKZ.js} +1 -1
- package/dist/{chunk-KPNGPRYU.js → chunk-UIN3RD2U.js} +4 -4
- package/dist/{chunk-XEXOHUJ6.js → chunk-UTYTPDWN.js} +4 -4
- package/dist/{chunk-EJZCV5G4.js → chunk-VENQSVKA.js} +1 -1
- package/dist/{chunk-EYMMU5HC.js → chunk-XJWMPQ6X.js} +1 -1
- package/dist/{chunk-JYEGOYQC.js → chunk-YYRZPEMA.js} +1 -1
- package/dist/{chunk-N43EQPJK.js → chunk-ZIGGEKZW.js} +41 -7
- package/dist/{reapply-FUCAKR6Z.js → reapply-B3S2LRMT.js} +9 -9
- package/dist/src/index.d.ts +20 -17
- package/dist/src/index.js +13 -13
- package/package.json +1 -1
- /package/dist/{chunk-KBITFQST.js → chunk-P32LPT2L.js} +0 -0
|
@@ -9,10 +9,10 @@ import {
|
|
|
9
9
|
import {
|
|
10
10
|
readMachineReadiness,
|
|
11
11
|
readManagedControlEvidence
|
|
12
|
-
} from "../chunk-
|
|
12
|
+
} from "../chunk-UIN3RD2U.js";
|
|
13
13
|
import {
|
|
14
14
|
CURSOR_GATE_SCRIPT
|
|
15
|
-
} from "../chunk-
|
|
15
|
+
} from "../chunk-P32LPT2L.js";
|
|
16
16
|
import {
|
|
17
17
|
agentProbes,
|
|
18
18
|
detectAgent,
|
|
@@ -22,35 +22,35 @@ import {
|
|
|
22
22
|
isPluginRegistered,
|
|
23
23
|
shortenHome,
|
|
24
24
|
vscodeSettingsTargets
|
|
25
|
-
} from "../chunk-
|
|
25
|
+
} from "../chunk-O5L2OJBB.js";
|
|
26
26
|
import {
|
|
27
27
|
OPENCODE_PLUGIN_PLACEHOLDER,
|
|
28
28
|
openCodePluginDir,
|
|
29
29
|
openCodePluginFile,
|
|
30
30
|
openCodeWired
|
|
31
|
-
} from "../chunk-
|
|
31
|
+
} from "../chunk-Q4UAMWXK.js";
|
|
32
32
|
import {
|
|
33
33
|
compatibleConfigFile,
|
|
34
34
|
compatibleInstructionsFile,
|
|
35
35
|
compatibleMcpFile,
|
|
36
36
|
hasCompatibleHooks,
|
|
37
37
|
missingCompatibleHookEvents
|
|
38
|
-
} from "../chunk-
|
|
39
|
-
import "../chunk-
|
|
38
|
+
} from "../chunk-HGN6VZTY.js";
|
|
39
|
+
import "../chunk-5IBVIMWT.js";
|
|
40
40
|
import {
|
|
41
41
|
detectProviderLiveCapabilities,
|
|
42
42
|
hasSpawnProvider,
|
|
43
43
|
resolveControlPolicy
|
|
44
|
-
} from "../chunk-
|
|
44
|
+
} from "../chunk-GLPWCQ6V.js";
|
|
45
45
|
import {
|
|
46
46
|
readLedgerSummary
|
|
47
|
-
} from "../chunk-
|
|
47
|
+
} from "../chunk-5F5QQMCA.js";
|
|
48
48
|
import {
|
|
49
49
|
describeBridgeResolution,
|
|
50
50
|
isBridgeLocator,
|
|
51
51
|
liveBridgeProbe,
|
|
52
52
|
resolveBridgeStub
|
|
53
|
-
} from "../chunk-
|
|
53
|
+
} from "../chunk-YYRZPEMA.js";
|
|
54
54
|
import {
|
|
55
55
|
claudeOtherHolders,
|
|
56
56
|
claudeUnprovenHolds,
|
|
@@ -67,7 +67,7 @@ import {
|
|
|
67
67
|
geminiWired,
|
|
68
68
|
holdsLong,
|
|
69
69
|
pusharyHookExecutable
|
|
70
|
-
} from "../chunk-
|
|
70
|
+
} from "../chunk-O6RN46OS.js";
|
|
71
71
|
import {
|
|
72
72
|
daemonHasRemoteProof,
|
|
73
73
|
daemonServiceManagerAvailable,
|
|
@@ -76,19 +76,19 @@ import {
|
|
|
76
76
|
readDaemonNeedsLogin,
|
|
77
77
|
readDaemonStatus,
|
|
78
78
|
readInstalledDaemonService
|
|
79
|
-
} from "../chunk-
|
|
79
|
+
} from "../chunk-RGZY77CD.js";
|
|
80
80
|
import {
|
|
81
81
|
GEMINI_HOOK_BINARY,
|
|
82
82
|
hasGeminiHooks,
|
|
83
83
|
missingGeminiHookEvents
|
|
84
|
-
} from "../chunk-
|
|
84
|
+
} from "../chunk-A7XIL2WD.js";
|
|
85
85
|
import "../chunk-XHKBHWLX.js";
|
|
86
|
-
import "../chunk-
|
|
87
|
-
import "../chunk-
|
|
86
|
+
import "../chunk-IF46POXX.js";
|
|
87
|
+
import "../chunk-KZIXHLPQ.js";
|
|
88
88
|
import "../chunk-LGXUGYUH.js";
|
|
89
89
|
import {
|
|
90
90
|
getMachineId
|
|
91
|
-
} from "../chunk-
|
|
91
|
+
} from "../chunk-RQM5SMMR.js";
|
|
92
92
|
import {
|
|
93
93
|
CODEX_HOOK_EVENTS,
|
|
94
94
|
claudeJson,
|
|
@@ -111,7 +111,7 @@ import {
|
|
|
111
111
|
pusharyConfigFile,
|
|
112
112
|
readCodexMcpAuth,
|
|
113
113
|
vscodePluginDir
|
|
114
|
-
} from "../chunk-
|
|
114
|
+
} from "../chunk-UCGQEAKZ.js";
|
|
115
115
|
import {
|
|
116
116
|
describeReach,
|
|
117
117
|
describeRoundTrip,
|
|
@@ -119,20 +119,20 @@ import {
|
|
|
119
119
|
reachVerdict,
|
|
120
120
|
roundTripEvidence,
|
|
121
121
|
verifyRoundTrip
|
|
122
|
-
} from "../chunk-
|
|
122
|
+
} from "../chunk-U4FB623J.js";
|
|
123
123
|
import "../chunk-3EGEA4KH.js";
|
|
124
124
|
import {
|
|
125
125
|
checkApiKey,
|
|
126
126
|
describeKeyCheck
|
|
127
|
-
} from "../chunk-
|
|
127
|
+
} from "../chunk-D4TNSUDY.js";
|
|
128
128
|
import "../chunk-QCGNGEGE.js";
|
|
129
129
|
import {
|
|
130
130
|
createIo
|
|
131
131
|
} from "../chunk-5RUIFDTP.js";
|
|
132
132
|
import {
|
|
133
133
|
exitOnHelpFlag
|
|
134
|
-
} from "../chunk-
|
|
135
|
-
import "../chunk-
|
|
134
|
+
} from "../chunk-TWWLVOPB.js";
|
|
135
|
+
import "../chunk-FAH3D74E.js";
|
|
136
136
|
import {
|
|
137
137
|
parseFlags
|
|
138
138
|
} from "../chunk-GMXKITVA.js";
|
|
@@ -143,7 +143,7 @@ import {
|
|
|
143
143
|
keyPrefix,
|
|
144
144
|
readControlMode,
|
|
145
145
|
readKeySource
|
|
146
|
-
} from "../chunk-
|
|
146
|
+
} from "../chunk-NYHNLMQO.js";
|
|
147
147
|
import {
|
|
148
148
|
callMcpTool,
|
|
149
149
|
sendMcpRequest
|
|
@@ -155,8 +155,8 @@ import {
|
|
|
155
155
|
import {
|
|
156
156
|
EXIT
|
|
157
157
|
} from "../chunk-KZERVKTD.js";
|
|
158
|
-
import "../chunk-
|
|
159
|
-
import "../chunk-
|
|
158
|
+
import "../chunk-P4JVVJ2D.js";
|
|
159
|
+
import "../chunk-T7E75EKA.js";
|
|
160
160
|
import {
|
|
161
161
|
getBaseUrl
|
|
162
162
|
} from "../chunk-2UMNXADU.js";
|
|
@@ -165,9 +165,13 @@ import {
|
|
|
165
165
|
CURSOR_GATE_EVENTS,
|
|
166
166
|
HOOK_COMPATIBLE_PROFILES,
|
|
167
167
|
HOOK_LOCATOR_BINARY,
|
|
168
|
+
HOOK_SOURCES,
|
|
169
|
+
SUPPORT_DISCORD,
|
|
170
|
+
SUPPORT_EMAIL,
|
|
168
171
|
hookActivationResult,
|
|
172
|
+
hookCompatibleProfile,
|
|
169
173
|
isHookActivationReport
|
|
170
|
-
} from "../chunk-
|
|
174
|
+
} from "../chunk-7IEB2GV4.js";
|
|
171
175
|
|
|
172
176
|
// bin/pushary-doctor.ts
|
|
173
177
|
import { existsSync, readFileSync, writeFileSync } from "fs";
|
|
@@ -249,6 +253,58 @@ var describeRewriterFinding = ({ rewriter, agent, state }) => state === "armed"
|
|
|
249
253
|
var rewriterMechanism = ({ rewriter }) => `${rewriter.label} ${rewriter.what}.`;
|
|
250
254
|
var rewriterRemedy = ({ state }) => state === "armed" ? 'Tick "Apply Common Config" on the provider so a switch keeps them, or re-run setup after each switch' : 'Re-run setup to put them back, then tick "Apply Common Config" on the provider so a switch keeps them';
|
|
251
255
|
|
|
256
|
+
// src/diagnostics/inert-registrations.ts
|
|
257
|
+
var REGISTRATION_FLAGS = ["agent", "source"];
|
|
258
|
+
var FLAG_PATTERNS = {
|
|
259
|
+
agent: /--agent(?:=|\s+)([A-Za-z0-9_-]*)/g,
|
|
260
|
+
source: /--source(?:=|\s+)([A-Za-z0-9_-]*)/g
|
|
261
|
+
};
|
|
262
|
+
function collectHookCommands(value) {
|
|
263
|
+
if (value === null || typeof value !== "object") return [];
|
|
264
|
+
const commands = [];
|
|
265
|
+
for (const [key, nested] of Object.entries(value)) {
|
|
266
|
+
if (key === "command" && typeof nested === "string") commands.push(nested);
|
|
267
|
+
else commands.push(...collectHookCommands(nested));
|
|
268
|
+
}
|
|
269
|
+
return commands;
|
|
270
|
+
}
|
|
271
|
+
function readHookCommands(contents) {
|
|
272
|
+
try {
|
|
273
|
+
return collectHookCommands(JSON.parse(contents));
|
|
274
|
+
} catch {
|
|
275
|
+
return contents.split("\n");
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
function registeredNames(contents, flag) {
|
|
279
|
+
const names = /* @__PURE__ */ new Set();
|
|
280
|
+
for (const command of readHookCommands(contents)) {
|
|
281
|
+
if (pusharyHookExecutable(command) === null) continue;
|
|
282
|
+
for (const match of command.matchAll(FLAG_PATTERNS[flag])) names.add(match[1] ?? "");
|
|
283
|
+
}
|
|
284
|
+
return [...names];
|
|
285
|
+
}
|
|
286
|
+
function pusharyAgentsNamedIn(contents) {
|
|
287
|
+
return registeredNames(contents, "agent");
|
|
288
|
+
}
|
|
289
|
+
function resolvesHookRegistration(name, flag) {
|
|
290
|
+
if (flag === "agent") return hookCompatibleProfile(name) !== void 0;
|
|
291
|
+
return HOOK_SOURCES.includes(name);
|
|
292
|
+
}
|
|
293
|
+
function inertRegistrations(configs, resolves) {
|
|
294
|
+
const findings = [];
|
|
295
|
+
for (const config of configs) {
|
|
296
|
+
for (const flag of REGISTRATION_FLAGS) {
|
|
297
|
+
const names = flag === "agent" ? pusharyAgentsNamedIn(config.contents) : registeredNames(config.contents, flag);
|
|
298
|
+
for (const name of names) {
|
|
299
|
+
if (!resolves(name, flag)) findings.push({ file: config.file, named: name });
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
return findings;
|
|
304
|
+
}
|
|
305
|
+
var describeInertRegistration = ({ named }) => `hooks here are registered for "${named}", which this CLI has no profile for, so every one of them stands aside`;
|
|
306
|
+
var inertRegistrationRemedy = () => "Upgrade with npx @pushary/agent-hooks@latest upgrade, or re-run setup to rewrite them for an agent this version knows";
|
|
307
|
+
|
|
252
308
|
// src/diagnostics/activation.ts
|
|
253
309
|
var readHookActivation = async (apiKey, agentType, target, deps = {}) => {
|
|
254
310
|
const machineId = deps.machineId ?? getMachineId();
|
|
@@ -334,6 +390,7 @@ var pass = green("\u2713");
|
|
|
334
390
|
var fail = red("\u2717");
|
|
335
391
|
var warn = yellow("!");
|
|
336
392
|
var CLAUDE_SETTINGS = claudeSettings();
|
|
393
|
+
var registeredConfigs = () => [CLAUDE_SETTINGS, codexHooksJson(), ...HOOK_COMPATIBLE_PROFILES.map((profile) => compatibleConfigFile(profile))].filter(existsSync).map((file) => ({ file, contents: readFileSync(file, "utf-8") }));
|
|
337
394
|
var SKILL_PATH = join(claudeSkillDir(), "SKILL.md");
|
|
338
395
|
var SHELL_FILES = [".zshrc", ".zprofile", ".bashrc", ".bash_profile"].map((f) => join(homedir2(), f));
|
|
339
396
|
var readJson = (path) => {
|
|
@@ -702,6 +759,10 @@ var main = async () => {
|
|
|
702
759
|
} else {
|
|
703
760
|
skipped("Gemini CLI", installed("gemini_cli") ? "installed, but Pushary is not set up for it" : "not installed");
|
|
704
761
|
}
|
|
762
|
+
for (const finding of inertRegistrations(registeredConfigs(), resolvesHookRegistration)) {
|
|
763
|
+
console.log(` ${warn} ${shortenHome(finding.file)}: ${describeInertRegistration(finding)}`);
|
|
764
|
+
console.log(` ${dim(inertRegistrationRemedy())}`);
|
|
765
|
+
}
|
|
705
766
|
for (const profile of HOOK_COMPATIBLE_PROFILES) {
|
|
706
767
|
const configPath = compatibleConfigFile(profile);
|
|
707
768
|
const config = readJson(configPath);
|
|
@@ -1150,6 +1211,7 @@ var main = async () => {
|
|
|
1150
1211
|
}
|
|
1151
1212
|
console.log();
|
|
1152
1213
|
console.log(` ${dim("Run")} ${cyan("npx @pushary/agent-hooks@latest clean")} ${dim("then")} ${cyan("setup")} ${dim("to fix.")}`);
|
|
1214
|
+
console.log(` ${dim("Still failing after that? Send this report to")} ${cyan(SUPPORT_EMAIL)} ${dim("or ask on")} ${cyan(SUPPORT_DISCORD)}`);
|
|
1153
1215
|
}
|
|
1154
1216
|
console.log();
|
|
1155
1217
|
const keyExit = keyVerdict && (keyVerdict.kind === "rejected" || keyVerdict.kind === "locked" || keyVerdict.kind === "malformed") ? describeKeyCheck(keyVerdict).exitCode : null;
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
readHookInput
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-ZIGGEKZW.js";
|
|
5
5
|
import {
|
|
6
6
|
isDeferAnswer
|
|
7
7
|
} from "../chunk-YHG74UFF.js";
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
16
|
-
import "../chunk-
|
|
17
|
-
import "../chunk-
|
|
8
|
+
import "../chunk-ESLLVHDY.js";
|
|
9
|
+
import "../chunk-SGZJ5LYH.js";
|
|
10
|
+
import "../chunk-UTYTPDWN.js";
|
|
11
|
+
import "../chunk-5MSBI6NP.js";
|
|
12
|
+
import "../chunk-YYRZPEMA.js";
|
|
13
|
+
import "../chunk-O6RN46OS.js";
|
|
14
|
+
import "../chunk-RGZY77CD.js";
|
|
15
|
+
import "../chunk-A7XIL2WD.js";
|
|
16
|
+
import "../chunk-7PQZYCEP.js";
|
|
17
|
+
import "../chunk-S3EUZZJB.js";
|
|
18
18
|
import "../chunk-EQRS3SGM.js";
|
|
19
|
-
import "../chunk-
|
|
19
|
+
import "../chunk-BYAXXBNO.js";
|
|
20
20
|
import "../chunk-XHKBHWLX.js";
|
|
21
|
-
import "../chunk-
|
|
21
|
+
import "../chunk-KZIXHLPQ.js";
|
|
22
22
|
import {
|
|
23
23
|
askUser,
|
|
24
24
|
isDecisionStopped,
|
|
@@ -26,17 +26,17 @@ import {
|
|
|
26
26
|
} from "../chunk-LGXUGYUH.js";
|
|
27
27
|
import {
|
|
28
28
|
getMachineId
|
|
29
|
-
} from "../chunk-
|
|
30
|
-
import "../chunk-
|
|
29
|
+
} from "../chunk-RQM5SMMR.js";
|
|
30
|
+
import "../chunk-UCGQEAKZ.js";
|
|
31
31
|
import "../chunk-GMXKITVA.js";
|
|
32
32
|
import "../chunk-DINDL2CF.js";
|
|
33
|
-
import "../chunk-
|
|
33
|
+
import "../chunk-NYHNLMQO.js";
|
|
34
34
|
import "../chunk-EYRGBYZG.js";
|
|
35
35
|
import "../chunk-SAF6HGAA.js";
|
|
36
36
|
import "../chunk-7QLSKOSU.js";
|
|
37
37
|
import "../chunk-KZERVKTD.js";
|
|
38
|
-
import "../chunk-
|
|
39
|
-
import "../chunk-
|
|
38
|
+
import "../chunk-P4JVVJ2D.js";
|
|
39
|
+
import "../chunk-T7E75EKA.js";
|
|
40
40
|
import {
|
|
41
41
|
getApiKey
|
|
42
42
|
} from "../chunk-2UMNXADU.js";
|
|
@@ -50,7 +50,7 @@ import {
|
|
|
50
50
|
planElicitationAsk,
|
|
51
51
|
readElicitationFields,
|
|
52
52
|
renderElicitationOutput
|
|
53
|
-
} from "../chunk-
|
|
53
|
+
} from "../chunk-7IEB2GV4.js";
|
|
54
54
|
|
|
55
55
|
// bin/pushary-elicitation-hook.ts
|
|
56
56
|
import { basename } from "path";
|
|
@@ -5,36 +5,36 @@ import {
|
|
|
5
5
|
postLiveSession,
|
|
6
6
|
postLiveSessionUntilAccepted,
|
|
7
7
|
startLiveSessionHeartbeat
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-H25UB3CG.js";
|
|
9
9
|
import {
|
|
10
10
|
SESSION_IDLE_TIMEOUT_MS,
|
|
11
11
|
describeIdleWindow,
|
|
12
12
|
idleDeadlinePassed,
|
|
13
13
|
startProcessOwnership,
|
|
14
14
|
withSpawnProcessOwnership
|
|
15
|
-
} from "../chunk-
|
|
16
|
-
import "../chunk-
|
|
15
|
+
} from "../chunk-GIXLZFEY.js";
|
|
16
|
+
import "../chunk-S3EUZZJB.js";
|
|
17
17
|
import "../chunk-EQRS3SGM.js";
|
|
18
18
|
import {
|
|
19
19
|
transcriptsEnabled
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-BYAXXBNO.js";
|
|
21
21
|
import {
|
|
22
22
|
spawnClaude
|
|
23
23
|
} from "../chunk-XHKBHWLX.js";
|
|
24
24
|
import {
|
|
25
25
|
getMachineId
|
|
26
|
-
} from "../chunk-
|
|
26
|
+
} from "../chunk-RQM5SMMR.js";
|
|
27
27
|
import {
|
|
28
28
|
resolveBinary
|
|
29
|
-
} from "../chunk-
|
|
30
|
-
import "../chunk-
|
|
31
|
-
import "../chunk-
|
|
32
|
-
import "../chunk-
|
|
29
|
+
} from "../chunk-UCGQEAKZ.js";
|
|
30
|
+
import "../chunk-NYHNLMQO.js";
|
|
31
|
+
import "../chunk-P4JVVJ2D.js";
|
|
32
|
+
import "../chunk-T7E75EKA.js";
|
|
33
33
|
import {
|
|
34
34
|
getApiKey,
|
|
35
35
|
getBaseUrl
|
|
36
36
|
} from "../chunk-2UMNXADU.js";
|
|
37
|
-
import "../chunk-
|
|
37
|
+
import "../chunk-7IEB2GV4.js";
|
|
38
38
|
|
|
39
39
|
// bin/pushary-gemini-bridge.ts
|
|
40
40
|
import { existsSync } from "fs";
|
|
@@ -2,26 +2,26 @@
|
|
|
2
2
|
import {
|
|
3
3
|
isGatingMoment,
|
|
4
4
|
recordKeylessMoment
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-5F5QQMCA.js";
|
|
6
6
|
import {
|
|
7
7
|
readHookInput
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-ZIGGEKZW.js";
|
|
9
9
|
import {
|
|
10
10
|
denyReasonFrom,
|
|
11
11
|
isDeferAnswer
|
|
12
12
|
} from "../chunk-YHG74UFF.js";
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
16
|
-
import "../chunk-
|
|
17
|
-
import "../chunk-
|
|
18
|
-
import "../chunk-
|
|
19
|
-
import "../chunk-
|
|
20
|
-
import "../chunk-
|
|
21
|
-
import "../chunk-
|
|
22
|
-
import "../chunk-
|
|
13
|
+
import "../chunk-ESLLVHDY.js";
|
|
14
|
+
import "../chunk-SGZJ5LYH.js";
|
|
15
|
+
import "../chunk-UTYTPDWN.js";
|
|
16
|
+
import "../chunk-5MSBI6NP.js";
|
|
17
|
+
import "../chunk-YYRZPEMA.js";
|
|
18
|
+
import "../chunk-O6RN46OS.js";
|
|
19
|
+
import "../chunk-RGZY77CD.js";
|
|
20
|
+
import "../chunk-A7XIL2WD.js";
|
|
21
|
+
import "../chunk-7PQZYCEP.js";
|
|
22
|
+
import "../chunk-S3EUZZJB.js";
|
|
23
23
|
import "../chunk-EQRS3SGM.js";
|
|
24
|
-
import "../chunk-
|
|
24
|
+
import "../chunk-BYAXXBNO.js";
|
|
25
25
|
import "../chunk-XHKBHWLX.js";
|
|
26
26
|
import {
|
|
27
27
|
DEFAULT_SESSION,
|
|
@@ -42,8 +42,8 @@ import {
|
|
|
42
42
|
repoKeyFor,
|
|
43
43
|
reportEvent,
|
|
44
44
|
scopePathFor
|
|
45
|
-
} from "../chunk-
|
|
46
|
-
import "../chunk-
|
|
45
|
+
} from "../chunk-IF46POXX.js";
|
|
46
|
+
import "../chunk-KZIXHLPQ.js";
|
|
47
47
|
import {
|
|
48
48
|
DECISION_STOP_REASON,
|
|
49
49
|
askUser,
|
|
@@ -54,17 +54,17 @@ import {
|
|
|
54
54
|
} from "../chunk-LGXUGYUH.js";
|
|
55
55
|
import {
|
|
56
56
|
getMachineId
|
|
57
|
-
} from "../chunk-
|
|
58
|
-
import "../chunk-
|
|
57
|
+
} from "../chunk-RQM5SMMR.js";
|
|
58
|
+
import "../chunk-UCGQEAKZ.js";
|
|
59
59
|
import "../chunk-GMXKITVA.js";
|
|
60
60
|
import "../chunk-DINDL2CF.js";
|
|
61
|
-
import "../chunk-
|
|
61
|
+
import "../chunk-NYHNLMQO.js";
|
|
62
62
|
import "../chunk-EYRGBYZG.js";
|
|
63
63
|
import "../chunk-SAF6HGAA.js";
|
|
64
64
|
import "../chunk-7QLSKOSU.js";
|
|
65
65
|
import "../chunk-KZERVKTD.js";
|
|
66
|
-
import "../chunk-
|
|
67
|
-
import "../chunk-
|
|
66
|
+
import "../chunk-P4JVVJ2D.js";
|
|
67
|
+
import "../chunk-T7E75EKA.js";
|
|
68
68
|
import {
|
|
69
69
|
getApiKey
|
|
70
70
|
} from "../chunk-2UMNXADU.js";
|
|
@@ -76,7 +76,7 @@ import {
|
|
|
76
76
|
hookWaitClamped,
|
|
77
77
|
hookWaitDeadline,
|
|
78
78
|
resolveGate
|
|
79
|
-
} from "../chunk-
|
|
79
|
+
} from "../chunk-7IEB2GV4.js";
|
|
80
80
|
|
|
81
81
|
// bin/pushary-gemini-hook.ts
|
|
82
82
|
import { basename } from "path";
|
package/dist/bin/pushary-hook.js
CHANGED
|
@@ -1,55 +1,56 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
handlePreToolUse
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-43Z3RLS5.js";
|
|
5
5
|
import {
|
|
6
6
|
activeHookSource,
|
|
7
7
|
normalizeToolCall,
|
|
8
|
-
profileFromArgv
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-YF4JDCU4.js";
|
|
8
|
+
profileFromArgv
|
|
9
|
+
} from "../chunk-HGN6VZTY.js";
|
|
10
|
+
import "../chunk-5IBVIMWT.js";
|
|
11
|
+
import "../chunk-JCWCTBYH.js";
|
|
12
|
+
import "../chunk-5F5QQMCA.js";
|
|
14
13
|
import {
|
|
15
|
-
|
|
16
|
-
} from "../chunk-
|
|
14
|
+
readToolHookInput
|
|
15
|
+
} from "../chunk-ZIGGEKZW.js";
|
|
17
16
|
import "../chunk-YHG74UFF.js";
|
|
18
|
-
import "../chunk-
|
|
19
|
-
import "../chunk-
|
|
20
|
-
import "../chunk-
|
|
21
|
-
import "../chunk-
|
|
22
|
-
import "../chunk-
|
|
23
|
-
import "../chunk-
|
|
24
|
-
import "../chunk-
|
|
25
|
-
import "../chunk-
|
|
26
|
-
import "../chunk-
|
|
27
|
-
import "../chunk-
|
|
17
|
+
import "../chunk-ESLLVHDY.js";
|
|
18
|
+
import "../chunk-SGZJ5LYH.js";
|
|
19
|
+
import "../chunk-UTYTPDWN.js";
|
|
20
|
+
import "../chunk-5MSBI6NP.js";
|
|
21
|
+
import "../chunk-YYRZPEMA.js";
|
|
22
|
+
import "../chunk-O6RN46OS.js";
|
|
23
|
+
import "../chunk-RGZY77CD.js";
|
|
24
|
+
import "../chunk-A7XIL2WD.js";
|
|
25
|
+
import "../chunk-7PQZYCEP.js";
|
|
26
|
+
import "../chunk-S3EUZZJB.js";
|
|
28
27
|
import "../chunk-EQRS3SGM.js";
|
|
29
|
-
import "../chunk-
|
|
28
|
+
import "../chunk-BYAXXBNO.js";
|
|
30
29
|
import "../chunk-XHKBHWLX.js";
|
|
31
|
-
import
|
|
32
|
-
|
|
30
|
+
import {
|
|
31
|
+
canonicalGateInputs
|
|
32
|
+
} from "../chunk-IF46POXX.js";
|
|
33
|
+
import "../chunk-KZIXHLPQ.js";
|
|
33
34
|
import "../chunk-LGXUGYUH.js";
|
|
34
|
-
import "../chunk-
|
|
35
|
-
import "../chunk-
|
|
35
|
+
import "../chunk-RQM5SMMR.js";
|
|
36
|
+
import "../chunk-UCGQEAKZ.js";
|
|
36
37
|
import {
|
|
37
38
|
exitOnHelpFlag
|
|
38
|
-
} from "../chunk-
|
|
39
|
-
import "../chunk-
|
|
39
|
+
} from "../chunk-TWWLVOPB.js";
|
|
40
|
+
import "../chunk-FAH3D74E.js";
|
|
40
41
|
import "../chunk-GMXKITVA.js";
|
|
41
42
|
import "../chunk-DINDL2CF.js";
|
|
42
|
-
import "../chunk-
|
|
43
|
+
import "../chunk-NYHNLMQO.js";
|
|
43
44
|
import "../chunk-EYRGBYZG.js";
|
|
44
45
|
import "../chunk-SAF6HGAA.js";
|
|
45
46
|
import "../chunk-7QLSKOSU.js";
|
|
46
47
|
import "../chunk-KZERVKTD.js";
|
|
47
|
-
import "../chunk-
|
|
48
|
-
import "../chunk-
|
|
48
|
+
import "../chunk-P4JVVJ2D.js";
|
|
49
|
+
import "../chunk-T7E75EKA.js";
|
|
49
50
|
import "../chunk-2UMNXADU.js";
|
|
50
51
|
import {
|
|
51
52
|
renderPreToolUseVerdict
|
|
52
|
-
} from "../chunk-
|
|
53
|
+
} from "../chunk-7IEB2GV4.js";
|
|
53
54
|
|
|
54
55
|
// bin/pushary-hook.ts
|
|
55
56
|
exitOnHelpFlag("hook");
|
|
@@ -61,19 +62,12 @@ var FALLBACK_TO_TERMINAL = {
|
|
|
61
62
|
permissionDecisionReason: "Pushary hook error, falling back to terminal"
|
|
62
63
|
}
|
|
63
64
|
};
|
|
64
|
-
var askBecauseUnreadable = (toolName) => ({
|
|
65
|
-
hookSpecificOutput: {
|
|
66
|
-
hookEventName: "PreToolUse",
|
|
67
|
-
permissionDecision: "ask",
|
|
68
|
-
permissionDecisionReason: `Pushary could not read what ${toolName} acts on`
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
65
|
var emit = (verdict) => {
|
|
72
66
|
const output = verdict && profile ? renderPreToolUseVerdict(profile, verdict) : verdict;
|
|
73
67
|
if (output !== void 0) process.stdout.write(JSON.stringify(output));
|
|
74
68
|
};
|
|
75
69
|
var main = async () => {
|
|
76
|
-
const raw = await
|
|
70
|
+
const raw = await readToolHookInput(
|
|
77
71
|
activeHookSource(process.argv),
|
|
78
72
|
"PreToolUse"
|
|
79
73
|
);
|
|
@@ -81,12 +75,8 @@ var main = async () => {
|
|
|
81
75
|
process.exit(0);
|
|
82
76
|
}
|
|
83
77
|
try {
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
emit(askBecauseUnreadable(unreadable));
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
emit(await handlePreToolUse(normalizeToolCall(profile, raw)));
|
|
78
|
+
const canonical = profile ? canonicalGateInputs(profile.source, raw.tool_name, [raw.tool_input ?? {}], raw.cwd) : void 0;
|
|
79
|
+
emit(await handlePreToolUse(normalizeToolCall(profile, raw), canonical));
|
|
90
80
|
} catch (err) {
|
|
91
81
|
process.stderr.write(
|
|
92
82
|
`[pushary-hook] Error: ${err instanceof Error ? err.message : String(err)}
|
|
@@ -5,22 +5,22 @@ import {
|
|
|
5
5
|
import "../chunk-PUZZELE6.js";
|
|
6
6
|
import {
|
|
7
7
|
recoverDaemonAfterLogin
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-RGZY77CD.js";
|
|
9
9
|
import "../chunk-XHKBHWLX.js";
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
10
|
+
import "../chunk-RQM5SMMR.js";
|
|
11
|
+
import "../chunk-UCGQEAKZ.js";
|
|
12
12
|
import "../chunk-3EGEA4KH.js";
|
|
13
13
|
import {
|
|
14
14
|
checkApiKey,
|
|
15
15
|
describeKeyCheck
|
|
16
|
-
} from "../chunk-
|
|
16
|
+
} from "../chunk-D4TNSUDY.js";
|
|
17
17
|
import {
|
|
18
18
|
createIo
|
|
19
19
|
} from "../chunk-5RUIFDTP.js";
|
|
20
20
|
import {
|
|
21
21
|
exitOnHelpFlag
|
|
22
|
-
} from "../chunk-
|
|
23
|
-
import "../chunk-
|
|
22
|
+
} from "../chunk-TWWLVOPB.js";
|
|
23
|
+
import "../chunk-FAH3D74E.js";
|
|
24
24
|
import {
|
|
25
25
|
parseFlags
|
|
26
26
|
} from "../chunk-GMXKITVA.js";
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
readControlMode,
|
|
33
33
|
readKeySource,
|
|
34
34
|
writeKey
|
|
35
|
-
} from "../chunk-
|
|
35
|
+
} from "../chunk-NYHNLMQO.js";
|
|
36
36
|
import "../chunk-SAF6HGAA.js";
|
|
37
37
|
import {
|
|
38
38
|
UsageError
|
|
@@ -40,12 +40,12 @@ import {
|
|
|
40
40
|
import {
|
|
41
41
|
EXIT
|
|
42
42
|
} from "../chunk-KZERVKTD.js";
|
|
43
|
-
import "../chunk-
|
|
44
|
-
import "../chunk-
|
|
43
|
+
import "../chunk-P4JVVJ2D.js";
|
|
44
|
+
import "../chunk-T7E75EKA.js";
|
|
45
45
|
import "../chunk-2UMNXADU.js";
|
|
46
46
|
import {
|
|
47
47
|
isValidApiKey
|
|
48
|
-
} from "../chunk-
|
|
48
|
+
} from "../chunk-7IEB2GV4.js";
|
|
49
49
|
|
|
50
50
|
// bin/pushary-login.ts
|
|
51
51
|
exitOnHelpFlag("login");
|
|
@@ -4,14 +4,14 @@ import {
|
|
|
4
4
|
codexConfigToml,
|
|
5
5
|
cursorUserMcp,
|
|
6
6
|
geminiSettings
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-UCGQEAKZ.js";
|
|
8
8
|
import {
|
|
9
9
|
createIo
|
|
10
10
|
} from "../chunk-5RUIFDTP.js";
|
|
11
11
|
import {
|
|
12
12
|
exitOnHelpFlag
|
|
13
|
-
} from "../chunk-
|
|
14
|
-
import "../chunk-
|
|
13
|
+
} from "../chunk-TWWLVOPB.js";
|
|
14
|
+
import "../chunk-FAH3D74E.js";
|
|
15
15
|
import {
|
|
16
16
|
parseFlags
|
|
17
17
|
} from "../chunk-GMXKITVA.js";
|
|
@@ -19,19 +19,19 @@ import "../chunk-DINDL2CF.js";
|
|
|
19
19
|
import {
|
|
20
20
|
clearKey,
|
|
21
21
|
readKeySource
|
|
22
|
-
} from "../chunk-
|
|
22
|
+
} from "../chunk-NYHNLMQO.js";
|
|
23
23
|
import {
|
|
24
24
|
UsageError
|
|
25
25
|
} from "../chunk-7QLSKOSU.js";
|
|
26
26
|
import {
|
|
27
27
|
EXIT
|
|
28
28
|
} from "../chunk-KZERVKTD.js";
|
|
29
|
-
import "../chunk-
|
|
30
|
-
import "../chunk-
|
|
29
|
+
import "../chunk-P4JVVJ2D.js";
|
|
30
|
+
import "../chunk-T7E75EKA.js";
|
|
31
31
|
import {
|
|
32
32
|
getBaseUrl
|
|
33
33
|
} from "../chunk-2UMNXADU.js";
|
|
34
|
-
import "../chunk-
|
|
34
|
+
import "../chunk-7IEB2GV4.js";
|
|
35
35
|
|
|
36
36
|
// bin/pushary-logout.ts
|
|
37
37
|
import { existsSync } from "fs";
|