@pushary/agent-hooks 1.9.37 → 1.9.38

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 (100) hide show
  1. package/CHANGELOG.md +7 -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 +29 -29
  6. package/dist/bin/pushary-codex-bridge.js +40 -29
  7. package/dist/bin/pushary-codex-hook.js +31 -30
  8. package/dist/bin/pushary-codex.js +12 -12
  9. package/dist/bin/pushary-connect.js +24 -24
  10. package/dist/bin/pushary-cowork.js +5 -5
  11. package/dist/bin/pushary-daemon.js +32 -32
  12. package/dist/bin/pushary-disconnect.js +24 -24
  13. package/dist/bin/pushary-doctor.js +33 -33
  14. package/dist/bin/pushary-elicitation-hook.js +25 -25
  15. package/dist/bin/pushary-gemini-bridge.js +13 -13
  16. package/dist/bin/pushary-gemini-hook.js +27 -27
  17. package/dist/bin/pushary-hook.js +29 -29
  18. package/dist/bin/pushary-login.js +12 -12
  19. package/dist/bin/pushary-logout.js +24 -24
  20. package/dist/bin/pushary-mcp.js +9 -9
  21. package/dist/bin/pushary-mode.js +12 -12
  22. package/dist/bin/pushary-notification-hook.js +24 -24
  23. package/dist/bin/pushary-opencode-hook.js +26 -26
  24. package/dist/bin/pushary-permission-denied-hook.js +29 -29
  25. package/dist/bin/pushary-permission-hook.js +28 -28
  26. package/dist/bin/pushary-post-hook.js +24 -24
  27. package/dist/bin/pushary-prompt-hook.js +24 -24
  28. package/dist/bin/pushary-session-end-hook.js +24 -24
  29. package/dist/bin/pushary-session-start-hook.js +28 -28
  30. package/dist/bin/pushary-setup.js +35 -35
  31. package/dist/bin/pushary-stats.js +5 -5
  32. package/dist/bin/pushary-status.js +26 -26
  33. package/dist/bin/pushary-stop-hook.js +24 -24
  34. package/dist/bin/pushary-stopfailure-hook.js +24 -24
  35. package/dist/bin/pushary-suggestions.js +12 -12
  36. package/dist/bin/pushary-transcript-register.js +17 -17
  37. package/dist/bin/pushary-transcripts.js +7 -7
  38. package/dist/bin/pushary-upgrade.js +30 -30
  39. package/dist/bin/pushary-wait.js +12 -12
  40. package/dist/bin/pushary.js +6 -6
  41. package/dist/{chunk-NPE44CX4.js → chunk-3DXDJL4K.js} +4 -4
  42. package/dist/{chunk-VA36Q6BD.js → chunk-3HUHP4A4.js} +1 -1
  43. package/dist/{chunk-MAGB6VW6.js → chunk-4D54LZGF.js} +1 -1
  44. package/dist/{chunk-RFIHLLRH.js → chunk-4GEHVRV3.js} +4 -4
  45. package/dist/{chunk-OSLC7G3D.js → chunk-5DC2PRVT.js} +2 -2
  46. package/dist/{chunk-GSP7CC52.js → chunk-5KVL4AP5.js} +4 -4
  47. package/dist/{chunk-KHLYOIPY.js → chunk-7GSOIBVM.js} +4 -4
  48. package/dist/{chunk-HA22GGDG.js → chunk-7O5U5TED.js} +5 -5
  49. package/dist/{chunk-JMLJHKJN.js → chunk-7P43CI6G.js} +2 -2
  50. package/dist/{chunk-Z5ORWTY3.js → chunk-ABDGTGBT.js} +5 -4
  51. package/dist/{chunk-NDQXKLGE.js → chunk-AI2YBW42.js} +5 -5
  52. package/dist/{chunk-F3J6JFR2.js → chunk-AJIH4JGB.js} +5 -5
  53. package/dist/{chunk-FFRH7KZP.js → chunk-B54Q4I7T.js} +2 -2
  54. package/dist/{chunk-NWSWP3KY.js → chunk-BMHD2NEH.js} +3 -3
  55. package/dist/{chunk-PDRKQSC6.js → chunk-CHRRBADC.js} +6 -6
  56. package/dist/{chunk-DG5QHKJA.js → chunk-CW3IJD2H.js} +3 -3
  57. package/dist/{chunk-VMIDUNOT.js → chunk-D2G6HWEA.js} +2 -2
  58. package/dist/{chunk-AZXPJLKC.js → chunk-D322CKL2.js} +1 -1
  59. package/dist/{chunk-PDDJKGIW.js → chunk-D5IAEPFA.js} +2 -2
  60. package/dist/{chunk-UKCGR5T2.js → chunk-DDRLK67P.js} +2 -2
  61. package/dist/{chunk-GKTVIN4F.js → chunk-FLEWP4BV.js} +1 -1
  62. package/dist/{chunk-Q52PBCN7.js → chunk-FZEQWY7Q.js} +1 -1
  63. package/dist/{chunk-HK2RPWAD.js → chunk-G3CNMCQS.js} +1 -1
  64. package/dist/{chunk-6SYU5LVK.js → chunk-GBNG6QEV.js} +3 -3
  65. package/dist/{chunk-3Y73MQPF.js → chunk-HCXBAF43.js} +1 -1
  66. package/dist/{chunk-QUKATQ66.js → chunk-IBUAVM6X.js} +1 -1
  67. package/dist/{chunk-HJF57K2U.js → chunk-J2APHNZL.js} +5 -5
  68. package/dist/{chunk-SNI4FGOV.js → chunk-JVKY6ILU.js} +1 -1
  69. package/dist/{chunk-N5WEEYV6.js → chunk-JWMCGL3P.js} +3 -3
  70. package/dist/{chunk-EK6PRPCY.js → chunk-K2CZJBUS.js} +4 -4
  71. package/dist/{chunk-GQSJVYKN.js → chunk-KBMQYMGG.js} +6 -6
  72. package/dist/{chunk-W73URGML.js → chunk-L5WOYQT7.js} +8 -8
  73. package/dist/{chunk-JLQV3XLV.js → chunk-LZZ3EKKI.js} +4 -4
  74. package/dist/{chunk-YNJ372JU.js → chunk-MBTNHQCI.js} +2 -2
  75. package/dist/{chunk-GUHM2UQO.js → chunk-MIENLS7P.js} +2 -2
  76. package/dist/{chunk-WXA3CFZR.js → chunk-MXEDMQLC.js} +1 -1
  77. package/dist/{chunk-KZ3XE3JG.js → chunk-N2I7RMC6.js} +10 -10
  78. package/dist/{chunk-2WZJHJAB.js → chunk-NRVZNZVE.js} +5 -5
  79. package/dist/{chunk-DYALNCS6.js → chunk-OLS4DTFN.js} +3 -3
  80. package/dist/{chunk-V7Q7DQXL.js → chunk-PA3OZGIA.js} +8 -8
  81. package/dist/{chunk-HQR6DYVG.js → chunk-QC7ZNZMZ.js} +1 -1
  82. package/dist/{chunk-235LKHLW.js → chunk-QOUW57RT.js} +4 -0
  83. package/dist/{chunk-ISNGKZG4.js → chunk-QZ4KOMFE.js} +1 -1
  84. package/dist/{chunk-T2NKNQPM.js → chunk-RISJLN3O.js} +2 -2
  85. package/dist/{chunk-B7SE22M7.js → chunk-RULJMNY7.js} +2 -2
  86. package/dist/{chunk-SNUNAIKK.js → chunk-STXWIYAY.js} +4 -4
  87. package/dist/{chunk-ZQD6GVS7.js → chunk-TEG2JL5M.js} +7 -7
  88. package/dist/{chunk-UK3WY3LE.js → chunk-VITJTFFT.js} +2 -2
  89. package/dist/{chunk-6VUVVVVN.js → chunk-W2TXFM6O.js} +1 -1
  90. package/dist/{chunk-4OQHT5IJ.js → chunk-WASCAI2U.js} +4 -4
  91. package/dist/{chunk-ZMR3DSMH.js → chunk-WLQENMOW.js} +4 -4
  92. package/dist/{chunk-PYWLW7PC.js → chunk-WR3GKYKD.js} +1 -1
  93. package/dist/{chunk-UEIL72RN.js → chunk-Y3XF324T.js} +1 -1
  94. package/dist/{chunk-Q3TCLMYC.js → chunk-ZFJAZBBF.js} +5 -5
  95. package/dist/{global-upgrade-R57HCUTC.js → global-upgrade-ROZHFAO5.js} +6 -6
  96. package/dist/{paths-G2AYNZCD.js → paths-FSFFGRRU.js} +2 -2
  97. package/dist/{reapply-FHCOPXEN.js → reapply-WY5LHIR4.js} +20 -20
  98. package/dist/src/index.js +19 -19
  99. package/dist/{upgrade-lock-3I7AF7E3.js → upgrade-lock-6PYOTF4X.js} +3 -3
  100. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.9.38
