@pushary/agent-hooks 1.9.46 → 1.9.48

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 (103) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/bin/pushary-bell-hook.js +25 -25
  3. package/dist/bin/pushary-bell.js +9 -9
  4. package/dist/bin/pushary-claude.js +24 -24
  5. package/dist/bin/pushary-clean.js +142 -76
  6. package/dist/bin/pushary-codex-bridge.js +18 -18
  7. package/dist/bin/pushary-codex-hook.js +30 -30
  8. package/dist/bin/pushary-codex-session.js +22 -19
  9. package/dist/bin/pushary-codex.js +12 -12
  10. package/dist/bin/pushary-connect.js +24 -24
  11. package/dist/bin/pushary-cowork.js +5 -5
  12. package/dist/bin/pushary-daemon.js +32 -32
  13. package/dist/bin/pushary-disconnect.js +37 -30
  14. package/dist/bin/pushary-doctor.js +34 -34
  15. package/dist/bin/pushary-elicitation-hook.js +25 -25
  16. package/dist/bin/pushary-gemini-bridge.js +13 -13
  17. package/dist/bin/pushary-gemini-hook.js +27 -27
  18. package/dist/bin/pushary-hook.js +29 -29
  19. package/dist/bin/pushary-login.js +12 -12
  20. package/dist/bin/pushary-logout.js +24 -24
  21. package/dist/bin/pushary-mcp.js +9 -9
  22. package/dist/bin/pushary-mode.js +12 -12
  23. package/dist/bin/pushary-notification-hook.js +24 -24
  24. package/dist/bin/pushary-opencode-hook.js +26 -26
  25. package/dist/bin/pushary-permission-denied-hook.js +29 -29
  26. package/dist/bin/pushary-permission-hook.js +28 -28
  27. package/dist/bin/pushary-post-hook.js +24 -24
  28. package/dist/bin/pushary-prompt-hook.js +24 -24
  29. package/dist/bin/pushary-session-end-hook.js +24 -24
  30. package/dist/bin/pushary-session-start-hook.js +28 -28
  31. package/dist/bin/pushary-setup.js +62 -41
  32. package/dist/bin/pushary-stats.js +5 -5
  33. package/dist/bin/pushary-status.js +26 -26
  34. package/dist/bin/pushary-stop-hook.js +24 -24
  35. package/dist/bin/pushary-stopfailure-hook.js +24 -24
  36. package/dist/bin/pushary-suggestions.js +12 -12
  37. package/dist/bin/pushary-transcript-register.js +17 -17
  38. package/dist/bin/pushary-transcripts.js +7 -7
  39. package/dist/bin/pushary-upgrade.js +30 -30
  40. package/dist/bin/pushary-wait.js +12 -12
  41. package/dist/bin/pushary.js +6 -6
  42. package/dist/{chunk-W7MXYDGP.js → chunk-33QBP3M5.js} +2 -2
  43. package/dist/{chunk-HTQPDODV.js → chunk-3KHZZOT5.js} +4 -4
  44. package/dist/{chunk-CJKEU4EZ.js → chunk-755V3VD7.js} +4 -4
  45. package/dist/{chunk-WYD4PYTL.js → chunk-7S5HYDAO.js} +9 -9
  46. package/dist/{chunk-LA4S2KIM.js → chunk-A45ILEPI.js} +3 -3
  47. package/dist/{chunk-ON2WCBIN.js → chunk-AX7B7RSC.js} +10 -10
  48. package/dist/{chunk-EW52AGOV.js → chunk-B2DU67G6.js} +4 -4
  49. package/dist/{chunk-EP4MD6TH.js → chunk-C3HH6VQP.js} +5 -5
  50. package/dist/{chunk-BKJP2MQN.js → chunk-CIJV7IQU.js} +6 -6
  51. package/dist/{chunk-35TUEZ5E.js → chunk-CQ4VDI27.js} +3 -3
  52. package/dist/{chunk-UCRG5QGN.js → chunk-CQWXMLHZ.js} +1 -1
  53. package/dist/{chunk-FQWI6XQG.js → chunk-DQPFQGIN.js} +1 -1
  54. package/dist/{chunk-CA6F44OF.js → chunk-DR2L7VV4.js} +5 -5
  55. package/dist/{chunk-XAMFOUXA.js → chunk-EGARDTA5.js} +2 -2
  56. package/dist/{chunk-P2FHZ65U.js → chunk-EOT33AJN.js} +1 -1
  57. package/dist/{chunk-FMDGUCER.js → chunk-FFIITUQJ.js} +19 -10
  58. package/dist/{chunk-5O6GB64K.js → chunk-GFQT4KJO.js} +2 -2
  59. package/dist/{chunk-ULEX43F7.js → chunk-GLM263DW.js} +1 -1
  60. package/dist/{chunk-ZYS4UHEC.js → chunk-GMK24GEO.js} +4 -4
  61. package/dist/{chunk-I5EQ5NJD.js → chunk-GOSHI63C.js} +8 -8
  62. package/dist/{chunk-HX34VBPE.js → chunk-GYHX4NIW.js} +4 -4
  63. package/dist/{chunk-2UABJ75E.js → chunk-HF66SU3D.js} +2 -2
  64. package/dist/{chunk-GG6C4CHH.js → chunk-I7B4X232.js} +2 -2
  65. package/dist/{chunk-MOUUDZOZ.js → chunk-ICSA7SWY.js} +1 -1
  66. package/dist/{chunk-KJNWVAS6.js → chunk-IRTPMVIS.js} +3 -3
  67. package/dist/{chunk-JPGY5LSF.js → chunk-IVQA2XWE.js} +5 -5
  68. package/dist/{chunk-UI3WDOV3.js → chunk-IXWXGQRX.js} +2 -2
  69. package/dist/{chunk-NWZZTHWF.js → chunk-JN64AI53.js} +1 -1
  70. package/dist/{chunk-FQW7AV6U.js → chunk-JRB4U3S6.js} +3 -3
  71. package/dist/{chunk-T623UG5T.js → chunk-K6X6B76U.js} +3 -3
  72. package/dist/{chunk-GQZF6DPL.js → chunk-KRIG552M.js} +1 -1
  73. package/dist/{chunk-EKDSF3IX.js → chunk-LMFKL76J.js} +1 -1
  74. package/dist/{chunk-VTF7LKDB.js → chunk-LVA2RJNM.js} +5 -5
  75. package/dist/{chunk-SEKQAYVP.js → chunk-LZW7O3G4.js} +2 -2
  76. package/dist/{chunk-NULG2ZUG.js → chunk-MVW5KW6R.js} +4 -4
  77. package/dist/{chunk-PZPYL65I.js → chunk-N3GB5RQH.js} +1 -1
  78. package/dist/{chunk-2PTJHEX4.js → chunk-OJSWXJRB.js} +8 -2
  79. package/dist/{chunk-ELLN4XAF.js → chunk-Q7GNNQZ2.js} +2 -2
  80. package/dist/{chunk-NO3ADUD4.js → chunk-RZKVGP2P.js} +1 -1
  81. package/dist/{chunk-MBB4XJIN.js → chunk-S7ALO6PR.js} +7 -7
  82. package/dist/{chunk-UP2RNIHL.js → chunk-TIVYEX3X.js} +4 -4
  83. package/dist/{chunk-LEMQA4HM.js → chunk-TK23JLC3.js} +5 -5
  84. package/dist/{chunk-2X3PPRNC.js → chunk-TVBQTGM7.js} +3 -3
  85. package/dist/{chunk-LNO25UX4.js → chunk-V7VGDSNZ.js} +6 -6
  86. package/dist/{chunk-7XSIUY5F.js → chunk-W4H427YD.js} +1 -1
  87. package/dist/{chunk-WN3MDHAM.js → chunk-WNEEQ7GJ.js} +1 -1
  88. package/dist/{chunk-ZGGSQTCO.js → chunk-WSSBT75T.js} +1 -1
  89. package/dist/{chunk-G227SH2O.js → chunk-XDM6S75V.js} +2 -2
  90. package/dist/{chunk-UGXRDY3O.js → chunk-XOHT5UCY.js} +5 -5
  91. package/dist/{chunk-2ZD53EQW.js → chunk-XRFEWXGR.js} +2 -2
  92. package/dist/{chunk-5NXD6ZHQ.js → chunk-XTZ4HQKG.js} +2 -2
  93. package/dist/{chunk-2VNHP2OE.js → chunk-YUBWJHWE.js} +1 -1
  94. package/dist/{chunk-EDSXF7NV.js → chunk-YWFL5ANU.js} +112 -30
  95. package/dist/{chunk-PGULTXDJ.js → chunk-ZBNRG4LZ.js} +5 -5
  96. package/dist/{chunk-OI6YNNI5.js → chunk-ZRQPJHNJ.js} +8 -4
  97. package/dist/{chunk-2IFTZZ5K.js → chunk-ZSAQSKSK.js} +1 -1
  98. package/dist/{global-upgrade-A7EADTOL.js → global-upgrade-RKM4H55J.js} +6 -6
  99. package/dist/{paths-UIPHTZH4.js → paths-BHI23V4J.js} +2 -2
  100. package/dist/{reapply-JAT4DS6G.js → reapply-AZZZOU7B.js} +20 -20
  101. package/dist/src/index.js +19 -19
  102. package/dist/{upgrade-lock-YUSXU5I5.js → upgrade-lock-IJL5SSTD.js} +3 -3
  103. package/package.json +1 -1
