@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.
Files changed (111) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +3 -3
  3. package/data/cursor-plugin/README.md +3 -7
  4. package/data/vscode-plugin/README.md +1 -1
  5. package/dist/bin/pushary-bell-hook.js +22 -24
  6. package/dist/bin/pushary-bell.js +13 -13
  7. package/dist/bin/pushary-claude.js +28 -30
  8. package/dist/bin/pushary-clean.js +113 -94
  9. package/dist/bin/pushary-codex-bridge.js +20 -20
  10. package/dist/bin/pushary-codex-hook.js +36 -38
  11. package/dist/bin/pushary-codex.js +13 -13
  12. package/dist/bin/pushary-connect.js +48 -22
  13. package/dist/bin/pushary-cowork.js +5 -5
  14. package/dist/bin/pushary-daemon.js +50 -40
  15. package/dist/bin/pushary-disconnect.js +188 -56
  16. package/dist/bin/pushary-doctor.js +105 -85
  17. package/dist/bin/pushary-elicitation-hook.js +25 -27
  18. package/dist/bin/pushary-gemini-bridge.js +13 -13
  19. package/dist/bin/pushary-gemini-hook.js +31 -33
  20. package/dist/bin/pushary-hook.js +36 -39
  21. package/dist/bin/pushary-login.js +12 -12
  22. package/dist/bin/pushary-logout.js +105 -42
  23. package/dist/bin/pushary-mcp.js +9 -9
  24. package/dist/bin/pushary-mode.js +28 -31
  25. package/dist/bin/pushary-notification-hook.js +29 -32
  26. package/dist/bin/pushary-opencode-hook.js +30 -32
  27. package/dist/bin/pushary-permission-denied-hook.js +30 -33
  28. package/dist/bin/pushary-permission-hook.js +33 -36
  29. package/dist/bin/pushary-post-hook.js +30 -33
  30. package/dist/bin/pushary-prompt-hook.js +29 -32
  31. package/dist/bin/pushary-session-end-hook.js +29 -32
  32. package/dist/bin/pushary-session-start-hook.js +33 -36
  33. package/dist/bin/pushary-setup.js +168 -160
  34. package/dist/bin/pushary-stats.js +5 -5
  35. package/dist/bin/pushary-status.js +65 -19
  36. package/dist/bin/pushary-stop-hook.js +29 -32
  37. package/dist/bin/pushary-stopfailure-hook.js +29 -32
  38. package/dist/bin/pushary-suggestions.js +19 -21
  39. package/dist/bin/pushary-transcript-register.js +18 -20
  40. package/dist/bin/pushary-transcripts.js +7 -7
  41. package/dist/bin/pushary-upgrade.js +50 -26
  42. package/dist/bin/pushary-wait.js +23 -19
  43. package/dist/bin/pushary.js +15 -14
  44. package/dist/{chunk-4FK6RZVJ.js → chunk-462EQA6K.js} +1 -1
  45. package/dist/{chunk-STQRUH3S.js → chunk-5DCDQ5VW.js} +59 -15
  46. package/dist/{chunk-JXISQ7DT.js → chunk-5N5L6DNN.js} +3 -3
  47. package/dist/{chunk-QR6VE5ME.js → chunk-5RGA636G.js} +79 -17
  48. package/dist/{chunk-L76HTPU6.js → chunk-6AYSKVLL.js} +3 -3
  49. package/dist/{chunk-NIBFSARF.js → chunk-6EBGOHDJ.js} +33 -13
  50. package/dist/{chunk-QQ4HBXZC.js → chunk-6W5M3MSE.js} +84 -673
  51. package/dist/{chunk-R3YW55MY.js → chunk-AI7RMFVV.js} +29 -26
  52. package/dist/{chunk-AUUXS44H.js → chunk-APP43AW7.js} +1 -1
  53. package/dist/{chunk-RQGODFQN.js → chunk-AZOKPWVI.js} +1 -1
  54. package/dist/{chunk-3GNUXXDZ.js → chunk-B5NMSP3V.js} +2 -2
  55. package/dist/{chunk-4D2AYNSE.js → chunk-BNSKVIAW.js} +2 -2
  56. package/dist/chunk-BYLKCZ2G.js +367 -0
  57. package/dist/{chunk-X5NXPCIC.js → chunk-BZLHTMT6.js} +89 -7
  58. package/dist/{chunk-BTQGAXZ3.js → chunk-COQ64C4F.js} +10 -10
  59. package/dist/{chunk-N4EUSDKX.js → chunk-DCCSULXK.js} +14 -14
  60. package/dist/{chunk-JWKBDSPF.js → chunk-DP3WX7FW.js} +2 -2
  61. package/dist/chunk-E5HOHIUV.js +52 -0
  62. package/dist/{chunk-GU3EJCVV.js → chunk-EA5NWDK7.js} +4 -0
  63. package/dist/chunk-EIAEUG7G.js +46 -0
  64. package/dist/{chunk-EB4XGVBG.js → chunk-EUW7JL2K.js} +0 -32
  65. package/dist/{chunk-T7Y5EADL.js → chunk-F7R3SZ4Q.js} +2 -2
  66. package/dist/{chunk-H37L7TT3.js → chunk-G7RIDXAT.js} +2 -2
  67. package/dist/{chunk-W2KI5KPD.js → chunk-H5T27W7M.js} +2 -2
  68. package/dist/chunk-HBWYMRR5.js +94 -0
  69. package/dist/{chunk-CBQACHKY.js → chunk-IIVZZMSO.js} +1 -1
  70. package/dist/{chunk-Z6HPS67T.js → chunk-IRHABAQT.js} +1 -1
  71. package/dist/{chunk-QTO6HEZD.js → chunk-K545B734.js} +2 -2
  72. package/dist/{chunk-KYO45G5L.js → chunk-KOWFRUIT.js} +1 -1
  73. package/dist/{chunk-QFEM7R6T.js → chunk-KQFTBQ66.js} +11 -11
  74. package/dist/chunk-LENBKYRB.js +50 -0
  75. package/dist/{chunk-JCWZ23MJ.js → chunk-M3STIAGU.js} +3 -3
  76. package/dist/{chunk-6DJTDHBI.js → chunk-MD4SVNT6.js} +1 -1
  77. package/dist/{chunk-7264S5HZ.js → chunk-MLGIVVSG.js} +1 -1
  78. package/dist/{chunk-H7MMU64M.js → chunk-NGKUXZID.js} +2 -2
  79. package/dist/{chunk-JWQZSYCK.js → chunk-NUVGDBZC.js} +1 -1
  80. package/dist/{chunk-AQ55ZSSS.js → chunk-OAYWO5NP.js} +1 -1
  81. package/dist/chunk-Q6C6ILUS.js +49 -0
  82. package/dist/{chunk-MBK7N46B.js → chunk-QIOIO7VN.js} +6 -6
  83. package/dist/{chunk-KFKL3FHS.js → chunk-QRXPWW3M.js} +4 -3
  84. package/dist/{chunk-7OIWWZAD.js → chunk-QTIUJZRX.js} +3 -3
  85. package/dist/{chunk-XWAYAO3V.js → chunk-R5RIVOPL.js} +2 -2
  86. package/dist/{chunk-ADSQDYYG.js → chunk-REU2VQPH.js} +54 -5
  87. package/dist/{chunk-GKI6LFAV.js → chunk-RQ32ADJP.js} +2 -2
  88. package/dist/{chunk-VXRXFU6Q.js → chunk-SZ4Q6ZVS.js} +14 -7
  89. package/dist/{chunk-KT5E2RLS.js → chunk-T6ZN4TEF.js} +1 -1
  90. package/dist/{chunk-UFVGSEWH.js → chunk-TO3PS646.js} +2 -2
  91. package/dist/chunk-UAP5DS6P.js +599 -0
  92. package/dist/{chunk-MZPXVH4A.js → chunk-UF6RBP5V.js} +204 -28
  93. package/dist/{chunk-AVNKVF7N.js → chunk-UPIZSCYD.js} +4 -4
  94. package/dist/{chunk-3PVDOCFI.js → chunk-VHPFNLRS.js} +5 -5
  95. package/dist/{chunk-HPRZJKRO.js → chunk-VIIHC42X.js} +1 -1
  96. package/dist/{chunk-D6S5EKXA.js → chunk-WRPYCIV2.js} +8 -12
  97. package/dist/{chunk-ZUTU43FT.js → chunk-Z23ZBYDW.js} +6 -4
  98. package/dist/{chunk-SBLPHUEB.js → chunk-ZGADIZDS.js} +8 -6
  99. package/dist/{global-upgrade-E2HUEB4B.js → global-upgrade-H272QOGD.js} +6 -6
  100. package/dist/{paths-QVTEGNZV.js → paths-HMVOTFUN.js} +2 -2
  101. package/dist/reapply-Q5NHDTVU.js +55 -0
  102. package/dist/src/index.d.ts +1 -0
  103. package/dist/src/index.js +19 -20
  104. package/dist/{upgrade-lock-JCIDZMHF.js → upgrade-lock-L3GHFIRW.js} +3 -3
  105. package/package.json +1 -1
  106. package/dist/chunk-4YO4T5FV.js +0 -149
  107. package/dist/chunk-ANEAA37E.js +0 -197
  108. package/dist/chunk-MNWRUGMH.js +0 -86
  109. package/dist/chunk-RQSOEB4S.js +0 -44
  110. package/dist/chunk-SD3272LS.js +0 -143
  111. package/dist/reapply-5QVKM6LA.js +0 -38