4
+
5
+ - Owned Codex child questions reach the long-wait bridge instead of being asked first by a short-lived native hook. The matching Mac helper hands these questions to the CLI; kill, deny and command-permission checks still apply.
6
+ - Questions in the personal Codex child bridge keep waiting until answered or cancelled when Codex supplies no deadline. A short poll or temporary network failure no longer cancels the question.
7
+ - A cancelled request or an explicit Codex deadline still stops the wait and rejects a late answer. Native permission hooks and recovery after closing Codex keep their existing limits.
8
+ - With the updated Pushary server, ordinary MCP questions remain available after the cache clears and can receive one reminder after ten minutes. This saves the answer; it does not promise that a closed agent will restart.
9
+
3
10
  ## 1.9.37
4
11
 
5
12
  - Codex questions reach Pushary. When Codex asks you something with its question card (`request_user_input`), the question and its choices go to your phone or the Mac notch, and your answer goes back to Codex in place of the card. A question with no choices, one choice, more than four, or a secret stays in Codex, and so does one nobody answers or Pushary cannot reach. Setup and upgrade widen the Codex `PreToolUse` matcher to include both question tools.
@@ -1,41 +1,41 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handleBell
4
- } from "../chunk-UEIL72RN.js";
4
+ } from "../chunk-Y3XF324T.js";
5
5
  import {
6
6
  readHookInput
7
- } from "../chunk-ZMR3DSMH.js";
8
- import "../chunk-V7Q7DQXL.js";
7
+ } from "../chunk-WLQENMOW.js";
8
+ import "../chunk-PA3OZGIA.js";
9
9
  import "../chunk-DWQYCOPI.js";