@@ -4,26 +4,26 @@ import {
4
4
  hasDaemonServiceDefinition,
5
5
  readDaemonNeedsLogin,
6
6
  readDaemonStatus
7
- } from "./chunk-CA6F44OF.js";
7
+ } from "./chunk-DR2L7VV4.js";
8
8
  import {
9
9
  readControlMode,
10
10
  readKeySource
11
- } from "./chunk-LA4S2KIM.js";
11
+ } from "./chunk-A45ILEPI.js";
12
12
  import {
13
13
  detectProviderLiveCapabilities,
14
14
  expectedLaunchCapabilities,
15
15
  hasSpawnProvider,
16
16
  resolveControlPolicy
17
- } from "./chunk-2PTJHEX4.js";
17
+ } from "./chunk-OJSWXJRB.js";
18
18
  import {
19
19
  getMachineId
20
- } from "./chunk-ULEX43F7.js";
20
+ } from "./chunk-GLM263DW.js";
21
21
  import {
22
22
  getBaseUrl
23
- } from "./chunk-7XSIUY5F.js";
23
+ } from "./chunk-W4H427YD.js";
24
24
  import {
25
25
  getPackageVersion
26
- } from "./chunk-EDSXF7NV.js";
26
+ } from "./chunk-YWFL5ANU.js";
27
27
 