@@ -2,52 +2,86 @@
2
2
  import {
3
3
  describeLastSeen,
4
4
  listMachines
5
- } from "../chunk-MBK7N46B.js";
6
- import "../chunk-T7Y5EADL.js";
5
+ } from "../chunk-QIOIO7VN.js";
6
+ import "../chunk-F7R3SZ4Q.js";
7
7
  import "../chunk-RIVNNBEK.js";
8
- import "../chunk-VXRXFU6Q.js";
8
+ import "../chunk-SZ4Q6ZVS.js";
9
9
  import "../chunk-XHKBHWLX.js";
10
- import "../chunk-6ICPEJY5.js";
11
10
  import {
12
11
  describeReach,
13
12
  fetchChannels,
14
13
  reachVerdict
15
- } from "../chunk-N4EUSDKX.js";
14
+ } from "../chunk-DCCSULXK.js";
16
15
  import "../chunk-3EGEA4KH.js";
17
16
  import "../chunk-QCGNGEGE.js";
17
+ import {
18
+ SIGNED_OUT_ON_MAC_MESSAGE,
19
+ activeKeyVerdictOf,
20
+ describeSignedOutKey,
21
+ readSignedOutDiagnosis
22
+ } from "../chunk-Q6C6ILUS.js";
23
+ import {
24
+ CONNECTED_THROUGH_MAC_APP,
25
+ readMacAppConnectionWhenKeyless
26
+ } from "../chunk-E5HOHIUV.js";
27
+ import "../chunk-BZLHTMT6.js";
28
+ import "../chunk-UF6RBP5V.js";
18
29
  import {
19
30
  createIo
20
31
  } from "../chunk-U4TMAANR.js";
