@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
@@ -5,10 +5,10 @@ import {
5
5
  postLiveSession,
6
6
  postLiveSessionUntilAccepted,
7
7
  startLiveSessionHeartbeat
8
- } from "../chunk-GKI6LFAV.js";
8
+ } from "../chunk-RQ32ADJP.js";
9
9
  import {
10
10
  resolveProviderBinary
11
- } from "../chunk-T7Y5EADL.js";
11
+ } from "../chunk-F7R3SZ4Q.js";
12
12
  import "../chunk-RIVNNBEK.js";
13
13
  import {
14
14
  SESSION_IDLE_TIMEOUT_MS,
@@ -16,52 +16,52 @@ import {
16
16
  idleDeadlinePassed,
17
17
  startProcessOwnership,
18
18
  withSpawnProcessOwnership
19
- } from "../chunk-JWQZSYCK.js";
20
- import "../chunk-AUUXS44H.js";
21
- import "../chunk-4FK6RZVJ.js";
19
+ } from "../chunk-NUVGDBZC.js";
20
+ import "../chunk-APP43AW7.js";
21
+ import "../chunk-462EQA6K.js";
22
22
  import {
23
23
  transcriptsEnabled
24
- } from "../chunk-HPRZJKRO.js";
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-REU2VQPH.js";
29
30
  import {
30
31
  isAskUserResponse,
31
32
  isDecisionStopped,
32
33
  isWaitForAnswerResponse,
33
34
  withdrawQuestion
34
- } from "../chunk-D6S5EKXA.js";
35
+ } from "../chunk-WRPYCIV2.js";
36
+ import {
37
+ callMcpTool
38
+ } from "../chunk-6AYSKVLL.js";
39
+ import "../chunk-QRXPWW3M.js";
35
40
  import {
36
41
  writeDegraded
37
- } from "../chunk-AVNKVF7N.js";
42
+ } from "../chunk-UPIZSCYD.js";
38
43
  import "../chunk-POFBE6ZY.js";
39
- import "../chunk-ADSQDYYG.js";
40
- import {
41
- callMcpTool
42
- } from "../chunk-L76HTPU6.js";
43
- import "../chunk-KFKL3FHS.js";
44
- import "../chunk-JXISQ7DT.js";
44
+ import "../chunk-5N5L6DNN.js";
45
45
  import {
46
46
  getMachineId
47
- } from "../chunk-KYO45G5L.js";
47
+ } from "../chunk-KOWFRUIT.js";
48
48
  import "../chunk-7QLSKOSU.js";
49
49
  import "../chunk-KZERVKTD.js";
50
- import "../chunk-4D2AYNSE.js";
51
- import "../chunk-ZUTU43FT.js";
50
+ import "../chunk-BNSKVIAW.js";
51
+ import "../chunk-Z23ZBYDW.js";
52
52
  import "../chunk-T7E75EKA.js";
53
53
  import {
54
54
  getApiKey,
55
55
  getBaseUrl
56
- } from "../chunk-Z6HPS67T.js";
57
- import "../chunk-STQRUH3S.js";
56
+ } from "../chunk-IRHABAQT.js";
57
+ import "../chunk-5DCDQ5VW.js";
58
58
  import {
59
59
  elicitationContent,
60
60
  parseAgentQuestion,
61
61
  parseAgentQuestionAnswers,
62
62
  planElicitationAsk,
63
63
  readElicitationFields
64
- } from "../chunk-QR6VE5ME.js";
64
+ } from "../chunk-5RGA636G.js";
65
65
 
66
66
  // bin/pushary-codex-bridge.ts
67
67
  import { existsSync } from "fs";
@@ -1,40 +1,40 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  takeHookHoldBudget
4
- } from "../chunk-KT5E2RLS.js";
4
+ } from "../chunk-T6ZN4TEF.js";
5
5
  import {
6
6
  defersToNativeMode,
7
7
  reportMachineDenial
8
- } from "../chunk-3GNUXXDZ.js";
8
+ } from "../chunk-B5NMSP3V.js";
9
9
  import {
10
10
  triggerAutoUpdate
11
- } from "../chunk-QTO6HEZD.js";
11
+ } from "../chunk-K545B734.js";
12
12
  import {
13
13
  isGatingMoment,
14
14
  recordKeylessMoment
15
- } from "../chunk-CBQACHKY.js";
15
+ } from "../chunk-IIVZZMSO.js";
16
16
  import {
17
17
  readHookInput
18
- } from "../chunk-XWAYAO3V.js";
18
+ } from "../chunk-R5RIVOPL.js";
19
19
  import {
20
20
  announceSubscriptionRequired,
21
21
  denyReasonFrom,
22
22
  isDeferAnswer
23
23
  } from "../chunk-5OP5MQI7.js";