28
28
  // src/machines.ts
29
29
  import { hostname } from "os";
@@ -5,16 +5,16 @@ import {
5
5
  import {
6
6
  NOTIFICATION_MATCHED_TYPES,
7
7
  POSTTOOLUSE_MIRRORED_TOOLS
8
- } from "./chunk-NWZZTHWF.js";
8
+ } from "./chunk-JN64AI53.js";
9
9
  import {
10
10
  isProtectedByScope,
11
11
  registerHookEntry
12
- } from "./chunk-EW52AGOV.js";
12
+ } from "./chunk-B2DU67G6.js";
13
13
  import {
14
14
  CLAUDE_PRETOOLUSE_MATCHER,
15
15
  HOOK_BUDGETS,
16
16
  HOOK_LOCATOR_BINARY
17
- } from "./chunk-EDSXF7NV.js";
17
+ } from "./chunk-YWFL5ANU.js";
18
18
 
19
19
  // src/gemini-config.ts
20
20
  var GEMINI_HOOK_BINARY = "pushary-gemini-hook";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  guardBinary
3
- } from "./chunk-EW52AGOV.js";
3
+ } from "./chunk-B2DU67G6.js";
4
4
 
5
5
  // src/bell/install.ts
6
6
  import { join } from "path";
@@ -2,7 +2,7 @@ import {
2
2
  autoUpdateLock,
3
3
  installPackageGlobally,
4
4
  npmErrorMessage
5
- } from "./chunk-EW52AGOV.js";
5
+ } from "./chunk-B2DU67G6.js";
6
6
  import {
7
7
  writeJsonAtomic
8
8
  } from "./chunk-AQFEP65J.js";
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  readControlMode
3
- } from "./chunk-LA4S2KIM.js";
3
+ } from "./chunk-A45ILEPI.js";
4
4
  import {
5
5
  needsShell,
6
6
  spawnClaude
7
7
  } from "./chunk-XHKBHWLX.js";
8
8
  import {
9
9
  getMachineId
10
- } from "./chunk-ULEX43F7.js";
10
+ } from "./chunk-GLM263DW.js";
11
11
  import {
12
12
  pusharyDir,
13
13
  resolveGlobalBinary
14
- } from "./chunk-EW52AGOV.js";
14
+ } from "./chunk-B2DU67G6.js";
15
15
  import {
16
16
  readJsonSafe,
17
17
  writeFileAtomic,
@@ -20,7 +20,7 @@ import {
20
20
  } from "./chunk-AQFEP65J.js";
21
21
  import {
22
22
  getApiKey
23
- } from "./chunk-7XSIUY5F.js";
23
+ } from "./chunk-W4H427YD.js";
24
24
  import {
25
25
  CLI_PACKAGE_NAMES,
26
26
  cmdShimTarget,
@@ -28,7 +28,7 @@ import {
28
28
  globalPackageFolder,
29
29
  globalRootFor,
30
30
  isRecord
31
- } from "./chunk-EDSXF7NV.js";
31
+ } from "./chunk-YWFL5ANU.js";
32
32
 
33
33
  // src/daemon-lifecycle.ts
34
34
  import { dirname, join, win32 as win32Path } from "path";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  parseSseMessages
3
- } from "./chunk-FQW7AV6U.js";
3
+ } from "./chunk-JRB4U3S6.js";
4
4
  import {
5
5
  NPX_LATEST_COMMAND
6
- } from "./chunk-WN3MDHAM.js";
6
+ } from "./chunk-WNEEQ7GJ.js";
7
7
 