21
32
  import {
22
33
  exitOnHelpFlag
23
- } from "../chunk-UFVGSEWH.js";
34
+ } from "../chunk-TO3PS646.js";
35
+ import "../chunk-BYLKCZ2G.js";
36
+ import "../chunk-M3STIAGU.js";
37
+ import "../chunk-ZGADIZDS.js";
38
+ import "../chunk-MLGIVVSG.js";
24
39
  import {
25
40
  rejectUnknownFlags
26
41
  } from "../chunk-GMXKITVA.js";
42
+ import "../chunk-6ICPEJY5.js";
27
43
  import {
28
44
  readKeySource
29
- } from "../chunk-ADSQDYYG.js";
30
- import "../chunk-L76HTPU6.js";
45
+ } from "../chunk-REU2VQPH.js";
46
+ import "../chunk-KQFTBQ66.js";
47
+ import "../chunk-N6IOSZOE.js";
48
+ import "../chunk-MD4SVNT6.js";
49
+ import "../chunk-WRPYCIV2.js";
50
+ import "../chunk-6AYSKVLL.js";
31
51
  import {
32
52
  checkApiKey,
33
53
  describeKeyCheck
34
- } from "../chunk-KFKL3FHS.js";
35
- import "../chunk-JXISQ7DT.js";
36
- import "../chunk-KYO45G5L.js";
54
+ } from "../chunk-QRXPWW3M.js";
55
+ import "../chunk-UPIZSCYD.js";
56
+ import "../chunk-POFBE6ZY.js";
57
+ import "../chunk-5N5L6DNN.js";
58
+ import "../chunk-KOWFRUIT.js";
37
59
  import {
38
60
  UsageError
39
61
  } from "../chunk-7QLSKOSU.js";
40
62
  import {
41
63
  EXIT
42
64
  } from "../chunk-KZERVKTD.js";
43
- import "../chunk-4D2AYNSE.js";
44
- import "../chunk-ZUTU43FT.js";
65
+ import "../chunk-BNSKVIAW.js";
66
+ import "../chunk-Z23ZBYDW.js";
45
67
  import "../chunk-T7E75EKA.js";
46
- import "../chunk-Z6HPS67T.js";
47
- import "../chunk-STQRUH3S.js";
48
- import "../chunk-QR6VE5ME.js";
68
+ import "../chunk-IRHABAQT.js";
69
+ import "../chunk-5DCDQ5VW.js";
70
+ import "../chunk-5RGA636G.js";
49
71
 
50
72
  // src/status.ts
73
+ var signedOutReport = (facts, lines) => {
74
+ const signedOut = facts.signedOut;
75
+ if (signedOut?.kind !== "signed_out_on_mac") return null;
76
+ lines.push({ label: "Server", value: "key signed out on this Mac", ok: false });
77
+ return { lines, headline: SIGNED_OUT_ON_MAC_MESSAGE, next: [...describeSignedOutKey(signedOut)], exitCode: EXIT.UNAUTHENTICATED };
78
+ };
79
+ var connectedThroughMacAppReport = (macApp) => ({
80
+ lines: [{ label: "Key", value: `${macApp.keyPrefix} held by the Pushary Mac app`, ok: true }],
81
+ headline: `${CONNECTED_THROUGH_MAC_APP}.`,
82
+ next: ["Approvals, phone pairing and account settings for this computer are in the Pushary Mac app."],
83
+ exitCode: EXIT.OK
84
+ });
51
85
  var keySourceLine = (source) => {
52
86
  if (source.kind === "none") {
53
87
  return { label: "Key", value: "none found", ok: false };
@@ -86,6 +120,9 @@ var buildStatusReport = (facts) => {
86
120
  });
87
121
  }
