@pushary/agent-hooks 1.9.7 → 1.9.9
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 +18 -0
- package/README.md +3 -3
- package/data/cursor-plugin/README.md +3 -7
- package/data/vscode-plugin/README.md +1 -1
- package/dist/bin/pushary-bell-hook.js +22 -24
- package/dist/bin/pushary-bell.js +13 -13
- package/dist/bin/pushary-claude.js +28 -30
- package/dist/bin/pushary-clean.js +113 -94
- package/dist/bin/pushary-codex-bridge.js +20 -20
- package/dist/bin/pushary-codex-hook.js +36 -38
- package/dist/bin/pushary-codex.js +13 -13
- package/dist/bin/pushary-connect.js +48 -22
- package/dist/bin/pushary-cowork.js +5 -5
- package/dist/bin/pushary-daemon.js +50 -40
- package/dist/bin/pushary-disconnect.js +188 -56
- package/dist/bin/pushary-doctor.js +105 -85
- package/dist/bin/pushary-elicitation-hook.js +25 -27
- package/dist/bin/pushary-gemini-bridge.js +13 -13
- package/dist/bin/pushary-gemini-hook.js +31 -33
- package/dist/bin/pushary-hook.js +36 -39
- package/dist/bin/pushary-login.js +12 -12
- package/dist/bin/pushary-logout.js +105 -42
- package/dist/bin/pushary-mcp.js +9 -9
- package/dist/bin/pushary-mode.js +28 -31
- package/dist/bin/pushary-notification-hook.js +29 -32
- package/dist/bin/pushary-opencode-hook.js +30 -32
- package/dist/bin/pushary-permission-denied-hook.js +30 -33
- package/dist/bin/pushary-permission-hook.js +33 -36
- package/dist/bin/pushary-post-hook.js +30 -33
- package/dist/bin/pushary-prompt-hook.js +29 -32
- package/dist/bin/pushary-session-end-hook.js +29 -32
- package/dist/bin/pushary-session-start-hook.js +33 -36
- package/dist/bin/pushary-setup.js +168 -160
- package/dist/bin/pushary-stats.js +5 -5
- package/dist/bin/pushary-status.js +65 -19
- package/dist/bin/pushary-stop-hook.js +29 -32
- package/dist/bin/pushary-stopfailure-hook.js +29 -32
- package/dist/bin/pushary-suggestions.js +19 -21
- package/dist/bin/pushary-transcript-register.js +18 -20
- package/dist/bin/pushary-transcripts.js +7 -7
- package/dist/bin/pushary-upgrade.js +50 -26
- package/dist/bin/pushary-wait.js +23 -19
- package/dist/bin/pushary.js +15 -14
- package/dist/{chunk-4FK6RZVJ.js → chunk-462EQA6K.js} +1 -1
- package/dist/{chunk-STQRUH3S.js → chunk-5DCDQ5VW.js} +59 -15
- package/dist/{chunk-JXISQ7DT.js → chunk-5N5L6DNN.js} +3 -3
- package/dist/{chunk-QR6VE5ME.js → chunk-5RGA636G.js} +79 -17
- package/dist/{chunk-L76HTPU6.js → chunk-6AYSKVLL.js} +3 -3
- package/dist/{chunk-NIBFSARF.js → chunk-6EBGOHDJ.js} +33 -13
- package/dist/{chunk-QQ4HBXZC.js → chunk-6W5M3MSE.js} +84 -673
- package/dist/{chunk-R3YW55MY.js → chunk-AI7RMFVV.js} +29 -26
- package/dist/{chunk-AUUXS44H.js → chunk-APP43AW7.js} +1 -1
- package/dist/{chunk-RQGODFQN.js → chunk-AZOKPWVI.js} +1 -1
- package/dist/{chunk-3GNUXXDZ.js → chunk-B5NMSP3V.js} +2 -2
- package/dist/{chunk-4D2AYNSE.js → chunk-BNSKVIAW.js} +2 -2
- package/dist/chunk-BYLKCZ2G.js +367 -0
- package/dist/{chunk-X5NXPCIC.js → chunk-BZLHTMT6.js} +89 -7
- package/dist/{chunk-BTQGAXZ3.js → chunk-COQ64C4F.js} +10 -10
- package/dist/{chunk-N4EUSDKX.js → chunk-DCCSULXK.js} +14 -14
- package/dist/{chunk-JWKBDSPF.js → chunk-DP3WX7FW.js} +2 -2
- package/dist/chunk-E5HOHIUV.js +52 -0
- package/dist/{chunk-GU3EJCVV.js → chunk-EA5NWDK7.js} +4 -0
- package/dist/chunk-EIAEUG7G.js +46 -0
- package/dist/{chunk-EB4XGVBG.js → chunk-EUW7JL2K.js} +0 -32
- package/dist/{chunk-T7Y5EADL.js → chunk-F7R3SZ4Q.js} +2 -2
- package/dist/{chunk-H37L7TT3.js → chunk-G7RIDXAT.js} +2 -2
- package/dist/{chunk-W2KI5KPD.js → chunk-H5T27W7M.js} +2 -2
- package/dist/chunk-HBWYMRR5.js +94 -0
- package/dist/{chunk-CBQACHKY.js → chunk-IIVZZMSO.js} +1 -1
- package/dist/{chunk-Z6HPS67T.js → chunk-IRHABAQT.js} +1 -1
- package/dist/{chunk-QTO6HEZD.js → chunk-K545B734.js} +2 -2
- package/dist/{chunk-KYO45G5L.js → chunk-KOWFRUIT.js} +1 -1
- package/dist/{chunk-QFEM7R6T.js → chunk-KQFTBQ66.js} +11 -11
- package/dist/chunk-LENBKYRB.js +50 -0
- package/dist/{chunk-JCWZ23MJ.js → chunk-M3STIAGU.js} +3 -3
- package/dist/{chunk-6DJTDHBI.js → chunk-MD4SVNT6.js} +1 -1
- package/dist/{chunk-7264S5HZ.js → chunk-MLGIVVSG.js} +1 -1
- package/dist/{chunk-H7MMU64M.js → chunk-NGKUXZID.js} +2 -2
- package/dist/{chunk-JWQZSYCK.js → chunk-NUVGDBZC.js} +1 -1
- package/dist/{chunk-AQ55ZSSS.js → chunk-OAYWO5NP.js} +1 -1
- package/dist/chunk-Q6C6ILUS.js +49 -0
- package/dist/{chunk-MBK7N46B.js → chunk-QIOIO7VN.js} +6 -6
- package/dist/{chunk-KFKL3FHS.js → chunk-QRXPWW3M.js} +4 -3
- package/dist/{chunk-7OIWWZAD.js → chunk-QTIUJZRX.js} +3 -3
- package/dist/{chunk-XWAYAO3V.js → chunk-R5RIVOPL.js} +2 -2
- package/dist/{chunk-ADSQDYYG.js → chunk-REU2VQPH.js} +54 -5
- package/dist/{chunk-GKI6LFAV.js → chunk-RQ32ADJP.js} +2 -2
- package/dist/{chunk-VXRXFU6Q.js → chunk-SZ4Q6ZVS.js} +14 -7
- package/dist/{chunk-KT5E2RLS.js → chunk-T6ZN4TEF.js} +1 -1
- package/dist/{chunk-UFVGSEWH.js → chunk-TO3PS646.js} +2 -2
- package/dist/chunk-UAP5DS6P.js +599 -0
- package/dist/{chunk-MZPXVH4A.js → chunk-UF6RBP5V.js} +204 -28
- package/dist/{chunk-AVNKVF7N.js → chunk-UPIZSCYD.js} +4 -4
- package/dist/{chunk-3PVDOCFI.js → chunk-VHPFNLRS.js} +5 -5
- package/dist/{chunk-HPRZJKRO.js → chunk-VIIHC42X.js} +1 -1
- package/dist/{chunk-D6S5EKXA.js → chunk-WRPYCIV2.js} +8 -12
- package/dist/{chunk-ZUTU43FT.js → chunk-Z23ZBYDW.js} +6 -4
- package/dist/{chunk-SBLPHUEB.js → chunk-ZGADIZDS.js} +8 -6
- package/dist/{global-upgrade-E2HUEB4B.js → global-upgrade-H272QOGD.js} +6 -6
- package/dist/{paths-QVTEGNZV.js → paths-HMVOTFUN.js} +2 -2
- package/dist/reapply-Q5NHDTVU.js +55 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +19 -20
- package/dist/{upgrade-lock-JCIDZMHF.js → upgrade-lock-L3GHFIRW.js} +3 -3
- package/package.json +1 -1
- package/dist/chunk-4YO4T5FV.js +0 -149
- package/dist/chunk-ANEAA37E.js +0 -197
- package/dist/chunk-MNWRUGMH.js +0 -86
- package/dist/chunk-RQSOEB4S.js +0 -44
- package/dist/chunk-SD3272LS.js +0 -143
- package/dist/reapply-5QVKM6LA.js +0 -38
|
@@ -1,53 +1,51 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
readHookInput
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-R5RIVOPL.js";
|
|
5
5
|
import {
|
|
6
6
|
announceSubscriptionRequired,
|
|
7
7
|
isDeferAnswer
|
|
8
8
|
} from "../chunk-5OP5MQI7.js";
|
|
9
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-COQ64C4F.js";
|
|
10
10
|
import "../chunk-SGZJ5LYH.js";
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-VXRXFU6Q.js";
|
|
16
|
-
import "../chunk-JCWZ23MJ.js";
|
|
17
|
-
import "../chunk-7264S5HZ.js";
|
|
18
|
-
import "../chunk-AUUXS44H.js";
|
|
19
|
-
import "../chunk-4FK6RZVJ.js";
|
|
20
|
-
import "../chunk-HPRZJKRO.js";
|
|
11
|
+
import "../chunk-SZ4Q6ZVS.js";
|
|
12
|
+
import "../chunk-APP43AW7.js";
|
|
13
|
+
import "../chunk-462EQA6K.js";
|
|
14
|
+
import "../chunk-VIIHC42X.js";
|
|
21
15
|
import "../chunk-XHKBHWLX.js";
|
|
16
|
+
import "../chunk-BYLKCZ2G.js";
|
|
17
|
+
import "../chunk-M3STIAGU.js";
|
|
18
|
+
import "../chunk-ZGADIZDS.js";
|
|
19
|
+
import "../chunk-MLGIVVSG.js";
|
|
20
|
+
import "../chunk-GMXKITVA.js";
|
|
22
21
|
import "../chunk-6ICPEJY5.js";
|
|
22
|
+
import "../chunk-REU2VQPH.js";
|
|
23
23
|
import "../chunk-N6IOSZOE.js";
|
|
24
|
-
import "../chunk-
|
|
24
|
+
import "../chunk-MD4SVNT6.js";
|
|
25
25
|
import {
|
|
26
26
|
askUser,
|
|
27
27
|
isDecisionStopped,
|
|
28
28
|
waitForQuestion
|
|
29
|
-
} from "../chunk-
|
|
30
|
-
import "../chunk-AVNKVF7N.js";
|
|
31
|
-
import "../chunk-POFBE6ZY.js";
|
|
32
|
-
import "../chunk-GMXKITVA.js";
|
|
33
|
-
import "../chunk-ADSQDYYG.js";
|
|
29
|
+
} from "../chunk-WRPYCIV2.js";
|
|
34
30
|
import {
|
|
35
31
|
SubscriptionRequiredError
|
|
36
|
-
} from "../chunk-
|
|
37
|
-
import "../chunk-
|
|
38
|
-
import "../chunk-
|
|
32
|
+
} from "../chunk-6AYSKVLL.js";
|
|
33
|
+
import "../chunk-QRXPWW3M.js";
|
|
34
|
+
import "../chunk-UPIZSCYD.js";
|
|
35
|
+
import "../chunk-POFBE6ZY.js";
|
|
36
|
+
import "../chunk-5N5L6DNN.js";
|
|
39
37
|
import {
|
|
40
38
|
getMachineId
|
|
41
|
-
} from "../chunk-
|
|
39
|
+
} from "../chunk-KOWFRUIT.js";
|
|
42
40
|
import "../chunk-7QLSKOSU.js";
|
|
43
41
|
import "../chunk-KZERVKTD.js";
|
|
44
|
-
import "../chunk-
|
|
45
|
-
import "../chunk-
|
|
42
|
+
import "../chunk-BNSKVIAW.js";
|
|
43
|
+
import "../chunk-Z23ZBYDW.js";
|
|
46
44
|
import "../chunk-T7E75EKA.js";
|
|
47
45
|
import {
|
|
48
46
|
getApiKey
|
|
49
|
-
} from "../chunk-
|
|
50
|
-
import "../chunk-
|
|
47
|
+
} from "../chunk-IRHABAQT.js";
|
|
48
|
+
import "../chunk-5DCDQ5VW.js";
|
|
51
49
|
import {
|
|
52
50
|
ELICITATION_ANSWERABLE_MODE,
|
|
53
51
|
effectiveWaitSeconds,
|
|
@@ -58,7 +56,7 @@ import {
|
|
|
58
56
|
planElicitationAsk,
|
|
59
57
|
readElicitationFields,
|
|
60
58
|
renderElicitationOutput
|
|
61
|
-
} from "../chunk-
|
|
59
|
+
} from "../chunk-5RGA636G.js";
|
|
62
60
|
|
|
63
61
|
// bin/pushary-elicitation-hook.ts
|
|
64
62
|
import { basename } from "path";
|
|
@@ -5,10 +5,10 @@ import {
|
|
|
5
5
|
postLiveSession,
|
|
6
6
|
postLiveSessionUntilAccepted,
|
|
7
7
|
startLiveSessionHeartbeat
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-RQ32ADJP.js";
|
|
9
9
|
import {
|
|
10
10
|
resolveProviderBinary
|
|
11
|
-
} from "../chunk-
|
|
11
|
+
} from "../chunk-F7R3SZ4Q.js";
|
|
12
12
|
import "../chunk-RIVNNBEK.js";
|
|
13
13
|
import {
|
|
14
14
|
SESSION_IDLE_TIMEOUT_MS,
|
|
@@ -16,29 +16,29 @@ import {
|
|
|
16
16
|
idleDeadlinePassed,
|
|
17
17
|
startProcessOwnership,
|
|
18
18
|
withSpawnProcessOwnership
|
|
19
|
-
} from "../chunk-
|
|
20
|
-
import "../chunk-
|
|
21
|
-
import "../chunk-
|
|
19
|
+
} from "../chunk-NUVGDBZC.js";
|
|
20
|
+
import "../chunk-APP43AW7.js";
|
|
21
|
+
import "../chunk-462EQA6K.js";
|
|
22
22
|
import {
|
|
23
23
|
transcriptsEnabled
|
|
24
|
-
} from "../chunk-
|
|
24
|
+
} from "../chunk-VIIHC42X.js";
|
|
25
25
|
import {
|
|
26
26
|
spawnClaude
|
|
27
27
|
} from "../chunk-XHKBHWLX.js";
|
|
28
28
|
import "../chunk-6ICPEJY5.js";
|
|
29
|
-
import "../chunk-
|
|
29
|
+
import "../chunk-REU2VQPH.js";
|
|
30
30
|
import {
|
|
31
31
|
getMachineId
|
|
32
|
-
} from "../chunk-
|
|
33
|
-
import "../chunk-
|
|
34
|
-
import "../chunk-
|
|
32
|
+
} from "../chunk-KOWFRUIT.js";
|
|
33
|
+
import "../chunk-BNSKVIAW.js";
|
|
34
|
+
import "../chunk-Z23ZBYDW.js";
|
|
35
35
|
import "../chunk-T7E75EKA.js";
|
|
36
36
|
import {
|
|
37
37
|
getApiKey,
|
|
38
38
|
getBaseUrl
|
|
39
|
-
} from "../chunk-
|
|
40
|
-
import "../chunk-
|
|
41
|
-
import "../chunk-
|
|
39
|
+
} from "../chunk-IRHABAQT.js";
|
|
40
|
+
import "../chunk-5DCDQ5VW.js";
|
|
41
|
+
import "../chunk-5RGA636G.js";
|
|
42
42
|
|
|
43
43
|
// bin/pushary-gemini-bridge.ts
|
|
44
44
|
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-K545B734.js";
|
|
5
5
|
import {
|
|
6
6
|
isGatingMoment,
|
|
7
7
|
recordKeylessMoment
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-IIVZZMSO.js";
|
|
9
9
|
import {
|
|
10
10
|
readHookInput
|
|
11
|
-
} from "../chunk-
|
|
11
|
+
} from "../chunk-R5RIVOPL.js";
|
|
12
12
|
import {
|
|
13
13
|
announceSubscriptionRequired,
|
|
14
14
|
denyReasonFrom,
|
|
15
15
|
isDeferAnswer
|
|
16
16
|
} from "../chunk-5OP5MQI7.js";
|
|
17
|
-
import "../chunk-
|
|
17
|
+
import "../chunk-COQ64C4F.js";
|
|
18
18
|
import "../chunk-SGZJ5LYH.js";
|
|
19
|
-
import "../chunk-
|
|
20
|
-
import "../chunk-
|
|
21
|
-
import "../chunk-
|
|
22
|
-
import "../chunk-
|
|
23
|
-
import "../chunk-VXRXFU6Q.js";
|
|
24
|
-
import "../chunk-JCWZ23MJ.js";
|
|
25
|
-
import "../chunk-7264S5HZ.js";
|
|
26
|
-
import "../chunk-AUUXS44H.js";
|
|
27
|
-
import "../chunk-4FK6RZVJ.js";
|
|
28
|
-
import "../chunk-HPRZJKRO.js";
|
|
19
|
+
import "../chunk-SZ4Q6ZVS.js";
|
|
20
|
+
import "../chunk-APP43AW7.js";
|
|
21
|
+
import "../chunk-462EQA6K.js";
|
|
22
|
+
import "../chunk-VIIHC42X.js";
|
|
29
23
|
import "../chunk-XHKBHWLX.js";
|
|
24
|
+
import "../chunk-BYLKCZ2G.js";
|
|
25
|
+
import "../chunk-M3STIAGU.js";
|
|
26
|
+
import "../chunk-ZGADIZDS.js";
|
|
27
|
+
import "../chunk-MLGIVVSG.js";
|
|
28
|
+
import "../chunk-GMXKITVA.js";
|
|
30
29
|
import "../chunk-6ICPEJY5.js";
|
|
30
|
+
import "../chunk-REU2VQPH.js";
|
|
31
31
|
import {
|
|
32
32
|
UNNAMED_ACTION,
|
|
33
33
|
deriveActionBody,
|
|
@@ -46,53 +46,51 @@ import {
|
|
|
46
46
|
repoKeyFor,
|
|
47
47
|
reportEvent,
|
|
48
48
|
scopePathFor
|
|
49
|
-
} from "../chunk-
|
|
49
|
+
} from "../chunk-KQFTBQ66.js";
|
|
50
50
|
import {
|
|
51
51
|
DEFAULT_SESSION
|
|
52
52
|
} from "../chunk-N6IOSZOE.js";
|
|
53
|
-
import "../chunk-
|
|
53
|
+
import "../chunk-MD4SVNT6.js";
|
|
54
54
|
import {
|
|
55
|
-
DECISION_STOP_REASON,
|
|
56
|
-
UNVERIFIABLE_APPROVAL_REASON,
|
|
57
55
|
askUser,
|
|
58
56
|
isDecisionStopped,
|
|
59
57
|
isLocalQuestionHandoff,
|
|
60
58
|
sendNotification,
|
|
61
59
|
waitForQuestion
|
|
62
|
-
} from "../chunk-
|
|
60
|
+
} from "../chunk-WRPYCIV2.js";
|
|
61
|
+
import {
|
|
62
|
+
SubscriptionRequiredError
|
|
63
|
+
} from "../chunk-6AYSKVLL.js";
|
|
64
|
+
import "../chunk-QRXPWW3M.js";
|
|
63
65
|
import {
|
|
64
66
|
exitAfterClientReports
|
|
65
|
-
} from "../chunk-
|
|
67
|
+
} from "../chunk-UPIZSCYD.js";
|
|
66
68
|
import "../chunk-POFBE6ZY.js";
|
|
67
|
-
import "../chunk-
|
|
68
|
-
import "../chunk-ADSQDYYG.js";
|
|
69
|
-
import {
|
|
70
|
-
SubscriptionRequiredError
|
|
71
|
-
} from "../chunk-L76HTPU6.js";
|
|
72
|
-
import "../chunk-KFKL3FHS.js";
|
|
73
|
-
import "../chunk-JXISQ7DT.js";
|
|
69
|
+
import "../chunk-5N5L6DNN.js";
|
|
74
70
|
import {
|
|
75
71
|
getMachineId
|
|
76
|
-
} from "../chunk-
|
|
72
|
+
} from "../chunk-KOWFRUIT.js";
|
|
77
73
|
import "../chunk-7QLSKOSU.js";
|
|
78
74
|
import {
|
|
79
75
|
EXIT
|
|
80
76
|
} from "../chunk-KZERVKTD.js";
|
|
81
|
-
import "../chunk-
|
|
82
|
-
import "../chunk-
|
|
77
|
+
import "../chunk-BNSKVIAW.js";
|
|
78
|
+
import "../chunk-Z23ZBYDW.js";
|
|
83
79
|
import "../chunk-T7E75EKA.js";
|
|
84
80
|
import {
|
|
85
81
|
getApiKey
|
|
86
|
-
} from "../chunk-
|
|
87
|
-
import "../chunk-
|
|
82
|
+
} from "../chunk-IRHABAQT.js";
|
|
83
|
+
import "../chunk-5DCDQ5VW.js";
|
|
88
84
|
import {
|
|
85
|
+
DECISION_STOP_REASON,
|
|
89
86
|
KILL_REASON,
|
|
87
|
+
UNVERIFIABLE_APPROVAL_REASON,
|
|
90
88
|
effectiveWaitSeconds,
|
|
91
89
|
gateOutputFor,
|
|
92
90
|
hookWaitClamped,
|
|
93
91
|
hookWaitDeadline,
|
|
94
92
|
resolveGate
|
|
95
|
-
} from "../chunk-
|
|
93
|
+
} from "../chunk-5RGA636G.js";
|
|
96
94
|
|
|
97
95
|
// bin/pushary-gemini-hook.ts
|
|
98
96
|
import { basename } from "path";
|
package/dist/bin/pushary-hook.js
CHANGED
|
@@ -1,64 +1,61 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
handlePreToolUse
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
normalizeToolCall,
|
|
8
|
-
profileFromArgv
|
|
9
|
-
} from "../chunk-MZPXVH4A.js";
|
|
10
|
-
import "../chunk-ANEAA37E.js";
|
|
11
|
-
import "../chunk-3GNUXXDZ.js";
|
|
12
|
-
import "../chunk-CBQACHKY.js";
|
|
4
|
+
} from "../chunk-AI7RMFVV.js";
|
|
5
|
+
import "../chunk-B5NMSP3V.js";
|
|
6
|
+
import "../chunk-IIVZZMSO.js";
|
|
13
7
|
import {
|
|
14
8
|
readToolHookInput
|
|
15
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-R5RIVOPL.js";
|
|
16
10
|
import "../chunk-5OP5MQI7.js";
|
|
17
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-COQ64C4F.js";
|
|
18
12
|
import "../chunk-SGZJ5LYH.js";
|
|
19
|
-
import "../chunk-
|
|
20
|
-
import "../chunk-
|
|
21
|
-
import "../chunk-
|
|
22
|
-
import "../chunk-
|
|
23
|
-
import "../chunk-VXRXFU6Q.js";
|
|
24
|
-
import "../chunk-JCWZ23MJ.js";
|
|
25
|
-
import "../chunk-7264S5HZ.js";
|
|
26
|
-
import "../chunk-AUUXS44H.js";
|
|
27
|
-
import "../chunk-4FK6RZVJ.js";
|
|
28
|
-
import "../chunk-HPRZJKRO.js";
|
|
13
|
+
import "../chunk-SZ4Q6ZVS.js";
|
|
14
|
+
import "../chunk-APP43AW7.js";
|
|
15
|
+
import "../chunk-462EQA6K.js";
|
|
16
|
+
import "../chunk-VIIHC42X.js";
|
|
29
17
|
import "../chunk-XHKBHWLX.js";
|
|
18
|
+
import {
|
|
19
|
+
activeHookSource,
|
|
20
|
+
normalizeToolCall,
|
|
21
|
+
profileFromArgv
|
|
22
|
+
} from "../chunk-UF6RBP5V.js";
|
|
23
|
+
import {
|
|
24
|
+
exitOnHelpFlag
|
|
25
|
+
} from "../chunk-TO3PS646.js";
|
|
26
|
+
import "../chunk-BYLKCZ2G.js";
|
|
27
|
+
import "../chunk-M3STIAGU.js";
|
|
28
|
+
import "../chunk-ZGADIZDS.js";
|
|
29
|
+
import "../chunk-MLGIVVSG.js";
|
|
30
|
+
import "../chunk-GMXKITVA.js";
|
|
30
31
|
import "../chunk-6ICPEJY5.js";
|
|
32
|
+
import "../chunk-REU2VQPH.js";
|
|
31
33
|
import {
|
|
32
34
|
canonicalGateInputs
|
|
33
|
-
} from "../chunk-
|
|
35
|
+
} from "../chunk-KQFTBQ66.js";
|
|
34
36
|
import "../chunk-N6IOSZOE.js";
|
|
35
|
-
import "../chunk-
|
|
36
|
-
import "../chunk-
|
|
37
|
+
import "../chunk-MD4SVNT6.js";
|
|
38
|
+
import "../chunk-WRPYCIV2.js";
|
|
39
|
+
import "../chunk-6AYSKVLL.js";
|
|
40
|
+
import "../chunk-QRXPWW3M.js";
|
|
37
41
|
import {
|
|
38
42
|
exitAfterClientReports
|
|
39
|
-
} from "../chunk-
|
|
43
|
+
} from "../chunk-UPIZSCYD.js";
|
|
40
44
|
import "../chunk-POFBE6ZY.js";
|
|
41
|
-
import
|
|
42
|
-
|
|
43
|
-
} from "../chunk-UFVGSEWH.js";
|
|
44
|
-
import "../chunk-GMXKITVA.js";
|
|
45
|
-
import "../chunk-ADSQDYYG.js";
|
|
46
|
-
import "../chunk-L76HTPU6.js";
|
|
47
|
-
import "../chunk-KFKL3FHS.js";
|
|
48
|
-
import "../chunk-JXISQ7DT.js";
|
|
49
|
-
import "../chunk-KYO45G5L.js";
|
|
45
|
+
import "../chunk-5N5L6DNN.js";
|
|
46
|
+
import "../chunk-KOWFRUIT.js";
|
|
50
47
|
import "../chunk-7QLSKOSU.js";
|
|
51
48
|
import {
|
|
52
49
|
EXIT
|
|
53
50
|
} from "../chunk-KZERVKTD.js";
|
|
54
|
-
import "../chunk-
|
|
55
|
-
import "../chunk-
|
|
51
|
+
import "../chunk-BNSKVIAW.js";
|
|
52
|
+
import "../chunk-Z23ZBYDW.js";
|
|
56
53
|
import "../chunk-T7E75EKA.js";
|
|
57
|
-
import "../chunk-
|
|
58
|
-
import "../chunk-
|
|
54
|
+
import "../chunk-IRHABAQT.js";
|
|
55
|
+
import "../chunk-5DCDQ5VW.js";
|
|
59
56
|
import {
|
|
60
57
|
renderPreToolUseVerdict
|
|
61
|
-
} from "../chunk-
|
|
58
|
+
} from "../chunk-5RGA636G.js";
|
|
62
59
|
|
|
63
60
|
// bin/pushary-hook.ts
|
|
64
61
|
exitOnHelpFlag("hook");
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
runBrowserLogin
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-OAYWO5NP.js";
|
|
5
5
|
import "../chunk-PUZZELE6.js";
|
|
6
6
|
import {
|
|
7
7
|
writeStdoutFully
|
|
8
8
|
} from "../chunk-EO23EUOK.js";
|
|
9
9
|
import {
|
|
10
10
|
recoverDaemonAfterLogin
|
|
11
|
-
} from "../chunk-
|
|
11
|
+
} from "../chunk-SZ4Q6ZVS.js";
|
|
12
12
|
import "../chunk-XHKBHWLX.js";
|
|
13
13
|
import "../chunk-3EGEA4KH.js";
|
|
14
14
|
import {
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
} from "../chunk-U4TMAANR.js";
|
|
17
17
|
import {
|
|
18
18
|
exitOnHelpFlag
|
|
19
|
-
} from "../chunk-
|
|
19
|
+
} from "../chunk-TO3PS646.js";
|
|
20
20
|
import {
|
|
21
21
|
parseFlags
|
|
22
22
|
} from "../chunk-GMXKITVA.js";
|
|
@@ -25,28 +25,28 @@ import {
|
|
|
25
25
|
readControlMode,
|
|
26
26
|
readKeySource,
|
|
27
27
|
writeKey
|
|
28
|
-
} from "../chunk-
|
|
28
|
+
} from "../chunk-REU2VQPH.js";
|
|
29
29
|
import {
|
|
30
30
|
checkApiKey,
|
|
31
31
|
describeKeyCheck
|
|
32
|
-
} from "../chunk-
|
|
33
|
-
import "../chunk-
|
|
34
|
-
import "../chunk-
|
|
32
|
+
} from "../chunk-QRXPWW3M.js";
|
|
33
|
+
import "../chunk-5N5L6DNN.js";
|
|
34
|
+
import "../chunk-KOWFRUIT.js";
|
|
35
35
|
import {
|
|
36
36
|
UsageError
|
|
37
37
|
} from "../chunk-7QLSKOSU.js";
|
|
38
38
|
import {
|
|
39
39
|
EXIT
|
|
40
40
|
} from "../chunk-KZERVKTD.js";
|
|
41
|
-
import "../chunk-
|
|
42
|
-
import "../chunk-
|
|
41
|
+
import "../chunk-BNSKVIAW.js";
|
|
42
|
+
import "../chunk-Z23ZBYDW.js";
|
|
43
43
|
import "../chunk-T7E75EKA.js";
|
|
44
|
-
import "../chunk-
|
|
45
|
-
import "../chunk-
|
|
44
|
+
import "../chunk-IRHABAQT.js";
|
|
45
|
+
import "../chunk-5DCDQ5VW.js";
|
|
46
46
|
import {
|
|
47
47
|
getPackageVersion,
|
|
48
48
|
isValidApiKey
|
|
49
|
-
} from "../chunk-
|
|
49
|
+
} from "../chunk-5RGA636G.js";
|
|
50
50
|
|
|
51
51
|
// bin/pushary-login.ts
|
|
52
52
|
exitOnHelpFlag("login");
|
|
@@ -4,41 +4,103 @@ import {
|
|
|
4
4
|
} from "../chunk-U4TMAANR.js";
|
|
5
5
|
import {
|
|
6
6
|
exitOnHelpFlag
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-TO3PS646.js";
|
|
8
8
|
import {
|
|
9
9
|
parseFlags
|
|
10
10
|
} from "../chunk-GMXKITVA.js";
|
|
11
11
|
import {
|
|
12
12
|
clearKey,
|
|
13
13
|
readKeySource
|
|
14
|
-
} from "../chunk-
|
|
14
|
+
} from "../chunk-REU2VQPH.js";
|
|
15
|
+
import {
|
|
16
|
+
checkApiKey
|
|
17
|
+
} from "../chunk-QRXPWW3M.js";
|
|
18
|
+
import "../chunk-5N5L6DNN.js";
|
|
19
|
+
import "../chunk-KOWFRUIT.js";
|
|
15
20
|
import {
|
|
16
21
|
UsageError
|
|
17
22
|
} from "../chunk-7QLSKOSU.js";
|
|
18
23
|
import {
|
|
19
24
|
EXIT
|
|
20
25
|
} from "../chunk-KZERVKTD.js";
|
|
21
|
-
import "../chunk-
|
|
26
|
+
import "../chunk-BNSKVIAW.js";
|
|
22
27
|
import {
|
|
23
28
|
claudeJson,
|
|
24
29
|
codexConfigToml,
|
|
25
30
|
cursorUserMcp,
|
|
26
31
|
geminiSettings
|
|
27
|
-
} from "../chunk-
|
|
32
|
+
} from "../chunk-Z23ZBYDW.js";
|
|
28
33
|
import "../chunk-T7E75EKA.js";
|
|
29
34
|
import {
|
|
30
35
|
getBaseUrl
|
|
31
|
-
} from "../chunk-
|
|
32
|
-
import
|
|
33
|
-
|
|
36
|
+
} from "../chunk-IRHABAQT.js";
|
|
37
|
+
import {
|
|
38
|
+
isInvocationOf
|
|
39
|
+
} from "../chunk-5DCDQ5VW.js";
|
|
40
|
+
import "../chunk-5RGA636G.js";
|
|
34
41
|
|
|
35
42
|
// bin/pushary-logout.ts
|
|
36
43
|
import { existsSync } from "fs";
|
|
37
|
-
|
|
44
|
+
|
|
45
|
+
// src/key-revocation.ts
|
|
46
|
+
var SELF_REVOKE_PATH = "/api/v1/server/keys/self/revoke";
|
|
47
|
+
var DEVICE_KEY_PATH = "/api/agent/device-key";
|
|
48
|
+
var FULL_ACCESS_ONLY_STATUS = 403;
|
|
49
|
+
var REVOKE_TIMEOUT_MS = 1e4;
|
|
50
|
+
var readRevokedCount = async (response) => {
|
|
51
|
+
try {
|
|
52
|
+
const body = await response.json();
|
|
53
|
+
const revoked = typeof body === "object" && body !== null && "revoked" in body ? body.revoked : void 0;
|
|
54
|
+
return typeof revoked === "number" && Number.isInteger(revoked) && revoked >= 0 ? revoked : null;
|
|
55
|
+
} catch {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
var revokeAgentKey = async (apiKey, baseUrl, fetchImpl) => {
|
|
60
|
+
const response = await fetchImpl(`${baseUrl}${DEVICE_KEY_PATH}`, {
|
|
61
|
+
method: "DELETE",
|
|
62
|
+
headers: { Authorization: `Bearer ${apiKey}` },
|
|
63
|
+
signal: AbortSignal.timeout(REVOKE_TIMEOUT_MS)
|
|
64
|
+
});
|
|
65
|
+
if (!response.ok) return { kind: "refused", status: response.status };
|
|
66
|
+
const revoked = await readRevokedCount(response);
|
|
67
|
+
if (revoked === null) return { kind: "refused", status: response.status };
|
|
68
|
+
return revoked > 0 ? { kind: "revoked" } : { kind: "not_accepted" };
|
|
69
|
+
};
|
|
70
|
+
var revokeOwnKey = async (apiKey, baseUrl, fetchImpl = fetch) => {
|
|
71
|
+
try {
|
|
72
|
+
const response = await fetchImpl(`${baseUrl}${SELF_REVOKE_PATH}`, {
|
|
73
|
+
method: "POST",
|
|
74
|
+
headers: { Authorization: `Bearer ${apiKey}`, "Content-Type": "application/json" },
|
|
75
|
+
signal: AbortSignal.timeout(REVOKE_TIMEOUT_MS)
|
|
76
|
+
});
|
|
77
|
+
if (response.status === 401) return { kind: "not_accepted" };
|
|
78
|
+
if (response.status === FULL_ACCESS_ONLY_STATUS) return await revokeAgentKey(apiKey, baseUrl, fetchImpl);
|
|
79
|
+
if (!response.ok) return { kind: "refused", status: response.status };
|
|
80
|
+
return { kind: "revoked" };
|
|
81
|
+
} catch (err) {
|
|
82
|
+
return { kind: "unreachable", detail: err instanceof Error ? err.message : "network error" };
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
var keyValidityOf = (check) => {
|
|
86
|
+
switch (check.kind) {
|
|
87
|
+
case "ok":
|
|
88
|
+
case "locked":
|
|
89
|
+
return "valid";
|
|
90
|
+
case "rejected":
|
|
91
|
+
case "malformed":
|
|
92
|
+
return "invalid";
|
|
93
|
+
case "unreachable":
|
|
94
|
+
return "unknown";
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
// bin/pushary-logout.ts
|
|
99
|
+
exitOnHelpFlag("sign-out");
|
|
38
100
|
var parseLogoutOptions = (argv) => {
|
|
39
101
|
const flags = parseFlags(argv, { bools: ["json", "revoke", "help", "h"], values: [] });
|
|
40
|
-
if (flags.command !== void 0 && flags.command
|
|
41
|
-
throw new UsageError(`
|
|
102
|
+
if (flags.command !== void 0 && !isInvocationOf(flags.command, "sign-out")) {
|
|
103
|
+
throw new UsageError(`sign-out takes no positional arguments (got ${flags.command})`);
|
|
42
104
|
}
|
|
43
105
|
return { json: flags.bools.has("json"), revoke: flags.bools.has("revoke") };
|
|
44
106
|
};
|
|
@@ -60,30 +122,26 @@ var AGENT_CONFIGS = [
|
|
|
60
122
|
{ label: "Gemini CLI", path: geminiSettings() },
|
|
61
123
|
{ label: "Cursor", path: cursorUserMcp() }
|
|
62
124
|
];
|
|
63
|
-
var
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
125
|
+
var REVOKE_DETAIL = {
|
|
126
|
+
revoked: "Revoked the key on pushary.com.",
|
|
127
|
+
not_accepted: "pushary.com had already stopped accepting the key.",
|
|
128
|
+
refused: "pushary.com refused to revoke the key",
|
|
129
|
+
unreachable: "Could not reach pushary.com to revoke the key"
|
|
130
|
+
};
|
|
131
|
+
var describeRevokeAttempt = (attempt) => {
|
|
132
|
+
if (attempt.kind === "refused") return `${REVOKE_DETAIL.refused} (HTTP ${attempt.status}).`;
|
|
133
|
+
if (attempt.kind === "unreachable") return `${REVOKE_DETAIL.unreachable}: ${attempt.detail}`;
|
|
134
|
+
return REVOKE_DETAIL[attempt.kind];
|
|
135
|
+
};
|
|
136
|
+
var revokeAndVerify = async (apiKey) => {
|
|
137
|
+
const baseUrl = getBaseUrl();
|
|
138
|
+
const attempt = await revokeOwnKey(apiKey, baseUrl);
|
|
139
|
+
const validity = keyValidityOf(await checkApiKey(apiKey, { baseUrl }));
|
|
140
|
+
return { attempt, validity };
|
|
76
141
|
};
|
|
77
142
|
var main = async () => {
|
|
78
143
|
const before = readKeySource();
|
|
79
|
-
|
|
80
|
-
if (options.revoke) {
|
|
81
|
-
if (before.key) {
|
|
82
|
-
revoked = await revokeRemotely(before.key);
|
|
83
|
-
} else {
|
|
84
|
-
revoked = { ok: false, detail: "no key was stored here, so there was nothing to revoke" };
|
|
85
|
-
}
|
|
86
|
-
}
|
|
144
|
+
const revoked = options.revoke && before.key ? await revokeAndVerify(before.key) : null;
|
|
87
145
|
const result = clearKey();
|
|
88
146
|
const remaining = AGENT_CONFIGS.filter((entry) => existsSync(entry.path));
|
|
89
147
|
say("");
|
|
@@ -96,14 +154,16 @@ var main = async () => {
|
|
|
96
154
|
say(` ${dim(`Commented out ${result.rcLinesDisabled} export line in ${result.rcPath}`)}`);
|
|
97
155
|
}
|
|
98
156
|
}
|
|
157
|
+
if (options.revoke && !before.key) {
|
|
158
|
+
say("");
|
|
159
|
+
say(` ${yellow("!")} No key was stored here, so there was nothing to revoke.`);
|
|
160
|
+
}
|
|
99
161
|
if (revoked) {
|
|
100
162
|
say("");
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
say(` ${dim("It is still valid. Revoke it at")} ${cyan("pushary.com/dashboard/agent/settings")}`);
|
|
106
|
-
}
|
|
163
|
+
say(` ${revoked.attempt.kind === "revoked" || revoked.attempt.kind === "not_accepted" ? green("\u2713") : yellow("!")} ${describeRevokeAttempt(revoked.attempt)}`);
|
|
164
|
+
if (revoked.validity === "invalid") say(` ${green("\u2713")} The key no longer works anywhere.`);
|
|
165
|
+
else if (revoked.validity === "valid") say(` ${yellow("!")} The key still works on pushary.com. Revoke it at ${cyan("pushary.com/dashboard/agent/settings")}`);
|
|
166
|
+
else say(` ${yellow("!")} Could not check whether the key still works. Check it at ${cyan("pushary.com/dashboard/agent/settings")}`);
|
|
107
167
|
}
|
|
108
168
|
if (before.kind === "env") {
|
|
109
169
|
say("");
|
|
@@ -112,12 +172,14 @@ var main = async () => {
|
|
|
112
172
|
}
|
|
113
173
|
if (remaining.length > 0) {
|
|
114
174
|
say("");
|
|
115
|
-
say(` ${dim("Still holding a copy of the key, untouched by
|
|
175
|
+
say(` ${dim("Still holding a copy of the key, untouched by sign-out:")}`);
|
|
116
176
|
for (const entry of remaining) say(` ${dim(`\u2022 ${entry.label} ${entry.path}`)}`);
|
|
117
177
|
say(` ${dim("Run")} ${cyan("pushary clean")} ${dim("to remove Pushary from those too.")}`);
|
|
118
178
|
}
|
|
119
|
-
|
|
120
|
-
|
|
179
|
+
if (!options.revoke) {
|
|
180
|
+
say("");
|
|
181
|
+
say(` ${dim("The key itself is still valid server-side. Revoke it at")} ${cyan("pushary.com/dashboard/agent/settings")}`);
|
|
182
|
+
}
|
|
121
183
|
say("");
|
|
122
184
|
if (options.json) {
|
|
123
185
|
process.stdout.write(
|
|
@@ -129,7 +191,8 @@ var main = async () => {
|
|
|
129
191
|
rcPath: result.rcPath,
|
|
130
192
|
rcLinesDisabled: result.rcLinesDisabled,
|
|
131
193
|
envStillSet: before.kind === "env",
|
|
132
|
-
revoked: revoked === null ? null : revoked.
|
|
194
|
+
revoked: revoked === null ? options.revoke ? false : null : revoked.attempt.kind === "revoked" || revoked.attempt.kind === "not_accepted",
|
|
195
|
+
keyStillValid: revoked === null ? null : revoked.validity === "unknown" ? null : revoked.validity === "valid",
|
|
133
196
|
agentConfigsRetainingKey: remaining.map((entry) => entry.path)
|
|
134
197
|
},
|
|
135
198
|
null,
|
|
@@ -141,7 +204,7 @@ var main = async () => {
|
|
|
141
204
|
process.exit(EXIT.OK);
|
|
142
205
|
};
|
|
143
206
|
main().catch((err) => {
|
|
144
|
-
process.stderr.write(` !
|
|
207
|
+
process.stderr.write(` ! sign-out failed: ${err instanceof Error ? err.message : String(err)}
|
|
145
208
|
`);
|
|
146
209
|
process.exit(EXIT.FAILED);
|
|
147
210
|
});
|