8
8
  // src/mcp-stdio-bridge.ts
9
9
  var MCP_BRIDGE_BINARY = "pushary-mcp";
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-3EGEA4KH.js";
10
10
  import {
11
11
  getBaseUrl
12
- } from "./chunk-7XSIUY5F.js";
12
+ } from "./chunk-W4H427YD.js";
13
13
 
14
14
  // src/cli/login-ui.ts
15
15
  import { hostname } from "os";
@@ -4,13 +4,13 @@ import {
4
4
  postLiveSession,
5
5
  postLiveSessionUntilAccepted,
6
6
  startLiveSessionHeartbeat
7
- } from "./chunk-ELLN4XAF.js";
7
+ } from "./chunk-Q7GNNQZ2.js";
8
8
  import {
9
9
  SESSION_IDLE_TIMEOUT_MS,
10
10
  describeIdleWindow,
11
11
  idleDeadlinePassed,
12
12
  startProcessOwnership
13
- } from "./chunk-UI3WDOV3.js";
13
+ } from "./chunk-IXWXGQRX.js";
14
14
  import {
15
15
  spawnClaude
16
16
  } from "./chunk-XHKBHWLX.js";
@@ -21,11 +21,11 @@ import {
21
21
  repoKeyFor,
22
22
  withdrawQuestion,
23
23
  writeDegraded
24
- } from "./chunk-UGXRDY3O.js";
24
+ } from "./chunk-XOHT5UCY.js";
25
25
  import {
26
26
  callMcpTool,
27
27
  isRetryable
28
- } from "./chunk-FQW7AV6U.js";
28
+ } from "./chunk-JRB4U3S6.js";
29
29
  import {
30
30
  AGENT_QUESTION_DESCRIPTION_MAX,
31
31
  AGENT_QUESTION_HEADER_MAX,
@@ -33,7 +33,9 @@ import {
33
33
  ASK_CONTEXT_MAX,
34
34
  ASK_QUESTION_MAX,
35
35
  CODEX_NATIVE_APPROVAL_CAPABILITY,
36
+ CODEX_NATIVE_APPROVAL_CHOICES,
36
37
  CODEX_NATIVE_APPROVAL_METHODS,
38
+ CODEX_NATIVE_APPROVAL_REPLIES,
37
39
  PERSONAL_QUESTION_CAPABILITY,
38
40
  canonicalJsonText,
39
41
  codexNativeApprovalResponse,
@@ -44,7 +46,7 @@ import {
44
46
  parseCodexQuestions,
45
47
  planElicitationAsk,
46
48
  readElicitationFields
47
- } from "./chunk-EDSXF7NV.js";
49
+ } from "./chunk-YWFL5ANU.js";
48
50
 
49
51
  // src/codex-question-owner.ts
50
52
  import { createHash } from "crypto";
@@ -164,7 +166,7 @@ var CodexNativeApprovals = class {
164
166
  this.pending.delete(id);
165
167
  this.retired.add(id);
166
168
  if (!nativeClosed && !this.closed && !pending.replied && !this.options.shared) {
167
- this.options.reply(id, codexNativeApprovalResponse(pending.approval, "Deny"));
169
+ this.options.reply(id, codexNativeApprovalResponse(pending.approval, CODEX_NATIVE_APPROVAL_CHOICES.deny));
168
170
  pending.replied = true;
169
171
  }
170
172
  const task = this.cleanup(pending, nativeClosed).finally(() => {
@@ -181,6 +183,7 @@ var CodexNativeApprovals = class {
181
183
  correlationId: pending.correlationId,
182
184
  claimId: pending.claimId,
183
185
  localSurfaceAvailable: this.options.shared,
186
+ acceptsAllowReply: true,
184
187
  cwd: pending.cwd,
185
188
  repoKey: pending.repoKey
186
189
  });
@@ -213,12 +216,18 @@ var CodexNativeApprovals = class {
213
216
  pending.creating = false;
214
217
  }
215
218
  if (signal.aborted) return;
216
- if (created.kind === "deny") {
217
- this.options.reply(pending.owner.requestId, codexNativeApprovalResponse(pending.approval, "Deny"));
219
+ if (created.kind === CODEX_NATIVE_APPROVAL_REPLIES.deny) {
220
+ this.options.reply(pending.owner.requestId, codexNativeApprovalResponse(pending.approval, CODEX_NATIVE_APPROVAL_CHOICES.deny));
218
221
  pending.replied = true;
219
222
  return;
220
223
  }
221
- if (created.kind !== "ask" || !pending.correlationId) throw new Error("Native approval unavailable");
224
+ if (created.kind === CODEX_NATIVE_APPROVAL_REPLIES.allow && pending.approval.options.includes(CODEX_NATIVE_APPROVAL_CHOICES.once)) {
225
+ this.options.reply(pending.owner.requestId, codexNativeApprovalResponse(pending.approval, CODEX_NATIVE_APPROVAL_CHOICES.once));
226
+ pending.replied = true;
227
+ return;
228
+ }
229
+ if (created.kind === CODEX_NATIVE_APPROVAL_REPLIES.native && this.options.shared) return;
230
+ if (created.kind !== CODEX_NATIVE_APPROVAL_REPLIES.ask || !pending.correlationId) throw new Error("Native approval unavailable");
222
231
  let answer = null;
223
232
  while (!signal.aborted) {
224
233
  const result = await callMcpTool(
@@ -245,7 +254,7 @@ var CodexNativeApprovals = class {
245
254
  await this.post(pending, "reply_queued", AbortSignal.timeout(3e3));
246
255
  } catch {
247
256
  if (!pending.controller.signal.aborted && !this.options.signal.aborted && !this.closed && !this.options.shared && !pending.replied) {
248
- this.options.reply(pending.owner.requestId, codexNativeApprovalResponse(pending.approval, "Deny"));
257
+ this.options.reply(pending.owner.requestId, codexNativeApprovalResponse(pending.approval, CODEX_NATIVE_APPROVAL_CHOICES.deny));
249
258
  pending.replied = true;
250
259
  }
251
260
  if (!pending.controller.signal.aborted && !this.options.signal.aborted) writeDegraded("questions", { reason: "native_approval_unavailable", fallback: this.options.shared ? "native client" : "refused", event: pending.owner.method });
@@ -4,10 +4,10 @@ import {
4
4
  keyPrefix,
5
5
  readConfigFileKey,
6
6
  readMacAppKeyPrefix
7
- } from "./chunk-LA4S2KIM.js";
7
+ } from "./chunk-A45ILEPI.js";
8
8
  import {
9
9
  NPX_LATEST_COMMAND
10
- } from "./chunk-WN3MDHAM.js";
10
+ } from "./chunk-WNEEQ7GJ.js";
11
11
 
12
12
  // src/key-signed-out.ts
13
13
  var VERDICT_BY_CHECK = {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-EW52AGOV.js";
3
+ } from "./chunk-B2DU67G6.js";
4
4
  import {
5
5
  writeFileAtomic
6
6
  } from "./chunk-AQFEP65J.js";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  openCodeConfigDirFrom
3
- } from "./chunk-VTF7LKDB.js";
3
+ } from "./chunk-LVA2RJNM.js";
4
4
  import {
5
5
  grokHome
6
- } from "./chunk-OI6YNNI5.js";
6
+ } from "./chunk-ZRQPJHNJ.js";
7
7
  import {
8
8
  codexHomeFrom,
9
9
  resolvePathBinary
10
- } from "./chunk-EW52AGOV.js";
10
+ } from "./chunk-B2DU67G6.js";
11
11
  import {
12
12
  HOOK_COMPATIBLE_PROFILES
13
- } from "./chunk-EDSXF7NV.js";
13
+ } from "./chunk-YWFL5ANU.js";
14
14
 