88
122
  if (facts.source.kind === "none") {
123
+ const signedOut = signedOutReport(facts, lines);
124
+ if (signedOut) return signedOut;
125
+ if (facts.macApp?.kind === "connected") return connectedThroughMacAppReport(facts.macApp);
89
126
  return {
90
127
  lines,
91
128
  headline: "Not set up on this machine.",
@@ -95,6 +132,8 @@ var buildStatusReport = (facts) => {
95
132
  }
96
133
  const check = facts.keyCheck;
97
134
  if (check && check.kind !== "ok") {
135
+ const signedOut = check.kind === "rejected" ? signedOutReport(facts, lines) : null;
136
+ if (signedOut) return signedOut;
98
137
  const report = describeKeyCheck(check);
99
138
  lines.push({ label: "Server", value: report.message, ok: check.kind === "unreachable" ? null : false });
100
139
  return { lines, headline: report.message, next: [...report.next], exitCode: report.exitCode };
@@ -148,7 +187,7 @@ var buildStatusReport = (facts) => {
148
187
  return {
149
188
  lines,
150
189
  headline: verdict.kind === "nobody" ? "Configured, but no device can receive an approval." : verdict.kind === "others" ? "Configured, but the only devices here are your teammates'." : "Configured, and nothing proves an approval reaches you.",
151
- next: verdict.kind === "nobody" ? ["Run `pushary connect` to add your phone, or install the Pushary app."] : ["Run `pushary connect` to add your own phone.", "Or `pushary doctor --roundtrip` to prove one of these is yours."],
190
+ next: verdict.kind === "nobody" ? ["Run `pushary pair` to pair your phone, or install the Pushary app."] : ["Run `pushary pair` to pair your own phone.", "Or `pushary doctor --roundtrip` to prove one of these is yours."],
152
191
  exitCode: EXIT.NO_DEVICE
153
192
  };
154
193
  }
@@ -156,7 +195,7 @@ var buildStatusReport = (facts) => {
156
195
  return {
157
196
  lines,
158
197
  headline: "Configured, but nothing in your pocket can receive an approval.",
159
- next: ["Run `pushary connect` and connect your phone, or install the Pushary app."],
198
+ next: ["Run `pushary pair` to pair your phone, or install the Pushary app."],
160
199
  exitCode: EXIT.NO_DEVICE
161
200
  };
162
201
  }
@@ -175,6 +214,7 @@ var statusJson = (facts, report) => ({
175
214
  keySource: facts.source.kind,
176
215
  keyOrigin: facts.source.origin,
177
216
  keyPrefix: facts.source.key ? facts.source.key.split(".")[0] : null,
217
+ connectedThroughMacApp: facts.macApp?.kind === "connected",
178
218
  drift: facts.source.drift ? {
179
219
  env: facts.source.drift.envPrefix,
180
220
  config: facts.source.drift.configPrefix,
@@ -208,7 +248,13 @@ var main = async () => {
208
248
  if (keyCheck.kind === "ok") channels = await fetchChannels(source.key);
209
249
  }
210
250
  const machines = devices && keyCheck?.kind === "ok" ? await listMachines(source.key) : null;
211
- const facts = { source, keyCheck, channels };
251
+ const facts = {
252
+ source,
253
+ keyCheck,
254
+ channels,
255
+ signedOut: readSignedOutDiagnosis(source.key, activeKeyVerdictOf(keyCheck)),
256
+ macApp: readMacAppConnectionWhenKeyless(source.key)
257
+ };
212
258
  const report = buildStatusReport(facts);
213
259
  if (json) {
214
260
  const payload = statusJson(facts, report);
@@ -1,50 +1,47 @@
1
1
  #!/usr/bin/env node
2
- import {
3
- activeHookSource,
4
- activeIdentity
5
- } from "../chunk-MZPXVH4A.js";
6
- import "../chunk-ANEAA37E.js";
7
2
  import {
8
3
  readHookInput
9
- } from "../chunk-XWAYAO3V.js";
10
- import "../chunk-BTQGAXZ3.js";
4
+ } from "../chunk-R5RIVOPL.js";
5
+ import "../chunk-COQ64C4F.js";
11
6
  import "../chunk-SGZJ5LYH.js";
12
- import "../chunk-SD3272LS.js";
13
- import "../chunk-SBLPHUEB.js";
14
- import "../chunk-MNWRUGMH.js";
15
- import "../chunk-4YO4T5FV.js";
16
- import "../chunk-VXRXFU6Q.js";
17
- import "../chunk-JCWZ23MJ.js";
18
- import "../chunk-7264S5HZ.js";
19
- import "../chunk-AUUXS44H.js";
20
- import "../chunk-4FK6RZVJ.js";
21
- import "../chunk-HPRZJKRO.js";
7
+ import "../chunk-SZ4Q6ZVS.js";
8
+ import "../chunk-APP43AW7.js";
9
+ import "../chunk-462EQA6K.js";
10
+ import "../chunk-VIIHC42X.js";
22
11
  import "../chunk-XHKBHWLX.js";
12
+ import {
13
+ activeHookSource,
14
+ activeIdentity
15
+ } from "../chunk-UF6RBP5V.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";
23
21
  import "../chunk-6ICPEJY5.js";
22
+ import "../chunk-REU2VQPH.js";
24
23
  import {
25
24
  handleStop,
26
25
  handleSubagentStop,
27
26
  isSubagentStop
28
- } from "../chunk-QFEM7R6T.js";
27
+ } from "../chunk-KQFTBQ66.js";
29
28
  import "../chunk-N6IOSZOE.js";
30
- import "../chunk-6DJTDHBI.js";
31
- import "../chunk-D6S5EKXA.js";
32
- import "../chunk-AVNKVF7N.js";
29
+ import "../chunk-MD4SVNT6.js";
30
+ import "../chunk-WRPYCIV2.js";
31
+ import "../chunk-6AYSKVLL.js";
32
+ import "../chunk-QRXPWW3M.js";
33
+ import "../chunk-UPIZSCYD.js";
33
34
  import "../chunk-POFBE6ZY.js";
34
- import "../chunk-GMXKITVA.js";
35
- import "../chunk-ADSQDYYG.js";
36
- import "../chunk-L76HTPU6.js";
37
- import "../chunk-KFKL3FHS.js";
38
- import "../chunk-JXISQ7DT.js";
39
- import "../chunk-KYO45G5L.js";
35
+ import "../chunk-5N5L6DNN.js";
36
+ import "../chunk-KOWFRUIT.js";
40
37
  import "../chunk-7QLSKOSU.js";
41
38
  import "../chunk-KZERVKTD.js";
42
- import "../chunk-4D2AYNSE.js";
43
- import "../chunk-ZUTU43FT.js";
39
+ import "../chunk-BNSKVIAW.js";
40
+ import "../chunk-Z23ZBYDW.js";
44
41
  import "../chunk-T7E75EKA.js";
45
- import "../chunk-Z6HPS67T.js";
46
- import "../chunk-STQRUH3S.js";
47
- import "../chunk-QR6VE5ME.js";
42
+ import "../chunk-IRHABAQT.js";
43
+ import "../chunk-5DCDQ5VW.js";
44
+ import "../chunk-5RGA636G.js";
48
45
 
49
46
  // bin/pushary-stop-hook.ts
50
47
  var AGENT = activeIdentity(process.argv);
@@ -1,48 +1,45 @@
1
1
  #!/usr/bin/env node
2
- import {
3
- activeHookSource,
4
- activeIdentity
5
- } from "../chunk-MZPXVH4A.js";
6
- import "../chunk-ANEAA37E.js";
7
2
  import {
8
3
  readHookInput
9
- } from "../chunk-XWAYAO3V.js";
10
- import "../chunk-BTQGAXZ3.js";
4
+ } from "../chunk-R5RIVOPL.js";
5
+ import "../chunk-COQ64C4F.js";
11
6
  import "../chunk-SGZJ5LYH.js";
12
- import "../chunk-SD3272LS.js";
13
- import "../chunk-SBLPHUEB.js";
14
- import "../chunk-MNWRUGMH.js";
15
- import "../chunk-4YO4T5FV.js";
16
- import "../chunk-VXRXFU6Q.js";
17
- import "../chunk-JCWZ23MJ.js";
18
- import "../chunk-7264S5HZ.js";
19
- import "../chunk-AUUXS44H.js";
20
- import "../chunk-4FK6RZVJ.js";
21
- import "../chunk-HPRZJKRO.js";
7
+ import "../chunk-SZ4Q6ZVS.js";
8
+ import "../chunk-APP43AW7.js";
9
+ import "../chunk-462EQA6K.js";
10
+ import "../chunk-VIIHC42X.js";
22
11
  import "../chunk-XHKBHWLX.js";
12
+ import {
13
+ activeHookSource,
14
+ activeIdentity
15
+ } from "../chunk-UF6RBP5V.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";
23
21
  import "../chunk-6ICPEJY5.js";
22
+ import "../chunk-REU2VQPH.js";
24
23
  import {
25
24
  handleStopFailure
26
- } from "../chunk-QFEM7R6T.js";
25
+ } from "../chunk-KQFTBQ66.js";
27
26
  import "../chunk-N6IOSZOE.js";
28
- import "../chunk-6DJTDHBI.js";
29
- import "../chunk-D6S5EKXA.js";
30
- import "../chunk-AVNKVF7N.js";
27
+ import "../chunk-MD4SVNT6.js";
28
+ import "../chunk-WRPYCIV2.js";
29
+ import "../chunk-6AYSKVLL.js";
30
+ import "../chunk-QRXPWW3M.js";
31
+ import "../chunk-UPIZSCYD.js";
31
32
  import "../chunk-POFBE6ZY.js";
32
- import "../chunk-GMXKITVA.js";
33
- import "../chunk-ADSQDYYG.js";
34
- import "../chunk-L76HTPU6.js";
35
- import "../chunk-KFKL3FHS.js";
36
- import "../chunk-JXISQ7DT.js";
37
- import "../chunk-KYO45G5L.js";
33
+ import "../chunk-5N5L6DNN.js";
34
+ import "../chunk-KOWFRUIT.js";
38
35
  import "../chunk-7QLSKOSU.js";
39
36
  import "../chunk-KZERVKTD.js";
40
- import "../chunk-4D2AYNSE.js";
41
- import "../chunk-ZUTU43FT.js";
37
+ import "../chunk-BNSKVIAW.js";
38
+ import "../chunk-Z23ZBYDW.js";
42
39
  import "../chunk-T7E75EKA.js";
43
- import "../chunk-Z6HPS67T.js";
44
- import "../chunk-STQRUH3S.js";
45
- import "../chunk-QR6VE5ME.js";
40
+ import "../chunk-IRHABAQT.js";
41
+ import "../chunk-5DCDQ5VW.js";
42
+ import "../chunk-5RGA636G.js";
46
43
 
47
44
  // bin/pushary-stopfailure-hook.ts
48
45
  var AGENT = activeIdentity(process.argv);
@@ -1,37 +1,40 @@
1
1
  #!/usr/bin/env node
2
+ import {
3
+ exitOnFailedSettingsRequest
4
+ } from "../chunk-HBWYMRR5.js";
5
+ import "../chunk-Q6C6ILUS.js";
2
6
  import {
3
7
  createIo
4
8
  } from "../chunk-U4TMAANR.js";
5
9
  import {
6
10
  exitOnHelpFlag
7
- } from "../chunk-UFVGSEWH.js";
11
+ } from "../chunk-TO3PS646.js";
8
12
  import {
9
13
  rejectUnknownFlags
10
14
  } from "../chunk-GMXKITVA.js";
15
+ import "../chunk-REU2VQPH.js";
16
+ import "../chunk-QRXPWW3M.js";
17
+ import "../chunk-5N5L6DNN.js";
18
+ import "../chunk-KOWFRUIT.js";
11
19
  import {
12
20
  UsageError
13
21
  } from "../chunk-7QLSKOSU.js";
14
22
  import {
15
23
  EXIT
16
24
  } from "../chunk-KZERVKTD.js";
25
+ import "../chunk-BNSKVIAW.js";
26
+ import "../chunk-Z23ZBYDW.js";
27
+ import "../chunk-T7E75EKA.js";
17
28
  import {
18
29
  getApiKey,
19
30
  getBaseUrl
20
- } from "../chunk-Z6HPS67T.js";
21
- import "../chunk-STQRUH3S.js";
22
- import "../chunk-QR6VE5ME.js";
31
+ } from "../chunk-IRHABAQT.js";
32
+ import "../chunk-5DCDQ5VW.js";
33
+ import "../chunk-5RGA636G.js";
23
34
 
24
35
  // bin/pushary-suggestions.ts
25
36
  exitOnHelpFlag("suggestions");
26
- var { dim, green, cyan, red } = createIo();
27
- var errorMessage = async (res) => {
28
- try {
29
- const body = await res.json();
30
- return body.error ?? `HTTP ${res.status}`;
31
- } catch {
32
- return `HTTP ${res.status}`;
33
- }
34
- };
37
+ var { dim, green, cyan } = createIo();
35
38
  {
36
39
  const raw = process.argv.slice(2);
37
40
  const positional = raw[0] === "suggestions" ? raw.slice(1) : raw;
@@ -46,6 +49,7 @@ var errorMessage = async (res) => {
46
49
  var main = async () => {
47
50
  const apiKey = getApiKey();
48
51
  const baseUrl = getBaseUrl();
52
+ const settings = { request: "suggestions", apiKey, baseUrl };
49
53
  const headers = { Authorization: `Bearer ${apiKey}`, "Content-Type": "application/json" };
50
54
  const rest = process.argv.slice(2);
51
55
  const args = rest[0] === "suggestions" ? rest.slice(1) : rest;
@@ -61,18 +65,12 @@ var main = async () => {
61
65
  headers,
62
66
  body: JSON.stringify({ id })
63
67
  });
64
- if (!res2.ok) {
65
- console.error(` ${red("\u2717")} ${await errorMessage(res2)}`);
66
- process.exit(1);
67
- }
68
+ if (!res2.ok) await exitOnFailedSettingsRequest(res2, settings);
68
69
  console.log(` ${green("\u2713")} Accepted. The rule is live now; your agents will pick it up on their next check.`);
69
70
  return;
70
71
  }
71
72
  const res = await fetch(`${baseUrl}/api/mcp/suggestions`, { headers });
72
- if (!res.ok) {
73
- console.error(` ${red("\u2717")} ${await errorMessage(res)}`);
74
- process.exit(1);
75
- }
73
+ if (!res.ok) await exitOnFailedSettingsRequest(res, settings);
76
74
  const { suggestions } = await res.json();
77
75
  if (suggestions.length === 0) {
78
76
  console.log(` ${dim("No pending suggestions. Keep approving; a rule is offered once a pattern is earned.")}`);
@@ -1,32 +1,30 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  registerTranscript
4
- } from "../chunk-BTQGAXZ3.js";
4
+ } from "../chunk-COQ64C4F.js";
5
5
  import "../chunk-SGZJ5LYH.js";
6
- import "../chunk-SD3272LS.js";
7
- import "../chunk-SBLPHUEB.js";
8
- import "../chunk-MNWRUGMH.js";
9
- import "../chunk-4YO4T5FV.js";
10
- import "../chunk-VXRXFU6Q.js";
11
- import "../chunk-JCWZ23MJ.js";
12
- import "../chunk-7264S5HZ.js";
13
- import "../chunk-AUUXS44H.js";
14
- import "../chunk-4FK6RZVJ.js";
15
- import "../chunk-HPRZJKRO.js";
6
+ import "../chunk-SZ4Q6ZVS.js";
7
+ import "../chunk-APP43AW7.js";
8
+ import "../chunk-462EQA6K.js";
9
+ import "../chunk-VIIHC42X.js";
16
10
  import "../chunk-XHKBHWLX.js";
17
- import "../chunk-6ICPEJY5.js";
18
- import "../chunk-6DJTDHBI.js";
11
+ import "../chunk-BYLKCZ2G.js";
12
+ import "../chunk-M3STIAGU.js";
13
+ import "../chunk-ZGADIZDS.js";
14
+ import "../chunk-MLGIVVSG.js";
19
15
  import "../chunk-GMXKITVA.js";
20
- import "../chunk-ADSQDYYG.js";
21
- import "../chunk-KYO45G5L.js";
16
+ import "../chunk-6ICPEJY5.js";
17
+ import "../chunk-REU2VQPH.js";
18
+ import "../chunk-MD4SVNT6.js";
19
+ import "../chunk-KOWFRUIT.js";
22
20
  import "../chunk-7QLSKOSU.js";
23
21
  import "../chunk-KZERVKTD.js";
24
- import "../chunk-4D2AYNSE.js";
25
- import "../chunk-ZUTU43FT.js";
22
+ import "../chunk-BNSKVIAW.js";
23
+ import "../chunk-Z23ZBYDW.js";
26
24
  import "../chunk-T7E75EKA.js";
27
- import "../chunk-Z6HPS67T.js";
28
- import "../chunk-STQRUH3S.js";
29
- import "../chunk-QR6VE5ME.js";
25
+ import "../chunk-IRHABAQT.js";
26
+ import "../chunk-5DCDQ5VW.js";
27
+ import "../chunk-5RGA636G.js";
30
28
 
31
29
  // bin/pushary-transcript-register.ts
32
30
  var raw = "";
@@ -6,17 +6,17 @@ import {
6
6
  } from "../chunk-SGZJ5LYH.js";
7
7
  import {
8
8
  transcriptsEnabled
9
- } from "../chunk-HPRZJKRO.js";
9
+ } from "../chunk-VIIHC42X.js";
10
10
  import {
11
11
  exitOnHelpFlag
12
- } from "../chunk-UFVGSEWH.js";
13
- import "../chunk-ADSQDYYG.js";
12
+ } from "../chunk-TO3PS646.js";
13
+ import "../chunk-REU2VQPH.js";
14
14
  import "../chunk-KZERVKTD.js";