24
- import "../chunk-BTQGAXZ3.js";
24
+ import "../chunk-COQ64C4F.js";
25
25
  import "../chunk-SGZJ5LYH.js";
26
- import "../chunk-SD3272LS.js";
27
- import "../chunk-SBLPHUEB.js";
28
- import "../chunk-MNWRUGMH.js";
29
- import "../chunk-4YO4T5FV.js";
30
- import "../chunk-VXRXFU6Q.js";
31
- import "../chunk-JCWZ23MJ.js";
32
- import "../chunk-7264S5HZ.js";
33
- import "../chunk-AUUXS44H.js";
34
- import "../chunk-4FK6RZVJ.js";
35
- import "../chunk-HPRZJKRO.js";
26
+ import "../chunk-SZ4Q6ZVS.js";
27
+ import "../chunk-APP43AW7.js";
28
+ import "../chunk-462EQA6K.js";
29
+ import "../chunk-VIIHC42X.js";
36
30
  import "../chunk-XHKBHWLX.js";
31
+ import "../chunk-BYLKCZ2G.js";
32
+ import "../chunk-M3STIAGU.js";
33
+ import "../chunk-ZGADIZDS.js";
34
+ import "../chunk-MLGIVVSG.js";
35
+ import "../chunk-GMXKITVA.js";
37
36
  import "../chunk-6ICPEJY5.js";
37
+ import "../chunk-REU2VQPH.js";
38
38
  import {
39
39
  CODEX_AGENT,
40
40
  UNNAMED_ACTION,
@@ -77,14 +77,12 @@ import {
77
77
  toPolicyLookup,
78
78
  toPolicyLookups,
79
79
  userScope
80
- } from "../chunk-QFEM7R6T.js";
80
+ } from "../chunk-KQFTBQ66.js";
81
81
  import {
82
82
  DEFAULT_SESSION
83
83
  } from "../chunk-N6IOSZOE.js";
84
- import "../chunk-6DJTDHBI.js";
84
+ import "../chunk-MD4SVNT6.js";
85
85
  import {
86
- DECISION_STOP_REASON,
87
- UNVERIFIABLE_APPROVAL_REASON,
88
86
  askUser,
89
87
  cancelQuestion,
90
88
  claimBlockedAction,
@@ -95,49 +93,49 @@ import {
95
93
  sendNotification,
96
94
  unavailableQuestionUnlessSubscriptionRequired,
97
95
  waitForQuestion
98
- } from "../chunk-D6S5EKXA.js";
96
+ } from "../chunk-WRPYCIV2.js";
97
+ import {
98
+ SubscriptionRequiredError
99
+ } from "../chunk-6AYSKVLL.js";
100
+ import "../chunk-QRXPWW3M.js";
99
101
  import {
100
102
  exitAfterClientReports
101
- } from "../chunk-AVNKVF7N.js";
103
+ } from "../chunk-UPIZSCYD.js";
102
104
  import "../chunk-POFBE6ZY.js";
103
- import "../chunk-GMXKITVA.js";
104
- import "../chunk-ADSQDYYG.js";
105
- import {
106
- SubscriptionRequiredError
107
- } from "../chunk-L76HTPU6.js";
108
- import "../chunk-KFKL3FHS.js";
109
- import "../chunk-JXISQ7DT.js";
105
+ import "../chunk-5N5L6DNN.js";
110
106
  import {
111
107
  getMachineId
112
- } from "../chunk-KYO45G5L.js";
108
+ } from "../chunk-KOWFRUIT.js";
113
109
  import "../chunk-7QLSKOSU.js";
114
110
  import {
115
111
  EXIT
116
112
  } from "../chunk-KZERVKTD.js";