15
15
  // src/hermes-config.ts
16
16
  import { execFileSync } from "child_process";
@@ -6,38 +6,38 @@ import {
6
6
  } from "./chunk-DWQYCOPI.js";
7
7
  import {
8
8
  ensureDaemonRunning
9
- } from "./chunk-CA6F44OF.js";
9
+ } from "./chunk-DR2L7VV4.js";
10
10
  import {
11
11
  hookOwnerOf
12
- } from "./chunk-EP4MD6TH.js";
12
+ } from "./chunk-C3HH6VQP.js";
13
13
  import {
14
14
  transcriptEnvironmentPreference,
15
15
  transcriptsEnabled
16
- } from "./chunk-ZGGSQTCO.js";
16
+ } from "./chunk-WSSBT75T.js";
17
17
  import {
18
18
  readTranscriptPreference
19
- } from "./chunk-LA4S2KIM.js";
19
+ } from "./chunk-A45ILEPI.js";
20
20
  import {
21
21
  buildTranscriptRecords,
22
22
  decodePublicKey,
23
23
  generateSessionKey,
24
24
  wrapSessionKey
25
- } from "./chunk-EKDSF3IX.js";
25
+ } from "./chunk-LMFKL76J.js";
26
26
  import {
27
27
  fetchTranscriptRecipients,
28
28
  uploadTranscriptRecords
29
- } from "./chunk-2VNHP2OE.js";
29
+ } from "./chunk-YUBWJHWE.js";
30
30
  import {
31
31
  codexHome,
32
32
  pusharyDir
33
- } from "./chunk-EW52AGOV.js";
33
+ } from "./chunk-B2DU67G6.js";
34
34
  import {
35
35
  writeJsonAtomic
36
36
  } from "./chunk-AQFEP65J.js";