15
- import "../chunk-4D2AYNSE.js";
15
+ import "../chunk-BNSKVIAW.js";
16
16
  import "../chunk-T7E75EKA.js";
17
- import "../chunk-Z6HPS67T.js";
18
- import "../chunk-STQRUH3S.js";
19
- import "../chunk-QR6VE5ME.js";
17
+ import "../chunk-IRHABAQT.js";
18
+ import "../chunk-5DCDQ5VW.js";
19
+ import "../chunk-5RGA636G.js";
20
20
 
21
21
  // bin/pushary-transcripts.ts
22
22
  exitOnHelpFlag("transcripts");
@@ -9,29 +9,27 @@ import {
9
9
  upgradeFinishOutcome,
10
10
  upgradeInstalledPackage,
11
11
  withUpgradeLock
12
- } from "../chunk-3PVDOCFI.js";
12
+ } from "../chunk-VHPFNLRS.js";
13
13
  import {
14
14
  installWithUpgradeLock
15
- } from "../chunk-RQGODFQN.js";
15
+ } from "../chunk-AZOKPWVI.js";
16
16
  import {
17
17
  ensureCodexTrustAfterReapply,
18
18
  reapplyAllAgents
19
- } from "../chunk-NIBFSARF.js";
19
+ } from "../chunk-6EBGOHDJ.js";
20
20
  import {
21
21
  describeCodexTrustConfirmation
22
- } from "../chunk-JWKBDSPF.js";
23
- import "../chunk-H7MMU64M.js";
22
+ } from "../chunk-DP3WX7FW.js";
23
+ import "../chunk-NGKUXZID.js";
24
24
  import {
25
25
  waitForMachineReadiness
26
- } from "../chunk-MBK7N46B.js";
27
- import "../chunk-X5NXPCIC.js";
28
- import "../chunk-ANEAA37E.js";
26
+ } from "../chunk-QIOIO7VN.js";
29
27
  import {
30
28
  detectProviderLiveCapabilities,
31
29
  expectedLaunchCapabilities,
32
30
  hasSpawnProvider,
33
31
  resolveControlPolicy
34
- } from "../chunk-T7Y5EADL.js";
32
+ } from "../chunk-F7R3SZ4Q.js";
35
33
  import "../chunk-RIVNNBEK.js";
