@pushary/agent-hooks 1.4.1 → 1.5.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 +20 -0
- package/README.md +27 -0
- package/data/vscode-plugin/README.md +1 -1
- package/data/vscode-plugin/scripts/pushary-gate.mjs +2 -2
- package/dist/bin/pushary-bell-hook.js +22 -21
- package/dist/bin/pushary-bell.js +10 -10
- package/dist/bin/pushary-claude.js +28 -24
- package/dist/bin/pushary-clean.js +30 -26
- package/dist/bin/pushary-codex-bridge.js +16 -14
- package/dist/bin/pushary-codex-hook.js +41 -31
- package/dist/bin/pushary-codex.js +15 -10
- package/dist/bin/pushary-connect.js +11 -11
- package/dist/bin/pushary-cowork.js +6 -6
- package/dist/bin/pushary-daemon.js +31 -28
- package/dist/bin/pushary-disconnect.js +16 -16
- package/dist/bin/pushary-doctor.js +81 -38
- package/dist/bin/pushary-elicitation-hook.js +23 -22
- package/dist/bin/pushary-gemini-bridge.js +13 -11
- package/dist/bin/pushary-gemini-hook.js +29 -24
- package/dist/bin/pushary-hook.js +30 -30
- package/dist/bin/pushary-login.js +14 -14
- package/dist/bin/pushary-logout.js +8 -8
- package/dist/bin/pushary-mode.js +7 -7
- package/dist/bin/pushary-notification-hook.js +26 -25
- package/dist/bin/pushary-opencode-hook.js +25 -24
- package/dist/bin/pushary-permission-denied-hook.js +30 -29
- package/dist/bin/pushary-permission-hook.js +29 -28
- package/dist/bin/pushary-post-hook.js +26 -25
- package/dist/bin/pushary-prompt-hook.js +26 -25
- package/dist/bin/pushary-session-end-hook.js +26 -25
- package/dist/bin/pushary-session-start-hook.js +32 -27
- package/dist/bin/pushary-setup.js +85 -59
- package/dist/bin/pushary-stats.js +6 -6
- package/dist/bin/pushary-status.js +15 -15
- package/dist/bin/pushary-stop-hook.js +26 -25
- package/dist/bin/pushary-stopfailure-hook.js +26 -25
- package/dist/bin/pushary-suggestions.js +4 -4
- package/dist/bin/pushary-transcript-register.js +20 -19
- package/dist/bin/pushary-transcripts.js +8 -8
- package/dist/bin/pushary-upgrade.js +231 -37
- package/dist/bin/pushary-wait.js +7 -7
- package/dist/bin/pushary.js +8 -8
- package/dist/{chunk-MN3XOVRK.js → chunk-2QT3GCU4.js} +1 -1
- package/dist/{chunk-LUT2EZLG.js → chunk-3NBODGQS.js} +1 -1
- package/dist/{chunk-43JKGLZZ.js → chunk-3ZSGKLSO.js} +2 -2
- package/dist/{chunk-QBS6LGEK.js → chunk-43LJSM4F.js} +2 -2
- package/dist/{chunk-SWFF5U2N.js → chunk-43ZDACBO.js} +1 -1
- package/dist/{chunk-HK3IXIQJ.js → chunk-5HYNICS7.js} +1 -1
- package/dist/{chunk-EQRS3SGM.js → chunk-66H2QQAK.js} +1 -1
- package/dist/{chunk-3BPB2HYZ.js → chunk-7XT76LWT.js} +7 -7
- package/dist/{chunk-ALFT7H5B.js → chunk-CQYHOHOK.js} +56 -5
- package/dist/{chunk-3UA6FPRC.js → chunk-DLJN5XEU.js} +3 -3
- package/dist/{chunk-BZBUPZC6.js → chunk-DTQNDR7C.js} +1 -1
- package/dist/{chunk-SAF6NNXY.js → chunk-DYHXOXUF.js} +43 -6
- package/dist/{chunk-FAH3D74E.js → chunk-EA3IELHP.js} +6 -0
- package/dist/{chunk-ED5TA2FJ.js → chunk-EADZPVYW.js} +3 -3
- package/dist/{chunk-I6HRQOMT.js → chunk-F57RGL7K.js} +8 -8
- package/dist/{chunk-LNGYW6G4.js → chunk-FDHMNT24.js} +20 -16
- package/dist/{chunk-37VLIYLI.js → chunk-H5LHTC5X.js} +1 -1
- package/dist/{chunk-EYRGBYZG.js → chunk-HETOKNIL.js} +1 -1
- package/dist/{chunk-K6I5M2ME.js → chunk-HU5LSYL2.js} +2 -2
- package/dist/{chunk-SKXLIVFM.js → chunk-HVBF35GT.js} +2 -2
- package/dist/{chunk-DINDL2CF.js → chunk-HWJW3CPO.js} +25 -5
- package/dist/{chunk-GOFDGTEI.js → chunk-IYTQ4B5I.js} +18 -45
- package/dist/{chunk-WIOXWUUH.js → chunk-J4J45VPZ.js} +3 -3
- package/dist/{chunk-HQLAZWJJ.js → chunk-JF736N4C.js} +5 -5
- package/dist/{chunk-LYXX5NSB.js → chunk-K3QVDAZW.js} +1 -1
- package/dist/{chunk-KI36MAT6.js → chunk-KEOLNHR3.js} +2 -2
- package/dist/{chunk-S3EP4B35.js → chunk-KJRALILH.js} +28 -11
- package/dist/{chunk-PHHGHHOW.js → chunk-MYP4UUFH.js} +1 -1
- package/dist/{chunk-TNS3YLFE.js → chunk-NFKVRMTM.js} +8 -8
- package/dist/{chunk-TF4IOINR.js → chunk-NTQSICPJ.js} +3 -3
- package/dist/{chunk-4FN6VV56.js → chunk-ORLJNJEO.js} +2 -2
- package/dist/{chunk-2UMNXADU.js → chunk-OSJEMXSR.js} +5 -1
- package/dist/chunk-OSSDK5RS.js +162 -0
- package/dist/{chunk-TWWLVOPB.js → chunk-P4BNYJ5Q.js} +5 -5
- package/dist/{chunk-KEMEBTCJ.js → chunk-PCGZXWGQ.js} +4 -4
- package/dist/{chunk-2GMI6JH6.js → chunk-PNNBMH4E.js} +5 -5
- package/dist/{chunk-LGXUGYUH.js → chunk-PYCQXCI5.js} +2 -2
- package/dist/{chunk-JOVWYVSR.js → chunk-SOCEY746.js} +1 -1
- package/dist/{chunk-FVKFDTN6.js → chunk-T4QY64OR.js} +19 -14
- package/dist/{chunk-R3AMKNIW.js → chunk-TFKBFQCE.js} +1 -1
- package/dist/{chunk-CRNAXFQ6.js → chunk-TIWURSLS.js} +1 -1
- package/dist/{chunk-VYUDGQM7.js → chunk-TUXFIVOH.js} +1 -1
- package/dist/{chunk-3T52B2OF.js → chunk-UQHUUZ5H.js} +1 -1
- package/dist/{chunk-TI3ZWXZG.js → chunk-USQDVBEV.js} +2 -2
- package/dist/{chunk-WEO5JCB4.js → chunk-UYDTFCHW.js} +1 -1
- package/dist/{chunk-D7ERHWYB.js → chunk-XWEONSLV.js} +1 -1
- package/dist/{chunk-GKIUEIDX.js → chunk-YQMFGWBD.js} +1 -1
- package/dist/{reapply-BAWDJTG7.js → reapply-D2TFN6XK.js} +9 -8
- package/dist/src/index.js +18 -16
- package/package.json +1 -1
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
runBrowserLogin
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-YQMFGWBD.js";
|
|
5
5
|
import {
|
|
6
6
|
coworkOutput,
|
|
7
7
|
coworkSelection
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-3ZSGKLSO.js";
|
|
9
9
|
import "../chunk-PUZZELE6.js";
|
|
10
10
|
import {
|
|
11
11
|
detectClaudeVersion
|
|
12
|
-
} from "../chunk-
|
|
12
|
+
} from "../chunk-3NBODGQS.js";
|
|
13
13
|
import {
|
|
14
14
|
describeVersionManagerPin,
|
|
15
15
|
versionManagerOf
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
import {
|
|
18
18
|
readManagedControlEvidence,
|
|
19
19
|
waitForMachineReadiness
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-F57RGL7K.js";
|
|
21
21
|
import {
|
|
22
22
|
HERMES_CONFIG_SCRIPT,
|
|
23
23
|
HERMES_PIP_PACKAGE,
|
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
isHermesConfigReceipt,
|
|
28
28
|
resolveHermesPython,
|
|
29
29
|
runHermesPythonScript
|
|
30
|
-
} from "../chunk-
|
|
30
|
+
} from "../chunk-H5LHTC5X.js";
|
|
31
31
|
import {
|
|
32
32
|
describeDetection,
|
|
33
33
|
detectAllAgents,
|
|
@@ -39,7 +39,7 @@ import {
|
|
|
39
39
|
shortenHome,
|
|
40
40
|
vscodeSettingsTargets,
|
|
41
41
|
writeInstructionBlock
|
|
42
|
-
} from "../chunk-
|
|
42
|
+
} from "../chunk-DLJN5XEU.js";
|
|
43
43
|
import {
|
|
44
44
|
OPENCODE_HOOK_BINARY,
|
|
45
45
|
addOpenCodeMcpServer,
|
|
@@ -50,7 +50,7 @@ import {
|
|
|
50
50
|
openCodePluginDir,
|
|
51
51
|
openCodePluginFile,
|
|
52
52
|
openCodeWired
|
|
53
|
-
} from "../chunk-
|
|
53
|
+
} from "../chunk-TUXFIVOH.js";
|
|
54
54
|
import {
|
|
55
55
|
addCompatibleHooks,
|
|
56
56
|
addCompatibleMcpServer,
|
|
@@ -61,7 +61,7 @@ import {
|
|
|
61
61
|
compatibleMcpFile,
|
|
62
62
|
compatiblePermissionRuleFile,
|
|
63
63
|
hasCompatibleHooks
|
|
64
|
-
} from "../chunk-
|
|
64
|
+
} from "../chunk-JF736N4C.js";
|
|
65
65
|
import {
|
|
66
66
|
addClaudeMcpServer,
|
|
67
67
|
addPusharyHooks,
|
|
@@ -69,12 +69,16 @@ import {
|
|
|
69
69
|
captureClaudeMcpServer,
|
|
70
70
|
isClaudeMcpSnapshot,
|
|
71
71
|
updateClaudeMcpSnapshot
|
|
72
|
-
} from "../chunk-
|
|
72
|
+
} from "../chunk-J4J45VPZ.js";
|
|
73
73
|
import {
|
|
74
74
|
detectProviderLiveCapabilities,
|
|
75
75
|
hasSpawnProvider,
|
|
76
76
|
resolveControlPolicy
|
|
77
|
-
} from "../chunk-
|
|
77
|
+
} from "../chunk-KEOLNHR3.js";
|
|
78
|
+
import {
|
|
79
|
+
describeAutoUpdateAnnouncement,
|
|
80
|
+
takeAutoUpdateAnnouncement
|
|
81
|
+
} from "../chunk-OSSDK5RS.js";
|
|
78
82
|
import {
|
|
79
83
|
KEEP_HINT,
|
|
80
84
|
captureHookTakeover,
|
|
@@ -84,23 +88,23 @@ import {
|
|
|
84
88
|
hookOwnerOf,
|
|
85
89
|
mcpBearerKey,
|
|
86
90
|
planHooks
|
|
87
|
-
} from "../chunk-
|
|
91
|
+
} from "../chunk-PCGZXWGQ.js";
|
|
88
92
|
import {
|
|
89
93
|
AGENT_CHOICES,
|
|
90
94
|
effectiveControlMode,
|
|
91
95
|
effectiveVerify,
|
|
92
96
|
parseSetupOptions
|
|
93
|
-
} from "../chunk-
|
|
97
|
+
} from "../chunk-TFKBFQCE.js";
|
|
94
98
|
import {
|
|
95
99
|
liveBridgeProbe,
|
|
96
100
|
resolveBridgeStub
|
|
97
|
-
} from "../chunk-
|
|
101
|
+
} from "../chunk-K3QVDAZW.js";
|
|
98
102
|
import {
|
|
99
103
|
claudeWired,
|
|
100
104
|
codexWired,
|
|
101
105
|
geminiWired,
|
|
102
106
|
pusharyHookExecutable
|
|
103
|
-
} from "../chunk-
|
|
107
|
+
} from "../chunk-NTQSICPJ.js";
|
|
104
108
|
import {
|
|
105
109
|
clearDaemonNeedsLogin,
|
|
106
110
|
daemonHasRemoteProof,
|
|
@@ -113,29 +117,31 @@ import {
|
|
|
113
117
|
replaceDaemonService,
|
|
114
118
|
stopDaemonService,
|
|
115
119
|
waitForDaemonRemoteProof
|
|
116
|
-
} from "../chunk-
|
|
120
|
+
} from "../chunk-7XT76LWT.js";
|
|
117
121
|
import {
|
|
118
122
|
GEMINI_HOOK_BINARY,
|
|
119
123
|
addGeminiHooks,
|
|
120
124
|
addGeminiMcpServer,
|
|
121
125
|
compareVersion,
|
|
126
|
+
formatVersion,
|
|
122
127
|
parseVersion
|
|
123
|
-
} from "../chunk-
|
|
124
|
-
import "../chunk-
|
|
128
|
+
} from "../chunk-EADZPVYW.js";
|
|
129
|
+
import "../chunk-SOCEY746.js";
|
|
125
130
|
import {
|
|
126
131
|
transcriptPreferenceForSetup
|
|
127
|
-
} from "../chunk-
|
|
132
|
+
} from "../chunk-2QT3GCU4.js";
|
|
128
133
|
import "../chunk-XHKBHWLX.js";
|
|
129
134
|
import {
|
|
130
135
|
reportEvent
|
|
131
|
-
} from "../chunk-
|
|
132
|
-
import "../chunk-
|
|
133
|
-
import "../chunk-
|
|
134
|
-
import "../chunk-
|
|
136
|
+
} from "../chunk-FDHMNT24.js";
|
|
137
|
+
import "../chunk-UYDTFCHW.js";
|
|
138
|
+
import "../chunk-PYCQXCI5.js";
|
|
139
|
+
import "../chunk-UQHUUZ5H.js";
|
|
135
140
|
import {
|
|
136
141
|
addCodexHookTrust,
|
|
137
142
|
addCodexHooks,
|
|
138
143
|
addCodexMcpServer,
|
|
144
|
+
autoUpdateState,
|
|
139
145
|
captureCodexHookTrust,
|
|
140
146
|
claudeJson,
|
|
141
147
|
claudeMcpReceipt,
|
|
@@ -152,6 +158,7 @@ import {
|
|
|
152
158
|
cursorUserHooks,
|
|
153
159
|
cursorUserMcp,
|
|
154
160
|
dropVacatedCodexHookTrust,
|
|
161
|
+
fetchLatestPublishedVersion,
|
|
155
162
|
geminiMd,
|
|
156
163
|
geminiSettings,
|
|
157
164
|
guardBinary,
|
|
@@ -169,8 +176,9 @@ import {
|
|
|
169
176
|
resolveGlobalBinary,
|
|
170
177
|
vscodePluginDir,
|
|
171
178
|
vscodePluginMcp
|
|
172
|
-
} from "../chunk-
|
|
179
|
+
} from "../chunk-DYHXOXUF.js";
|
|
173
180
|
import {
|
|
181
|
+
BROWSER_CONNECT_COMMAND,
|
|
174
182
|
confirmAppConnection,
|
|
175
183
|
connectDevice,
|
|
176
184
|
connectViaAppPairing,
|
|
@@ -179,27 +187,20 @@ import {
|
|
|
179
187
|
printConnectInstructions,
|
|
180
188
|
roundTripEvidence,
|
|
181
189
|
verifyRoundTrip
|
|
182
|
-
} from "../chunk-
|
|
190
|
+
} from "../chunk-KJRALILH.js";
|
|
183
191
|
import "../chunk-3EGEA4KH.js";
|
|
184
192
|
import {
|
|
185
193
|
checkApiKey,
|
|
186
194
|
describeKeyCheck,
|
|
187
195
|
samePusharyAccount
|
|
188
|
-
} from "../chunk-
|
|
196
|
+
} from "../chunk-43LJSM4F.js";
|
|
189
197
|
import {
|
|
190
198
|
setHumanStream
|
|
191
199
|
} from "../chunk-QCGNGEGE.js";
|
|
192
200
|
import {
|
|
193
201
|
useColor
|
|
194
202
|
} from "../chunk-5RUIFDTP.js";
|
|
195
|
-
import {
|
|
196
|
-
renderCommandHelp
|
|
197
|
-
} from "../chunk-FAH3D74E.js";
|
|
198
203
|
import "../chunk-GMXKITVA.js";
|
|
199
|
-
import {
|
|
200
|
-
getPackageVersion,
|
|
201
|
-
isNewerVersion
|
|
202
|
-
} from "../chunk-DINDL2CF.js";
|
|
203
204
|
import {
|
|
204
205
|
KEY_FILE_MODE,
|
|
205
206
|
exportLine,
|
|
@@ -210,8 +211,8 @@ import {
|
|
|
210
211
|
readKeySource,
|
|
211
212
|
resolveShellRc,
|
|
212
213
|
writeKey
|
|
213
|
-
} from "../chunk-
|
|
214
|
-
import "../chunk-
|
|
214
|
+
} from "../chunk-USQDVBEV.js";
|
|
215
|
+
import "../chunk-HETOKNIL.js";
|
|
215
216
|
import "../chunk-SAF6HGAA.js";
|
|
216
217
|
import {
|
|
217
218
|
UsageError
|
|
@@ -219,14 +220,14 @@ import {
|
|
|
219
220
|
import {
|
|
220
221
|
EXIT
|
|
221
222
|
} from "../chunk-KZERVKTD.js";
|
|
222
|
-
import "../chunk-
|
|
223
|
+
import "../chunk-HU5LSYL2.js";
|
|
223
224
|
import {
|
|
224
225
|
backupFile,
|
|
225
226
|
readJsonSafe,
|
|
226
227
|
writeFileAtomic,
|
|
227
228
|
writeJsonAtomic
|
|
228
229
|
} from "../chunk-T7E75EKA.js";
|
|
229
|
-
import "../chunk-
|
|
230
|
+
import "../chunk-OSJEMXSR.js";
|
|
230
231
|
import {
|
|
231
232
|
HOOK_COMPATIBLE_PROFILES,
|
|
232
233
|
HOOK_LOCATOR_BINARY,
|
|
@@ -235,7 +236,15 @@ import {
|
|
|
235
236
|
compatibleTargetFiles,
|
|
236
237
|
hookCompatibleProfile,
|
|
237
238
|
isValidApiKey
|
|
238
|
-
} from "../chunk-
|
|
239
|
+
} from "../chunk-T4QY64OR.js";
|
|
240
|
+
import {
|
|
241
|
+
NPX_LATEST_COMMAND,
|
|
242
|
+
renderCommandHelp
|
|
243
|
+
} from "../chunk-EA3IELHP.js";
|
|
244
|
+
import {
|
|
245
|
+
getPackageVersion,
|
|
246
|
+
isNewerVersion
|
|
247
|
+
} from "../chunk-HWJW3CPO.js";
|
|
239
248
|
|
|
240
249
|
// bin/pushary-setup.ts
|
|
241
250
|
import { existsSync, readFileSync, writeFileSync, mkdirSync, cpSync, rmSync, renameSync, realpathSync, readdirSync, statSync, openSync, readSync, closeSync } from "fs";
|
|
@@ -437,6 +446,15 @@ var readCodexVersion = (probe) => {
|
|
|
437
446
|
return bundled ? parseCodexVersion(bundled) : null;
|
|
438
447
|
};
|
|
439
448
|
|
|
449
|
+
// src/setup/codex-trust.ts
|
|
450
|
+
var CODEX_TRUST_VERIFIED_MAX = [0, 155, 1];
|
|
451
|
+
var planCodexTrust = (installed, hashingProvenOnThisMachine) => hashingProvenOnThisMachine || compareCodexVersion(installed, CODEX_TRUST_VERIFIED_MAX) <= 0 ? { kind: "pretrust" } : { kind: "manual", installed, verifiedMax: CODEX_TRUST_VERIFIED_MAX };
|
|
452
|
+
var codexTrustOutcome = (pretrusted) => pretrusted ? "pretrusted" : "manual";
|
|
453
|
+
var describeUnverifiedCodexTrust = (plan, surface) => {
|
|
454
|
+
const where = surface === "chatgpt" ? "Open ChatGPT, then Settings and Hooks," : "Open Codex";
|
|
455
|
+
return `Codex ${formatVersion(plan.installed)} is newer than the last version Pushary verified (${formatVersion(plan.verifiedMax)}), so its hooks are not trusted yet. ${where} and choose Trust for the Pushary hooks.`;
|
|
456
|
+
};
|
|
457
|
+
|
|
440
458
|
// src/setup/codex-install.ts
|
|
441
459
|
var NATIVE_BINARY_MIN_BYTES = 20 * 1024 * 1024;
|
|
442
460
|
var packageRootFor = (probe, binPath) => {
|
|
@@ -528,6 +546,10 @@ var recordedKey = null;
|
|
|
528
546
|
var recordSetupKey = (apiKey) => {
|
|
529
547
|
recordedKey = apiKey;
|
|
530
548
|
};
|
|
549
|
+
var recordedCodexTrust = null;
|
|
550
|
+
var recordCodexTrust = (outcome) => {
|
|
551
|
+
recordedCodexTrust = outcome;
|
|
552
|
+
};
|
|
531
553
|
var emitted = false;
|
|
532
554
|
var defaultDeps = { report: reportEvent };
|
|
533
555
|
var emit = async (deps, props) => {
|
|
@@ -535,7 +557,7 @@ var emit = async (deps, props) => {
|
|
|
535
557
|
emitted = true;
|
|
536
558
|
try {
|
|
537
559
|
await deps.report(
|
|
538
|
-
{ event: "agent_setup_completed", agentType: "setup", ...props },
|
|
560
|
+
{ event: "agent_setup_completed", agentType: "setup", ...props, codexTrust: recordedCodexTrust },
|
|
539
561
|
{ maxAttempts: 1, timeoutMs: 2e3, ...recordedKey ? { apiKey: recordedKey } : {} }
|
|
540
562
|
);
|
|
541
563
|
} catch {
|
|
@@ -713,19 +735,17 @@ var spinner = async (label, fn, options = {}) => {
|
|
|
713
735
|
if (!options.optional) throw err;
|
|
714
736
|
}
|
|
715
737
|
};
|
|
716
|
-
var checkForUpdates = async (current) => {
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
}
|
|
728
|
-
} catch {
|
|
738
|
+
var checkForUpdates = async (current, markAnnounced) => {
|
|
739
|
+
const announcement = takeAutoUpdateAnnouncement(autoUpdateState(), markAnnounced);
|
|
740
|
+
if (announcement) {
|
|
741
|
+
console.log(` ${check} ${describeAutoUpdateAnnouncement(announcement)}`);
|
|
742
|
+
console.log();
|
|
743
|
+
}
|
|
744
|
+
const latest = await fetchLatestPublishedVersion({ timeoutMs: 3e3 });
|
|
745
|
+
if (latest && isNewerVersion(latest, current)) {
|
|
746
|
+
console.log(` ${yellow("!")} Update available: ${dim(current)} \u2192 ${green(latest)}`);
|
|
747
|
+
console.log(` ${dim("Run:")} ${NPX_LATEST_COMMAND} upgrade`);
|
|
748
|
+
console.log();
|
|
729
749
|
}
|
|
730
750
|
};
|
|
731
751
|
var globalInstallReady = false;
|
|
@@ -874,7 +894,6 @@ var setupHermes = async (_apiKey) => {
|
|
|
874
894
|
};
|
|
875
895
|
var CODEX_HOOKS_JSON = join3(CODEX_HOME, "hooks.json");
|
|
876
896
|
var CODEX_HOOKS_MIN_VERSION = [0, 122, 0];
|
|
877
|
-
var CODEX_TRUST_VERIFIED_MAX = [0, 147, 0];
|
|
878
897
|
var codexOnPath = () => {
|
|
879
898
|
const whichCmd = IS_WINDOWS ? "where" : "which";
|
|
880
899
|
try {
|
|
@@ -983,7 +1002,6 @@ var detectCodexInstall = () => checkCodexInstall({
|
|
|
983
1002
|
dirname: dirname2
|
|
984
1003
|
});
|
|
985
1004
|
var codexSupportsHooks = (version) => version !== null && compareCodexVersion(version, CODEX_HOOKS_MIN_VERSION) >= 0;
|
|
986
|
-
var codexTrustAutoSupported = (version) => version !== null && codexSupportsHooks(version) && compareCodexVersion(version, CODEX_TRUST_VERIFIED_MAX) <= 0;
|
|
987
1005
|
var removeCodexNotifyEntry = (codexConfig) => {
|
|
988
1006
|
let raw = "";
|
|
989
1007
|
try {
|
|
@@ -1053,7 +1071,11 @@ var setupCodex = async (apiKey) => {
|
|
|
1053
1071
|
});
|
|
1054
1072
|
const codexVersion = detectCodexVersion();
|
|
1055
1073
|
const hooksSupported = codexSupportsHooks(codexVersion);
|
|
1056
|
-
const
|
|
1074
|
+
const trustPlan = hooksSupported && codexVersion !== null ? planCodexTrust(
|
|
1075
|
+
codexVersion,
|
|
1076
|
+
codexTrustSchemeAgrees(readAgentJson(CODEX_HOOKS_JSON), readAgentToml(codexConfig), CODEX_HOOKS_JSON)
|
|
1077
|
+
) : null;
|
|
1078
|
+
const trustAuto = trustPlan?.kind === "pretrust";
|
|
1057
1079
|
let trusted = false;
|
|
1058
1080
|
if (hooksSupported) {
|
|
1059
1081
|
const hookCommand = guardBinary(resolveGlobalBinary("pushary-codex-hook") ?? "pushary-codex-hook");
|
|
@@ -1083,6 +1105,7 @@ var setupCodex = async (apiKey) => {
|
|
|
1083
1105
|
await spinner("Removing legacy notify handler", async () => {
|
|
1084
1106
|
removeCodexNotifyEntry(codexConfig);
|
|
1085
1107
|
});
|
|
1108
|
+
recordCodexTrust(codexTrustOutcome(trusted));
|
|
1086
1109
|
} else {
|
|
1087
1110
|
if (codexVersion !== null) {
|
|
1088
1111
|
console.log(` ${yellow("!")} This Codex version predates native hooks (needs ${CODEX_HOOKS_MIN_VERSION.join(".")}+).`);
|
|
@@ -1113,6 +1136,9 @@ var setupCodex = async (apiKey) => {
|
|
|
1113
1136
|
if (trusted) {
|
|
1114
1137
|
console.log(` ${dim("\u2022")} Hook pre-trusted: no ${cyan("/hooks")} step. If approvals never arrive, ${cyan("/hooks")} re-trusts it`);
|
|
1115
1138
|
} else {
|
|
1139
|
+
if (trustPlan?.kind === "manual") {
|
|
1140
|
+
console.log(` ${yellow("!")} ${describeUnverifiedCodexTrust(trustPlan, bundled ? "chatgpt" : "codex")}`);
|
|
1141
|
+
}
|
|
1116
1142
|
console.log();
|
|
1117
1143
|
console.log(` ${bold("One step left, and it happens inside Codex")}`);
|
|
1118
1144
|
console.log(` ${dim("Codex makes you trust any hook before it runs. This is Codex's own")}`);
|
|
@@ -1743,10 +1769,10 @@ var printPairingEscape = () => {
|
|
|
1743
1769
|
console.log();
|
|
1744
1770
|
console.log(` ${yellow("!")} No app? Two ways to finish without one:`);
|
|
1745
1771
|
console.log();
|
|
1746
|
-
console.log(` ${cyan(
|
|
1772
|
+
console.log(` ${cyan(BROWSER_CONNECT_COMMAND)}`);
|
|
1747
1773
|
console.log(` ${dim("Approve in a browser tab. No phone needed.")}`);
|
|
1748
1774
|
console.log();
|
|
1749
|
-
console.log(` ${cyan(
|
|
1775
|
+
console.log(` ${cyan(`${NPX_LATEST_COMMAND} setup --key pk_...`)}`);
|
|
1750
1776
|
console.log(` ${dim("Paste a key from")} ${cyan("pushary.com/dashboard/agent/settings")}`);
|
|
1751
1777
|
console.log();
|
|
1752
1778
|
console.log(` ${dim("Or get the app at")} ${cyan("https://pushary.com/download")} ${dim("and re-run setup.")}`);
|
|
@@ -1931,7 +1957,7 @@ var main = async () => {
|
|
|
1931
1957
|
console.log(` ${bold("Pushary")} ${dim("v" + version)}`);
|
|
1932
1958
|
console.log(` ${dim("Push notifications for AI agents")}`);
|
|
1933
1959
|
console.log();
|
|
1934
|
-
await checkForUpdates(version);
|
|
1960
|
+
await checkForUpdates(version, !options.dryRun);
|
|
1935
1961
|
markStep("resolve-key");
|
|
1936
1962
|
const connectMode = options.connectMode;
|
|
1937
1963
|
const flagKey = await readKeyFromStdin(options) ?? options.key ?? void 0;
|
|
@@ -1989,7 +2015,7 @@ var main = async () => {
|
|
|
1989
2015
|
console.log(` ${dim("Pairing with your Pushary app.")}`);
|
|
1990
2016
|
console.log(` ${dim("Agent control requires a paid plan after the trial. Current pricing:")} ${cyan("https://pushary.com/pricing")}`);
|
|
1991
2017
|
console.log(` ${dim("No app yet? Get it at")} ${cyan("https://pushary.com/download")}${dim(", this keeps waiting.")}`);
|
|
1992
|
-
console.log(` ${dim("No phone? Ctrl-C, then:")} ${cyan(
|
|
2018
|
+
console.log(` ${dim("No phone? Ctrl-C, then:")} ${cyan(BROWSER_CONNECT_COMMAND)}`);
|
|
1993
2019
|
markStep("pair");
|
|
1994
2020
|
const previous = readKeySource();
|
|
1995
2021
|
const paired = await connectViaAppPairing({
|
|
@@ -2458,7 +2484,7 @@ main().catch(async (err) => {
|
|
|
2458
2484
|
}
|
|
2459
2485
|
console.log();
|
|
2460
2486
|
console.log(` ${yellow("!")} Setup failed: ${formatError(err)}`);
|
|
2461
|
-
console.log(` ${dim("Run")} ${cyan(
|
|
2487
|
+
console.log(` ${dim("Run")} ${cyan(`${NPX_LATEST_COMMAND} doctor`)} ${dim("after fixing the issue, then rerun setup.")}`);
|
|
2462
2488
|
console.log();
|
|
2463
2489
|
process.exit(await abortWith("crashed", EXIT.FAILED));
|
|
2464
2490
|
});
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
readLedgerSummary
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-43ZDACBO.js";
|
|
5
5
|
import {
|
|
6
6
|
exitOnHelpFlag
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-FAH3D74E.js";
|
|
9
|
-
import "../chunk-DINDL2CF.js";
|
|
7
|
+
} from "../chunk-P4BNYJ5Q.js";
|
|
10
8
|
import "../chunk-KZERVKTD.js";
|
|
11
9
|
import {
|
|
12
10
|
getApiKey
|
|
13
|
-
} from "../chunk-
|
|
14
|
-
import "../chunk-
|
|
11
|
+
} from "../chunk-OSJEMXSR.js";
|
|
12
|
+
import "../chunk-T4QY64OR.js";
|
|
13
|
+
import "../chunk-EA3IELHP.js";
|
|
14
|
+
import "../chunk-HWJW3CPO.js";
|
|
15
15
|
|
|
16
16
|
// bin/pushary-stats.ts
|
|
17
17
|
exitOnHelpFlag("stats");
|
|
@@ -2,38 +2,36 @@
|
|
|
2
2
|
import {
|
|
3
3
|
describeLastSeen,
|
|
4
4
|
listMachines
|
|
5
|
-
} from "../chunk-
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
5
|
+
} from "../chunk-F57RGL7K.js";
|
|
6
|
+
import "../chunk-KEOLNHR3.js";
|
|
7
|
+
import "../chunk-7XT76LWT.js";
|
|
8
8
|
import "../chunk-XHKBHWLX.js";
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-UQHUUZ5H.js";
|
|
10
|
+
import "../chunk-DYHXOXUF.js";
|
|
11
11
|
import {
|
|
12
12
|
describeReach,
|
|
13
13
|
fetchChannels,
|
|
14
14
|
reachVerdict
|
|
15
|
-
} from "../chunk-
|
|
15
|
+
} from "../chunk-KJRALILH.js";
|
|
16
16
|
import "../chunk-3EGEA4KH.js";
|
|
17
17
|
import {
|
|
18
18
|
checkApiKey,
|
|
19
19
|
describeKeyCheck
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-43LJSM4F.js";
|
|
21
21
|
import "../chunk-QCGNGEGE.js";
|
|
22
22
|
import {
|
|
23
23
|
createIo
|
|
24
24
|
} from "../chunk-5RUIFDTP.js";
|
|
25
25
|
import {
|
|
26
26
|
exitOnHelpFlag
|
|
27
|
-
} from "../chunk-
|
|
28
|
-
import "../chunk-FAH3D74E.js";
|
|
27
|
+
} from "../chunk-P4BNYJ5Q.js";
|
|
29
28
|
import {
|
|
30
29
|
rejectUnknownFlags
|
|
31
30
|
} from "../chunk-GMXKITVA.js";
|
|
32
|
-
import "../chunk-DINDL2CF.js";
|
|
33
31
|
import {
|
|
34
32
|
readKeySource
|
|
35
|
-
} from "../chunk-
|
|
36
|
-
import "../chunk-
|
|
33
|
+
} from "../chunk-USQDVBEV.js";
|
|
34
|
+
import "../chunk-HETOKNIL.js";
|
|
37
35
|
import "../chunk-SAF6HGAA.js";
|
|
38
36
|
import {
|
|
39
37
|
UsageError
|
|
@@ -41,10 +39,12 @@ import {
|
|
|
41
39
|
import {
|
|
42
40
|
EXIT
|
|
43
41
|
} from "../chunk-KZERVKTD.js";
|
|
44
|
-
import "../chunk-
|
|
42
|
+
import "../chunk-HU5LSYL2.js";
|
|
45
43
|
import "../chunk-T7E75EKA.js";
|
|
46
|
-
import "../chunk-
|
|
47
|
-
import "../chunk-
|
|
44
|
+
import "../chunk-OSJEMXSR.js";
|
|
45
|
+
import "../chunk-T4QY64OR.js";
|
|
46
|
+
import "../chunk-EA3IELHP.js";
|
|
47
|
+
import "../chunk-HWJW3CPO.js";
|
|
48
48
|
|
|
49
49
|
// src/status.ts
|
|
50
50
|
var keySourceLine = (source) => {
|
|
@@ -2,44 +2,45 @@
|
|
|
2
2
|
import {
|
|
3
3
|
activeHookSource,
|
|
4
4
|
activeIdentity
|
|
5
|
-
} from "../chunk-
|
|
6
|
-
import "../chunk-
|
|
5
|
+
} from "../chunk-JF736N4C.js";
|
|
6
|
+
import "../chunk-J4J45VPZ.js";
|
|
7
7
|
import {
|
|
8
8
|
readHookInput
|
|
9
|
-
} from "../chunk-
|
|
10
|
-
import "../chunk-
|
|
9
|
+
} from "../chunk-ORLJNJEO.js";
|
|
10
|
+
import "../chunk-NFKVRMTM.js";
|
|
11
11
|
import "../chunk-SGZJ5LYH.js";
|
|
12
|
-
import "../chunk-
|
|
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-
|
|
12
|
+
import "../chunk-PCGZXWGQ.js";
|
|
13
|
+
import "../chunk-TFKBFQCE.js";
|
|
14
|
+
import "../chunk-K3QVDAZW.js";
|
|
15
|
+
import "../chunk-NTQSICPJ.js";
|
|
16
|
+
import "../chunk-7XT76LWT.js";
|
|
17
|
+
import "../chunk-EADZPVYW.js";
|
|
18
|
+
import "../chunk-SOCEY746.js";
|
|
19
|
+
import "../chunk-TIWURSLS.js";
|
|
20
|
+
import "../chunk-66H2QQAK.js";
|
|
21
|
+
import "../chunk-2QT3GCU4.js";
|
|
22
22
|
import "../chunk-XHKBHWLX.js";
|
|
23
23
|
import {
|
|
24
24
|
handleStop,
|
|
25
25
|
handleSubagentStop,
|
|
26
26
|
isSubagentStop
|
|
27
|
-
} from "../chunk-
|
|
28
|
-
import "../chunk-
|
|
29
|
-
import "../chunk-
|
|
30
|
-
import "../chunk-
|
|
31
|
-
import "../chunk-
|
|
27
|
+
} from "../chunk-FDHMNT24.js";
|
|
28
|
+
import "../chunk-UYDTFCHW.js";
|
|
29
|
+
import "../chunk-PYCQXCI5.js";
|
|
30
|
+
import "../chunk-UQHUUZ5H.js";
|
|
31
|
+
import "../chunk-DYHXOXUF.js";
|
|
32
32
|
import "../chunk-GMXKITVA.js";
|
|
33
|
-
import "../chunk-
|
|
34
|
-
import "../chunk-
|
|
35
|
-
import "../chunk-EYRGBYZG.js";
|
|
33
|
+
import "../chunk-USQDVBEV.js";
|
|
34
|
+
import "../chunk-HETOKNIL.js";
|
|
36
35
|
import "../chunk-SAF6HGAA.js";
|
|
37
36
|
import "../chunk-7QLSKOSU.js";
|
|
38
37
|
import "../chunk-KZERVKTD.js";
|
|
39
|
-
import "../chunk-
|
|
38
|
+
import "../chunk-HU5LSYL2.js";
|
|
40
39
|
import "../chunk-T7E75EKA.js";
|
|
41
|
-
import "../chunk-
|
|
42
|
-
import "../chunk-
|
|
40
|
+
import "../chunk-OSJEMXSR.js";
|
|
41
|
+
import "../chunk-T4QY64OR.js";
|
|
42
|
+
import "../chunk-EA3IELHP.js";
|
|
43
|
+
import "../chunk-HWJW3CPO.js";
|
|
43
44
|
|
|
44
45
|
// bin/pushary-stop-hook.ts
|
|
45
46
|
var AGENT = activeIdentity(process.argv);
|
|
@@ -2,42 +2,43 @@
|
|
|
2
2
|
import {
|
|
3
3
|
activeHookSource,
|
|
4
4
|
activeIdentity
|
|
5
|
-
} from "../chunk-
|
|
6
|
-
import "../chunk-
|
|
5
|
+
} from "../chunk-JF736N4C.js";
|
|
6
|
+
import "../chunk-J4J45VPZ.js";
|
|
7
7
|
import {
|
|
8
8
|
readHookInput
|
|
9
|
-
} from "../chunk-
|
|
10
|
-
import "../chunk-
|
|
9
|
+
} from "../chunk-ORLJNJEO.js";
|
|
10
|
+
import "../chunk-NFKVRMTM.js";
|
|
11
11
|
import "../chunk-SGZJ5LYH.js";
|
|
12
|
-
import "../chunk-
|
|
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-
|
|
12
|
+
import "../chunk-PCGZXWGQ.js";
|
|
13
|
+
import "../chunk-TFKBFQCE.js";
|
|
14
|
+
import "../chunk-K3QVDAZW.js";
|
|
15
|
+
import "../chunk-NTQSICPJ.js";
|
|
16
|
+
import "../chunk-7XT76LWT.js";
|
|
17
|
+
import "../chunk-EADZPVYW.js";
|
|
18
|
+
import "../chunk-SOCEY746.js";
|
|
19
|
+
import "../chunk-TIWURSLS.js";
|
|
20
|
+
import "../chunk-66H2QQAK.js";
|
|
21
|
+
import "../chunk-2QT3GCU4.js";
|
|
22
22
|
import "../chunk-XHKBHWLX.js";
|
|
23
23
|
import {
|
|
24
24
|
handleStopFailure
|
|
25
|
-
} from "../chunk-
|
|
26
|
-
import "../chunk-
|
|
27
|
-
import "../chunk-
|
|
28
|
-
import "../chunk-
|
|
29
|
-
import "../chunk-
|
|
25
|
+
} from "../chunk-FDHMNT24.js";
|
|
26
|
+
import "../chunk-UYDTFCHW.js";
|
|
27
|
+
import "../chunk-PYCQXCI5.js";
|
|
28
|
+
import "../chunk-UQHUUZ5H.js";
|
|
29
|
+
import "../chunk-DYHXOXUF.js";
|
|
30
30
|
import "../chunk-GMXKITVA.js";
|
|
31
|
-
import "../chunk-
|
|
32
|
-
import "../chunk-
|
|
33
|
-
import "../chunk-EYRGBYZG.js";
|
|
31
|
+
import "../chunk-USQDVBEV.js";
|
|
32
|
+
import "../chunk-HETOKNIL.js";
|
|
34
33
|
import "../chunk-SAF6HGAA.js";
|
|
35
34
|
import "../chunk-7QLSKOSU.js";
|
|
36
35
|
import "../chunk-KZERVKTD.js";
|
|
37
|
-
import "../chunk-
|
|
36
|
+
import "../chunk-HU5LSYL2.js";
|
|
38
37
|
import "../chunk-T7E75EKA.js";
|
|
39
|
-
import "../chunk-
|
|
40
|
-
import "../chunk-
|
|
38
|
+
import "../chunk-OSJEMXSR.js";
|
|
39
|
+
import "../chunk-T4QY64OR.js";
|
|
40
|
+
import "../chunk-EA3IELHP.js";
|
|
41
|
+
import "../chunk-HWJW3CPO.js";
|
|
41
42
|
|
|
42
43
|
// bin/pushary-stopfailure-hook.ts
|
|
43
44
|
var AGENT = activeIdentity(process.argv);
|
|
@@ -4,12 +4,10 @@ import {
|
|
|
4
4
|
} from "../chunk-5RUIFDTP.js";
|
|
5
5
|
import {
|
|
6
6
|
exitOnHelpFlag
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-FAH3D74E.js";
|
|
7
|
+
} from "../chunk-P4BNYJ5Q.js";
|
|
9
8
|
import {
|
|
10
9
|
rejectUnknownFlags
|
|
11
10
|
} from "../chunk-GMXKITVA.js";
|
|
12
|
-
import "../chunk-DINDL2CF.js";
|
|
13
11
|
import {
|
|
14
12
|
UsageError
|
|
15
13
|
} from "../chunk-7QLSKOSU.js";
|
|
@@ -19,7 +17,9 @@ import {
|
|
|
19
17
|
import {
|
|
20
18
|
getApiKey,
|
|
21
19
|
getBaseUrl
|
|
22
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-OSJEMXSR.js";
|
|
21
|
+
import "../chunk-EA3IELHP.js";
|
|
22
|
+
import "../chunk-HWJW3CPO.js";
|
|
23
23
|
|
|
24
24
|
// bin/pushary-suggestions.ts
|
|
25
25
|
exitOnHelpFlag("suggestions");
|