37
37
  import {
38
38
  getApiKey,
39
39
  getBaseUrl
40
- } from "./chunk-7XSIUY5F.js";
40
+ } from "./chunk-W4H427YD.js";
41
41
 
42
42
  // src/transcript-registration.ts
43
43
  import { createHash } from "crypto";
@@ -2,25 +2,25 @@ import {
2
2
  SIGNED_OUT_ON_MAC_MESSAGE,
3
3
  describeSignedOutKey,
4
4
  readSignedOutDiagnosis
5
- } from "./chunk-5O6GB64K.js";
5
+ } from "./chunk-GFQT4KJO.js";
6
6
  import {
7
7
  createIo
8
8
  } from "./chunk-FO3MDD26.js";
9
9
  import {
10
10
  readKeySource
11
- } from "./chunk-LA4S2KIM.js";
11
+ } from "./chunk-A45ILEPI.js";
12
12
  import {
13
13
  absoluteUrl,
14
14
  checkApiKey,
15
15
  describeKeyCheck,
16
16
  keyCheckFromResponse
17
- } from "./chunk-2X3PPRNC.js";
17
+ } from "./chunk-TVBQTGM7.js";
18
18
  import {
19
19
  EXIT
20
20
  } from "./chunk-KZERVKTD.js";
21
21
  import {
22
22
  getBaseUrl
23
- } from "./chunk-7XSIUY5F.js";
23
+ } from "./chunk-W4H427YD.js";
24
24
 
25
25
  // src/cli/report-key.ts
26
26
  var { dim, yellow } = createIo();
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-POFBE6ZY.js";
4
4
  import {
5
5
  autoUpdateState
6
- } from "./chunk-EW52AGOV.js";
6
+ } from "./chunk-B2DU67G6.js";
7
7
  import {
8
8
  readJsonSafe,
9
9
  writeJsonAtomic
@@ -15,7 +15,7 @@ import {
15
15
  globalUpgradeEntry,
16
16
  isAutoUpdateResult,
17
17
  ownPackageRoot
18
- } from "./chunk-EDSXF7NV.js";
18
+ } from "./chunk-YWFL5ANU.js";
19
19
 
20
20
  // src/auto-update.ts
21
21
  import { spawn } from "child_process";
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-KZERVKTD.js";
4
4
  import {
5
5
  renderCommandHelp
6
- } from "./chunk-WN3MDHAM.js";
6
+ } from "./chunk-WNEEQ7GJ.js";
7
7
  import {
8
8
  getPackageVersion
9
- } from "./chunk-EDSXF7NV.js";
9
+ } from "./chunk-YWFL5ANU.js";
10
10
 
11
11
  // src/cli/usage.ts
12
12
  var exitOnHelpFlag = (command) => {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  readConfigFileKey
3
- } from "./chunk-LA4S2KIM.js";
3
+ } from "./chunk-A45ILEPI.js";
4
4
 
5
5
  // src/bell/fleet.ts
6
6
  import { closeSync, constants, futimesSync, lstatSync, mkdirSync, openSync, readdirSync, unlinkSync } from "fs";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  readExistingMachineId
3
- } from "./chunk-ULEX43F7.js";
3
+ } from "./chunk-GLM263DW.js";
4
4
  import {
5
5
  NetworkError
6
6
  } from "./chunk-7QLSKOSU.js";
7
7
  import {
8
8
  getBaseUrl
9
- } from "./chunk-7XSIUY5F.js";
9
+ } from "./chunk-W4H427YD.js";
10
10
  import {
11
11
  clientContextHeaders,
12
12
  getPackageVersion
13
- } from "./chunk-EDSXF7NV.js";
13
+ } from "./chunk-YWFL5ANU.js";
14
14
 
15
15
  // src/cli/net.ts
16
16
  import { createRequire } from "module";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  APPROVAL_SETTINGS_PATH
3
- } from "./chunk-HX34VBPE.js";
3
+ } from "./chunk-GYHX4NIW.js";
4
4
  import {
5
5
  readMacAppAgentKey
6
- } from "./chunk-UP2RNIHL.js";
6
+ } from "./chunk-TIVYEX3X.js";
7
7
  import {
8
8
  findExportedKeyLines,
9
9
  isAdoptedMacAppKey,
@@ -13,13 +13,13 @@ import {
13
13
  readConfigFileKey,
14
14
  readKeySource,
15
15
  readMacAppKeyPrefix
16
- } from "./chunk-LA4S2KIM.js";
16
+ } from "./chunk-A45ILEPI.js";
17
17
  import {
18
18
  absoluteUrl
19
- } from "./chunk-2X3PPRNC.js";
19
+ } from "./chunk-TVBQTGM7.js";
20
20
  import {
21
21
  isValidApiKey
22
- } from "./chunk-EDSXF7NV.js";
22
+ } from "./chunk-YWFL5ANU.js";
23
23
 