36
34
  import {
37
35
  AUTO_UPDATE_DISABLE_ENV,
@@ -42,8 +40,7 @@ import {
42
40
  parseAutoUpdateFlag,
43
41
  readAutoUpdateState,
44
42
  updateAutoUpdateState
45
- } from "../chunk-QTO6HEZD.js";
46
- import "../chunk-4YO4T5FV.js";
43
+ } from "../chunk-K545B734.js";
47
44
  import {
48
45
  DAEMON_COLD_START_TIMEOUT_MS,
49
46
  daemonHasRemoteProof,
@@ -55,23 +52,41 @@ import {
55
52
  replaceDaemonService,
56
53
  stopDaemonService,
57
54
  waitForDaemonRemoteProof
58
- } from "../chunk-VXRXFU6Q.js";
59
- import "../chunk-JCWZ23MJ.js";
55
+ } from "../chunk-SZ4Q6ZVS.js";
60
56
  import "../chunk-XHKBHWLX.js";
61
- import "../chunk-6ICPEJY5.js";
62
- import "../chunk-6DJTDHBI.js";
63
- import "../chunk-POFBE6ZY.js";
57
+ import {
58
+ readMacAppAgentKey
59
+ } from "../chunk-E5HOHIUV.js";
60
+ import "../chunk-BZLHTMT6.js";
61
+ import "../chunk-UF6RBP5V.js";
64
62
  import {
65
63
  exitOnHelpFlag
66
- } from "../chunk-UFVGSEWH.js";
64
+ } from "../chunk-TO3PS646.js";
65
+ import "../chunk-BYLKCZ2G.js";
66
+ import "../chunk-M3STIAGU.js";
67
+ import "../chunk-ZGADIZDS.js";
68
+ import "../chunk-MLGIVVSG.js";
69
+ import "../chunk-GMXKITVA.js";
70
+ import "../chunk-6ICPEJY5.js";
67
71
  import {
68
- readControlMode
69
- } from "../chunk-ADSQDYYG.js";
70
- import "../chunk-KYO45G5L.js";
72
+ readControlMode,
73
+ recordMacAppKeyPrefix
74
+ } from "../chunk-REU2VQPH.js";
75
+ import "../chunk-KQFTBQ66.js";
76
+ import "../chunk-N6IOSZOE.js";
77
+ import "../chunk-MD4SVNT6.js";
78
+ import "../chunk-WRPYCIV2.js";
79
+ import "../chunk-6AYSKVLL.js";
80
+ import "../chunk-QRXPWW3M.js";
81
+ import "../chunk-UPIZSCYD.js";
82
+ import "../chunk-POFBE6ZY.js";
83
+ import "../chunk-5N5L6DNN.js";
84
+ import "../chunk-KOWFRUIT.js";
85
+ import "../chunk-7QLSKOSU.js";
71
86
  import {
72
87
  EXIT
73
88
  } from "../chunk-KZERVKTD.js";
