@pushary/agent-hooks 1.7.1 → 1.7.2
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 +17 -0
- package/dist/bin/pushary-bell-hook.js +23 -23
- package/dist/bin/pushary-bell.js +10 -10
- package/dist/bin/pushary-claude.js +46 -35
- package/dist/bin/pushary-clean.js +107 -60
- package/dist/bin/pushary-codex-bridge.js +18 -17
- package/dist/bin/pushary-codex-hook.js +53 -39
- package/dist/bin/pushary-codex.js +14 -12
- package/dist/bin/pushary-connect.js +16 -16
- package/dist/bin/pushary-cowork.js +5 -5
- package/dist/bin/pushary-daemon.js +27 -27
- package/dist/bin/pushary-disconnect.js +19 -17
- package/dist/bin/pushary-doctor.js +63 -35
- package/dist/bin/pushary-elicitation-hook.js +35 -26
- package/dist/bin/pushary-gemini-bridge.js +12 -12
- package/dist/bin/pushary-gemini-hook.js +47 -32
- package/dist/bin/pushary-hook.js +34 -32
- package/dist/bin/pushary-login.js +16 -16
- package/dist/bin/pushary-logout.js +8 -8
- package/dist/bin/pushary-mcp.js +9 -8
- package/dist/bin/pushary-mode.js +10 -10
- package/dist/bin/pushary-notification-hook.js +29 -27
- package/dist/bin/pushary-opencode-hook.js +46 -32
- package/dist/bin/pushary-permission-denied-hook.js +34 -32
- package/dist/bin/pushary-permission-hook.js +33 -31
- package/dist/bin/pushary-post-hook.js +29 -27
- package/dist/bin/pushary-prompt-hook.js +29 -27
- package/dist/bin/pushary-session-end-hook.js +29 -27
- package/dist/bin/pushary-session-start-hook.js +33 -31
- package/dist/bin/pushary-setup.js +69 -56
- package/dist/bin/pushary-stats.js +5 -5
- package/dist/bin/pushary-status.js +19 -19
- package/dist/bin/pushary-stop-hook.js +29 -27
- package/dist/bin/pushary-stopfailure-hook.js +29 -27
- package/dist/bin/pushary-suggestions.js +5 -5
- package/dist/bin/pushary-transcript-register.js +19 -19
- package/dist/bin/pushary-transcripts.js +7 -7
- package/dist/bin/pushary-upgrade.js +20 -20
- package/dist/bin/pushary-wait.js +10 -10
- package/dist/bin/pushary.js +6 -6
- package/dist/{chunk-WM3U2RUK.js → chunk-2B4XCMH6.js} +75 -232
- package/dist/{chunk-ZIIYTQHC.js → chunk-2XOHXZRC.js} +12 -4
- package/dist/{chunk-3QE3BHBW.js → chunk-3NSRL5E7.js} +2 -2
- package/dist/{chunk-7GI6QC3M.js → chunk-3RO2UWJQ.js} +2 -2
- package/dist/{chunk-AAGLDXH4.js → chunk-4S7CCOXB.js} +5 -5
- package/dist/{chunk-6SJQ442W.js → chunk-5GIBNUBD.js} +2 -2
- package/dist/chunk-5OP5MQI7.js +45 -0
- package/dist/{chunk-EIZW73P5.js → chunk-65RN6ZCO.js} +1 -1
- package/dist/{chunk-6PV2JQ64.js → chunk-6NHXKTQU.js} +2 -2
- package/dist/{chunk-KSNAAMU5.js → chunk-6QZK4O36.js} +4 -4
- package/dist/{chunk-WZWXBTRF.js → chunk-A6WQF7FQ.js} +3 -3
- package/dist/{chunk-62TEPRWQ.js → chunk-AWZNDM3B.js} +1 -1
- package/dist/{chunk-NQFGVAT6.js → chunk-D4OGEWLH.js} +19 -2
- package/dist/{chunk-SVEMF2VO.js → chunk-E3PLF7YB.js} +4 -4
- package/dist/{chunk-MCNS4725.js → chunk-F6BMJOSW.js} +1 -1
- package/dist/{chunk-P5CBNSYL.js → chunk-HOIGXMI7.js} +1 -1
- package/dist/{chunk-XMN37YJH.js → chunk-I7B2DNVU.js} +1 -1
- package/dist/{chunk-ZEMSCGDD.js → chunk-INR3RVQ3.js} +8 -3
- package/dist/{chunk-3QORH5EJ.js → chunk-IZVAVXHQ.js} +6 -4
- package/dist/{chunk-MWVCDP64.js → chunk-JMSB6CJT.js} +1 -1
- package/dist/{chunk-WSC53O7I.js → chunk-KAJT6HPI.js} +3 -3
- package/dist/{chunk-XPMOCJHN.js → chunk-KLXYMPTM.js} +1 -1
- package/dist/{chunk-XDASEYRS.js → chunk-L6IF4JOF.js} +3 -3
- package/dist/{chunk-UPKP67TA.js → chunk-LI3C2IQY.js} +2 -2
- package/dist/{chunk-H6JV44TE.js → chunk-M2JGLFFS.js} +1 -1
- package/dist/chunk-MY3UZO5U.js +99 -0
- package/dist/chunk-N6IOSZOE.js +185 -0
- package/dist/{chunk-454KMJHF.js → chunk-NYBZJ44G.js} +34 -1
- package/dist/{chunk-QPR33SHS.js → chunk-OJRB5QKN.js} +6 -6
- package/dist/{chunk-3T35OE7C.js → chunk-OXEF6JHD.js} +4 -4
- package/dist/{chunk-SNWNA3MQ.js → chunk-PWNQGITG.js} +1 -1
- package/dist/{chunk-XPTCPU6V.js → chunk-Q7CDBJXU.js} +1 -1
- package/dist/{chunk-OTZHT34O.js → chunk-QSZ37ROP.js} +1 -1
- package/dist/{chunk-O5JD7UI5.js → chunk-R7ZETVNR.js} +1 -1
- package/dist/{chunk-4C4NRDIC.js → chunk-RLRDPZG4.js} +1 -1
- package/dist/{chunk-IGBDOZUO.js → chunk-SEIZQZEE.js} +1 -1
- package/dist/{chunk-OAL44FM2.js → chunk-SJN64NJX.js} +1 -1
- package/dist/{chunk-NID4UZDN.js → chunk-SKEW3TQX.js} +1 -1
- package/dist/{chunk-NAAZCNKI.js → chunk-SKMWPXGV.js} +351 -37
- package/dist/{chunk-KBLIVEFJ.js → chunk-T3PRPFDY.js} +5 -5
- package/dist/{chunk-2FU43B5Q.js → chunk-TVJYGZXB.js} +2 -2
- package/dist/{chunk-Y6GKOZBT.js → chunk-U3MS6D5X.js} +1 -1
- package/dist/{chunk-O5PRIYFZ.js → chunk-U4TMAANR.js} +3 -0
- package/dist/{chunk-JTQDP4ZL.js → chunk-UFNBKYWT.js} +3 -3
- package/dist/{chunk-42XR73I2.js → chunk-UUTWHVSV.js} +35 -35
- package/dist/{chunk-43SSQCWO.js → chunk-VQDJ6KB3.js} +3 -3
- package/dist/{chunk-YZKS3ME3.js → chunk-VSGKQ3HI.js} +2 -2
- package/dist/{chunk-XFNVG3OV.js → chunk-WWTLAZQA.js} +24 -7
- package/dist/{chunk-VCMFKZON.js → chunk-WXIVUIXA.js} +2 -2
- package/dist/{chunk-AHWJHLG5.js → chunk-YLCSKVQQ.js} +7 -5
- package/dist/{chunk-Q7QRR6YL.js → chunk-YNJ2H2FD.js} +2 -2
- package/dist/{chunk-BYVB3RX3.js → chunk-YU4222G2.js} +2 -2
- package/dist/{chunk-YQN7S57T.js → chunk-YU54LNC6.js} +6 -6
- package/dist/{chunk-7GYGVQBU.js → chunk-ZMWX5SDA.js} +8 -8
- package/dist/{chunk-55RO62FV.js → chunk-ZUKZJQGR.js} +1 -1
- package/dist/{reapply-66GQIBXN.js → reapply-D6RSDYCK.js} +9 -9
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +22 -20
- package/package.json +2 -1
- package/dist/chunk-JMBG47WV.js +0 -336
- package/dist/chunk-YHG74UFF.js +0 -12
|
@@ -6,20 +6,22 @@ import {
|
|
|
6
6
|
readServiceExecPath,
|
|
7
7
|
retryAgentCommand,
|
|
8
8
|
versionManagerOf
|
|
9
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-INR3RVQ3.js";
|
|
10
10
|
import {
|
|
11
11
|
assessCodexHookTrust,
|
|
12
12
|
readCodexTrustForPusharyHooks
|
|
13
|
-
} from "../chunk-
|
|
13
|
+
} from "../chunk-5GIBNUBD.js";
|
|
14
14
|
import {
|
|
15
15
|
readMachineReadiness,
|
|
16
16
|
readManagedControlEvidence
|
|
17
|
-
} from "../chunk-
|
|
17
|
+
} from "../chunk-YU54LNC6.js";
|
|
18
18
|
import {
|
|
19
19
|
FX_PROFILE_REFUSALS,
|
|
20
20
|
FX_PUSHARY_TOOLS_RULE,
|
|
21
21
|
FX_QUESTION_TOOL,
|
|
22
22
|
FX_SETTINGS_REFUSALS,
|
|
23
|
+
HERMES_PIP_PACKAGE,
|
|
24
|
+
HERMES_PLUGIN_NAME,
|
|
23
25
|
agentProbes,
|
|
24
26
|
detectAgent,
|
|
25
27
|
detectAllAgents,
|
|
@@ -27,6 +29,7 @@ import {
|
|
|
27
29
|
fxPusharyEntryOf,
|
|
28
30
|
fxQuestionRouting,
|
|
29
31
|
hasInstructionBlock,
|
|
32
|
+
hermesWiredByPushary,
|
|
30
33
|
isDetected,
|
|
31
34
|
isFxPusharyEntry,
|
|
32
35
|
isPluginRegistered,
|
|
@@ -34,30 +37,32 @@ import {
|
|
|
34
37
|
readFxFile,
|
|
35
38
|
readFxProfile,
|
|
36
39
|
readFxSettings,
|
|
40
|
+
readHermesStatus,
|
|
41
|
+
resolveHermesPython,
|
|
37
42
|
shortenHome,
|
|
38
43
|
vscodeSettingsTargets,
|
|
39
44
|
workspacesShowingQuestionTool
|
|
40
|
-
} from "../chunk-
|
|
41
|
-
import "../chunk-
|
|
45
|
+
} from "../chunk-SKMWPXGV.js";
|
|
46
|
+
import "../chunk-TVJYGZXB.js";
|
|
42
47
|
import {
|
|
43
48
|
OPENCODE_PLUGIN_PLACEHOLDER,
|
|
44
49
|
openCodePluginDir,
|
|
45
50
|
openCodePluginFile,
|
|
46
51
|
openCodeWired
|
|
47
|
-
} from "../chunk-
|
|
52
|
+
} from "../chunk-SKEW3TQX.js";
|
|
48
53
|
import {
|
|
49
54
|
compatibleConfigFile,
|
|
50
55
|
compatibleInstructionsFile,
|
|
51
56
|
compatibleMcpFile,
|
|
52
57
|
hasCompatibleHooks,
|
|
53
58
|
missingCompatibleHookEvents
|
|
54
|
-
} from "../chunk-
|
|
55
|
-
import "../chunk-
|
|
59
|
+
} from "../chunk-T3PRPFDY.js";
|
|
60
|
+
import "../chunk-KAJT6HPI.js";
|
|
56
61
|
import {
|
|
57
62
|
detectProviderLiveCapabilities,
|
|
58
63
|
hasSpawnProvider,
|
|
59
64
|
resolveControlPolicy
|
|
60
|
-
} from "../chunk-
|
|
65
|
+
} from "../chunk-YNJ2H2FD.js";
|
|
61
66
|
import {
|
|
62
67
|
AUTO_UPDATE_DISABLE_ENV,
|
|
63
68
|
autoUpdateOffReason,
|
|
@@ -65,16 +70,16 @@ import {
|
|
|
65
70
|
describeAutoUpdateCheck,
|
|
66
71
|
readAutoUpdateState,
|
|
67
72
|
takeAutoUpdateAnnouncement
|
|
68
|
-
} from "../chunk-
|
|
73
|
+
} from "../chunk-YU4222G2.js";
|
|
69
74
|
import {
|
|
70
75
|
readLedgerSummary
|
|
71
|
-
} from "../chunk-
|
|
76
|
+
} from "../chunk-F6BMJOSW.js";
|
|
72
77
|
import {
|
|
73
78
|
describeBridgeResolution,
|
|
74
79
|
isBridgeLocator,
|
|
75
80
|
liveBridgeProbe,
|
|
76
81
|
resolveBridgeStub
|
|
77
|
-
} from "../chunk-
|
|
82
|
+
} from "../chunk-JMSB6CJT.js";
|
|
78
83
|
import {
|
|
79
84
|
claudeOtherHolders,
|
|
80
85
|
claudeUnprovenHolds,
|
|
@@ -91,7 +96,7 @@ import {
|
|
|
91
96
|
geminiWired,
|
|
92
97
|
holdsLong,
|
|
93
98
|
pusharyHookExecutable
|
|
94
|
-
} from "../chunk-
|
|
99
|
+
} from "../chunk-L6IF4JOF.js";
|
|
95
100
|
import {
|
|
96
101
|
daemonHasRemoteProof,
|
|
97
102
|
daemonServiceManagerAvailable,
|
|
@@ -100,17 +105,18 @@ import {
|
|
|
100
105
|
readDaemonNeedsLogin,
|
|
101
106
|
readDaemonStatus,
|
|
102
107
|
readInstalledDaemonService
|
|
103
|
-
} from "../chunk-
|
|
108
|
+
} from "../chunk-4S7CCOXB.js";
|
|
104
109
|
import {
|
|
105
110
|
GEMINI_HOOK_BINARY,
|
|
106
111
|
hasGeminiHooks,
|
|
107
112
|
missingGeminiHookEvents
|
|
108
|
-
} from "../chunk-
|
|
113
|
+
} from "../chunk-A6WQF7FQ.js";
|
|
109
114
|
import "../chunk-XHKBHWLX.js";
|
|
110
|
-
import "../chunk-
|
|
111
|
-
import "../chunk-
|
|
112
|
-
import "../chunk-
|
|
113
|
-
import "../chunk-
|
|
115
|
+
import "../chunk-2B4XCMH6.js";
|
|
116
|
+
import "../chunk-N6IOSZOE.js";
|
|
117
|
+
import "../chunk-RLRDPZG4.js";
|
|
118
|
+
import "../chunk-2XOHXZRC.js";
|
|
119
|
+
import "../chunk-6QZK4O36.js";
|
|
114
120
|
import "../chunk-POFBE6ZY.js";
|
|
115
121
|
import {
|
|
116
122
|
describeReach,
|
|
@@ -119,19 +125,15 @@ import {
|
|
|
119
125
|
reachVerdict,
|
|
120
126
|
roundTripEvidence,
|
|
121
127
|
verifyRoundTrip
|
|
122
|
-
} from "../chunk-
|
|
128
|
+
} from "../chunk-YLCSKVQQ.js";
|
|
123
129
|
import "../chunk-3EGEA4KH.js";
|
|
124
|
-
import {
|
|
125
|
-
checkApiKey,
|
|
126
|
-
describeKeyCheck
|
|
127
|
-
} from "../chunk-43SSQCWO.js";
|
|
128
130
|
import "../chunk-QCGNGEGE.js";
|
|
129
131
|
import {
|
|
130
132
|
createIo
|
|
131
|
-
} from "../chunk-
|
|
133
|
+
} from "../chunk-U4TMAANR.js";
|
|
132
134
|
import {
|
|
133
135
|
exitOnHelpFlag
|
|
134
|
-
} from "../chunk-
|
|
136
|
+
} from "../chunk-6NHXKTQU.js";
|
|
135
137
|
import {
|
|
136
138
|
parseFlags
|
|
137
139
|
} from "../chunk-GMXKITVA.js";
|
|
@@ -139,22 +141,26 @@ import {
|
|
|
139
141
|
keyPrefix,
|
|
140
142
|
readControlMode,
|
|
141
143
|
readKeySource
|
|
142
|
-
} from "../chunk-
|
|
144
|
+
} from "../chunk-VSGKQ3HI.js";
|
|
143
145
|
import {
|
|
144
146
|
callMcpTool,
|
|
145
147
|
sendMcpRequest
|
|
146
|
-
} from "../chunk-
|
|
147
|
-
import
|
|
148
|
+
} from "../chunk-D4OGEWLH.js";
|
|
149
|
+
import {
|
|
150
|
+
checkApiKey,
|
|
151
|
+
describeKeyCheck
|
|
152
|
+
} from "../chunk-VQDJ6KB3.js";
|
|
153
|
+
import "../chunk-UFNBKYWT.js";
|
|
148
154
|
import {
|
|
149
155
|
getMachineId
|
|
150
|
-
} from "../chunk-
|
|
156
|
+
} from "../chunk-HOIGXMI7.js";
|
|
151
157
|
import {
|
|
152
158
|
UsageError
|
|
153
159
|
} from "../chunk-7QLSKOSU.js";
|
|
154
160
|
import {
|
|
155
161
|
EXIT
|
|
156
162
|
} from "../chunk-KZERVKTD.js";
|
|
157
|
-
import "../chunk-
|
|
163
|
+
import "../chunk-LI3C2IQY.js";
|
|
158
164
|
import {
|
|
159
165
|
CODEX_HOOK_EVENTS,
|
|
160
166
|
autoUpdateState,
|
|
@@ -177,19 +183,21 @@ import {
|
|
|
177
183
|
geminiMd,
|
|
178
184
|
geminiSettings,
|
|
179
185
|
hasCodexHooks,
|
|
186
|
+
hermesConfig,
|
|
187
|
+
hermesConfigReceipt,
|
|
180
188
|
missingCodexHookEvents,
|
|
181
189
|
pusharyConfigFile,
|
|
182
190
|
readCodexMcpAuth,
|
|
183
191
|
resolvePathBinary,
|
|
184
192
|
vscodePluginDir
|
|
185
|
-
} from "../chunk-
|
|
193
|
+
} from "../chunk-NYBZJ44G.js";
|
|
186
194
|
import "../chunk-T7E75EKA.js";
|
|
187
195
|
import {
|
|
188
196
|
getBaseUrl
|
|
189
|
-
} from "../chunk-
|
|
197
|
+
} from "../chunk-SJN64NJX.js";
|
|
190
198
|
import {
|
|
191
199
|
NPX_LATEST_COMMAND
|
|
192
|
-
} from "../chunk-
|
|
200
|
+
} from "../chunk-65RN6ZCO.js";
|
|
193
201
|
import {
|
|
194
202
|
AGENTS,
|
|
195
203
|
CURSOR_GATE_EVENTS,
|
|
@@ -203,7 +211,7 @@ import {
|
|
|
203
211
|
hookCompatibleProfile,
|
|
204
212
|
isHookActivationReport,
|
|
205
213
|
isNewerVersion
|
|
206
|
-
} from "../chunk-
|
|
214
|
+
} from "../chunk-WWTLAZQA.js";
|
|
207
215
|
|
|
208
216
|
// bin/pushary-doctor.ts
|
|
209
217
|
import { existsSync, readFileSync, writeFileSync } from "fs";
|
|
@@ -466,6 +474,15 @@ var reportFxQuestionRouting = (routing) => {
|
|
|
466
474
|
}
|
|
467
475
|
console.log(` ${warn} fx: questions can still stop in the terminal ${dim(`(${FX_QUESTION_ROUTING_WARNINGS[routing]})`)}`);
|
|
468
476
|
};
|
|
477
|
+
var reportHermesStatus = (status) => {
|
|
478
|
+
const config = hermesConfig();
|
|
479
|
+
check(status.pluginInstalled, "Hermes: plugin installed", status.pluginInstalled ? HERMES_PIP_PACKAGE : `${HERMES_PIP_PACKAGE} is not installed in Hermes' Python \u2014 run ${retryAgentCommand("hermes")}`);
|
|
480
|
+
check(status.pluginEnabled, "Hermes: plugin enabled", status.pluginEnabled ? config : `"${HERMES_PLUGIN_NAME}" is missing from plugins.enabled in ${config} \u2014 run ${retryAgentCommand("hermes")}`);
|
|
481
|
+
if (status.approvalsRouted) check(true, "Hermes: approvals go through Pushary", `security.approval.transport in ${config}`);
|
|
482
|
+
else console.log(` ${warn} Hermes: approvals stay in the terminal ${dim(`(security.approval.transport is not "pushary" in ${config})`)}`);
|
|
483
|
+
if (status.questionsRouted) check(true, "Hermes: questions go through Pushary", `clarify is off in ${config}`);
|
|
484
|
+
else console.log(` ${warn} Hermes: questions can stop in the terminal ${dim(`(clarify is not in agent.disabled_toolsets in ${config})`)}`);
|
|
485
|
+
};
|
|
469
486
|
var fxSettingsProblem = (read) => {
|
|
470
487
|
if (read.kind === "missing") return `${fxSettings()} is missing, so fx runs with no Pushary rules; re-run ${retryAgentCommand("fx")}`;
|
|
471
488
|
if (read.kind === "unreadable") return `${fxSettings()} could not be read`;
|
|
@@ -1124,6 +1141,17 @@ var main = async () => {
|
|
|
1124
1141
|
} else {
|
|
1125
1142
|
skipped("fx", installed("fx") ? "installed, but Pushary is not set up for it" : "not installed");
|
|
1126
1143
|
}
|
|
1144
|
+
const hermesPython = resolveHermesPython();
|
|
1145
|
+
const hermesStatus = hermesPython ? readHermesStatus(hermesPython) : null;
|
|
1146
|
+
const hermesSetupRecorded = existsSync(hermesConfigReceipt());
|
|
1147
|
+
if (hermesStatus && hermesWiredByPushary(hermesStatus, hermesSetupRecorded)) {
|
|
1148
|
+
checking("Hermes");
|
|
1149
|
+
reportHermesStatus(hermesStatus);
|
|
1150
|
+
} else if (hermesPython && hermesStatus === null && hermesSetupRecorded) {
|
|
1151
|
+
check(false, "Hermes: config readable", `${hermesConfig()} could not be read with Hermes' Python \u2014 run ${retryAgentCommand("hermes")}`);
|
|
1152
|
+
} else {
|
|
1153
|
+
skipped("Hermes", installed("hermes") ? "installed, but Pushary is not set up for it" : "not installed");
|
|
1154
|
+
}
|
|
1127
1155
|
if (bridgeStub) {
|
|
1128
1156
|
const resolution = resolveBridgeStub(bridgeStub, liveBridgeProbe());
|
|
1129
1157
|
check(resolution.kind === "bundle", "Mac app behind pushary-bridge", describeBridgeResolution(resolution));
|
|
@@ -1,47 +1,52 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
readHookInput
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-3RO2UWJQ.js";
|
|
5
5
|
import {
|
|
6
|
+
announceSubscriptionRequired,
|
|
6
7
|
isDeferAnswer
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-
|
|
8
|
+
} from "../chunk-5OP5MQI7.js";
|
|
9
|
+
import "../chunk-ZMWX5SDA.js";
|
|
9
10
|
import "../chunk-SGZJ5LYH.js";
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
16
|
-
import "../chunk-
|
|
17
|
-
import "../chunk-
|
|
18
|
-
import "../chunk-
|
|
19
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-E3PLF7YB.js";
|
|
12
|
+
import "../chunk-I7B2DNVU.js";
|
|
13
|
+
import "../chunk-JMSB6CJT.js";
|
|
14
|
+
import "../chunk-L6IF4JOF.js";
|
|
15
|
+
import "../chunk-4S7CCOXB.js";
|
|
16
|
+
import "../chunk-A6WQF7FQ.js";
|
|
17
|
+
import "../chunk-KLXYMPTM.js";
|
|
18
|
+
import "../chunk-R7ZETVNR.js";
|
|
19
|
+
import "../chunk-QSZ37ROP.js";
|
|
20
|
+
import "../chunk-Q7CDBJXU.js";
|
|
20
21
|
import "../chunk-XHKBHWLX.js";
|
|
21
|
-
import "../chunk-
|
|
22
|
+
import "../chunk-N6IOSZOE.js";
|
|
23
|
+
import "../chunk-RLRDPZG4.js";
|
|
22
24
|
import {
|
|
23
25
|
askUser,
|
|
24
26
|
isDecisionStopped,
|
|
25
27
|
waitForQuestion
|
|
26
|
-
} from "../chunk-
|
|
27
|
-
import "../chunk-
|
|
28
|
+
} from "../chunk-2XOHXZRC.js";
|
|
29
|
+
import "../chunk-6QZK4O36.js";
|
|
28
30
|
import "../chunk-POFBE6ZY.js";
|
|
29
31
|
import "../chunk-GMXKITVA.js";
|
|
30
|
-
import "../chunk-
|
|
31
|
-
import
|
|
32
|
-
|
|
32
|
+
import "../chunk-VSGKQ3HI.js";
|
|
33
|
+
import {
|
|
34
|
+
SubscriptionRequiredError
|
|
35
|
+
} from "../chunk-D4OGEWLH.js";
|
|
36
|
+
import "../chunk-VQDJ6KB3.js";
|
|
37
|
+
import "../chunk-UFNBKYWT.js";
|
|
33
38
|
import {
|
|
34
39
|
getMachineId
|
|
35
|
-
} from "../chunk-
|
|
40
|
+
} from "../chunk-HOIGXMI7.js";
|
|
36
41
|
import "../chunk-7QLSKOSU.js";
|
|
37
42
|
import "../chunk-KZERVKTD.js";
|
|
38
|
-
import "../chunk-
|
|
39
|
-
import "../chunk-
|
|
43
|
+
import "../chunk-LI3C2IQY.js";
|
|
44
|
+
import "../chunk-NYBZJ44G.js";
|
|
40
45
|
import "../chunk-T7E75EKA.js";
|
|
41
46
|
import {
|
|
42
47
|
getApiKey
|
|
43
|
-
} from "../chunk-
|
|
44
|
-
import "../chunk-
|
|
48
|
+
} from "../chunk-SJN64NJX.js";
|
|
49
|
+
import "../chunk-65RN6ZCO.js";
|
|
45
50
|
import {
|
|
46
51
|
ELICITATION_ANSWERABLE_MODE,
|
|
47
52
|
effectiveWaitSeconds,
|
|
@@ -52,7 +57,7 @@ import {
|
|
|
52
57
|
planElicitationAsk,
|
|
53
58
|
readElicitationFields,
|
|
54
59
|
renderElicitationOutput
|
|
55
|
-
} from "../chunk-
|
|
60
|
+
} from "../chunk-WWTLAZQA.js";
|
|
56
61
|
|
|
57
62
|
// bin/pushary-elicitation-hook.ts
|
|
58
63
|
import { basename } from "path";
|
|
@@ -105,7 +110,11 @@ var main = async () => {
|
|
|
105
110
|
let created;
|
|
106
111
|
try {
|
|
107
112
|
created = await askUser(apiKey, { ...common, ...prompt });
|
|
108
|
-
} catch {
|
|
113
|
+
} catch (error) {
|
|
114
|
+
if (error instanceof SubscriptionRequiredError) {
|
|
115
|
+
announceSubscriptionRequired(error.upgradeUrl, input.session_id);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
109
118
|
process.stdout.write(renderElicitationOutput(input.hook_event_name ?? "Elicitation", "cancel") ?? "");
|
|
110
119
|
return;
|
|
111
120
|
}
|
|
@@ -5,37 +5,37 @@ import {
|
|
|
5
5
|
postLiveSession,
|
|
6
6
|
postLiveSessionUntilAccepted,
|
|
7
7
|
startLiveSessionHeartbeat
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-WXIVUIXA.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-
|
|
17
|
-
import "../chunk-
|
|
15
|
+
} from "../chunk-PWNQGITG.js";
|
|
16
|
+
import "../chunk-R7ZETVNR.js";
|
|
17
|
+
import "../chunk-QSZ37ROP.js";
|
|
18
18
|
import {
|
|
19
19
|
transcriptsEnabled
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-Q7CDBJXU.js";
|
|
21
21
|
import {
|
|
22
22
|
spawnClaude
|
|
23
23
|
} from "../chunk-XHKBHWLX.js";
|
|
24
|
-
import "../chunk-
|
|
24
|
+
import "../chunk-VSGKQ3HI.js";
|
|
25
25
|
import {
|
|
26
26
|
getMachineId
|
|
27
|
-
} from "../chunk-
|
|
28
|
-
import "../chunk-
|
|
27
|
+
} from "../chunk-HOIGXMI7.js";
|
|
28
|
+
import "../chunk-LI3C2IQY.js";
|
|
29
29
|
import {
|
|
30
30
|
resolveBinary
|
|
31
|
-
} from "../chunk-
|
|
31
|
+
} from "../chunk-NYBZJ44G.js";
|
|
32
32
|
import "../chunk-T7E75EKA.js";
|
|
33
33
|
import {
|
|
34
34
|
getApiKey,
|
|
35
35
|
getBaseUrl
|
|
36
|
-
} from "../chunk-
|
|
37
|
-
import "../chunk-
|
|
38
|
-
import "../chunk-
|
|
36
|
+
} from "../chunk-SJN64NJX.js";
|
|
37
|
+
import "../chunk-65RN6ZCO.js";
|
|
38
|
+
import "../chunk-WWTLAZQA.js";
|
|
39
39
|
|
|
40
40
|
// bin/pushary-gemini-bridge.ts
|
|
41
41
|
import { existsSync } from "fs";
|
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
triggerAutoUpdate
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-YU4222G2.js";
|
|
5
5
|
import {
|
|
6
6
|
isGatingMoment,
|
|
7
7
|
recordKeylessMoment
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-F6BMJOSW.js";
|
|
9
9
|
import {
|
|
10
10
|
readHookInput
|
|
11
|
-
} from "../chunk-
|
|
11
|
+
} from "../chunk-3RO2UWJQ.js";
|
|
12
12
|
import {
|
|
13
|
+
announceSubscriptionRequired,
|
|
13
14
|
denyReasonFrom,
|
|
14
15
|
isDeferAnswer
|
|
15
|
-
} from "../chunk-
|
|
16
|
-
import "../chunk-
|
|
16
|
+
} from "../chunk-5OP5MQI7.js";
|
|
17
|
+
import "../chunk-ZMWX5SDA.js";
|
|
17
18
|
import "../chunk-SGZJ5LYH.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-
|
|
19
|
+
import "../chunk-E3PLF7YB.js";
|
|
20
|
+
import "../chunk-I7B2DNVU.js";
|
|
21
|
+
import "../chunk-JMSB6CJT.js";
|
|
22
|
+
import "../chunk-L6IF4JOF.js";
|
|
23
|
+
import "../chunk-4S7CCOXB.js";
|
|
24
|
+
import "../chunk-A6WQF7FQ.js";
|
|
25
|
+
import "../chunk-KLXYMPTM.js";
|
|
26
|
+
import "../chunk-R7ZETVNR.js";
|
|
27
|
+
import "../chunk-QSZ37ROP.js";
|
|
28
|
+
import "../chunk-Q7CDBJXU.js";
|
|
28
29
|
import "../chunk-XHKBHWLX.js";
|
|
29
30
|
import {
|
|
30
|
-
DEFAULT_SESSION,
|
|
31
31
|
UNNAMED_ACTION,
|
|
32
32
|
deriveActionBody,
|
|
33
33
|
deriveBlocker,
|
|
@@ -45,38 +45,45 @@ import {
|
|
|
45
45
|
repoKeyFor,
|
|
46
46
|
reportEvent,
|
|
47
47
|
scopePathFor
|
|
48
|
-
} from "../chunk-
|
|
49
|
-
import
|
|
48
|
+
} from "../chunk-2B4XCMH6.js";
|
|
49
|
+
import {
|
|
50
|
+
DEFAULT_SESSION
|
|
51
|
+
} from "../chunk-N6IOSZOE.js";
|
|
52
|
+
import "../chunk-RLRDPZG4.js";
|
|
50
53
|
import {
|
|
51
54
|
DECISION_STOP_REASON,
|
|
55
|
+
UNVERIFIABLE_APPROVAL_REASON,
|
|
52
56
|
askUser,
|
|
53
57
|
isDecisionStopped,
|
|
54
58
|
isLocalQuestionHandoff,
|
|
55
59
|
sendNotification,
|
|
56
60
|
waitForQuestion
|
|
57
|
-
} from "../chunk-
|
|
61
|
+
} from "../chunk-2XOHXZRC.js";
|
|
58
62
|
import {
|
|
59
63
|
exitAfterClientReports
|
|
60
|
-
} from "../chunk-
|
|
64
|
+
} from "../chunk-6QZK4O36.js";
|
|
61
65
|
import "../chunk-POFBE6ZY.js";
|
|
62
66
|
import "../chunk-GMXKITVA.js";
|
|
63
|
-
import "../chunk-
|
|
64
|
-
import
|
|
65
|
-
|
|
67
|
+
import "../chunk-VSGKQ3HI.js";
|
|
68
|
+
import {
|
|
69
|
+
SubscriptionRequiredError
|
|
70
|
+
} from "../chunk-D4OGEWLH.js";
|
|
71
|
+
import "../chunk-VQDJ6KB3.js";
|
|
72
|
+
import "../chunk-UFNBKYWT.js";
|
|
66
73
|
import {
|
|
67
74
|
getMachineId
|
|
68
|
-
} from "../chunk-
|
|
75
|
+
} from "../chunk-HOIGXMI7.js";
|
|
69
76
|
import "../chunk-7QLSKOSU.js";
|
|
70
77
|
import {
|
|
71
78
|
EXIT
|
|
72
79
|
} from "../chunk-KZERVKTD.js";
|
|
73
|
-
import "../chunk-
|
|
74
|
-
import "../chunk-
|
|
80
|
+
import "../chunk-LI3C2IQY.js";
|
|
81
|
+
import "../chunk-NYBZJ44G.js";
|
|
75
82
|
import "../chunk-T7E75EKA.js";
|
|
76
83
|
import {
|
|
77
84
|
getApiKey
|
|
78
|
-
} from "../chunk-
|
|
79
|
-
import "../chunk-
|
|
85
|
+
} from "../chunk-SJN64NJX.js";
|
|
86
|
+
import "../chunk-65RN6ZCO.js";
|
|
80
87
|
import {
|
|
81
88
|
DECISION_LINE_MAX,
|
|
82
89
|
KILL_REASON,
|
|
@@ -85,7 +92,7 @@ import {
|
|
|
85
92
|
hookWaitClamped,
|
|
86
93
|
hookWaitDeadline,
|
|
87
94
|
resolveGate
|
|
88
|
-
} from "../chunk-
|
|
95
|
+
} from "../chunk-WWTLAZQA.js";
|
|
89
96
|
|
|
90
97
|
// bin/pushary-gemini-hook.ts
|
|
91
98
|
import { basename } from "path";
|
|
@@ -125,7 +132,9 @@ var NO_LOCAL_INPUT = "This unattended Gemini session has no local approval input
|
|
|
125
132
|
var NO_ANSWER_IN_TIME = "No answer from your phone in time, and this unattended Gemini session has no local approval input. Retry when you can answer on your phone.";
|
|
126
133
|
var HANDLED_ON_MACHINE = "You chose to handle this on your machine, but this unattended Gemini session has no local approval input. Use an interactive session.";
|
|
127
134
|
var NO_DEVICE = "No phone or other notification channel is connected to Pushary, and this unattended Gemini session has no local approval input. Connect one in Pushary, then retry.";
|
|
135
|
+
var SUBSCRIPTION_REQUIRED = "Your Pushary workspace has no active subscription, so approvals cannot reach your phone, and this unattended Gemini session has no local approval input. Renew Pushary, then retry.";
|
|
128
136
|
var geminiLocalHandoff = (bridge, reason = NO_LOCAL_INPUT) => geminiOwnsLifecycle(bridge) ? geminiPass() : geminiDeny(reason);
|
|
137
|
+
var geminiSubscriptionRequiredDecision = (bridge) => geminiLocalHandoff(bridge, SUBSCRIPTION_REQUIRED);
|
|
129
138
|
var geminiPushOnlyHandoff = (askStatus, bridge) => askStatus === "notified" || askStatus === "terminal" ? geminiLocalHandoff(bridge) : geminiPass();
|
|
130
139
|
var fromPhoneAnswer = (answer) => answer.value === "yes" ? geminiAllow() : geminiDeny(denyReasonFrom(answer.value, answer.note));
|
|
131
140
|
var geminiPushFirstDecision = (pushed, bridge) => {
|
|
@@ -137,7 +146,7 @@ var geminiPushFirstDecision = (pushed, bridge) => {
|
|
|
137
146
|
return geminiLocalHandoff(bridge, NO_ANSWER_IN_TIME);
|
|
138
147
|
};
|
|
139
148
|
var geminiPushOnlyDecision = (pushed, timeoutAction, bridge) => {
|
|
140
|
-
if (!pushed) return geminiDeny(
|
|
149
|
+
if (!pushed) return geminiDeny(UNVERIFIABLE_APPROVAL_REASON);
|
|
141
150
|
const { answer, localHandoff, clampCut, askStatus } = pushed;
|
|
142
151
|
if (isDecisionStopped(answer)) return geminiDeny(DECISION_STOP_REASON);
|
|
143
152
|
if (localHandoff) return geminiPushOnlyHandoff(askStatus, bridge);
|
|
@@ -205,11 +214,16 @@ var notifyApprovalNeeded = async (apiKey, input, lookup) => {
|
|
|
205
214
|
} catch {
|
|
206
215
|
}
|
|
207
216
|
};
|
|
217
|
+
var geminiStepsAside = (error, input) => {
|
|
218
|
+
announceSubscriptionRequired(error.upgradeUrl, input.session_id);
|
|
219
|
+
return geminiSubscriptionRequiredDecision(process.env.PUSHARY_GEMINI_BRIDGE);
|
|
220
|
+
};
|
|
208
221
|
var handlePushOnly = async (apiKey, input, lookup, timeoutSeconds, timeoutAction) => {
|
|
209
222
|
let pushed;
|
|
210
223
|
try {
|
|
211
224
|
pushed = await pushQuestion(apiKey, input, lookup, effectiveWaitSeconds(timeoutAction, timeoutSeconds, "gemini"), "push_only");
|
|
212
|
-
} catch {
|
|
225
|
+
} catch (error) {
|
|
226
|
+
if (error instanceof SubscriptionRequiredError) return geminiStepsAside(error, input);
|
|
213
227
|
pushed = void 0;
|
|
214
228
|
}
|
|
215
229
|
return geminiPushOnlyDecision(pushed, timeoutAction, process.env.PUSHARY_GEMINI_BRIDGE);
|
|
@@ -218,7 +232,8 @@ var handlePushFirst = async (apiKey, input, lookup, pushFirstSeconds) => {
|
|
|
218
232
|
let pushed;
|
|
219
233
|
try {
|
|
220
234
|
pushed = await pushQuestion(apiKey, input, lookup, pushFirstSeconds, "push_first", 1500);
|
|
221
|
-
} catch {
|
|
235
|
+
} catch (error) {
|
|
236
|
+
if (error instanceof SubscriptionRequiredError) return geminiStepsAside(error, input);
|
|
222
237
|
pushed = void 0;
|
|
223
238
|
}
|
|
224
239
|
return geminiPushFirstDecision(pushed, process.env.PUSHARY_GEMINI_BRIDGE);
|
package/dist/bin/pushary-hook.js
CHANGED
|
@@ -1,61 +1,63 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
handlePreToolUse
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-UUTWHVSV.js";
|
|
5
5
|
import {
|
|
6
6
|
activeHookSource,
|
|
7
7
|
normalizeToolCall,
|
|
8
8
|
profileFromArgv
|
|
9
|
-
} from "../chunk-
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
9
|
+
} from "../chunk-T3PRPFDY.js";
|
|
10
|
+
import "../chunk-KAJT6HPI.js";
|
|
11
|
+
import "../chunk-IZVAVXHQ.js";
|
|
12
|
+
import "../chunk-F6BMJOSW.js";
|
|
13
13
|
import {
|
|
14
14
|
readToolHookInput
|
|
15
|
-
} from "../chunk-
|
|
16
|
-
import "../chunk-
|
|
17
|
-
import "../chunk-
|
|
15
|
+
} from "../chunk-3RO2UWJQ.js";
|
|
16
|
+
import "../chunk-5OP5MQI7.js";
|
|
17
|
+
import "../chunk-ZMWX5SDA.js";
|
|
18
18
|
import "../chunk-SGZJ5LYH.js";
|
|
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-
|
|
28
|
-
import "../chunk-
|
|
19
|
+
import "../chunk-E3PLF7YB.js";
|
|
20
|
+
import "../chunk-I7B2DNVU.js";
|
|
21
|
+
import "../chunk-JMSB6CJT.js";
|
|
22
|
+
import "../chunk-L6IF4JOF.js";
|
|
23
|
+
import "../chunk-4S7CCOXB.js";
|
|
24
|
+
import "../chunk-A6WQF7FQ.js";
|
|
25
|
+
import "../chunk-KLXYMPTM.js";
|
|
26
|
+
import "../chunk-R7ZETVNR.js";
|
|
27
|
+
import "../chunk-QSZ37ROP.js";
|
|
28
|
+
import "../chunk-Q7CDBJXU.js";
|
|
29
29
|
import "../chunk-XHKBHWLX.js";
|
|
30
30
|
import {
|
|
31
31
|
canonicalGateInputs
|
|
32
|
-
} from "../chunk-
|
|
33
|
-
import "../chunk-
|
|
34
|
-
import "../chunk-
|
|
32
|
+
} from "../chunk-2B4XCMH6.js";
|
|
33
|
+
import "../chunk-N6IOSZOE.js";
|
|
34
|
+
import "../chunk-RLRDPZG4.js";
|
|
35
|
+
import "../chunk-2XOHXZRC.js";
|
|
35
36
|
import {
|
|
36
37
|
exitAfterClientReports
|
|
37
|
-
} from "../chunk-
|
|
38
|
+
} from "../chunk-6QZK4O36.js";
|
|
38
39
|
import "../chunk-POFBE6ZY.js";
|
|
39
40
|
import {
|
|
40
41
|
exitOnHelpFlag
|
|
41
|
-
} from "../chunk-
|
|
42
|
+
} from "../chunk-6NHXKTQU.js";
|
|
42
43
|
import "../chunk-GMXKITVA.js";
|
|
43
|
-
import "../chunk-
|
|
44
|
-
import "../chunk-
|
|
45
|
-
import "../chunk-
|
|
46
|
-
import "../chunk-
|
|
44
|
+
import "../chunk-VSGKQ3HI.js";
|
|
45
|
+
import "../chunk-D4OGEWLH.js";
|
|
46
|
+
import "../chunk-VQDJ6KB3.js";
|
|
47
|
+
import "../chunk-UFNBKYWT.js";
|
|
48
|
+
import "../chunk-HOIGXMI7.js";
|
|
47
49
|
import "../chunk-7QLSKOSU.js";
|
|
48
50
|
import {
|
|
49
51
|
EXIT
|
|
50
52
|
} from "../chunk-KZERVKTD.js";
|
|
51
|
-
import "../chunk-
|
|
52
|
-
import "../chunk-
|
|
53
|
+
import "../chunk-LI3C2IQY.js";
|
|
54
|
+
import "../chunk-NYBZJ44G.js";
|
|
53
55
|
import "../chunk-T7E75EKA.js";
|
|
54
|
-
import "../chunk-
|
|
55
|
-
import "../chunk-
|
|
56
|
+
import "../chunk-SJN64NJX.js";
|
|
57
|
+
import "../chunk-65RN6ZCO.js";
|
|
56
58
|
import {
|
|
57
59
|
renderPreToolUseVerdict
|
|
58
|
-
} from "../chunk-
|
|
60
|
+
} from "../chunk-WWTLAZQA.js";
|
|
59
61
|
|
|
60
62
|
// bin/pushary-hook.ts
|
|
61
63
|
exitOnHelpFlag("hook");
|