@pushary/agent-hooks 1.7.2 → 1.8.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 +14 -0
- package/README.md +13 -1
- package/data/cursor-plugin/CHANGELOG.md +1 -0
- package/data/cursor-plugin/scripts/pushary-gate.mjs +2 -21
- package/data/cursor-plugin/scripts/pushary-gate.test.mjs +23 -1
- package/data/cursor-plugin/scripts/redaction.mjs +51 -0
- package/data/vscode-plugin/CHANGELOG.md +1 -0
- package/data/vscode-plugin/scripts/pushary-gate.mjs +1 -21
- package/data/vscode-plugin/scripts/redaction.mjs +51 -0
- package/dist/bin/pushary-bell-hook.js +23 -23
- package/dist/bin/pushary-bell.js +9 -9
- package/dist/bin/pushary-claude.js +28 -28
- package/dist/bin/pushary-clean.js +91 -107
- package/dist/bin/pushary-codex-bridge.js +18 -18
- package/dist/bin/pushary-codex-hook.js +42 -43
- package/dist/bin/pushary-codex.js +13 -13
- package/dist/bin/pushary-connect.js +13 -13
- package/dist/bin/pushary-cowork.js +5 -5
- package/dist/bin/pushary-daemon.js +27 -27
- package/dist/bin/pushary-disconnect.js +18 -18
- package/dist/bin/pushary-doctor.js +85 -79
- package/dist/bin/pushary-elicitation-hook.js +25 -25
- package/dist/bin/pushary-gemini-bridge.js +12 -12
- package/dist/bin/pushary-gemini-hook.js +29 -30
- package/dist/bin/pushary-hook.js +32 -32
- package/dist/bin/pushary-login.js +12 -12
- package/dist/bin/pushary-logout.js +7 -7
- package/dist/bin/pushary-mcp.js +85 -28
- package/dist/bin/pushary-mode.js +9 -9
- package/dist/bin/pushary-notification-hook.js +28 -28
- package/dist/bin/pushary-opencode-hook.js +28 -29
- package/dist/bin/pushary-permission-denied-hook.js +32 -32
- package/dist/bin/pushary-permission-hook.js +31 -31
- package/dist/bin/pushary-post-hook.js +28 -28
- package/dist/bin/pushary-prompt-hook.js +28 -28
- package/dist/bin/pushary-session-end-hook.js +28 -28
- package/dist/bin/pushary-session-start-hook.js +32 -32
- package/dist/bin/pushary-setup.js +60 -127
- package/dist/bin/pushary-stats.js +5 -5
- package/dist/bin/pushary-status.js +15 -15
- package/dist/bin/pushary-stop-hook.js +28 -28
- package/dist/bin/pushary-stopfailure-hook.js +28 -28
- package/dist/bin/pushary-suggestions.js +4 -4
- package/dist/bin/pushary-transcript-register.js +19 -19
- package/dist/bin/pushary-transcripts.js +7 -7
- package/dist/bin/pushary-upgrade.js +231 -105
- package/dist/bin/pushary-wait.js +9 -9
- package/dist/bin/pushary.js +6 -6
- package/dist/{chunk-VQDJ6KB3.js → chunk-2ABTSGFT.js} +3 -3
- package/dist/{chunk-UFNBKYWT.js → chunk-2OY3ZZ5N.js} +3 -3
- package/dist/{chunk-A6WQF7FQ.js → chunk-3EVPNIBE.js} +3 -3
- package/dist/{chunk-L6IF4JOF.js → chunk-6J2JC2RT.js} +3 -3
- package/dist/{chunk-3NSRL5E7.js → chunk-7Z7Q4GGS.js} +2 -2
- package/dist/{chunk-NYBZJ44G.js → chunk-A2A2YTMG.js} +108 -25
- package/dist/{chunk-SKEW3TQX.js → chunk-AHV4LNB5.js} +1 -1
- package/dist/{chunk-KAJT6HPI.js → chunk-AXPCESYO.js} +3 -3
- package/dist/{chunk-JMSB6CJT.js → chunk-C2WCPBF7.js} +1 -1
- package/dist/chunk-CJVVKOSR.js +73 -0
- package/dist/{chunk-2B4XCMH6.js → chunk-CULUZTWQ.js} +283 -41
- package/dist/{chunk-6QZK4O36.js → chunk-CVQYGMSR.js} +4 -4
- package/dist/{chunk-SEIZQZEE.js → chunk-D2FX3EPW.js} +1 -1
- package/dist/{chunk-LI3C2IQY.js → chunk-DB3ONZB4.js} +2 -2
- package/dist/{chunk-YU54LNC6.js → chunk-DE4Y6TCC.js} +6 -6
- package/dist/{chunk-65RN6ZCO.js → chunk-E4FJTUH4.js} +1 -1
- package/dist/{chunk-RLRDPZG4.js → chunk-EPCXUP3P.js} +3 -1
- package/dist/{chunk-OXEF6JHD.js → chunk-EX3GAPA4.js} +1 -1
- package/dist/{chunk-E3PLF7YB.js → chunk-EYK3GSRH.js} +4 -4
- package/dist/{chunk-SJN64NJX.js → chunk-GPEGOGRJ.js} +1 -1
- package/dist/chunk-GU3EJCVV.js +43 -0
- package/dist/{chunk-YNJ2H2FD.js → chunk-HQ6G3B5R.js} +2 -2
- package/dist/{chunk-6NHXKTQU.js → chunk-HZVVNGEW.js} +2 -2
- package/dist/{chunk-ZUKZJQGR.js → chunk-IPVKH2ST.js} +1 -1
- package/dist/{chunk-T3PRPFDY.js → chunk-J5TIV3J6.js} +5 -5
- package/dist/{chunk-F6BMJOSW.js → chunk-JU6W3XAU.js} +1 -1
- package/dist/{chunk-AWZNDM3B.js → chunk-JYG4B33G.js} +1 -1
- package/dist/{chunk-ZMWX5SDA.js → chunk-JZTHGAPA.js} +8 -8
- package/dist/{chunk-3RO2UWJQ.js → chunk-KGDWDSNL.js} +2 -2
- package/dist/{chunk-MY3UZO5U.js → chunk-KVQBWI5T.js} +3 -3
- package/dist/{chunk-HOIGXMI7.js → chunk-LXQ5FBBD.js} +1 -1
- package/dist/{chunk-D4OGEWLH.js → chunk-M5ICYGHT.js} +3 -3
- package/dist/{chunk-YLCSKVQQ.js → chunk-M5JDZ45W.js} +4 -4
- package/dist/{chunk-SKMWPXGV.js → chunk-MDEPU45E.js} +183 -28
- package/dist/{chunk-R7ZETVNR.js → chunk-MPWXGONV.js} +3 -3
- package/dist/{chunk-2XOHXZRC.js → chunk-NGDD6TXY.js} +20 -5
- package/dist/{chunk-WWTLAZQA.js → chunk-NQTHFF4W.js} +178 -39
- package/dist/{chunk-KLXYMPTM.js → chunk-OKXS7WDZ.js} +1 -1
- package/dist/{chunk-Q7CDBJXU.js → chunk-OLQRRFBX.js} +1 -1
- package/dist/{chunk-VSGKQ3HI.js → chunk-P7WQEVWA.js} +2 -2
- package/dist/{chunk-UUTWHVSV.js → chunk-Q7E4I6UA.js} +28 -16
- package/dist/{chunk-WXIVUIXA.js → chunk-R7437YI3.js} +2 -2
- package/dist/{chunk-5GIBNUBD.js → chunk-RHR6NARM.js} +2 -2
- package/dist/{chunk-QSZ37ROP.js → chunk-SAXBC4AZ.js} +1 -1
- package/dist/{chunk-U3MS6D5X.js → chunk-SIFVFP6T.js} +1 -1
- package/dist/{chunk-TVJYGZXB.js → chunk-SLFABHW3.js} +40 -10
- package/dist/{chunk-M2JGLFFS.js → chunk-TY4JT7W3.js} +1 -1
- package/dist/{chunk-YU4222G2.js → chunk-UI36QSBI.js} +28 -16
- package/dist/{chunk-OJRB5QKN.js → chunk-VQKRG3AC.js} +6 -6
- package/dist/{chunk-4S7CCOXB.js → chunk-WE2J62NC.js} +31 -17
- package/dist/{chunk-PWNQGITG.js → chunk-ZSZSSJCV.js} +1 -1
- package/dist/{chunk-I7B2DNVU.js → chunk-ZVSKMPBZ.js} +1 -1
- package/dist/{reapply-D6RSDYCK.js → reapply-CW3MA66V.js} +9 -9
- package/dist/src/index.js +20 -20
- package/package.json +1 -1
- package/dist/chunk-INR3RVQ3.js +0 -92
- package/dist/chunk-IZVAVXHQ.js +0 -255
|
@@ -1,52 +1,52 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
readHookInput
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-KGDWDSNL.js";
|
|
5
5
|
import {
|
|
6
6
|
announceSubscriptionRequired,
|
|
7
7
|
isDeferAnswer
|
|
8
8
|
} from "../chunk-5OP5MQI7.js";
|
|
9
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-JZTHGAPA.js";
|
|
10
10
|
import "../chunk-SGZJ5LYH.js";
|
|
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-
|
|
20
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-EYK3GSRH.js";
|
|
12
|
+
import "../chunk-ZVSKMPBZ.js";
|
|
13
|
+
import "../chunk-C2WCPBF7.js";
|
|
14
|
+
import "../chunk-6J2JC2RT.js";
|
|
15
|
+
import "../chunk-WE2J62NC.js";
|
|
16
|
+
import "../chunk-3EVPNIBE.js";
|
|
17
|
+
import "../chunk-OKXS7WDZ.js";
|
|
18
|
+
import "../chunk-MPWXGONV.js";
|
|
19
|
+
import "../chunk-SAXBC4AZ.js";
|
|
20
|
+
import "../chunk-OLQRRFBX.js";
|
|
21
21
|
import "../chunk-XHKBHWLX.js";
|
|
22
22
|
import "../chunk-N6IOSZOE.js";
|
|
23
|
-
import "../chunk-
|
|
23
|
+
import "../chunk-EPCXUP3P.js";
|
|
24
24
|
import {
|
|
25
25
|
askUser,
|
|
26
26
|
isDecisionStopped,
|
|
27
27
|
waitForQuestion
|
|
28
|
-
} from "../chunk-
|
|
29
|
-
import "../chunk-
|
|
28
|
+
} from "../chunk-NGDD6TXY.js";
|
|
29
|
+
import "../chunk-CVQYGMSR.js";
|
|
30
30
|
import "../chunk-POFBE6ZY.js";
|
|
31
31
|
import "../chunk-GMXKITVA.js";
|
|
32
|
-
import "../chunk-
|
|
32
|
+
import "../chunk-P7WQEVWA.js";
|
|
33
33
|
import {
|
|
34
34
|
SubscriptionRequiredError
|
|
35
|
-
} from "../chunk-
|
|
36
|
-
import "../chunk-
|
|
37
|
-
import "../chunk-
|
|
35
|
+
} from "../chunk-M5ICYGHT.js";
|
|
36
|
+
import "../chunk-2ABTSGFT.js";
|
|
37
|
+
import "../chunk-2OY3ZZ5N.js";
|
|
38
38
|
import {
|
|
39
39
|
getMachineId
|
|
40
|
-
} from "../chunk-
|
|
40
|
+
} from "../chunk-LXQ5FBBD.js";
|
|
41
41
|
import "../chunk-7QLSKOSU.js";
|
|
42
42
|
import "../chunk-KZERVKTD.js";
|
|
43
|
-
import "../chunk-
|
|
44
|
-
import "../chunk-
|
|
43
|
+
import "../chunk-DB3ONZB4.js";
|
|
44
|
+
import "../chunk-A2A2YTMG.js";
|
|
45
45
|
import "../chunk-T7E75EKA.js";
|
|
46
46
|
import {
|
|
47
47
|
getApiKey
|
|
48
|
-
} from "../chunk-
|
|
49
|
-
import "../chunk-
|
|
48
|
+
} from "../chunk-GPEGOGRJ.js";
|
|
49
|
+
import "../chunk-E4FJTUH4.js";
|
|
50
50
|
import {
|
|
51
51
|
ELICITATION_ANSWERABLE_MODE,
|
|
52
52
|
effectiveWaitSeconds,
|
|
@@ -57,7 +57,7 @@ import {
|
|
|
57
57
|
planElicitationAsk,
|
|
58
58
|
readElicitationFields,
|
|
59
59
|
renderElicitationOutput
|
|
60
|
-
} from "../chunk-
|
|
60
|
+
} from "../chunk-NQTHFF4W.js";
|
|
61
61
|
|
|
62
62
|
// bin/pushary-elicitation-hook.ts
|
|
63
63
|
import { basename } from "path";
|
|
@@ -5,37 +5,37 @@ import {
|
|
|
5
5
|
postLiveSession,
|
|
6
6
|
postLiveSessionUntilAccepted,
|
|
7
7
|
startLiveSessionHeartbeat
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-R7437YI3.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-ZSZSSJCV.js";
|
|
16
|
+
import "../chunk-MPWXGONV.js";
|
|
17
|
+
import "../chunk-SAXBC4AZ.js";
|
|
18
18
|
import {
|
|
19
19
|
transcriptsEnabled
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-OLQRRFBX.js";
|
|
21
21
|
import {
|
|
22
22
|
spawnClaude
|
|
23
23
|
} from "../chunk-XHKBHWLX.js";
|
|
24
|
-
import "../chunk-
|
|
24
|
+
import "../chunk-P7WQEVWA.js";
|
|
25
25
|
import {
|
|
26
26
|
getMachineId
|
|
27
|
-
} from "../chunk-
|
|
28
|
-
import "../chunk-
|
|
27
|
+
} from "../chunk-LXQ5FBBD.js";
|
|
28
|
+
import "../chunk-DB3ONZB4.js";
|
|
29
29
|
import {
|
|
30
30
|
resolveBinary
|
|
31
|
-
} from "../chunk-
|
|
31
|
+
} from "../chunk-A2A2YTMG.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-GPEGOGRJ.js";
|
|
37
|
+
import "../chunk-E4FJTUH4.js";
|
|
38
|
+
import "../chunk-NQTHFF4W.js";
|
|
39
39
|
|
|
40
40
|
// bin/pushary-gemini-bridge.ts
|
|
41
41
|
import { existsSync } from "fs";
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
triggerAutoUpdate
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-UI36QSBI.js";
|
|
5
5
|
import {
|
|
6
6
|
isGatingMoment,
|
|
7
7
|
recordKeylessMoment
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-JU6W3XAU.js";
|
|
9
9
|
import {
|
|
10
10
|
readHookInput
|
|
11
|
-
} from "../chunk-
|
|
11
|
+
} from "../chunk-KGDWDSNL.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-JZTHGAPA.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-EYK3GSRH.js";
|
|
20
|
+
import "../chunk-ZVSKMPBZ.js";
|
|
21
|
+
import "../chunk-C2WCPBF7.js";
|
|
22
|
+
import "../chunk-6J2JC2RT.js";
|
|
23
|
+
import "../chunk-WE2J62NC.js";
|
|
24
|
+
import "../chunk-3EVPNIBE.js";
|
|
25
|
+
import "../chunk-OKXS7WDZ.js";
|
|
26
|
+
import "../chunk-MPWXGONV.js";
|
|
27
|
+
import "../chunk-SAXBC4AZ.js";
|
|
28
|
+
import "../chunk-OLQRRFBX.js";
|
|
29
29
|
import "../chunk-XHKBHWLX.js";
|
|
30
30
|
import {
|
|
31
31
|
UNNAMED_ACTION,
|
|
@@ -45,11 +45,11 @@ import {
|
|
|
45
45
|
repoKeyFor,
|
|
46
46
|
reportEvent,
|
|
47
47
|
scopePathFor
|
|
48
|
-
} from "../chunk-
|
|
48
|
+
} from "../chunk-CULUZTWQ.js";
|
|
49
49
|
import {
|
|
50
50
|
DEFAULT_SESSION
|
|
51
51
|
} from "../chunk-N6IOSZOE.js";
|
|
52
|
-
import "../chunk-
|
|
52
|
+
import "../chunk-EPCXUP3P.js";
|
|
53
53
|
import {
|
|
54
54
|
DECISION_STOP_REASON,
|
|
55
55
|
UNVERIFIABLE_APPROVAL_REASON,
|
|
@@ -58,41 +58,40 @@ import {
|
|
|
58
58
|
isLocalQuestionHandoff,
|
|
59
59
|
sendNotification,
|
|
60
60
|
waitForQuestion
|
|
61
|
-
} from "../chunk-
|
|
61
|
+
} from "../chunk-NGDD6TXY.js";
|
|
62
62
|
import {
|
|
63
63
|
exitAfterClientReports
|
|
64
|
-
} from "../chunk-
|
|
64
|
+
} from "../chunk-CVQYGMSR.js";
|
|
65
65
|
import "../chunk-POFBE6ZY.js";
|
|
66
66
|
import "../chunk-GMXKITVA.js";
|
|
67
|
-
import "../chunk-
|
|
67
|
+
import "../chunk-P7WQEVWA.js";
|
|
68
68
|
import {
|
|
69
69
|
SubscriptionRequiredError
|
|
70
|
-
} from "../chunk-
|
|
71
|
-
import "../chunk-
|
|
72
|
-
import "../chunk-
|
|
70
|
+
} from "../chunk-M5ICYGHT.js";
|
|
71
|
+
import "../chunk-2ABTSGFT.js";
|
|
72
|
+
import "../chunk-2OY3ZZ5N.js";
|
|
73
73
|
import {
|
|
74
74
|
getMachineId
|
|
75
|
-
} from "../chunk-
|
|
75
|
+
} from "../chunk-LXQ5FBBD.js";
|
|
76
76
|
import "../chunk-7QLSKOSU.js";
|
|
77
77
|
import {
|
|
78
78
|
EXIT
|
|
79
79
|
} from "../chunk-KZERVKTD.js";
|
|
80
|
-
import "../chunk-
|
|
81
|
-
import "../chunk-
|
|
80
|
+
import "../chunk-DB3ONZB4.js";
|
|
81
|
+
import "../chunk-A2A2YTMG.js";
|
|
82
82
|
import "../chunk-T7E75EKA.js";
|
|
83
83
|
import {
|
|
84
84
|
getApiKey
|
|
85
|
-
} from "../chunk-
|
|
86
|
-
import "../chunk-
|
|
85
|
+
} from "../chunk-GPEGOGRJ.js";
|
|
86
|
+
import "../chunk-E4FJTUH4.js";
|
|
87
87
|
import {
|
|
88
|
-
DECISION_LINE_MAX,
|
|
89
88
|
KILL_REASON,
|
|
90
89
|
effectiveWaitSeconds,
|
|
91
90
|
gateOutputFor,
|
|
92
91
|
hookWaitClamped,
|
|
93
92
|
hookWaitDeadline,
|
|
94
93
|
resolveGate
|
|
95
|
-
} from "../chunk-
|
|
94
|
+
} from "../chunk-NQTHFF4W.js";
|
|
96
95
|
|
|
97
96
|
// bin/pushary-gemini-hook.ts
|
|
98
97
|
import { basename } from "path";
|
|
@@ -185,7 +184,7 @@ var pushQuestion = async (apiKey, input, lookup, waitSeconds, mode, pollInterval
|
|
|
185
184
|
toolName: lookup.tool,
|
|
186
185
|
toolTarget: deriveToolTarget(lookup.tool, lookup.input),
|
|
187
186
|
intent: readLastPrompt(input.session_id || DEFAULT_SESSION) ?? (input.transcript_path ? readLastUserPrompt(input.transcript_path) : void 0),
|
|
188
|
-
action: description
|
|
187
|
+
action: description,
|
|
189
188
|
blocker: deriveBlocker(mode),
|
|
190
189
|
actionBody: deriveActionBody(input.tool_name ?? "", input.tool_input ?? {}),
|
|
191
190
|
repoKey: repoKeyFor(input.cwd)
|
package/dist/bin/pushary-hook.js
CHANGED
|
@@ -1,63 +1,63 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
handlePreToolUse
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-Q7E4I6UA.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-J5TIV3J6.js";
|
|
10
|
+
import "../chunk-AXPCESYO.js";
|
|
11
|
+
import "../chunk-CJVVKOSR.js";
|
|
12
|
+
import "../chunk-JU6W3XAU.js";
|
|
13
13
|
import {
|
|
14
14
|
readToolHookInput
|
|
15
|
-
} from "../chunk-
|
|
15
|
+
} from "../chunk-KGDWDSNL.js";
|
|
16
16
|
import "../chunk-5OP5MQI7.js";
|
|
17
|
-
import "../chunk-
|
|
17
|
+
import "../chunk-JZTHGAPA.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-EYK3GSRH.js";
|
|
20
|
+
import "../chunk-ZVSKMPBZ.js";
|
|
21
|
+
import "../chunk-C2WCPBF7.js";
|
|
22
|
+
import "../chunk-6J2JC2RT.js";
|
|
23
|
+
import "../chunk-WE2J62NC.js";
|
|
24
|
+
import "../chunk-3EVPNIBE.js";
|
|
25
|
+
import "../chunk-OKXS7WDZ.js";
|
|
26
|
+
import "../chunk-MPWXGONV.js";
|
|
27
|
+
import "../chunk-SAXBC4AZ.js";
|
|
28
|
+
import "../chunk-OLQRRFBX.js";
|
|
29
29
|
import "../chunk-XHKBHWLX.js";
|
|
30
30
|
import {
|
|
31
31
|
canonicalGateInputs
|
|
32
|
-
} from "../chunk-
|
|
32
|
+
} from "../chunk-CULUZTWQ.js";
|
|
33
33
|
import "../chunk-N6IOSZOE.js";
|
|
34
|
-
import "../chunk-
|
|
35
|
-
import "../chunk-
|
|
34
|
+
import "../chunk-EPCXUP3P.js";
|
|
35
|
+
import "../chunk-NGDD6TXY.js";
|
|
36
36
|
import {
|
|
37
37
|
exitAfterClientReports
|
|
38
|
-
} from "../chunk-
|
|
38
|
+
} from "../chunk-CVQYGMSR.js";
|
|
39
39
|
import "../chunk-POFBE6ZY.js";
|
|
40
40
|
import {
|
|
41
41
|
exitOnHelpFlag
|
|
42
|
-
} from "../chunk-
|
|
42
|
+
} from "../chunk-HZVVNGEW.js";
|
|
43
43
|
import "../chunk-GMXKITVA.js";
|
|
44
|
-
import "../chunk-
|
|
45
|
-
import "../chunk-
|
|
46
|
-
import "../chunk-
|
|
47
|
-
import "../chunk-
|
|
48
|
-
import "../chunk-
|
|
44
|
+
import "../chunk-P7WQEVWA.js";
|
|
45
|
+
import "../chunk-M5ICYGHT.js";
|
|
46
|
+
import "../chunk-2ABTSGFT.js";
|
|
47
|
+
import "../chunk-2OY3ZZ5N.js";
|
|
48
|
+
import "../chunk-LXQ5FBBD.js";
|
|
49
49
|
import "../chunk-7QLSKOSU.js";
|
|
50
50
|
import {
|
|
51
51
|
EXIT
|
|
52
52
|
} from "../chunk-KZERVKTD.js";
|
|
53
|
-
import "../chunk-
|
|
54
|
-
import "../chunk-
|
|
53
|
+
import "../chunk-DB3ONZB4.js";
|
|
54
|
+
import "../chunk-A2A2YTMG.js";
|
|
55
55
|
import "../chunk-T7E75EKA.js";
|
|
56
|
-
import "../chunk-
|
|
57
|
-
import "../chunk-
|
|
56
|
+
import "../chunk-GPEGOGRJ.js";
|
|
57
|
+
import "../chunk-E4FJTUH4.js";
|
|
58
58
|
import {
|
|
59
59
|
renderPreToolUseVerdict
|
|
60
|
-
} from "../chunk-
|
|
60
|
+
} from "../chunk-NQTHFF4W.js";
|
|
61
61
|
|
|
62
62
|
// bin/pushary-hook.ts
|
|
63
63
|
exitOnHelpFlag("hook");
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
runBrowserLogin
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-JYG4B33G.js";
|
|
5
5
|
import "../chunk-PUZZELE6.js";
|
|
6
6
|
import {
|
|
7
7
|
recoverDaemonAfterLogin
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-WE2J62NC.js";
|
|
9
9
|
import "../chunk-XHKBHWLX.js";
|
|
10
10
|
import "../chunk-3EGEA4KH.js";
|
|
11
11
|
import {
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
} from "../chunk-U4TMAANR.js";
|
|
14
14
|
import {
|
|
15
15
|
exitOnHelpFlag
|
|
16
|
-
} from "../chunk-
|
|
16
|
+
} from "../chunk-HZVVNGEW.js";
|
|
17
17
|
import {
|
|
18
18
|
parseFlags
|
|
19
19
|
} from "../chunk-GMXKITVA.js";
|
|
@@ -22,28 +22,28 @@ import {
|
|
|
22
22
|
readControlMode,
|
|
23
23
|
readKeySource,
|
|
24
24
|
writeKey
|
|
25
|
-
} from "../chunk-
|
|
25
|
+
} from "../chunk-P7WQEVWA.js";
|
|
26
26
|
import {
|
|
27
27
|
checkApiKey,
|
|
28
28
|
describeKeyCheck
|
|
29
|
-
} from "../chunk-
|
|
30
|
-
import "../chunk-
|
|
31
|
-
import "../chunk-
|
|
29
|
+
} from "../chunk-2ABTSGFT.js";
|
|
30
|
+
import "../chunk-2OY3ZZ5N.js";
|
|
31
|
+
import "../chunk-LXQ5FBBD.js";
|
|
32
32
|
import {
|
|
33
33
|
UsageError
|
|
34
34
|
} from "../chunk-7QLSKOSU.js";
|
|
35
35
|
import {
|
|
36
36
|
EXIT
|
|
37
37
|
} from "../chunk-KZERVKTD.js";
|
|
38
|
-
import "../chunk-
|
|
39
|
-
import "../chunk-
|
|
38
|
+
import "../chunk-DB3ONZB4.js";
|
|
39
|
+
import "../chunk-A2A2YTMG.js";
|
|
40
40
|
import "../chunk-T7E75EKA.js";
|
|
41
|
-
import "../chunk-
|
|
42
|
-
import "../chunk-
|
|
41
|
+
import "../chunk-GPEGOGRJ.js";
|
|
42
|
+
import "../chunk-E4FJTUH4.js";
|
|
43
43
|
import {
|
|
44
44
|
getPackageVersion,
|
|
45
45
|
isValidApiKey
|
|
46
|
-
} from "../chunk-
|
|
46
|
+
} from "../chunk-NQTHFF4W.js";
|
|
47
47
|
|
|
48
48
|
// bin/pushary-login.ts
|
|
49
49
|
exitOnHelpFlag("login");
|
|
@@ -4,33 +4,33 @@ import {
|
|
|
4
4
|
} from "../chunk-U4TMAANR.js";
|
|
5
5
|
import {
|
|
6
6
|
exitOnHelpFlag
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-HZVVNGEW.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-P7WQEVWA.js";
|
|
15
15
|
import {
|
|
16
16
|
UsageError
|
|
17
17
|
} from "../chunk-7QLSKOSU.js";
|
|
18
18
|
import {
|
|
19
19
|
EXIT
|
|
20
20
|
} from "../chunk-KZERVKTD.js";
|
|
21
|
-
import "../chunk-
|
|
21
|
+
import "../chunk-DB3ONZB4.js";
|
|
22
22
|
import {
|
|
23
23
|
claudeJson,
|
|
24
24
|
codexConfigToml,
|
|
25
25
|
cursorUserMcp,
|
|
26
26
|
geminiSettings
|
|
27
|
-
} from "../chunk-
|
|
27
|
+
} from "../chunk-A2A2YTMG.js";
|
|
28
28
|
import "../chunk-T7E75EKA.js";
|
|
29
29
|
import {
|
|
30
30
|
getBaseUrl
|
|
31
|
-
} from "../chunk-
|
|
32
|
-
import "../chunk-
|
|
33
|
-
import "../chunk-
|
|
31
|
+
} from "../chunk-GPEGOGRJ.js";
|
|
32
|
+
import "../chunk-E4FJTUH4.js";
|
|
33
|
+
import "../chunk-NQTHFF4W.js";
|
|
34
34
|
|
|
35
35
|
// bin/pushary-logout.ts
|
|
36
36
|
import { existsSync } from "fs";
|
package/dist/bin/pushary-mcp.js
CHANGED
|
@@ -1,29 +1,98 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
MCP_BRIDGE_PATH,
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
bridgeError,
|
|
5
|
+
createMcpStdioBridge,
|
|
6
|
+
parseBridgeLine
|
|
7
|
+
} from "../chunk-SLFABHW3.js";
|
|
8
|
+
import "../chunk-M5ICYGHT.js";
|
|
9
|
+
import "../chunk-2ABTSGFT.js";
|
|
8
10
|
import {
|
|
9
11
|
installNetworkDefaults
|
|
10
|
-
} from "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
+
} from "../chunk-2OY3ZZ5N.js";
|
|
13
|
+
import "../chunk-LXQ5FBBD.js";
|
|
12
14
|
import "../chunk-7QLSKOSU.js";
|
|
13
15
|
import {
|
|
14
16
|
EXIT
|
|
15
17
|
} from "../chunk-KZERVKTD.js";
|
|
16
|
-
import "../chunk-
|
|
18
|
+
import "../chunk-A2A2YTMG.js";
|
|
17
19
|
import "../chunk-T7E75EKA.js";
|
|
18
20
|
import {
|
|
19
21
|
getApiKey,
|
|
20
22
|
getBaseUrl
|
|
21
|
-
} from "../chunk-
|
|
22
|
-
import "../chunk-
|
|
23
|
-
import "../chunk-
|
|
23
|
+
} from "../chunk-GPEGOGRJ.js";
|
|
24
|
+
import "../chunk-E4FJTUH4.js";
|
|
25
|
+
import "../chunk-NQTHFF4W.js";
|
|
26
|
+
|
|
27
|
+
// src/mcp-stdio-stream.ts
|
|
28
|
+
var MCP_MAX_IN_FLIGHT = 16;
|
|
29
|
+
var MCP_CONTROL_RESERVE = 4;
|
|
30
|
+
var MCP_MAX_LINE_BYTES = 1024 * 1024;
|
|
31
|
+
var isControl = (line) => {
|
|
32
|
+
const parsed = parseBridgeLine(line);
|
|
33
|
+
if (!parsed.ok || typeof parsed.payload !== "object" || parsed.payload === null || Array.isArray(parsed.payload)) return false;
|
|
34
|
+
const message = parsed.payload;
|
|
35
|
+
if (!("method" in message)) return false;
|
|
36
|
+
if (message.method === "notifications/cancelled") return true;
|
|
37
|
+
if (message.method !== "tools/call" || !("params" in message)) return false;
|
|
38
|
+
const params = message.params;
|
|
39
|
+
return typeof params === "object" && params !== null && "name" in params && params.name === "cancel_question";
|
|
40
|
+
};
|
|
41
|
+
var writeMcpMessage = (output, message) => new Promise((resolve, reject) => {
|
|
42
|
+
output.write(`${JSON.stringify(message)}
|
|
43
|
+
`, (error) => error ? reject(error) : resolve());
|
|
44
|
+
});
|
|
45
|
+
var runMcpStdioStream = async (input, bridge2, emit) => {
|
|
46
|
+
const pending = /* @__PURE__ */ new Set();
|
|
47
|
+
let failure;
|
|
48
|
+
const line = Buffer.allocUnsafe(MCP_MAX_LINE_BYTES);
|
|
49
|
+
let lineLength = 0;
|
|
50
|
+
let discarding = false;
|
|
51
|
+
const forward = async (text) => {
|
|
52
|
+
if (!text.trim()) return;
|
|
53
|
+
const limit = MCP_MAX_IN_FLIGHT + (isControl(text) ? MCP_CONTROL_RESERVE : 0);
|
|
54
|
+
if (pending.size >= limit) {
|
|
55
|
+
await bridge2.reject(text, "Pushary MCP bridge is busy. Retry after an outstanding request finishes.");
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const task = bridge2.forward(text).catch((error) => {
|
|
59
|
+
failure = error;
|
|
60
|
+
}).finally(() => pending.delete(task));
|
|
61
|
+
pending.add(task);
|
|
62
|
+
};
|
|
63
|
+
try {
|
|
64
|
+
for await (const chunk of input) {
|
|
65
|
+
const bytes = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
|
|
66
|
+
let start = 0;
|
|
67
|
+
while (start < bytes.length) {
|
|
68
|
+
if (failure) throw failure;
|
|
69
|
+
const newline = bytes.indexOf(10, start);
|
|
70
|
+
const end = newline < 0 ? bytes.length : newline;
|
|
71
|
+
if (!discarding) {
|
|
72
|
+
if (lineLength + end - start > MCP_MAX_LINE_BYTES) {
|
|
73
|
+
lineLength = 0;
|
|
74
|
+
discarding = true;
|
|
75
|
+
await emit(bridgeError(null, "MCP input line exceeds the 1 MiB limit."));
|
|
76
|
+
} else {
|
|
77
|
+
lineLength += bytes.copy(line, lineLength, start, end);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (newline >= 0) {
|
|
81
|
+
if (!discarding) await forward(line.toString("utf8", 0, lineLength));
|
|
82
|
+
lineLength = 0;
|
|
83
|
+
discarding = false;
|
|
84
|
+
}
|
|
85
|
+
start = end + 1;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
if (!discarding && lineLength > 0) await forward(line.toString("utf8", 0, lineLength));
|
|
89
|
+
} finally {
|
|
90
|
+
await Promise.all(pending);
|
|
91
|
+
}
|
|
92
|
+
if (failure) throw failure;
|
|
93
|
+
};
|
|
24
94
|
|
|
25
95
|
// bin/pushary-mcp.ts
|
|
26
|
-
import { createInterface } from "readline";
|
|
27
96
|
installNetworkDefaults();
|
|
28
97
|
var readApiKey = () => {
|
|
29
98
|
try {
|
|
@@ -32,26 +101,14 @@ var readApiKey = () => {
|
|
|
32
101
|
return null;
|
|
33
102
|
}
|
|
34
103
|
};
|
|
35
|
-
var writeMessage = (message) =>
|
|
36
|
-
process.stdout.write(`${JSON.stringify(message)}
|
|
37
|
-
`);
|
|
38
|
-
};
|
|
104
|
+
var writeMessage = (message) => writeMcpMessage(process.stdout, message);
|
|
39
105
|
var bridge = createMcpStdioBridge({
|
|
40
106
|
endpoint: `${getBaseUrl()}${MCP_BRIDGE_PATH}`,
|
|
41
107
|
apiKey: readApiKey,
|
|
42
108
|
fetchImpl: globalThis.fetch,
|
|
43
109
|
emit: writeMessage
|
|
44
110
|
});
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
inFlight.add(forwarding);
|
|
50
|
-
};
|
|
51
|
-
var exitWhenDrained = async () => {
|
|
52
|
-
await Promise.all(inFlight);
|
|
53
|
-
process.stdout.write("", () => process.exit(EXIT.OK));
|
|
54
|
-
};
|
|
55
|
-
var lines = createInterface({ input: process.stdin, crlfDelay: Infinity });
|
|
56
|
-
lines.on("line", forwardLine);
|
|
57
|
-
lines.on("close", () => void exitWhenDrained());
|
|
111
|
+
runMcpStdioStream(process.stdin, bridge, writeMessage).catch((error) => {
|
|
112
|
+
console.error(error instanceof Error ? error.message : String(error));
|
|
113
|
+
process.exitCode = EXIT.FAILED;
|
|
114
|
+
});
|
package/dist/bin/pushary-mode.js
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
exitOnFailedResponse
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-EX3GAPA4.js";
|
|
5
5
|
import {
|
|
6
6
|
createIo
|
|
7
7
|
} from "../chunk-U4TMAANR.js";
|
|
8
8
|
import {
|
|
9
9
|
exitOnHelpFlag
|
|
10
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-HZVVNGEW.js";
|
|
11
11
|
import {
|
|
12
12
|
rejectUnknownFlags
|
|
13
13
|
} from "../chunk-GMXKITVA.js";
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
16
|
-
import "../chunk-
|
|
14
|
+
import "../chunk-2ABTSGFT.js";
|
|
15
|
+
import "../chunk-2OY3ZZ5N.js";
|
|
16
|
+
import "../chunk-LXQ5FBBD.js";
|
|
17
17
|
import {
|
|
18
18
|
UsageError
|
|
19
19
|
} from "../chunk-7QLSKOSU.js";
|
|
20
20
|
import {
|
|
21
21
|
EXIT
|
|
22
22
|
} from "../chunk-KZERVKTD.js";
|
|
23
|
-
import "../chunk-
|
|
23
|
+
import "../chunk-A2A2YTMG.js";
|
|
24
24
|
import "../chunk-T7E75EKA.js";
|
|
25
25
|
import {
|
|
26
26
|
getApiKey,
|
|
27
27
|
getBaseUrl
|
|
28
|
-
} from "../chunk-
|
|
29
|
-
import "../chunk-
|
|
30
|
-
import "../chunk-
|
|
28
|
+
} from "../chunk-GPEGOGRJ.js";
|
|
29
|
+
import "../chunk-E4FJTUH4.js";
|
|
30
|
+
import "../chunk-NQTHFF4W.js";
|
|
31
31
|
|
|
32
32
|
// src/cli/mode-request.ts
|
|
33
33
|
var parseDuration = (value) => {
|