10
- import "../chunk-F3J6JFR2.js";
11
- import "../chunk-MAGB6VW6.js";
12
- import "../chunk-PYWLW7PC.js";
13
- import "../chunk-HQR6DYVG.js";
10
+ import "../chunk-AJIH4JGB.js";
11
+ import "../chunk-4D54LZGF.js";
12
+ import "../chunk-WR3GKYKD.js";
13
+ import "../chunk-QC7ZNZMZ.js";
14
14
  import "../chunk-XHKBHWLX.js";
15
- import "../chunk-KHLYOIPY.js";
16
- import "../chunk-Q3TCLMYC.js";
17
- import "../chunk-6SYU5LVK.js";
18
- import "../chunk-Q52PBCN7.js";
19
- import "../chunk-SNI4FGOV.js";
15
+ import "../chunk-7GSOIBVM.js";
16
+ import "../chunk-ZFJAZBBF.js";
17
+ import "../chunk-GBNG6QEV.js";
18
+ import "../chunk-FZEQWY7Q.js";
19
+ import "../chunk-JVKY6ILU.js";
20
20
  import "../chunk-GMXKITVA.js";
21
21
  import "../chunk-6ICPEJY5.js";
22
- import "../chunk-N5WEEYV6.js";
23
- import "../chunk-W73URGML.js";
24
- import "../chunk-QUKATQ66.js";
25
- import "../chunk-HA22GGDG.js";
22
+ import "../chunk-JWMCGL3P.js";
23
+ import "../chunk-L5WOYQT7.js";
24
+ import "../chunk-IBUAVM6X.js";
25
+ import "../chunk-7O5U5TED.js";
26
26
  import "../chunk-POFBE6ZY.js";
27
- import "../chunk-Z5ORWTY3.js";
28
- import "../chunk-DYALNCS6.js";
29
- import "../chunk-NWSWP3KY.js";
30
- import "../chunk-VA36Q6BD.js";
27
+ import "../chunk-ABDGTGBT.js";
28
+ import "../chunk-OLS4DTFN.js";
29
+ import "../chunk-BMHD2NEH.js";
30
+ import "../chunk-3HUHP4A4.js";
31
31
  import "../chunk-7QLSKOSU.js";
32
32
  import "../chunk-KZERVKTD.js";
33
- import "../chunk-GUHM2UQO.js";
34
- import "../chunk-RFIHLLRH.js";
33
+ import "../chunk-MIENLS7P.js";
34
+ import "../chunk-4GEHVRV3.js";
35
35
  import "../chunk-AQFEP65J.js";
36
- import "../chunk-AZXPJLKC.js";
37
- import "../chunk-WXA3CFZR.js";
38
- import "../chunk-235LKHLW.js";
36
+ import "../chunk-D322CKL2.js";
37
+ import "../chunk-MXEDMQLC.js";
38
+ import "../chunk-QOUW57RT.js";
39
39
 
40
40
  // bin/pushary-bell-hook.ts