74
- import "../chunk-4D2AYNSE.js";
89
+ import "../chunk-BNSKVIAW.js";
75
90
  import {
76
91
  LATEST_TAG,
77
92
  autoUpdateState,
@@ -81,19 +96,19 @@ import {
81
96
  fetchLatestPublishedVersion,
82
97
  geminiSettings,
83
98
  vscodePluginDir
84
- } from "../chunk-ZUTU43FT.js";
99
+ } from "../chunk-Z23ZBYDW.js";
85
100
  import "../chunk-T7E75EKA.js";
86
101
  import {
87
102
  getApiKey
88
- } from "../chunk-Z6HPS67T.js";
103
+ } from "../chunk-IRHABAQT.js";
89
104
  import {
90
105
  NPX_LATEST_COMMAND
91
- } from "../chunk-STQRUH3S.js";
106
+ } from "../chunk-5DCDQ5VW.js";
92
107
  import {
93
108
  CANONICAL_PACKAGE,
94
109
  LEGACY_PACKAGE,
95
110
  getPackageVersion
96
- } from "../chunk-QR6VE5ME.js";
111
+ } from "../chunk-5RGA636G.js";
97
112
 
98
113
  // bin/pushary-upgrade.ts
99
114
  import { existsSync } from "fs";
@@ -142,9 +157,12 @@ var finishUpgrade = async () => {
142
157
  } catch {
143
158
  apiKey = void 0;
144
159
  }