24
24
  // src/key-revocation.ts
25
25
  var SELF_REVOKE_PATH = "/api/v1/server/keys/self/revoke";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-EW52AGOV.js";
3
+ } from "./chunk-B2DU67G6.js";
4
4
  import {
5
5
  readJsonSafe
6
6
  } from "./chunk-AQFEP65J.js";
7
7
  import {
8
8
  isRecord
9
- } from "./chunk-EDSXF7NV.js";
9
+ } from "./chunk-YWFL5ANU.js";
10
10
 
11
11
  // src/process-ownership.ts
12
12
  import { createHash, randomUUID } from "crypto";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  PRETOOLUSE_GATED_TOOLS
3
- } from "./chunk-EDSXF7NV.js";
3
+ } from "./chunk-YWFL5ANU.js";
4
4
 
5
5
  // src/claude-tools.ts
6
6
  var POSTTOOLUSE_MIRROR_ONLY_TOOLS = ["TodoWrite", "Task", "WebFetch", "WebSearch"];
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  keyCheckFromResponse
3
- } from "./chunk-2X3PPRNC.js";
3
+ } from "./chunk-TVBQTGM7.js";
4
4
  import {
5
5
  installNetworkDefaults
6
- } from "./chunk-KJNWVAS6.js";
6
+ } from "./chunk-IRTPMVIS.js";
7
7
  import {
8
8
  getBaseUrl
9
- } from "./chunk-7XSIUY5F.js";
9
+ } from "./chunk-W4H427YD.js";
10
10
 
11
11
  // src/retry.ts
12
12
  var isRetryable = (err) => {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SETUP_FLAGS
3
- } from "./chunk-NO3ADUD4.js";
3
+ } from "./chunk-RZKVGP2P.js";
4
4
  import {
5
5
  parseFlags
6
6
  } from "./chunk-GMXKITVA.js";
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-7QLSKOSU.js";
10
10
  import {
11
11
  NPX_LATEST_COMMAND
12
- } from "./chunk-WN3MDHAM.js";
12
+ } from "./chunk-WNEEQ7GJ.js";
13
13
  import {
14
14
  CLAUDE_CONNECTOR_GUIDE,
15
15
  CLAUDE_CONNECTOR_STEPS,
@@ -17,7 +17,7 @@ import {
17
17
  CLAUDE_CONNECTOR_URL,
18
18
  COWORK_CONNECTOR_LIMIT,
19
19
  COWORK_STANDING_INSTRUCTIONS
20
- } from "./chunk-EDSXF7NV.js";
20
+ } from "./chunk-YWFL5ANU.js";
21
21
 
22
22
  // src/cli/cowork.ts
23
23
  import { readFileSync } from "fs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DEFAULT_SESSION
3
- } from "./chunk-WYD4PYTL.js";
3
+ } from "./chunk-7S5HYDAO.js";
4
4
 
5
5
  // src/answer.ts
6
6
  var isDeferAnswer = (value) => value === "defer";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  redactSecretsFromContent
3
- } from "./chunk-EDSXF7NV.js";
3
+ } from "./chunk-YWFL5ANU.js";
4
4
 
5
5
  // src/crypto.ts
6
6
  import nacl from "tweetnacl";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  compatibleConfigFile
3
- } from "./chunk-OI6YNNI5.js";
3
+ } from "./chunk-ZRQPJHNJ.js";
4
4
  import {
5
5
  hookOwnerOf,
6
6
  hookOwnerOfCommands,
7
7
  liveBridgeProbe,
8
8
  resolveBridgeStub
9
- } from "./chunk-EP4MD6TH.js";
9
+ } from "./chunk-C3HH6VQP.js";
10
10
  import {
11
11
  AGENT_CHOICES
12
- } from "./chunk-NO3ADUD4.js";
12
+ } from "./chunk-RZKVGP2P.js";
13
13
  import {
14
14
  claudeSettings,
15
15
  codexHooksJson,
@@ -18,7 +18,7 @@ import {
18
18
  guardedArgv,
19
19
  pusharyDir,
20
20
  vscodePluginDir
21
- } from "./chunk-EW52AGOV.js";
21
+ } from "./chunk-B2DU67G6.js";
22
22
  import {
23
23
  readJsonSafe
24
24
  } from "./chunk-AQFEP65J.js";
@@ -29,7 +29,7 @@ import {
29
29
  OPENCODE_APPROVAL_EVENT,
30
30
  hookCompatibleProfile,
31
31
  isRecord
32
- } from "./chunk-EDSXF7NV.js";
32
+ } from "./chunk-YWFL5ANU.js";
33
33
 