41
41
  var main = async () => {
@@ -5,39 +5,39 @@ import {
5
5
  liveAgentCount,
6
6
  ring,
7
7
  upgradeThreshold
8
- } from "../chunk-UEIL72RN.js";
8
+ } from "../chunk-Y3XF324T.js";
9
9
  import {
10
10
  createIo
11
11
  } from "../chunk-FO3MDD26.js";
12
12
  import {
13
13
  exitOnHelpFlag
14
- } from "../chunk-JMLJHKJN.js";
14
+ } from "../chunk-7P43CI6G.js";
15
15
  import {
16
16
  addBellHooks,
17
17
  bellInstalled,
18
18
  removeBellHooks
19
- } from "../chunk-SNI4FGOV.js";
19
+ } from "../chunk-JVKY6ILU.js";
20
20
  import {
21
21
  parseFlags
22
22
  } from "../chunk-GMXKITVA.js";
23
- import "../chunk-N5WEEYV6.js";
23
+ import "../chunk-JWMCGL3P.js";
24
24
  import "../chunk-7QLSKOSU.js";
25
25
  import {
26
26
  EXIT
27
27
  } from "../chunk-KZERVKTD.js";
28
- import "../chunk-GUHM2UQO.js";
28
+ import "../chunk-MIENLS7P.js";
29
29
  import {
30
30
  claudeSettings
31
- } from "../chunk-RFIHLLRH.js";
31
+ } from "../chunk-4GEHVRV3.js";
32
32
  import {
33
33
  readJsonSafe,
34
34
  writeJsonAtomic
35
35
  } from "../chunk-AQFEP65J.js";
36
- import "../chunk-AZXPJLKC.js";
37
- import "../chunk-WXA3CFZR.js";
36
+ import "../chunk-D322CKL2.js";
37
+ import "../chunk-MXEDMQLC.js";
38
38
  import {
39
39
  isRecord
40
- } from "../chunk-235LKHLW.js";
40
+ } from "../chunk-QOUW57RT.js";
41
41
 
42
42
  // bin/pushary-bell.ts
43
43
  exitOnHelpFlag("bell");
@@ -8,39 +8,39 @@ import {
8
8
  describeIdleWindow,
9
9
  startProcessOwnership,
10
10
  withSpawnProcessOwnership
11
- } from "../chunk-UKCGR5T2.js";
11
+ } from "../chunk-DDRLK67P.js";
12
12
  import {
13
13
  announceSubscriptionRequired,
14
14
  isDeferAnswer
15
- } from "../chunk-6VUVVVVN.js";
15
+ } from "../chunk-W2TXFM6O.js";
16
16
  import {
17
17
  claudeTranscriptPath,
18
18
  loadSessionKey,
19
19
  registerTranscript,
20
20
  registeredTranscriptEnabled
21
- } from "../chunk-V7Q7DQXL.js";
21
+ } from "../chunk-PA3OZGIA.js";
22
22
  import "../chunk-DWQYCOPI.js";
23
23
  import {
24
24
  ensureDaemonRunning
25
- } from "../chunk-F3J6JFR2.js";
25
+ } from "../chunk-AJIH4JGB.js";
26
26
  import {
27
27
  encryptRecord
28
- } from "../chunk-MAGB6VW6.js";
29
- import "../chunk-PYWLW7PC.js";
28
+ } from "../chunk-4D54LZGF.js";
29
+ import "../chunk-WR3GKYKD.js";
30
30
  import {
31
31
  transcriptsEnabled
32
- } from "../chunk-HQR6DYVG.js";
32
+ } from "../chunk-QC7ZNZMZ.js";
33
33
  import {
34
34
  needsShell,
35
35
  spawnClaude
36
36
  } from "../chunk-XHKBHWLX.js";
37
- import "../chunk-Q3TCLMYC.js";
38
- import "../chunk-6SYU5LVK.js";
39
- import "../chunk-Q52PBCN7.js";
40
- import "../chunk-SNI4FGOV.js";
37
+ import "../chunk-ZFJAZBBF.js";
38
+ import "../chunk-GBNG6QEV.js";
39
+ import "../chunk-FZEQWY7Q.js";
40
+ import "../chunk-JVKY6ILU.js";
41
41
  import "../chunk-GMXKITVA.js";
42
42
  import "../chunk-6ICPEJY5.js";