160
+ const macAppKey = readMacAppAgentKey();
161
+ if (macAppKey) recordMacAppKeyPrefix(macAppKey);
145
162
  const inspectedAgents = reapplyAllAgents(apiKey);
146
163
  const codexTrust = await ensureCodexTrustAfterReapply(inspectedAgents);
147
164
  const refreshed = inspectedAgents.filter((agent) => agent.result.reapplied);
165
+ const keptForApp = inspectedAgents.filter((agent) => agent.heldBy === "app");
148
166
  const failedRefreshes = inspectedAgents.filter((agent) => agent.result.failed);
149
167
  const configuredControlProviders = inspectedAgents.filter((agent) => agent.result.configured && (agent.id === "claude" || agent.id === "codex" || agent.id === "gemini")).map((agent) => agent.id);
150
168
  const controlMode = readControlMode();
@@ -191,9 +209,14 @@ var finishUpgrade = async () => {
191
209
  console.log();
192
210
  console.log("No key was readable here, so MCP entries kept the key they already had.");
193
211
  }
194
- } else if (failedRefreshes.length === 0) {
212
+ } else if (failedRefreshes.length === 0 && keptForApp.length === 0) {
195
213
  console.log("No agent config on this machine needed refreshing.");
196
214
  }
215
+ if (keptForApp.length > 0) {
216
+ if (refreshed.length > 0) console.log();
217
+ console.log(KEPT_FOR_APP_HEADING);
218
+ for (const agent of keptForApp) console.log(` ${agent.label}`);
219
+ }
197
220
  if (codexTrust) {
198
221
  console.log();
199
222
  console.log(describeCodexTrustConfirmation(codexTrust));
@@ -212,6 +235,7 @@ var finishUpgrade = async () => {
212
235
  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.");
213
236
  console.log("Verify with: pushary doctor");
214
237
  };
238
+ var KEPT_FOR_APP_HEADING = "Kept for the Pushary Mac app, which owns these agents. Nothing in their config was changed:";
215
239
  var AUTO_UPDATE_ON_MESSAGE = "Automatic updates are on. Pushary checks for a new version once a day, when an agent session starts.";
216
240
  var AUTO_UPDATE_OFF_MESSAGE = "Automatic updates are off. Turn them back on with: pushary upgrade --auto=on";
217
241
  var AUTO_UPDATE_RUN_MESSAGES = {