@pushary/agent-hooks 1.4.2 → 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 +11 -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 +25 -25
- package/dist/bin/pushary-codex-bridge.js +16 -14
- package/dist/bin/pushary-codex-hook.js +32 -27
- 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 +58 -53
- 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-4BROEAKH.js → chunk-2QT3GCU4.js} +1 -1
- package/dist/{chunk-PC6DU5C4.js → chunk-3NBODGQS.js} +1 -1
- package/dist/{chunk-55KW4FLG.js → chunk-3ZSGKLSO.js} +2 -2
- package/dist/{chunk-NY6XQ6CA.js → chunk-43LJSM4F.js} +2 -2
- package/dist/{chunk-LEAAERSQ.js → chunk-43ZDACBO.js} +1 -1
- package/dist/{chunk-M5CTUFF3.js → chunk-5HYNICS7.js} +1 -1
- package/dist/{chunk-EQRS3SGM.js → chunk-66H2QQAK.js} +1 -1
- package/dist/{chunk-BZ4GDOJX.js → chunk-7XT76LWT.js} +7 -7
- package/dist/{chunk-SUWRZYQG.js → chunk-CQYHOHOK.js} +3 -3
- package/dist/{chunk-MUVTZNJW.js → chunk-DLJN5XEU.js} +3 -3
- package/dist/{chunk-25RTLTQD.js → chunk-DTQNDR7C.js} +1 -1
- package/dist/{chunk-TRLFZKVG.js → chunk-DYHXOXUF.js} +43 -6
- package/dist/{chunk-FAH3D74E.js → chunk-EA3IELHP.js} +6 -0
- package/dist/{chunk-LPYCPFBZ.js → chunk-EADZPVYW.js} +3 -3
- package/dist/{chunk-VW66JEGU.js → chunk-F57RGL7K.js} +8 -8
- package/dist/{chunk-G653QPTR.js → chunk-FDHMNT24.js} +7 -7
- package/dist/{chunk-Y3MM6PYN.js → chunk-H5LHTC5X.js} +1 -1
- package/dist/{chunk-EYRGBYZG.js → chunk-HETOKNIL.js} +1 -1
- package/dist/{chunk-UM5J3J4V.js → chunk-HU5LSYL2.js} +2 -2
- package/dist/{chunk-2V2IKOGJ.js → chunk-HVBF35GT.js} +2 -2
- package/dist/{chunk-DINDL2CF.js → chunk-HWJW3CPO.js} +25 -5
- package/dist/{chunk-XDP3UYH5.js → chunk-IYTQ4B5I.js} +8 -8
- package/dist/{chunk-II7PUMPB.js → chunk-J4J45VPZ.js} +3 -3
- package/dist/{chunk-VIOL2DJS.js → chunk-JF736N4C.js} +5 -5
- package/dist/{chunk-ZVY25BMK.js → chunk-K3QVDAZW.js} +1 -1
- package/dist/{chunk-TYEO6T5J.js → chunk-KEOLNHR3.js} +2 -2
- package/dist/{chunk-T5SZ4PML.js → chunk-KJRALILH.js} +7 -4
- package/dist/{chunk-VOMOZ4D5.js → chunk-MYP4UUFH.js} +1 -1
- package/dist/{chunk-UJBZIKSY.js → chunk-NFKVRMTM.js} +8 -8
- package/dist/{chunk-WPVHRUDT.js → chunk-NTQSICPJ.js} +3 -3
- package/dist/{chunk-JVTOML54.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-4ZDKSDVW.js → chunk-PCGZXWGQ.js} +4 -4
- package/dist/{chunk-ACYIZ3KH.js → chunk-PNNBMH4E.js} +5 -5
- package/dist/{chunk-LGXUGYUH.js → chunk-PYCQXCI5.js} +2 -2
- package/dist/{chunk-MW6ZPC6R.js → chunk-SOCEY746.js} +1 -1
- package/dist/{chunk-SOUZBGYJ.js → chunk-T4QY64OR.js} +15 -14
- package/dist/{chunk-DY4ILT6L.js → chunk-TFKBFQCE.js} +1 -1
- package/dist/{chunk-GZ7E6VOB.js → chunk-TIWURSLS.js} +1 -1
- package/dist/{chunk-F4UWL4NY.js → chunk-TUXFIVOH.js} +1 -1
- package/dist/{chunk-NHTAHAIS.js → chunk-UQHUUZ5H.js} +1 -1
- package/dist/{chunk-FU2DFEAZ.js → chunk-USQDVBEV.js} +2 -2
- package/dist/{chunk-YXP3WPAI.js → chunk-UYDTFCHW.js} +1 -1
- package/dist/{chunk-NOWZUGZW.js → chunk-XWEONSLV.js} +1 -1
- package/dist/{chunk-GKIUEIDX.js → chunk-YQMFGWBD.js} +1 -1
- package/dist/{reapply-J527BCJG.js → reapply-D2TFN6XK.js} +9 -8
- package/dist/src/index.js +18 -16
- package/package.json +1 -1
|
@@ -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");
|
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
registerTranscript
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-NFKVRMTM.js";
|
|
5
5
|
import "../chunk-SGZJ5LYH.js";
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
6
|
+
import "../chunk-PCGZXWGQ.js";
|
|
7
|
+
import "../chunk-TFKBFQCE.js";
|
|
8
|
+
import "../chunk-K3QVDAZW.js";
|
|
9
|
+
import "../chunk-NTQSICPJ.js";
|
|
10
|
+
import "../chunk-7XT76LWT.js";
|
|
11
|
+
import "../chunk-EADZPVYW.js";
|
|
12
|
+
import "../chunk-SOCEY746.js";
|
|
13
|
+
import "../chunk-TIWURSLS.js";
|
|
14
|
+
import "../chunk-66H2QQAK.js";
|
|
15
|
+
import "../chunk-2QT3GCU4.js";
|
|
16
16
|
import "../chunk-XHKBHWLX.js";
|
|
17
|
-
import "../chunk-
|
|
18
|
-
import "../chunk-
|
|
19
|
-
import "../chunk-
|
|
17
|
+
import "../chunk-UYDTFCHW.js";
|
|
18
|
+
import "../chunk-UQHUUZ5H.js";
|
|
19
|
+
import "../chunk-DYHXOXUF.js";
|
|
20
20
|
import "../chunk-GMXKITVA.js";
|
|
21
|
-
import "../chunk-
|
|
22
|
-
import "../chunk-FU2DFEAZ.js";
|
|
21
|
+
import "../chunk-USQDVBEV.js";
|
|
23
22
|
import "../chunk-7QLSKOSU.js";
|
|
24
23
|
import "../chunk-KZERVKTD.js";
|
|
25
|
-
import "../chunk-
|
|
24
|
+
import "../chunk-HU5LSYL2.js";
|
|
26
25
|
import "../chunk-T7E75EKA.js";
|
|
27
|
-
import "../chunk-
|
|
28
|
-
import "../chunk-
|
|
26
|
+
import "../chunk-OSJEMXSR.js";
|
|
27
|
+
import "../chunk-T4QY64OR.js";
|
|
28
|
+
import "../chunk-EA3IELHP.js";
|
|
29
|
+
import "../chunk-HWJW3CPO.js";
|
|
29
30
|
|
|
30
31
|
// bin/pushary-transcript-register.ts
|
|
31
32
|
var raw = "";
|
|
@@ -6,18 +6,18 @@ import {
|
|
|
6
6
|
} from "../chunk-SGZJ5LYH.js";
|
|
7
7
|
import {
|
|
8
8
|
transcriptsEnabled
|
|
9
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-2QT3GCU4.js";
|
|
10
10
|
import {
|
|
11
11
|
exitOnHelpFlag
|
|
12
|
-
} from "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-DINDL2CF.js";
|
|
15
|
-
import "../chunk-FU2DFEAZ.js";
|
|
12
|
+
} from "../chunk-P4BNYJ5Q.js";
|
|
13
|
+
import "../chunk-USQDVBEV.js";
|
|
16
14
|
import "../chunk-KZERVKTD.js";
|
|
17
|
-
import "../chunk-
|
|
15
|
+
import "../chunk-HU5LSYL2.js";
|
|
18
16
|
import "../chunk-T7E75EKA.js";
|
|
19
|
-
import "../chunk-
|
|
20
|
-
import "../chunk-
|
|
17
|
+
import "../chunk-OSJEMXSR.js";
|
|
18
|
+
import "../chunk-T4QY64OR.js";
|
|
19
|
+
import "../chunk-EA3IELHP.js";
|
|
20
|
+
import "../chunk-HWJW3CPO.js";
|
|
21
21
|
|
|
22
22
|
// bin/pushary-transcripts.ts
|
|
23
23
|
exitOnHelpFlag("transcripts");
|
|
@@ -1,18 +1,27 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
reapplyAllAgents
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-PNNBMH4E.js";
|
|
5
|
+
import "../chunk-3NBODGQS.js";
|
|
6
6
|
import {
|
|
7
7
|
waitForMachineReadiness
|
|
8
|
-
} from "../chunk-
|
|
9
|
-
import "../chunk-
|
|
8
|
+
} from "../chunk-F57RGL7K.js";
|
|
9
|
+
import "../chunk-J4J45VPZ.js";
|
|
10
10
|
import {
|
|
11
11
|
detectProviderLiveCapabilities,
|
|
12
12
|
hasSpawnProvider,
|
|
13
13
|
resolveControlPolicy
|
|
14
|
-
} from "../chunk-
|
|
15
|
-
import
|
|
14
|
+
} from "../chunk-KEOLNHR3.js";
|
|
15
|
+
import {
|
|
16
|
+
AUTO_UPDATE_DISABLE_ENV,
|
|
17
|
+
describeAutoUpdateCheck,
|
|
18
|
+
globalInstallPrefix,
|
|
19
|
+
isAutoUpdateDisabledByEnv,
|
|
20
|
+
parseAutoUpdateFlag,
|
|
21
|
+
updateAutoUpdateState,
|
|
22
|
+
upgradeEntryFor
|
|
23
|
+
} from "../chunk-OSSDK5RS.js";
|
|
24
|
+
import "../chunk-NTQSICPJ.js";
|
|
16
25
|
import {
|
|
17
26
|
daemonHasRemoteProof,
|
|
18
27
|
daemonServiceManagerAvailable,
|
|
@@ -23,46 +32,207 @@ import {
|
|
|
23
32
|
replaceDaemonService,
|
|
24
33
|
stopDaemonService,
|
|
25
34
|
waitForDaemonRemoteProof
|
|
26
|
-
} from "../chunk-
|
|
27
|
-
import "../chunk-
|
|
35
|
+
} from "../chunk-7XT76LWT.js";
|
|
36
|
+
import "../chunk-EADZPVYW.js";
|
|
28
37
|
import {
|
|
29
38
|
needsShell
|
|
30
39
|
} from "../chunk-XHKBHWLX.js";
|
|
31
|
-
import "../chunk-
|
|
32
|
-
import "../chunk-
|
|
40
|
+
import "../chunk-UYDTFCHW.js";
|
|
41
|
+
import "../chunk-UQHUUZ5H.js";
|
|
33
42
|
import {
|
|
43
|
+
LATEST_TAG,
|
|
44
|
+
autoUpdateLock,
|
|
45
|
+
autoUpdateLog,
|
|
46
|
+
autoUpdateState,
|
|
34
47
|
claudeJson,
|
|
35
48
|
codexConfigToml,
|
|
36
49
|
cursorPluginDir,
|
|
37
50
|
execNpm,
|
|
51
|
+
fetchLatestPublishedVersion,
|
|
38
52
|
geminiSettings,
|
|
53
|
+
installAgentHooksGlobally,
|
|
39
54
|
npmErrorMessage,
|
|
40
55
|
resolveGlobalBinary,
|
|
41
56
|
vscodePluginDir
|
|
42
|
-
} from "../chunk-
|
|
57
|
+
} from "../chunk-DYHXOXUF.js";
|
|
43
58
|
import {
|
|
44
59
|
exitOnHelpFlag
|
|
45
|
-
} from "../chunk-
|
|
46
|
-
import "../chunk-FAH3D74E.js";
|
|
47
|
-
import {
|
|
48
|
-
isNewerVersion
|
|
49
|
-
} from "../chunk-DINDL2CF.js";
|
|
60
|
+
} from "../chunk-P4BNYJ5Q.js";
|
|
50
61
|
import {
|
|
51
62
|
readControlMode
|
|
52
|
-
} from "../chunk-
|
|
53
|
-
import
|
|
54
|
-
|
|
63
|
+
} from "../chunk-USQDVBEV.js";
|
|
64
|
+
import {
|
|
65
|
+
EXIT
|
|
66
|
+
} from "../chunk-KZERVKTD.js";
|
|
67
|
+
import "../chunk-HU5LSYL2.js";
|
|
55
68
|
import "../chunk-T7E75EKA.js";
|
|
56
69
|
import {
|
|
57
70
|
getApiKey
|
|
58
|
-
} from "../chunk-
|
|
59
|
-
import "../chunk-
|
|
71
|
+
} from "../chunk-OSJEMXSR.js";
|
|
72
|
+
import "../chunk-T4QY64OR.js";
|
|
73
|
+
import {
|
|
74
|
+
NPX_LATEST_COMMAND
|
|
75
|
+
} from "../chunk-EA3IELHP.js";
|
|
76
|
+
import {
|
|
77
|
+
isNewerVersion,
|
|
78
|
+
isReleaseVersion,
|
|
79
|
+
isSameMajorVersion,
|
|
80
|
+
ownPackageRoot,
|
|
81
|
+
packageVersionAt
|
|
82
|
+
} from "../chunk-HWJW3CPO.js";
|
|
60
83
|
|
|
61
84
|
// bin/pushary-upgrade.ts
|
|
62
85
|
import { existsSync } from "fs";
|
|
63
86
|
import { homedir } from "os";
|
|
64
87
|
import { join } from "path";
|
|
88
|
+
import { execFileSync as execFileSync2 } from "child_process";
|
|
89
|
+
|
|
90
|
+
// src/auto-update-run.ts
|
|
65
91
|
import { execFileSync } from "child_process";
|
|
92
|
+
import { closeSync, mkdirSync, openSync, statSync, unlinkSync, writeSync } from "fs";
|
|
93
|
+
import { dirname } from "path";
|
|
94
|
+
var FINISH_UPGRADE_FLAG = "--finish-upgrade";
|
|
95
|
+
var LOCK_STALE_MS = 10 * 60 * 1e3;
|
|
96
|
+
var INSTALL_TIMEOUT_MS = 12e4;
|
|
97
|
+
var FINISH_TIMEOUT_MS = 5 * 60 * 1e3;
|
|
98
|
+
var LOG_LIMIT_BYTES = 256 * 1024;
|
|
99
|
+
var UNREADABLE_INSTALLED_VERSION = "could not read the installed version";
|
|
100
|
+
var UNREACHABLE_REGISTRY = "could not read the latest version from the npm registry";
|
|
101
|
+
var MANUAL_UPGRADE_COMMAND = `${NPX_LATEST_COMMAND} upgrade`;
|
|
102
|
+
var isAlreadyExists = (error) => error instanceof Error && "code" in error && error.code === "EEXIST";
|
|
103
|
+
var createLock = (lockPath, now) => {
|
|
104
|
+
const handle = openSync(lockPath, "wx");
|
|
105
|
+
try {
|
|
106
|
+
writeSync(handle, `${JSON.stringify({ pid: process.pid, at: new Date(now).toISOString() })}
|
|
107
|
+
`);
|
|
108
|
+
} finally {
|
|
109
|
+
closeSync(handle);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
var tryCreateLock = (lockPath, now) => {
|
|
113
|
+
try {
|
|
114
|
+
createLock(lockPath, now);
|
|
115
|
+
return "acquired";
|
|
116
|
+
} catch (error) {
|
|
117
|
+
if (isAlreadyExists(error)) return "held";
|
|
118
|
+
throw error;
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
var isStaleLock = (lockPath, now) => {
|
|
122
|
+
const modifiedAt = statSync(lockPath, { throwIfNoEntry: false })?.mtimeMs;
|
|
123
|
+
return modifiedAt !== void 0 && now - modifiedAt > LOCK_STALE_MS;
|
|
124
|
+
};
|
|
125
|
+
var acquireAutoUpdateLock = (lockPath, now) => {
|
|
126
|
+
mkdirSync(dirname(lockPath), { recursive: true });
|
|
127
|
+
if (tryCreateLock(lockPath, now) === "acquired") return "acquired";
|
|
128
|
+
if (!isStaleLock(lockPath, now)) return "held";
|
|
129
|
+
try {
|
|
130
|
+
unlinkSync(lockPath);
|
|
131
|
+
} catch {
|
|
132
|
+
return "held";
|
|
133
|
+
}
|
|
134
|
+
return tryCreateLock(lockPath, now);
|
|
135
|
+
};
|
|
136
|
+
var releaseAutoUpdateLock = (lockPath) => {
|
|
137
|
+
try {
|
|
138
|
+
unlinkSync(lockPath);
|
|
139
|
+
} catch {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
var openAutoUpdateLog = (logPath) => {
|
|
144
|
+
mkdirSync(dirname(logPath), { recursive: true });
|
|
145
|
+
const size = statSync(logPath, { throwIfNoEntry: false })?.size ?? 0;
|
|
146
|
+
return openSync(logPath, size > LOG_LIMIT_BYTES ? "w" : "a");
|
|
147
|
+
};
|
|
148
|
+
var appendAutoUpdateLog = (logPath, line) => {
|
|
149
|
+
try {
|
|
150
|
+
const handle = openAutoUpdateLog(logPath);
|
|
151
|
+
try {
|
|
152
|
+
writeSync(handle, `${line}
|
|
153
|
+
`);
|
|
154
|
+
} finally {
|
|
155
|
+
closeSync(handle);
|
|
156
|
+
}
|
|
157
|
+
} catch {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
var finishInNewInstall = (request) => {
|
|
162
|
+
const handle = openAutoUpdateLog(request.logPath);
|
|
163
|
+
try {
|
|
164
|
+
execFileSync(process.execPath, [request.entry, FINISH_UPGRADE_FLAG], {
|
|
165
|
+
stdio: ["ignore", handle, handle],
|
|
166
|
+
env: { ...process.env, npm_config_prefix: request.prefix },
|
|
167
|
+
timeout: FINISH_TIMEOUT_MS
|
|
168
|
+
});
|
|
169
|
+
} finally {
|
|
170
|
+
closeSync(handle);
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
var incompleteFinishDetail = (logPath) => `installed, but refreshing the agent configs did not finish cleanly; see ${logPath}`;
|
|
174
|
+
var newMajorDetail = (latest) => `${latest} is a new major version; run ${MANUAL_UPGRADE_COMMAND}`;
|
|
175
|
+
var checkAndInstall = async (context) => {
|
|
176
|
+
const installed = packageVersionAt(context.packageRoot);
|
|
177
|
+
if (installed === void 0 || !isReleaseVersion(installed)) {
|
|
178
|
+
return { result: "failed", from: installed, detail: UNREADABLE_INSTALLED_VERSION };
|
|
179
|
+
}
|
|
180
|
+
const latest = await fetchLatestPublishedVersion({ fetchImpl: context.fetchImpl });
|
|
181
|
+
if (latest === void 0) return { result: "failed", from: installed, detail: UNREACHABLE_REGISTRY };
|
|
182
|
+
if (!isNewerVersion(latest, installed)) return { result: "current", from: installed };
|
|
183
|
+
if (!isSameMajorVersion(latest, installed)) {
|
|
184
|
+
return { result: "needs_manual", from: installed, to: latest, detail: newMajorDetail(latest) };
|
|
185
|
+
}
|
|
186
|
+
appendAutoUpdateLog(context.logPath, `${new Date(context.now()).toISOString()} installing ${latest} into ${context.prefix}`);
|
|
187
|
+
try {
|
|
188
|
+
installAgentHooksGlobally({ version: latest, prefix: context.prefix, timeoutMs: INSTALL_TIMEOUT_MS }, context.runNpm);
|
|
189
|
+
} catch (error) {
|
|
190
|
+
return { result: "failed", from: installed, to: latest, detail: npmErrorMessage(error) };
|
|
191
|
+
}
|
|
192
|
+
try {
|
|
193
|
+
context.finish({ entry: upgradeEntryFor(context.prefix), prefix: context.prefix, logPath: context.logPath });
|
|
194
|
+
} catch {
|
|
195
|
+
return { result: "updated", from: installed, to: latest, detail: incompleteFinishDetail(context.logPath) };
|
|
196
|
+
}
|
|
197
|
+
return { result: "updated", from: installed, to: latest };
|
|
198
|
+
};
|
|
199
|
+
var recordAutoUpdateCheck = (statePath, check, at) => updateAutoUpdateState(statePath, {
|
|
200
|
+
lastCheckAt: at,
|
|
201
|
+
lastResult: check.result,
|
|
202
|
+
from: check.from,
|
|
203
|
+
to: check.to,
|
|
204
|
+
at,
|
|
205
|
+
detail: check.detail,
|
|
206
|
+
announced: check.result === "updated" ? false : void 0
|
|
207
|
+
});
|
|
208
|
+
var runAutoUpdate = async (run = {}) => {
|
|
209
|
+
const packageRoot = run.packageRoot ?? ownPackageRoot();
|
|
210
|
+
const prefix = packageRoot === void 0 ? null : globalInstallPrefix(packageRoot);
|
|
211
|
+
if (packageRoot === void 0 || prefix === null) return { kind: "not_global_install" };
|
|
212
|
+
const now = run.now ?? Date.now;
|
|
213
|
+
const lockPath = run.lockPath ?? autoUpdateLock();
|
|
214
|
+
const logPath = run.logPath ?? autoUpdateLog();
|
|
215
|
+
if (acquireAutoUpdateLock(lockPath, now()) === "held") return { kind: "locked" };
|
|
216
|
+
try {
|
|
217
|
+
const check = await checkAndInstall({
|
|
218
|
+
packageRoot,
|
|
219
|
+
prefix,
|
|
220
|
+
logPath,
|
|
221
|
+
now,
|
|
222
|
+
fetchImpl: run.fetchImpl ?? fetch,
|
|
223
|
+
runNpm: run.runNpm ?? execNpm,
|
|
224
|
+
finish: run.finish ?? finishInNewInstall
|
|
225
|
+
});
|
|
226
|
+
const at = new Date(now()).toISOString();
|
|
227
|
+
const state = recordAutoUpdateCheck(run.statePath ?? autoUpdateState(), check, at);
|
|
228
|
+
appendAutoUpdateLog(logPath, `${at} ${describeAutoUpdateCheck(state)}`);
|
|
229
|
+
return { kind: "recorded", state };
|
|
230
|
+
} finally {
|
|
231
|
+
releaseAutoUpdateLock(lockPath);
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
// bin/pushary-upgrade.ts
|
|
66
236
|
exitOnHelpFlag("upgrade");
|
|
67
237
|
var detectInstallModes = () => {
|
|
68
238
|
const candidates = [
|
|
@@ -106,18 +276,6 @@ var getInstalledVersion = () => {
|
|
|
106
276
|
return "";
|
|
107
277
|
}
|
|
108
278
|
};
|
|
109
|
-
var fetchLatestVersion = async () => {
|
|
110
|
-
try {
|
|
111
|
-
const res = await fetch("https://registry.npmjs.org/@pushary/agent-hooks/latest", {
|
|
112
|
-
signal: AbortSignal.timeout(5e3)
|
|
113
|
-
});
|
|
114
|
-
if (!res.ok) return void 0;
|
|
115
|
-
const data = await res.json();
|
|
116
|
-
return data.version;
|
|
117
|
-
} catch {
|
|
118
|
-
return void 0;
|
|
119
|
-
}
|
|
120
|
-
};
|
|
121
279
|
var finishUpgrade = async () => {
|
|
122
280
|
let apiKey;
|
|
123
281
|
try {
|
|
@@ -183,11 +341,47 @@ var finishUpgrade = async () => {
|
|
|
183
341
|
console.log(controlPolicy === "disabled" ? "Done. Your hooks use the new global install; phone-start remains disabled." : controlPolicy === "unsupported" || controlPolicy === "preserve-absent" ? "Done. Your hooks use the new global install; no background service was added." : "Done. Your hooks and background service use the new global install.");
|
|
184
342
|
console.log("Verify with: pushary doctor");
|
|
185
343
|
};
|
|
344
|
+
var AUTO_UPDATE_ON_MESSAGE = "Automatic updates are on. Pushary checks for a new version once a day, when an agent session starts.";
|
|
345
|
+
var AUTO_UPDATE_OFF_MESSAGE = "Automatic updates are off. Turn them back on with: pushary upgrade --auto=on";
|
|
346
|
+
var AUTO_UPDATE_RUN_MESSAGES = {
|
|
347
|
+
not_global_install: `This copy of Pushary is not a global npm install, so it does not update itself. Run: ${NPX_LATEST_COMMAND} upgrade`,
|
|
348
|
+
locked: "Another automatic update is already running."
|
|
349
|
+
};
|
|
350
|
+
var setAutomaticUpdates = (enabled) => {
|
|
351
|
+
updateAutoUpdateState(autoUpdateState(), { disabled: !enabled });
|
|
352
|
+
console.log(enabled ? AUTO_UPDATE_ON_MESSAGE : AUTO_UPDATE_OFF_MESSAGE);
|
|
353
|
+
if (enabled && isAutoUpdateDisabledByEnv(process.env)) {
|
|
354
|
+
console.log(`${AUTO_UPDATE_DISABLE_ENV} is set in this shell, and it keeps them off wherever it is set.`);
|
|
355
|
+
}
|
|
356
|
+
};
|
|
357
|
+
var runAutomaticUpdate = async () => {
|
|
358
|
+
const outcome = await runAutoUpdate();
|
|
359
|
+
if (outcome.kind !== "recorded") {
|
|
360
|
+
console.log(AUTO_UPDATE_RUN_MESSAGES[outcome.kind]);
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
363
|
+
console.log(`Automatic update: ${describeAutoUpdateCheck(outcome.state)}`);
|
|
364
|
+
if (outcome.state.lastResult === "failed") process.exitCode = 1;
|
|
365
|
+
};
|
|
186
366
|
var main = async () => {
|
|
187
|
-
if (process.argv.includes(
|
|
367
|
+
if (process.argv.includes(FINISH_UPGRADE_FLAG)) {
|
|
188
368
|
await finishUpgrade();
|
|
189
369
|
return;
|
|
190
370
|
}
|
|
371
|
+
const autoFlag = parseAutoUpdateFlag(process.argv.slice(2));
|
|
372
|
+
if (autoFlag.kind === "invalid") {
|
|
373
|
+
console.error(`--auto takes on or off (got ${autoFlag.value || "nothing"}).`);
|
|
374
|
+
process.exitCode = EXIT.USAGE;
|
|
375
|
+
return;
|
|
376
|
+
}
|
|
377
|
+
if (autoFlag.kind === "set") {
|
|
378
|
+
setAutomaticUpdates(autoFlag.enabled);
|
|
379
|
+
return;
|
|
380
|
+
}
|
|
381
|
+
if (autoFlag.kind === "run") {
|
|
382
|
+
await runAutomaticUpdate();
|
|
383
|
+
return;
|
|
384
|
+
}
|
|
191
385
|
const installed = getInstalledVersion();
|
|
192
386
|
if (!installed) {
|
|
193
387
|
const found = detectInstallModes();
|
|
@@ -206,14 +400,14 @@ var main = async () => {
|
|
|
206
400
|
console.log("Check the result with: pushary doctor");
|
|
207
401
|
return;
|
|
208
402
|
}
|
|
209
|
-
const latest = await
|
|
403
|
+
const latest = await fetchLatestPublishedVersion();
|
|
210
404
|
if (latest && !isNewerVersion(latest, installed)) {
|
|
211
405
|
console.log(`Already on the latest version (${installed}).`);
|
|
212
406
|
return;
|
|
213
407
|
}
|
|
214
408
|
console.log(`Upgrading @pushary/agent-hooks ${installed} -> ${latest ?? "latest"}`);
|
|
215
409
|
try {
|
|
216
|
-
|
|
410
|
+
installAgentHooksGlobally({ version: LATEST_TAG, timeoutMs: 12e4 });
|
|
217
411
|
} catch (err) {
|
|
218
412
|
console.error(`Upgrade failed: ${npmErrorMessage(err)}`);
|
|
219
413
|
process.exit(1);
|
|
@@ -223,7 +417,7 @@ var main = async () => {
|
|
|
223
417
|
console.error("Upgrade installed, but the new pushary-upgrade binary could not be found on PATH.");
|
|
224
418
|
process.exit(1);
|
|
225
419
|
}
|
|
226
|
-
|
|
420
|
+
execFileSync2(upgradedBinary, [FINISH_UPGRADE_FLAG], {
|
|
227
421
|
stdio: "inherit",
|
|
228
422
|
shell: needsShell(upgradedBinary)
|
|
229
423
|
});
|