43
- import "../chunk-N5WEEYV6.js";
43
+ import "../chunk-JWMCGL3P.js";
44
44
  import {
45
45
  DEFAULT_SESSION,
46
46
  UNNAMED_ACTION,
@@ -58,8 +58,8 @@ import {
58
58
  reportEvent,
59
59
  savePendingCommand,
60
60
  scopePathFor
61
- } from "../chunk-W73URGML.js";
62
- import "../chunk-QUKATQ66.js";
61
+ } from "../chunk-L5WOYQT7.js";
62
+ import "../chunk-IBUAVM6X.js";
63
63
  import {
64
64
  askUser,
65
65
  cancelQuestion,
@@ -70,28 +70,28 @@ import {
70
70
  waitForAnswer,
71
71
  waitsForThePhone,
72
72
  withdrawQuestion
73
- } from "../chunk-HA22GGDG.js";
73
+ } from "../chunk-7O5U5TED.js";
74
74
  import "../chunk-POFBE6ZY.js";
75
75
  import {
76
76
  SubscriptionRequiredError
77
- } from "../chunk-Z5ORWTY3.js";
78
- import "../chunk-DYALNCS6.js";
79
- import "../chunk-NWSWP3KY.js";
77
+ } from "../chunk-ABDGTGBT.js";
78
+ import "../chunk-OLS4DTFN.js";
79
+ import "../chunk-BMHD2NEH.js";
80
80
  import {
81
81
  getMachineId
82
- } from "../chunk-VA36Q6BD.js";
82
+ } from "../chunk-3HUHP4A4.js";
83
83
  import "../chunk-7QLSKOSU.js";
84
84
  import "../chunk-KZERVKTD.js";
85
- import "../chunk-GUHM2UQO.js";
86
- import "../chunk-RFIHLLRH.js";
85
+ import "../chunk-MIENLS7P.js";
86
+ import "../chunk-4GEHVRV3.js";
87
87
  import "../chunk-AQFEP65J.js";
88
88
  import {
89
89
  getApiKey,
90
90
  getBaseUrl
91
- } from "../chunk-AZXPJLKC.js";
91
+ } from "../chunk-D322CKL2.js";
92
92
  import {
93
93
  NPX_LATEST_COMMAND
94
- } from "../chunk-WXA3CFZR.js";
94
+ } from "../chunk-MXEDMQLC.js";
95
95
  import {
96
96
  DECISION_STOP_REASON,
97
97
  HAND_BACK_WITHOUT_A_PROMPT,
@@ -101,7 +101,7 @@ import {
101
101
  redactSecretsFromContent,
102
102
  resolveGate,
103
103
  timeoutActionWithoutLocalPrompt
104
- } from "../chunk-235LKHLW.js";
104
+ } from "../chunk-QOUW57RT.js";
105
105
 
106
106
  // src/wrapper/localPassthrough.ts
107
107
  var SIGNAL_NUMBERS = {
@@ -9,12 +9,12 @@ import {
9
9
  planCliKeyRevocations,
10
10
  readCliHeldKeys,
11
11
  revokeCliKeys
12
- } from "../chunk-NDQXKLGE.js";
12
+ } from "../chunk-AI2YBW42.js";
13
13
  import {
14
14
  isCursorPluginLeftover,
15
15
  releaseSoleGate,
16
16
  withoutPusharyCursorHooks
17
- } from "../chunk-4OQHT5IJ.js";
17
+ } from "../chunk-WASCAI2U.js";
18
18
  import {
19
19
  HERMES_PIP_PACKAGE,
20
20
  readHermesStatus,
@@ -23,25 +23,25 @@ import {
23
23
  shortenHome,
24
24
  unregisterPluginLocation,
25
25
  vscodeSettingsTargets
26
- } from "../chunk-NPE44CX4.js";
26
+ } from "../chunk-3DXDJL4K.js";
27
27
  import {
28
28
  planFxRemoval,
29
29
  removeInstructionBlock
30
- } from "../chunk-JLQV3XLV.js";
31
- import "../chunk-UK3WY3LE.js";
30
+ } from "../chunk-LZZ3EKKI.js";
31
+ import "../chunk-VITJTFFT.js";
32
32
  import {
33
33
  disableDaemonService
34
- } from "../chunk-F3J6JFR2.js";
34
+ } from "../chunk-AJIH4JGB.js";
35
35
  import "../chunk-XHKBHWLX.js";
36
- import "../chunk-EK6PRPCY.js";
36
+ import "../chunk-K2CZJBUS.js";
37
37
  import {
38
38
  macAppKeepsMcpEntry,
39
39
  mcpServerBearer,
40
40
  pusharyKey,
41
41
  readMacAppAgentKey,
42
42
  setupReceiptKey
43
- } from "../chunk-GSP7CC52.js";
44
- import "../chunk-VMIDUNOT.js";
43
+ } from "../chunk-5KVL4AP5.js";
44
+ import "../chunk-D2G6HWEA.js";
45
45
  import {
46
46
  OPENCODE_PLUGIN_SIBLING,
47
47
  OPENCODE_PLUGIN_SIBLING_CONTENTS,
@@ -53,14 +53,14 @@ import {
53
53
  openCodePluginDir,
54
54
  openCodePluginFile,
55
55
  removeOpenCodeMcpServer
56
- } from "../chunk-HJF57K2U.js";
56
+ } from "../chunk-J2APHNZL.js";
57
57
  import {
58
58
  ansiPainter,
59
59
  useColor
60
60
  } from "../chunk-FO3MDD26.js";