117
- import "../chunk-4D2AYNSE.js";
113
+ import "../chunk-BNSKVIAW.js";
118
114
  import {
119
115
  canonicalJson
120
- } from "../chunk-ZUTU43FT.js";
116
+ } from "../chunk-Z23ZBYDW.js";
121
117
  import {
122
118
  writeFileAtomic
123
119
  } from "../chunk-T7E75EKA.js";
124
120
  import {
125
121
  getApiKey
126
- } from "../chunk-Z6HPS67T.js";
127
- import "../chunk-STQRUH3S.js";
122
+ } from "../chunk-IRHABAQT.js";
123
+ import "../chunk-5DCDQ5VW.js";
128
124
  import {
129
125
  CODEX_RESCUE_TOOL_NAME,
126
+ DECISION_STOP_REASON,
130
127
  GATE_BLOCK_REASON_MAX_LENGTH,
131
128
  GATE_WIRE,
132
129
  KILL_REASON,
130
+ UNVERIFIABLE_APPROVAL_REASON,
133
131
  codexStopRescueOutput,
134
- editAsksAtTheAgentsPrompt,
132
+ editGoesToTheAgentsPrompt,
135
133
  effectiveWaitSeconds,
136
134
  hookHoldWindowMs,
137
135
  hookWaitClamped,
138
136
  hookWaitDeadline,
139
137
  resolveGate
140
- } from "../chunk-QR6VE5ME.js";
138
+ } from "../chunk-5RGA636G.js";
141
139
 
142
140
  // bin/pushary-codex-hook.ts
143
141
  import { basename } from "path";
@@ -643,7 +641,7 @@ var decidePermissionRequest = async (input) => {
643
641
  if (codexApprovalsReviewer(input) === "auto_review") return codexPass();
644
642
  if (verdict.kind === "allow") return codexAllow();
645
643
  if (verdict.kind === "defer") return codexPass();
646
- if (!recorded && editAsksAtTheAgentsPrompt(gateInput, verdict)) return codexPass();
644
+ if (!recorded && editGoesToTheAgentsPrompt({ source: "codex", event: "PermissionRequest", permissionMode: input.permission_mode }, gateInput, verdict)) return codexPass();
647
645
  const toolPolicy = verdict.policy;
648
646
  if (toolPolicy.mode === "terminal_only") return codexPass();
649
647
  if (toolPolicy.mode === "notify_only") {
@@ -764,7 +762,7 @@ var decidePreToolUse = async (input) => {
764
762
  };
765
763
  var repairCodexHoldsQuietly = async () => {
766
764
  try {
767
- const { repairCodexHolds } = await import("../reapply-5QVKM6LA.js");
765
+ const { repairCodexHolds } = await import("../reapply-Q5NHDTVU.js");
768
766
  repairCodexHolds();
769
767
  } catch {
770
768
  return;
@@ -1,34 +1,34 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  reportEvent
4
- } from "../chunk-QFEM7R6T.js";
4
+ } from "../chunk-KQFTBQ66.js";
5
5
  import "../chunk-N6IOSZOE.js";
6
- import "../chunk-6DJTDHBI.js";
6
+ import "../chunk-MD4SVNT6.js";
7
7
  import {
8
8
  askUser,
9
9
  isDecisionStopped,
10
10
  waitForAnswer
11
- } from "../chunk-D6S5EKXA.js";
12
- import "../chunk-AVNKVF7N.js";
11
+ } from "../chunk-WRPYCIV2.js";
12
+ import "../chunk-6AYSKVLL.js";
13
+ import "../chunk-QRXPWW3M.js";
14
+ import "../chunk-UPIZSCYD.js";
13
15
  import "../chunk-POFBE6ZY.js";
14
- import "../chunk-L76HTPU6.js";
15
- import "../chunk-KFKL3FHS.js";
16
- import "../chunk-JXISQ7DT.js";
16
+ import "../chunk-5N5L6DNN.js";
17
17
  import {
18
18
  getMachineId
19
- } from "../chunk-KYO45G5L.js";
19
+ } from "../chunk-KOWFRUIT.js";
20
20
  import "../chunk-7QLSKOSU.js";
21
21
  import "../chunk-KZERVKTD.js";
22
- import "../chunk-4D2AYNSE.js";
23
- import "../chunk-ZUTU43FT.js";
22
+ import "../chunk-BNSKVIAW.js";
23
+ import "../chunk-Z23ZBYDW.js";
24
24
  import "../chunk-T7E75EKA.js";