34
34
  // src/opencode-plugin.ts
35
35
  var OPENCODE_PLUGIN_MARKER = "pushary-opencode-plugin w1";
@@ -4,10 +4,10 @@ import {
4
4
  } from "./chunk-AQFEP65J.js";
5
5
  import {
6
6
  configFilePath
7
- } from "./chunk-7XSIUY5F.js";
7
+ } from "./chunk-W4H427YD.js";
8
8
  import {
9
9
  readSetupOutcomeProperties
10
- } from "./chunk-EDSXF7NV.js";
10
+ } from "./chunk-YWFL5ANU.js";
11
11
 
12
12
  // src/hooks-spec.ts
13
13
  var CURSOR_GATE_SCRIPT = "pushary-gate.mjs";
@@ -14,19 +14,19 @@ import {
14
14
  } from "./chunk-FO3MDD26.js";
15
15
  import {
16
16
  reportedInstallSource
17
- } from "./chunk-W7MXYDGP.js";
17
+ } from "./chunk-33QBP3M5.js";
18
18
  import {
19
19
  callMcpTool
20
- } from "./chunk-FQW7AV6U.js";
20
+ } from "./chunk-JRB4U3S6.js";
21
21
  import {
22
22
  NPX_LATEST_COMMAND
23
- } from "./chunk-WN3MDHAM.js";
23
+ } from "./chunk-WNEEQ7GJ.js";
24
24
  import {
25
25
  NO_PAIRING_COMPUTER,
26
26
  PAIR_TTL_SECONDS,
27
27
  classifyConfirmResponse,
28
28
  isAnswerSource
29
- } from "./chunk-EDSXF7NV.js";
29
+ } from "./chunk-YWFL5ANU.js";
30
30
 
31
31
  // src/reach.ts
32
32
  var reachVerdict = (channels) => {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isSafeReadOnlyCommand
3
- } from "./chunk-EDSXF7NV.js";
3
+ } from "./chunk-YWFL5ANU.js";
4
4
 
5
5
  // src/ledger.ts
6
6
  import { appendFileSync, existsSync, mkdirSync, readFileSync, renameSync, rmSync, statSync } from "fs";
@@ -10,10 +10,10 @@ import {
10
10
  resolvePackageVersionFromBinary,
11
11
  resolvePathBinary,
12
12
  resolvePathBinaryAsync
13
- } from "./chunk-EW52AGOV.js";
13
+ } from "./chunk-B2DU67G6.js";
14
14
  import {
15
15
  MANAGED_PROVIDERS
16
- } from "./chunk-EDSXF7NV.js";
16
+ } from "./chunk-YWFL5ANU.js";
17
17
 
18
18
  // src/setup/codex-install.ts
19
19
  var NATIVE_BINARY_MIN_BYTES = 20 * 1024 * 1024;
@@ -118,6 +118,11 @@ var resolveControlPolicy = (input) => {
118
118
  if (input.providerAvailable && input.managerAvailable) return "enabled";
119
119
  return input.servicePresent ? "legacy" : "unsupported";
120
120
  };
121
+ var missingControlPrerequisite = (input) => {
122
+ if (!input.providerAvailable) return "provider";
123
+ if (!input.managerAvailable) return "service-manager";
124
+ return null;
125
+ };
121
126
  var preferGlobalProviderBinary = (platform) => platform === "win32";
122
127
  var resolveProviderBinary = (provider, platform = process.platform) => preferGlobalProviderBinary(platform) ? resolveGlobalBinary(provider) ?? resolvePathBinary(provider, platform) : resolvePathBinary(provider, platform) ?? resolveGlobalBinary(provider);
123
128
  var codexBinaryIsBroken = (binary) => codexInstallHealthAt(binary).kind === "binary-missing";
@@ -189,6 +194,7 @@ export {
189
194
  launchableProviders,
190
195
  hasSpawnProvider,
191
196
  resolveControlPolicy,
197
+ missingControlPrerequisite,
192
198
  resolveProviderBinary,
193
199
  codexBinaryIsBroken,
194
200
  detectProviderLiveCapabilities,
@@ -3,11 +3,11 @@ import {
3
3
  decodePublicKey,
4
4
  generateSessionKey,
5
5
  wrapSessionKey
6
- } from "./chunk-EKDSF3IX.js";
6
+ } from "./chunk-LMFKL76J.js";
7
7
  import {
8
8
  fetchTranscriptRecipients,
9
9
  uploadTranscriptRecords
10
- } from "./chunk-2VNHP2OE.js";
10
+ } from "./chunk-YUBWJHWE.js";
11
11
 
12
12
  // src/live-session.ts
13
13
  var MAX_TRANSCRIPT_QUEUE = 100;