61
61
  import {
62
62
  exitOnHelpFlag
63
- } from "../chunk-JMLJHKJN.js";
63
+ } from "../chunk-7P43CI6G.js";
64
64
  import {
65
65
  compatibleConfigFile,
66
66
  compatibleDocuments,
@@ -76,7 +76,7 @@ import {
76
76
  removePusharyToolPermissions,
77
77
  restoreClaudeMcpServer,
78
78
  serializeConfigDocument
79
- } from "../chunk-KHLYOIPY.js";
79
+ } from "../chunk-7GSOIBVM.js";
80
80
  import {
81
81
  hookOwnerOf,
82
82
  isHookTakeoverReceipt,
@@ -84,12 +84,12 @@ import {
84
84
  resolveBridgeStub,
85
85
  restoreHookTakeover,
86
86
  restoreMcpServer
87
- } from "../chunk-Q3TCLMYC.js";
87
+ } from "../chunk-ZFJAZBBF.js";
88
88
  import {
89
89
  removeGeminiSettings
90
- } from "../chunk-6SYU5LVK.js";
91
- import "../chunk-Q52PBCN7.js";
92
- import "../chunk-SNI4FGOV.js";
90
+ } from "../chunk-GBNG6QEV.js";
91
+ import "../chunk-FZEQWY7Q.js";
92
+ import "../chunk-JVKY6ILU.js";
93
93
  import {
94
94
  rejectUnknownFlags
95
95
  } from "../chunk-GMXKITVA.js";
@@ -99,20 +99,20 @@ import {
99
99
  isDisabledExport,
100
100
  removeClaudeAlias,
101
101
  shellProfileCandidates
102
- } from "../chunk-N5WEEYV6.js";
103
- import "../chunk-W73URGML.js";
104
- import "../chunk-QUKATQ66.js";
105
- import "../chunk-HA22GGDG.js";
102
+ } from "../chunk-JWMCGL3P.js";
103
+ import "../chunk-L5WOYQT7.js";
104
+ import "../chunk-IBUAVM6X.js";
105
+ import "../chunk-7O5U5TED.js";
106
106
  import "../chunk-POFBE6ZY.js";
107
- import "../chunk-Z5ORWTY3.js";
108
- import "../chunk-DYALNCS6.js";
109
- import "../chunk-NWSWP3KY.js";
110
- import "../chunk-VA36Q6BD.js";
107
+ import "../chunk-ABDGTGBT.js";
108
+ import "../chunk-OLS4DTFN.js";
109
+ import "../chunk-BMHD2NEH.js";
110
+ import "../chunk-3HUHP4A4.js";
111
111
  import "../chunk-7QLSKOSU.js";
112
112
  import {
113
113
  EXIT
114
114
  } from "../chunk-KZERVKTD.js";
115
- import "../chunk-GUHM2UQO.js";
115
+ import "../chunk-MIENLS7P.js";
116
116
  import {
117
117
  claudeJson,
118
118
  claudeMcpReceipt,
@@ -149,14 +149,14 @@ import {
149
149
  restoreCodexHookTrust,
150
150
  vscodePluginDir,
151
151
  vscodePluginMcp
152
- } from "../chunk-RFIHLLRH.js";
152
+ } from "../chunk-4GEHVRV3.js";
153
153
  import "../chunk-AQFEP65J.js";
154
154
  import {
155
155
  getBaseUrl
156
- } from "../chunk-AZXPJLKC.js";
156
+ } from "../chunk-D322CKL2.js";
157
157
  import {
158
158
  NPX_LATEST_COMMAND
159
- } from "../chunk-WXA3CFZR.js";
159
+ } from "../chunk-MXEDMQLC.js";
160
160
  import {
161
161
  CLI_PACKAGE_NAMES,
162
162
  HOOK_COMPATIBLE_PROFILES,
@@ -168,7 +168,7 @@ import {
168
168
  globalRootFor,
169
169
  isValidApiKey,
170
170
  redactSecrets
171
- } from "../chunk-235LKHLW.js";
171
+ } from "../chunk-QOUW57RT.js";
172
172
 
173
173
  // bin/pushary-clean.ts
174
174
  import { existsSync as existsSync6, readFileSync as readFileSync4, copyFileSync, readdirSync as readdirSync4 } from "fs";