25
25
  import {
26
26
  getApiKey
27
- } from "../chunk-Z6HPS67T.js";
27
+ } from "../chunk-IRHABAQT.js";
28
28
  import {
29
29
  NPX_LATEST_COMMAND
30
- } from "../chunk-STQRUH3S.js";
31
- import "../chunk-QR6VE5ME.js";
30
+ } from "../chunk-5DCDQ5VW.js";
31
+ import "../chunk-5RGA636G.js";
32
32
 
33
33
  // bin/pushary-codex.ts
34
34
  import { basename } from "path";
@@ -1,51 +1,72 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  printKeyCheck
4
- } from "../chunk-RQSOEB4S.js";
4
+ } from "../chunk-HBWYMRR5.js";
5
5
  import {
6
6
  connectDevice,
7
7
  connectExistingApp,
8
8
  printConnectInstructions
9
- } from "../chunk-N4EUSDKX.js";
9
+ } from "../chunk-DCCSULXK.js";
10
10
  import "../chunk-3EGEA4KH.js";
11
11
  import "../chunk-QCGNGEGE.js";
12
+ import "../chunk-Q6C6ILUS.js";
13
+ import {
14
+ CONNECTED_THROUGH_MAC_APP,
15
+ PAIR_FROM_MAC_APP,
16
+ readMacAppConnection
17
+ } from "../chunk-E5HOHIUV.js";
18
+ import "../chunk-BZLHTMT6.js";
19
+ import "../chunk-UF6RBP5V.js";
12
20
  import {
13
21
  createIo
14
22
  } from "../chunk-U4TMAANR.js";
15
23
  import {
16
24
  exitOnHelpFlag
17
- } from "../chunk-UFVGSEWH.js";
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";
18
30
  import {
19
31
  parseFlags
20
32
  } from "../chunk-GMXKITVA.js";
33
+ import "../chunk-6ICPEJY5.js";
21
34
  import {
22
35
  readKeySource
23
- } from "../chunk-ADSQDYYG.js";
24
- import "../chunk-L76HTPU6.js";
36
+ } from "../chunk-REU2VQPH.js";
37
+ import "../chunk-KQFTBQ66.js";
38
+ import "../chunk-N6IOSZOE.js";
39
+ import "../chunk-MD4SVNT6.js";
40
+ import "../chunk-WRPYCIV2.js";
41
+ import "../chunk-6AYSKVLL.js";
25
42
  import {
26
43
  checkApiKey
27
- } from "../chunk-KFKL3FHS.js";
28
- import "../chunk-JXISQ7DT.js";
29
- import "../chunk-KYO45G5L.js";
44
+ } from "../chunk-QRXPWW3M.js";
45
+ import "../chunk-UPIZSCYD.js";
46
+ import "../chunk-POFBE6ZY.js";
47
+ import "../chunk-5N5L6DNN.js";
48
+ import "../chunk-KOWFRUIT.js";
30
49
  import {
31
50
  UsageError
32
51
  } from "../chunk-7QLSKOSU.js";
33
52
  import {
34
53
  EXIT
35
54
  } from "../chunk-KZERVKTD.js";
36
- import "../chunk-4D2AYNSE.js";
37
- import "../chunk-ZUTU43FT.js";
55
+ import "../chunk-BNSKVIAW.js";
56
+ import "../chunk-Z23ZBYDW.js";
38
57
  import "../chunk-T7E75EKA.js";
39
- import "../chunk-Z6HPS67T.js";
40
- import "../chunk-STQRUH3S.js";
41
- import "../chunk-QR6VE5ME.js";
58
+ import "../chunk-IRHABAQT.js";
59
+ import {
60
+ isInvocationOf
61
+ } from "../chunk-5DCDQ5VW.js";
62
+ import "../chunk-5RGA636G.js";
42
63
 
43
64
  // bin/pushary-connect.ts