@@ -5,10 +5,10 @@ import {
5
5
  postLiveSession,
6
6
  postLiveSessionUntilAccepted,
7
7
  startLiveSessionHeartbeat
8
- } from "../chunk-OSLC7G3D.js";
8
+ } from "../chunk-5DC2PRVT.js";
9
9
  import {
10
10
  resolveProviderBinary
11
- } from "../chunk-YNJ372JU.js";
11
+ } from "../chunk-MBTNHQCI.js";
12
12
  import "../chunk-RIVNNBEK.js";
13
13
  import {
14
14
  SESSION_IDLE_TIMEOUT_MS,
@@ -16,50 +16,51 @@ import {
16
16
  idleDeadlinePassed,
17
17
  startProcessOwnership,
18
18
  withSpawnProcessOwnership
19
- } from "../chunk-UKCGR5T2.js";
20
- import "../chunk-MAGB6VW6.js";
21
- import "../chunk-PYWLW7PC.js";
19
+ } from "../chunk-DDRLK67P.js";
20
+ import "../chunk-4D54LZGF.js";
21
+ import "../chunk-WR3GKYKD.js";
22
22
  import {
23
23
  transcriptsEnabled
24
- } from "../chunk-HQR6DYVG.js";
24
+ } from "../chunk-QC7ZNZMZ.js";
25
25
  import {
26
26
  spawnClaude
27
27
  } from "../chunk-XHKBHWLX.js";
28
28
  import "../chunk-6ICPEJY5.js";
29
- import "../chunk-N5WEEYV6.js";
29
+ import "../chunk-JWMCGL3P.js";
30
30
  import {
31
31
  isAskUserResponse,
32
32
  isDecisionStopped,
33
33
  isWaitForAnswerResponse,
34
34
  withdrawQuestion,
35
35
  writeDegraded
36
- } from "../chunk-HA22GGDG.js";
36
+ } from "../chunk-7O5U5TED.js";
37
37
  import "../chunk-POFBE6ZY.js";
38
38
  import {
39
- callMcpTool
40
- } from "../chunk-Z5ORWTY3.js";
41
- import "../chunk-DYALNCS6.js";
42
- import "../chunk-NWSWP3KY.js";
39
+ callMcpTool,
40
+ isRetryable
41
+ } from "../chunk-ABDGTGBT.js";
42
+ import "../chunk-OLS4DTFN.js";
43
+ import "../chunk-BMHD2NEH.js";
43
44
  import {
44
45
  getMachineId
45
- } from "../chunk-VA36Q6BD.js";
46
+ } from "../chunk-3HUHP4A4.js";
46
47
  import "../chunk-7QLSKOSU.js";
47
48
  import "../chunk-KZERVKTD.js";
48
- import "../chunk-GUHM2UQO.js";
49
- import "../chunk-RFIHLLRH.js";
49
+ import "../chunk-MIENLS7P.js";
50
+ import "../chunk-4GEHVRV3.js";
50
51
  import "../chunk-AQFEP65J.js";
51
52
  import {
52
53
  getApiKey,
53
54
  getBaseUrl
54
- } from "../chunk-AZXPJLKC.js";
55
- import "../chunk-WXA3CFZR.js";
55
+ } from "../chunk-D322CKL2.js";
56
+ import "../chunk-MXEDMQLC.js";
56
57
  import {
57
58
  elicitationContent,
58
59
  parseAgentQuestion,
59
60
  parseAgentQuestionAnswers,
60
61
  planElicitationAsk,
61
62
  readElicitationFields
62
- } from "../chunk-235LKHLW.js";
63
+ } from "../chunk-QOUW57RT.js";
63
64
 
64
65
  // bin/pushary-codex-bridge.ts
65
66
  import { existsSync } from "fs";
@@ -112,7 +113,7 @@ var JsonRpcClient = class {
112
113
  constructor(command, cwd, timeoutMs, bridgeOptions) {
113
114
  this.bridgeOptions = bridgeOptions;
114
115
  this.threadId = bridgeOptions.resumeThreadId ?? null;
115
- const options = { cwd, env: process.env, stdio: ["pipe", "pipe", "pipe"] };
116
+ const options = { cwd, env: { ...process.env, PUSHARY_CODEX_BRIDGE: "1" }, stdio: ["pipe", "pipe", "pipe"] };
116
117
  this.child = process.platform === "win32" ? spawnClaude(command.command, command.args ?? [], options) : spawn(command.command, command.args ?? [], options);
117
118
  this.child.stdout?.setEncoding("utf8");
118
119
  this.child.stdout?.on("data", (chunk) => this.read(String(chunk)));
@@ -288,9 +289,11 @@ var rpcTurnId = (result) => {
288
289
  var answerCodexQuestions = async (options, params, signal, toolName = "request_user_input") => {
289
290
  if (!Array.isArray(params.questions) || !params.questions.length || params.questions.length > 3) throw new Error("Invalid questions");
290
291
  const answers = /* @__PURE__ */ Object.create(null);
291
- const deadline = Date.now() + Math.min(12e4, typeof params.autoResolutionMs === "number" ? Math.max(0, params.autoResolutionMs) : 12e4);
292
+ const now = options.now ?? Date.now;
293
+ if (params.autoResolutionMs != null && (typeof params.autoResolutionMs !== "number" || !Number.isFinite(params.autoResolutionMs) || params.autoResolutionMs < 0)) throw new Error("Invalid question deadline");
294
+ const deadline = typeof params.autoResolutionMs === "number" ? now() + params.autoResolutionMs : null;
292
295
  for (const raw of params.questions) {
293
- if (signal.aborted || Date.now() >= deadline) throw new Error("Question expired");
296
+ if (signal.aborted || deadline !== null && now() >= deadline) throw new Error("Question expired");
294
297
  const question = object(raw);
295
298
  const id = string(question?.id);
296
299
  const prompt = string(question?.question);
@@ -306,7 +309,7 @@ var answerCodexQuestions = async (options, params, signal, toolName = "request_u
306
309
  };
307
310
  try {
308
311
  signal.throwIfAborted();
309
- if (Date.now() >= deadline) throw new Error("Question expired");
312
+ if (deadline !== null && now() >= deadline) throw new Error("Question expired");
310
313
  let result = await call("ask_user", {
311
314
  requestId: randomUUID(),
312
315
  question: prompt,
@@ -319,8 +322,9 @@ var answerCodexQuestions = async (options, params, signal, toolName = "request_u
319
322
  machineId: options.machineId,
320
323
  toolName,
321
324
  wait: false,
322
- waitEndsAt: new Date(deadline).toISOString()
323
- }, Math.min(1e4, deadline - Date.now()));
325
+ ...deadline === null ? {} : { waitEndsAt: new Date(deadline).toISOString() },
326
+ localSurfaceAvailable: false
327
+ }, deadline === null ? 1e4 : Math.min(1e4, deadline - now()));
324
328
  correlationId = string(object(result)?.correlationId);
325
329
  if (!isAskUserResponse(result)) throw new Error("Invalid ask_user response");
326
330
  while (!result.answered) {
@@ -337,13 +341,20 @@ var answerCodexQuestions = async (options, params, signal, toolName = "request_u
337
341
  }
338
342
  throw new Error(LOCAL_QUESTION_UNAVAILABLE);
339
343
  }
340
- if (!correlationId || result.handoffAction === "stop" || result.noDevices || result.status && result.status !== "pending") throw new Error(QUESTION_UNAVAILABLE);
341
- const remaining = deadline - Date.now();
344
+ if (signal.aborted) throw new Error("Question cancelled");
345
+ if (!correlationId || result.handoffAction === "stop" && result.status !== "unavailable" || result.noDevices || result.status && result.status !== "pending" && result.status !== "unavailable") throw new Error(QUESTION_UNAVAILABLE);
346
+ const remaining = deadline === null ? 27e3 : deadline - now();
342
347
  if (remaining <= 0) throw new Error("Question expired");
343
- result = await call("wait_for_answer", { correlationId, timeoutMs: Math.min(25e3, remaining) }, Math.min(27e3, remaining));
344
- if (!result.answered) await liveSessionSleep(100, signal);
348
+ try {
349
+ result = await call("wait_for_answer", { correlationId, timeoutMs: Math.min(25e3, remaining) }, Math.min(27e3, remaining));
350
+ } catch (error) {
351
+ if (signal.aborted || !isRetryable(error)) throw error;
352
+ await liveSessionSleep(2e3, signal);
353
+ continue;
354
+ }
355
+ if (!result.answered) await liveSessionSleep(result.status === "unavailable" ? 2e3 : 100, signal);
345
356
  }
346
- if (signal.aborted || Date.now() >= deadline) throw new Error("Question expired");
357
+ if (signal.aborted || deadline !== null && now() >= deadline) throw new Error("Question expired");
347
358
  settled = true;
348
359
  const rawValue = string(result.value);
349
360
  const value = rawValue && structured ? (parseAgentQuestionAnswers([structured], rawValue) ?? parseAgentQuestionAnswers([structured], JSON.stringify({ [prompt]: rawValue })))?.[prompt] : rawValue;