44
- exitOnHelpFlag("connect");
65
+ exitOnHelpFlag("pair");
45
66
  var parseConnectOptions = (argv) => {
46
67
  const flags = parseFlags(argv, { bools: ["app", "browser", "help", "h"], values: [] });
47
- if (flags.command !== void 0 && flags.command !== "connect") {
48
- throw new UsageError(`connect takes no positional arguments (got ${flags.command})`);
68
+ if (flags.command !== void 0 && !isInvocationOf(flags.command, "pair")) {
69
+ throw new UsageError(`pair takes no positional arguments (got ${flags.command})`);
49
70
  }
50
71
  if (flags.bools.has("app") && flags.bools.has("browser")) {
51
72
  throw new UsageError("pass either --app or --browser, not both");
@@ -58,7 +79,7 @@ try {
58
79
  } catch (err) {
59
80
  process.stderr.write(` ! ${err instanceof Error ? err.message : String(err)}
60
81
  `);
61
- process.stderr.write(" Run `pushary connect --help` for the full list.\n");
82
+ process.stderr.write(" Run `pushary pair --help` for the full list.\n");
62
83
  process.exit(EXIT.USAGE);
63
84
  }
64
85
  var { bold, dim, cyan, yellow } = createIo();
@@ -66,13 +87,18 @@ var main = async () => {
66
87
  const source = readKeySource();
67
88
  if (!source.key) {
68
89
  console.log();
69
- console.log(` ${yellow("!")} No API key on this machine, so there is no site to connect a phone to.`);
70
- console.log(` ${dim("Run")} ${cyan("pushary setup")} ${dim("first.")}`);
90
+ if (readMacAppConnection().kind === "connected") {
91
+ console.log(` ${yellow("!")} ${CONNECTED_THROUGH_MAC_APP}.`);
92
+ console.log(` ${dim(PAIR_FROM_MAC_APP)}`);
93
+ } else {
94
+ console.log(` ${yellow("!")} No API key on this machine, so there is no site to pair a phone with.`);
95
+ console.log(` ${dim("Run")} ${cyan("pushary setup")} ${dim("first.")}`);
96
+ }
71
97
  console.log();
72
98
  process.exit(EXIT.NOT_CONFIGURED);
73
99
  }
74
100
  console.log();
75
- console.log(` ${bold("Pushary")} ${dim("connect a phone")}`);
101
+ console.log(` ${bold("Pushary")} ${dim("pair a phone")}`);
76
102
  console.log();
77
103
  const keyCheck = await checkApiKey(source.key);
78
104
  if (keyCheck.kind !== "ok") {
@@ -89,12 +115,12 @@ var main = async () => {
89
115
  }
90
116
  console.log(` ${dim("No device of yours can answer yet.")}`);
91
117
  for (const line of result.repair ?? []) console.log(` ${dim(line)}`);
92
- console.log(` ${dim("Then run")} ${cyan("pushary connect")} ${dim("again.")}`);
118
+ console.log(` ${dim("Then run")} ${cyan("pushary pair")} ${dim("again.")}`);
93
119
  console.log();
94
120
  process.exit(EXIT.NO_DEVICE);
95
121
  };
96
122
  main().catch((err) => {
97
- process.stderr.write(` ! connect failed: ${err instanceof Error ? err.message : String(err)}
123
+ process.stderr.write(` ! pair failed: ${err instanceof Error ? err.message : String(err)}
98
124
  `);
99
125
  process.exit(EXIT.FAILED);
100
126
  });
@@ -2,15 +2,15 @@
2
2
  import {
3
3
  coworkOutput,
4
4
  parseCoworkOptions
5
- } from "../chunk-7OIWWZAD.js";
5
+ } from "../chunk-QTIUJZRX.js";
6
6
  import {
7
7
  canOpenBrowser,
8
8
  openInBrowser
9
9
  } from "../chunk-PUZZELE6.js";
10
- import "../chunk-SBLPHUEB.js";
11
10
  import {
12
11
  exitOnHelpFlag
13
- } from "../chunk-UFVGSEWH.js";
12
+ } from "../chunk-TO3PS646.js";
13
+ import "../chunk-ZGADIZDS.js";
14
14
  import "../chunk-GMXKITVA.js";
15
15
  import {
16
16
  UsageError
@@ -18,10 +18,10 @@ import {
18
18
  import {
19
19
  EXIT
20
20
  } from "../chunk-KZERVKTD.js";
21
- import "../chunk-STQRUH3S.js";
21
+ import "../chunk-5DCDQ5VW.js";
22
22
  import {
23
23
  CLAUDE_CONNECTOR_GUIDE
24
- } from "../chunk-QR6VE5ME.js";
24
+ } from "../chunk-5RGA636G.js";
25
25
 
26
26
  // bin/pushary-cowork.ts
27
27
  exitOnHelpFlag("cowork");
@@ -1,14 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  inspectConfiguredManagedProviders
4
- } from "../chunk-NIBFSARF.js";
5
- import "../chunk-H7MMU64M.js";
4
+ } from "../chunk-6EBGOHDJ.js";
5
+ import "../chunk-NGKUXZID.js";
6
6
  import {
7
7
  HEARTBEAT_INTERVAL_MS,
8
8
  sendHeartbeat
9
- } from "../chunk-MBK7N46B.js";
10
- import "../chunk-X5NXPCIC.js";
11
- import "../chunk-ANEAA37E.js";
9
+ } from "../chunk-QIOIO7VN.js";
12
10
  import {
13
11
  codexBinaryIsBroken,
14
12
  detectProviderLiveCapabilities,
@@ -17,7 +15,7 @@ import {
17
15
  launchableProviders,
18
16
  resolveControlPolicy,
19
17
  trackProviderInventory
20
- } from "../chunk-T7Y5EADL.js";
18
+ } from "../chunk-F7R3SZ4Q.js";
21
19
  import "../chunk-RIVNNBEK.js";
22
20
  import {
23
21
  SESSION_REAP_SILENCE_MS,
@@ -26,15 +24,11 @@ import {
26
24
  listProcessProofs,
27
25
  ownsLiveProcess,
28
26
  silentSpawnedProofs
29
- } from "../chunk-JWQZSYCK.js";
27
+ } from "../chunk-NUVGDBZC.js";
30
28
  import {
31
29
  startRegisteredTranscripts
32
- } from "../chunk-BTQGAXZ3.js";
30
+ } from "../chunk-COQ64C4F.js";
33
31
  import "../chunk-SGZJ5LYH.js";
34
- import "../chunk-SD3272LS.js";
35
- import "../chunk-SBLPHUEB.js";
36
- import "../chunk-MNWRUGMH.js";
37
- import "../chunk-4YO4T5FV.js";
38
32
  import {
39
33
  DAEMON_LEASE_RENEW_INTERVAL_MS,
40
34
  acquireDaemonLease,
@@ -51,47 +45,60 @@ import {
51
45
  requestDaemonHandoff,
52
46
  stopDaemonRunning,
53
47
  writeDaemonNeedsLogin
54
- } from "../chunk-VXRXFU6Q.js";
55
- import "../chunk-JCWZ23MJ.js";
56
- import "../chunk-7264S5HZ.js";
57
- import "../chunk-AUUXS44H.js";
58
- import "../chunk-4FK6RZVJ.js";
59
- import "../chunk-HPRZJKRO.js";
48
+ } from "../chunk-SZ4Q6ZVS.js";
49
+ import "../chunk-APP43AW7.js";
50
+ import "../chunk-462EQA6K.js";
51
+ import "../chunk-VIIHC42X.js";
60
52
  import {
61
53
  spawnClaude
62
54
  } from "../chunk-XHKBHWLX.js";
63
- import "../chunk-6ICPEJY5.js";
64
- import "../chunk-6DJTDHBI.js";
65
55
  import {
66
56
  writeHuman
67
57
  } from "../chunk-QCGNGEGE.js";
58
+ import {
59
+ readSignedOutDiagnosis
60
+ } from "../chunk-Q6C6ILUS.js";
61
+ import "../chunk-BZLHTMT6.js";
62
+ import "../chunk-UF6RBP5V.js";
68
63
  import {
69
64
  exitOnHelpFlag
70
- } from "../chunk-UFVGSEWH.js";
65
+ } from "../chunk-TO3PS646.js";
66
+ import "../chunk-BYLKCZ2G.js";
67
+ import "../chunk-M3STIAGU.js";
68
+ import "../chunk-ZGADIZDS.js";
69
+ import "../chunk-MLGIVVSG.js";
71
70
  import "../chunk-GMXKITVA.js";
71
+ import "../chunk-6ICPEJY5.js";
72
72
  import {
73
73
  readControlMode
74
- } from "../chunk-ADSQDYYG.js";
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";
75
84
  import {
76
85
  getMachineId
77
- } from "../chunk-KYO45G5L.js";
86
+ } from "../chunk-KOWFRUIT.js";
78
87
  import "../chunk-7QLSKOSU.js";
79
88
  import {
80
89
  EXIT
81
90
  } from "../chunk-KZERVKTD.js";
82
- import "../chunk-4D2AYNSE.js";
91
+ import "../chunk-BNSKVIAW.js";
83
92
  import {
84
93
  resolveBinary
85
- } from "../chunk-ZUTU43FT.js";
94
+ } from "../chunk-Z23ZBYDW.js";
86
95
  import "../chunk-T7E75EKA.js";
87
96
  import {
88
97
  getApiKey,
89
98
  getBaseUrl
90
- } from "../chunk-Z6HPS67T.js";
91
- import {
92
- NPX_LATEST_COMMAND
93
- } from "../chunk-STQRUH3S.js";
94
- import "../chunk-QR6VE5ME.js";
99
+ } from "../chunk-IRHABAQT.js";
100
+ import "../chunk-5DCDQ5VW.js";
101
+ import "../chunk-5RGA636G.js";
95
102
 
96
103
  // src/spawn-daemon.ts
97
104
  import { execFileSync, spawn } from "child_process";
@@ -340,15 +347,9 @@ var trackFailureStreak = (name, sinks) => {
340
347
  }
341
348
  };
342
349
  };
350
+ var rejectedKeyReason = (apiKey) => readSignedOutDiagnosis(apiKey, "rejected").kind === "signed_out_on_mac" ? "mac_signed_out" : "key_rejected";
351
+ var missingKeyReason = () => readSignedOutDiagnosis(null, "unchecked").kind === "signed_out_on_mac" ? "mac_signed_out" : "key_missing";
343
352
  var runSpawnDaemon = async () => {
344
- let apiKey;
345
- try {
346
- apiKey = getApiKey();
347
- } catch {
348
- stderr(`[pushary] daemon needs an API key. Run \`${NPX_LATEST_COMMAND} setup\`.
349
- `);
350
- return 1;
351
- }
352
353
  const loginBlock = readDaemonNeedsLogin();
353
354
  if (loginBlock.kind === "blocked") {
354
355
  stderr(`[pushary] daemon not starting: ${describeDaemonLoginBlock(loginBlock.record)}
@@ -356,6 +357,15 @@ var runSpawnDaemon = async () => {
356
357
  return 0;
357
358
  }
358
359
  if (loginBlock.kind === "stale") clearDaemonNeedsLogin();
360
+ let apiKey;
361
+ try {
362
+ apiKey = getApiKey();
363
+ } catch {
364
+ const record = writeDaemonNeedsLogin(missingKeyReason());
365
+ stderr(`[pushary] daemon stopping: ${describeDaemonLoginBlock(record)}
366
+ `);
367
+ return 0;
368
+ }
359
369
  const machineId = getMachineId();
360
370
  const baseUrl = getBaseUrl();
361
371
  const pusharyBin = resolveBinary("pushary") ?? "pushary";
@@ -707,7 +717,7 @@ var runSpawnDaemon = async () => {
707
717
  } catch (err) {
708
718
  if (isAuthFailure(err)) {
709
719
  const status = err.status;
710
- writeDaemonNeedsLogin(status === 401 ? "key_rejected" : "plan_inactive");
720
+ writeDaemonNeedsLogin(status === 401 ? rejectedKeyReason(apiKey) : "plan_inactive");
711
721
  log(
712
722
  status === 401 ? "daemon stopping: this machine's key was rejected. Run `pushary login` to sign in again." : "daemon stopping: this workspace has no active plan, so the queue is closed. Pick one at pushary.com/dashboard/settings?tab=billing"
713
723
  );
@@ -760,7 +770,7 @@ var runSpawnDaemon = async () => {
760
770
  }
761
771
  if (result.kind === "failed") heartbeatHealth.fail(result.detail);
762
772
  if (result.kind === "unauthorized" && !stopped) {
763
- writeDaemonNeedsLogin("key_rejected");
773
+ writeDaemonNeedsLogin(rejectedKeyReason(apiKey));
764
774
  log("daemon stopping: this machine's key was rejected. Run `pushary login` to sign in again.");
765
775
  finish();
766
776
  }